mirror of
https://github.com/chinchang/web-maker.git
synced 2025-06-28 02:32:36 +02:00
add mode support in save html and codepen features.
This commit is contained in:
@ -24,15 +24,15 @@
|
|||||||
COFFEESCRIPT: 'coffee'
|
COFFEESCRIPT: 'coffee'
|
||||||
};
|
};
|
||||||
var modes = {};
|
var modes = {};
|
||||||
modes[HtmlModes.HTML] = { label: 'HTML', cmMode: 'htmlmixed' };
|
modes[HtmlModes.HTML] = { label: 'HTML', cmMode: 'htmlmixed', codepenVal: 'none' };
|
||||||
modes[HtmlModes.MARKDOWN] = { label: 'Markdown', cmMode: 'markdown' };
|
modes[HtmlModes.MARKDOWN] = { label: 'Markdown', cmMode: 'markdown', codepenVal: 'markdown' };
|
||||||
modes[HtmlModes.JADE] = { label: 'Jade', cmMode: 'jade' };
|
modes[HtmlModes.JADE] = { label: 'Jade', cmMode: 'jade', codepenVal: 'jade' };
|
||||||
modes[JsModes.JS] = { label: 'JS', cmMode: 'javascript' };
|
modes[JsModes.JS] = { label: 'JS', cmMode: 'javascript', codepenVal: 'none' };
|
||||||
modes[JsModes.COFFEESCRIPT] = { label: 'CoffeeScript', cmMode: 'coffeescript' };
|
modes[JsModes.COFFEESCRIPT] = { label: 'CoffeeScript', cmMode: 'coffeescript', codepenVal: 'coffeescript' };
|
||||||
modes[JsModes.ES6] = { label: 'ES6 (Babel)', cmMode: 'javascript' };
|
modes[JsModes.ES6] = { label: 'ES6 (Babel)', cmMode: 'javascript', codepenVal: 'babel' };
|
||||||
modes[CssModes.CSS] = { label: 'CSS', cmMode: 'css' };
|
modes[CssModes.CSS] = { label: 'CSS', cmMode: 'css', codepenVal: 'none' };
|
||||||
modes[CssModes.SCSS] = { label: 'SCSS', cmMode: 'sass' };
|
modes[CssModes.SCSS] = { label: 'SCSS', cmMode: 'sass', codepenVal: 'scss' };
|
||||||
modes[CssModes.LESS] = { label: 'LESS', cmMode: 'css' };
|
modes[CssModes.LESS] = { label: 'LESS', cmMode: 'text/x-less', codepenVal: 'less' };
|
||||||
|
|
||||||
var updateTimer
|
var updateTimer
|
||||||
, updateDelay = 500
|
, updateDelay = 500
|
||||||
@ -269,35 +269,40 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
editur.setPreviewContent = function () {
|
editur.setPreviewContent = function () {
|
||||||
var html = computeHtml();
|
var htmlPromise = computeHtml();
|
||||||
var cssPromise = computeCss();
|
var cssPromise = computeCss();
|
||||||
var jsPromise = computeJs();
|
var jsPromise = computeJs();
|
||||||
Promise.all([html, cssPromise, jsPromise]).then(function (result) {
|
Promise.all([htmlPromise, cssPromise, jsPromise]).then(function (result) {
|
||||||
createPreviewFile(result[0], result[1], result[2]);
|
createPreviewFile(result[0], result[1], result[2]);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
function saveFile() {
|
function saveFile() {
|
||||||
var html = editur.cm.html.getValue();
|
var htmlPromise = computeHtml();
|
||||||
var css = editur.cm.css.getValue();
|
var cssPromise = computeCss();
|
||||||
var js = editur.cm.js.getValue();
|
var jsPromise = computeJs();
|
||||||
|
Promise.all([htmlPromise, cssPromise, jsPromise]).then(function (result) {
|
||||||
|
var html = result[0],
|
||||||
|
css = result[1],
|
||||||
|
js = result[2];
|
||||||
|
|
||||||
var fileContent = '<html><head>\n<style>\n'
|
var fileContent = '<html><head>\n<style>\n'
|
||||||
+ css + '\n</style>\n</head>\n<body>\n'
|
+ css + '\n</style>\n</head>\n<body>\n'
|
||||||
+ html + '\n<script>\n' + js + '\n</script>\n\n</body>\n</html>';
|
+ html + '\n<script>\n' + js + '\n</script>\n\n</body>\n</html>';
|
||||||
|
|
||||||
var d = new Date();
|
var d = new Date();
|
||||||
var fileName = [ 'web-maker', d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds() ].join('-');
|
var fileName = [ 'web-maker', d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes(), d.getSeconds() ].join('-');
|
||||||
fileName += '.html';
|
fileName += '.html';
|
||||||
|
|
||||||
var a = document.createElement('a');
|
var a = document.createElement('a');
|
||||||
var blob = new Blob([ fileContent ], {type: "text/html;charset=UTF-8"});
|
var blob = new Blob([ fileContent ], {type: "text/html;charset=UTF-8"});
|
||||||
a.href = window.URL.createObjectURL(blob);
|
a.href = window.URL.createObjectURL(blob);
|
||||||
a.download = fileName;
|
a.download = fileName;
|
||||||
a.style.display = 'none';
|
a.style.display = 'none';
|
||||||
document.body.appendChild(a);
|
document.body.appendChild(a);
|
||||||
a.click();
|
a.click();
|
||||||
a.remove();
|
a.remove();
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
function initEditor(element, options) {
|
function initEditor(element, options) {
|
||||||
@ -366,7 +371,10 @@
|
|||||||
title: 'A Web Maker experiment',
|
title: 'A Web Maker experiment',
|
||||||
html: editur.cm.html.getValue(),
|
html: editur.cm.html.getValue(),
|
||||||
css: editur.cm.css.getValue(),
|
css: editur.cm.css.getValue(),
|
||||||
js: editur.cm.js.getValue()
|
js: editur.cm.js.getValue(),
|
||||||
|
html_pre_processor: modes[htmlMode].codepenVal,
|
||||||
|
css_pre_processor: modes[cssMode].codepenVal,
|
||||||
|
js_pre_processor: modes[jsMode].codepenVal
|
||||||
};
|
};
|
||||||
json = JSON.stringify(json)
|
json = JSON.stringify(json)
|
||||||
.replace(/"/g, """)
|
.replace(/"/g, """)
|
||||||
|
Reference in New Issue
Block a user