fix tabbed literate code

This commit is contained in:
satyr 2013-01-10 06:23:14 +09:00
parent f672e0cdb5
commit 9595b30d6f
3 changed files with 12 additions and 7 deletions

View File

@ -40,7 +40,7 @@
};
Lexer.prototype.clean = function(code) {
var line, lines;
var line, lines, match;
if (code.charCodeAt(0) === BOM) {
code = code.slice(1);
}
@ -55,8 +55,8 @@
_results = [];
for (_i = 0, _len = _ref2.length; _i < _len; _i++) {
line = _ref2[_i];
if (LITERATE.test(line)) {
_results.push(line.substr(4));
if (match = LITERATE.exec(line)) {
_results.push(line.slice(match[0].length));
} else {
_results.push('# ' + line);
}

View File

@ -65,15 +65,15 @@ exports.Lexer = class Lexer
# Preprocess the code to remove leading and trailing whitespace, carriage
# returns, etc. If we're lexing literate CoffeeScript, strip external Markdown
# by removing all lines that aren't indented by at least four spaces.
# by removing all lines that aren't indented by at least four spaces or a tab.
clean: (code) ->
code = code.slice(1) if code.charCodeAt(0) is BOM
code = "\n#{code}" if WHITESPACE.test code
code = code.replace(/\r/g, '').replace TRAILING_SPACES, ''
if @literate
lines = for line in code.split('\n')
if LITERATE.test line
line.substr(4)
if match = LITERATE.exec line
line[match[0].length..]
else
'# ' + line
code = lines.join '\n'

View File

@ -40,4 +40,9 @@ and unordered lists, are fine:
* A
* List
* List
Tabs work too:
test "tabbed code", ->
ok yes