Skip to content

Commit

Permalink
use renderer for task lists. see #107 #111.
Browse files Browse the repository at this point in the history
  • Loading branch information
chjj committed Feb 26, 2014
1 parent 26cef98 commit a5e39a6
Showing 1 changed file with 22 additions and 12 deletions.
34 changes: 22 additions & 12 deletions lib/marked.js
Original file line number Diff line number Diff line change
Expand Up @@ -378,7 +378,7 @@ Lexer.prototype.token = function(src, top, bq) {
}

// task (gfm)
if (top && (cap = this.rules.task.exec(src)) {
if (top && (cap = this.rules.task.exec(src))) {
src = src.substring(cap[0].length);

this.tokens.push({
Expand Down Expand Up @@ -806,6 +806,21 @@ Renderer.prototype.code = function(code, lang, escaped) {
+ '\n</code></pre>\n';
};

Renderer.prototype.tasklist = function(text) {
return '<ul class="task-list">\n' + text + '</ul>\n';
};

Renderer.prototype.taskitem = function(text, checked, disabled, i) {
return '<li class="task-list-item"><label>'
+ '<input type="checkbox"'
+ ' class="task-list-item-checkbox"'
+ ' data-item-index="' + i + '"'
+ ' data-item-complete="' + (checked ? 1 : 0) + '"'
+ (disabled ? ' disabled=""' : '') + '>'
+ ' ' + text
+ '</label></li>';
};

Renderer.prototype.blockquote = function(quote) {
return '<blockquote>\n' + quote + '</blockquote>\n';
};
Expand Down Expand Up @@ -1014,19 +1029,14 @@ Parser.prototype.tok = function() {
, i = 1;

while (this.next().type !== 'task_list_end') {
body += '<li class="task-list-item"><label>'
+ '<input type="checkbox"'
+ ' class="task-list-item-checkbox"
+ ' data-item-index="' + (i++) + '"'
+ ' data-item-complete="' + (this.token.checked ? 1 : 0) + '"'
+ ' ' + (this.token.disabled ? 'disabled=""' + '') + '>'
+ ' ' + this.inline.output(this.token.text)
+ '</label></li>';
body += this.renderer.taskitem(
this.inline.output(this.token.text),
this.token.checked,
this.token.disabled,
i++);
}

return '<ul class="task-list">'
+ body
+ '</ul>';
return this.renderer.tasklist(body);
}
case 'table': {
var header = ''
Expand Down

0 comments on commit a5e39a6

Please sign in to comment.