Add the task list code to the markdown renderer

This commit is contained in:
yflory
2017-05-18 14:57:04 +02:00
parent 2b60b81a68
commit 0bd4caeb7e
4 changed files with 53 additions and 37 deletions

View File

@@ -6,7 +6,7 @@ define([
var DiffMd = {}
var DiffDOM = window.diffDOM;
var renderer = DiffMd.renderer = new Marked.Renderer();
var renderer = new Marked.Renderer();
Marked.setOptions({
renderer: renderer
@@ -16,6 +16,24 @@ define([
return Marked(md);
};
// Tasks list
var checkedTaskItemPtn = /^\s*\[x\]\s*/;
var uncheckedTaskItemPtn = /^\s*\[ \]\s*/;
renderer.listitem = function (text) {
var isCheckedTaskItem = checkedTaskItemPtn.test(text);
var isUncheckedTaskItem = uncheckedTaskItemPtn.test(text);
if (isCheckedTaskItem) {
text = text.replace(checkedTaskItemPtn,
'<i class="fa fa-check-square" aria-hidden="true"></i>&nbsp;') + '\n';
}
if (isUncheckedTaskItem) {
text = text.replace(uncheckedTaskItemPtn,
'<i class="fa fa-square-o" aria-hidden="true"></i>&nbsp;') + '\n';
}
var cls = (isCheckedTaskItem || isUncheckedTaskItem) ? ' class="todo-list-item"' : '';
return '<li'+ cls + '>' + text + '</li>\n';
};
var forbiddenTags = [
'SCRIPT',
'IFRAME',