Browse Source

Merge branch 'master' of github.com:writeas/htmlhouse

Conflicts:
	templates/editor.html
tags/v1.0
Matt Baer 7 years ago
parent
commit
e20fe1b23e
2 changed files with 109 additions and 78 deletions
  1. +29
    -0
      static/contribute.json
  2. +80
    -78
      templates/editor.html

+ 29
- 0
static/contribute.json View File

@@ -0,0 +1,29 @@
{
"name": "HTMLhouse",
"description": "An application for sharing HTML quickly.",
"repository": {
"url": "https://github.com/writeas/htmlhouse",
"license": "MIT"
},
"participate": {
"docs": "",
"irc": "irc://irc.freenode.net/writeas",
"irc-contacts": [
"thebaer"
]
},
"bugs": {
"list": "https://github.com/writeas/htmlhouse/issues",
"report": "https://github.com/writeas/htmlhouse/issues/new"
},
"urls": {
"prod": "https://html.house"
},
"keywords": [
"go",
"golang",
"less-css",
"html5",
"javascript"
]
}

+ 80
- 78
templates/editor.html View File

@@ -51,92 +51,93 @@
<script src="/js/ace.js" type="text/javascript" charset="utf-8"></script>
<script src="https://write.as/js/h.js"></script>
<script>
var publishing = false;
var $publishBtn = $("#publish");
var $publicCheck = document.getElementById("public");
{{if .ID}}{{else}}var orig = "{{.Content}}";
$publishBtn.addClass("no");{{end}}
(function() {
var publishing = false;
var $publishBtn = $("#publish");
var $publicCheck = document.getElementById("public");
{{if .ID}}{{else}}var orig = "{{.Content}}";
$publishBtn.addClass("no");{{end}}

var houses = JSON.parse(H.get('neighborhood', '[]'));
var hasBuilt = houses.length > 0;
function updatePreview() {
var val = editor.getSession().getValue();
$view.contents().find('body').html(val);
{{if .ID}}{{else}}if (val != orig) {
publishing = false;
$publishBtn.removeClass("no");
$publishBtn.text("publish");
} else {
publishing = true;
$publishBtn.addClass("no");
$publishBtn.text("publish" + (!hasBuilt ? " (edit first)" : ""));
var houses = JSON.parse(H.get('neighborhood', '[]'));
var hasBuilt = houses.length > 0;
function updatePreview() {
var val = editor.getSession().getValue();
$view.contents().find('body').html(val);
{{if .ID}}{{else}}if (val != orig) {
publishing = false;
$publishBtn.removeClass("no");
$publishBtn.text("publish");
} else {
publishing = true;
$publishBtn.addClass("no");
$publishBtn.text("publish" + (!hasBuilt ? " (edit first)" : ""));
}{{end}}
}
var justPublished = false;
var editor = ace.edit("editor");
var $view = $('#preview');
editor.setTheme("ace/theme/chrome");
editor.session.setMode("ace/mode/html");
editor.getSession().on('change', updatePreview);
{{if .ID}}{{else}}var saved = H.get('constructionSite', '');
if (saved !== '') {
editor.setValue(saved);
}{{end}}
}
var justPublished = false;
var editor = ace.edit("editor");
var $view = $('#preview');
editor.setTheme("ace/theme/chrome");
editor.session.setMode("ace/mode/html");
editor.getSession().on('change', updatePreview);
{{if .ID}}{{else}}var saved = H.get('constructionSite', '');
if (saved !== '') {
editor.setValue(saved);
}{{end}}
updatePreview();
updatePreview();

{{if .ID}}{{else}}window.addEventListener('beforeunload', function(e) {
if (!justPublished) {
H.set('constructionSite', editor.getSession().getValue());
}
return null;
});{{end}}
{{if .ID}}{{else}}window.addEventListener('beforeunload', function(e) {
if (!justPublished) {
H.set('constructionSite', editor.getSession().getValue());
}
return null;
});{{end}}

if (hasBuilt) {
$('header').append('<a href="/houses.html">my pages</a>');
}
{{if .ID}}var token;
for (var i=0; i<houses.length; i++) {
if (houses[i].id == "{{.ID}}") {
token = houses[i].token;
break;
if (hasBuilt) {
$('header').append('<a href="/houses.html">my pages</a>');
}
}
if (typeof token === "undefined") {
$publishBtn.addClass("no");
}{{else}}
{{end}}
$publishBtn.on('click', function(e) {
e.preventDefault();
if (publishing) {
return;
{{if .ID}}var token;
for (var i=0; i<houses.length; i++) {
if (houses[i].id == "{{.ID}}") {
token = houses[i].token;
break;
}
}
publishing = true;
$.ajax({
type: "POST",
url: "/⌂/{{if .ID}}{{.ID}}{{else}}create{{end}}",{{if .ID}}
beforeSend: function (request) {
request.setRequestHeader("Authorization", token);
},{{end}}
data: {html: editor.getSession().getValue(), public: $publicCheck.checked ? "true" : ""},
success: function(data, status, xhr) {
publishing = false;
{{if .ID}}if (data.meta.code == 200) { {{else}}if (data.meta.code == 201) {
var houses = JSON.parse(H.get('neighborhood', '[]'));
houses.push({id: data.data.id, token: xhr.getResponseHeader('Authorization')});
H.set('neighborhood', JSON.stringify(houses));{{end}}
justPublished = true;
{{if .ID}}{{else}}H.remove('constructionSite');{{end}}
window.location = '/' + data.data.id + '.html';
} else {
alert(data.meta.error_msg);
}
},
error: function(jqXHR, status, error) {
publishing = false;
alert(error);
if (typeof token === "undefined") {
$publishBtn.addClass("no");
}{{else}}
{{end}}
$publishBtn.on('click', function(e) {
e.preventDefault();
if (publishing) {
return;
}
publishing = true;
$.ajax({
type: "POST",
url: "/⌂/{{if .ID}}{{.ID}}{{else}}create{{end}}",{{if .ID}}
beforeSend: function (request) {
request.setRequestHeader("Authorization", token);
},{{end}}
data: {html: editor.getSession().getValue(), public: $publicCheck.checked ? "true" : ""},
success: function(data, status, xhr) {
publishing = false;
{{if .ID}}if (data.meta.code == 200) { {{else}}if (data.meta.code == 201) {
var houses = JSON.parse(H.get('neighborhood', '[]'));
houses.push({id: data.data.id, token: xhr.getResponseHeader('Authorization')});
H.set('neighborhood', JSON.stringify(houses));{{end}}
justPublished = true;
{{if .ID}}{{else}}H.remove('constructionSite');{{end}}
window.location = '/' + data.data.id + '.html';
} else {
alert(data.meta.error_msg);
}
},
error: function(jqXHR, status, error) {
publishing = false;
alert(error);
}
});
});
});
var _paq = _paq || [];
_paq.push(["setCookieDomain", "*.html.house"]);
_paq.push(["setDomains", ["*.html.house"]]);
@@ -149,6 +150,7 @@ $publishBtn.on('click', function(e) {
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.type='text/javascript'; g.async=true; g.defer=true; g.src=u+'piwik.js'; s.parentNode.insertBefore(g,s);
})();
})();
</script>
<noscript><p><img src="//analytics.write.as/piwik.php?idsite=3" style="border:0;" alt="" /></p></noscript>
</body>


Loading…
Cancel
Save