Merge pull request #1710 from jsbin/feature/937-livescript

Feature/937 livescript
This commit is contained in:
Remy Sharp 2014-07-24 15:54:21 +01:00
commit a614f9bfaa
6 changed files with 50 additions and 2 deletions

View File

@ -282,6 +282,10 @@ module.exports = Observable.extend({
format = 'coffeescript';
}
if (format === 'ls') {
format = 'livescript';
}
if (format === 'svg') {
contentType = 'image/svg+xml';
req.bin.svg = req.bin.html;

View File

@ -4,7 +4,7 @@ var RSVP = require('rsvp');
var processors = {
// list of available processors on the serverside
supports: ['markdown', 'jade', 'coffeescript', 'less', 'jsx', 'myth', 'stylus'],
supports: ['markdown', 'jade', 'coffeescript', 'less', 'jsx', 'myth', 'stylus', 'livescript'],
support: function (language) {
return processors.supports.indexOf(language) !== -1;
@ -22,6 +22,7 @@ var processors = {
'jsx': 'application/javascript',
'json': 'application/json',
'ts': 'application/javascript',
'ls': 'application/javascript',
'styl': 'text/css',
'less': 'text/css',
'sass': 'text/css',
@ -36,7 +37,8 @@ var processors = {
'coffee': 'coffeescript',
'pde': 'processing',
'ts': 'typescript',
'styl': 'stylus'
'styl': 'stylus',
'ls': 'livescript'
},
lookup: {
@ -46,6 +48,7 @@ var processors = {
'jsx': 'javascript',
'pde': 'javascript',
'ts': 'javascript',
'livescript': 'javascript',
'stylus': 'css',
'less': 'css',
'sass': 'css',

View File

@ -10,6 +10,7 @@ var editorModes = {
typescript: 'javascript',
markdown: 'markdown',
coffeescript: 'coffeescript',
livescript: 'text/x-livescript',
jsx: 'javascript',
less: 'text/x-less',
sass: 'text/x-sass',

View File

@ -194,6 +194,40 @@ var processors = jsbin.processors = (function () {
}
}),
livescript: createProcessor({
id: 'livescript',
target: 'javascript',
extensions: ['ls'],
url: jsbin.static + '/js/vendor/livescript.js',
init: function livescript(ready) {
$.getScript(jsbin.static + '/js/vendor/codemirror4/mode/livescript/livescript.js', ready);
},
handler: function (source, resolve, reject) {
var renderedCode = '';
try {
renderedCode = window.LiveScript.compile(source, {
bare: true
});
resolve(renderedCode);
} catch (e) {
// index starts at 1
var lineMatch = e.message.match(/on line (\d+)/) || [,];
var line = parseInt(lineMatch[1], 10) || 0;
if (line > 0) {
line = line - 1;
}
var msg = e.message.match(/(.+) on line (\d+)$/) || [,];
var errors = {
line: line,
ch: null,
msg: msg[1]
};
reject([errors]);
}
}
}),
typescript: createProcessor({
id: 'typescript',
target: 'javascript',

5
public/js/vendor/livescript.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@ -341,6 +341,7 @@ if(top != self) {
<a href="#javascript">JavaScript</a>
<a href="#coffeescript">CoffeeScript</a>
<a href="#jsx">JSX (React)</a>
<a href="#livescript">LiveScript</a>
<a href="#processing">Processing</a>
<a href="#traceur">Traceur</a>
<a href="#typescript">TypeScript</a>