mirror of
https://github.com/jsbin/jsbin.git
synced 2026-01-25 15:38:56 +00:00
Merge pull request #1710 from jsbin/feature/937-livescript
Feature/937 livescript
This commit is contained in:
commit
a614f9bfaa
@ -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;
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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',
|
||||
|
||||
@ -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
5
public/js/vendor/livescript.js
vendored
Executable file
File diff suppressed because one or more lines are too long
@ -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>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user