doczen-convert
Advanced tools
Comparing version
77
index.js
@@ -8,6 +8,2 @@ var marked = require('marked') | ||
var TOC = {} | ||
, toc_cur_node | ||
, toc_cur_level | ||
var default_container_selector = '.prose' | ||
@@ -18,3 +14,3 @@ , default_toc_selector = '.sidebar' | ||
not_runnable: /\.not-runnable/ | ||
,no_highlight: /\.no-highlight/ | ||
,no_highlight: /(^\.|^$|\.no-highlight)/ | ||
,hidden: /\.hidden/ | ||
@@ -24,3 +20,3 @@ ,section_start_repl: /^:::(:*)($|\n)?/ | ||
,repl_preload: /<(#[a-zA-Z][\w:.-]*)/ | ||
,repl_id: /#([a-zA-Z][\w:.-]*)/ | ||
,repl_id: /#([a-zA-Z][\w:-]*)/ | ||
,fill_in_blank: /\[\[([ _]+)\]\]/g | ||
@@ -40,6 +36,7 @@ ,smile: /(:[)P])/g | ||
var renderer = new marked.Renderer(options) | ||
, TOC = _TOC() | ||
renderer.code = _code | ||
renderer.link = _link | ||
renderer.heading = _heading | ||
renderer.heading = _heading(TOC) | ||
renderer.paragraph = _paragraph | ||
@@ -55,3 +52,3 @@ | ||
html.TOC = __render_toc() | ||
html.TOC = __render_toc(TOC) | ||
@@ -79,2 +76,3 @@ return html | ||
function _code(src, language, escaped) { | ||
language = language || '' | ||
var orig_language = language + '' | ||
@@ -159,34 +157,36 @@ | ||
function _heading(text, level, raw) { | ||
var id = __text_to_id(raw) | ||
, _node | ||
function _heading(TOC) { | ||
return function (text, level, raw) { | ||
var id = __text_to_id(raw) | ||
, _node | ||
if (level == 1) { | ||
// do nothing | ||
} else if (level == 2) { | ||
_node = {__parent__:TOC, __text__:text} | ||
TOC[id] = _node | ||
if (level == 1) { | ||
// do nothing | ||
} else if (level == 2) { | ||
_node = {__parent__:TOC, __text__:text} | ||
TOC[id] = _node | ||
// going down | ||
} else if (level > toc_cur_level) { | ||
_node = {__parent__:toc_cur_node, __text__:text} | ||
toc_cur_node[id] = _node | ||
// going down | ||
} else if (level > TOC._cur_level) { | ||
_node = {__parent__:TOC._cur_node, __text__:text} | ||
TOC._cur_node[id] = _node | ||
// going up | ||
} else if (level < toc_cur_level) { | ||
var _parent_parent = toc_cur_node.__parent__.__parent__ | ||
_node = {__parent__:_parent_parent, __text__:text} | ||
_parent_parent[id] = _node | ||
// going up | ||
} else if (level < TOC._cur_level) { | ||
var _parent_parent = TOC._cur_node.__parent__.__parent__ | ||
_node = {__parent__:_parent_parent, __text__:text} | ||
_parent_parent[id] = _node | ||
// same level | ||
} else { | ||
var _parent = toc_cur_node.__parent__ | ||
_node = {__parent__:_parent, __text__:text} | ||
_parent[id] = _node | ||
} | ||
// same level | ||
} else { | ||
var _parent = TOC._cur_node.__parent__ | ||
_node = {__parent__:_parent, __text__:text} | ||
_parent[id] = _node | ||
} | ||
toc_cur_node = _node | ||
toc_cur_level = level | ||
TOC._cur_node = _node | ||
TOC._cur_level = level | ||
return original_renderer.heading(text, level, raw) | ||
return original_renderer.heading(text, level, raw) | ||
} | ||
} | ||
@@ -213,5 +213,8 @@ | ||
function __render_toc() { | ||
function __render_toc(TOC) { | ||
var html = '<ul class="nav">\n' | ||
delete TOC._cur_node | ||
delete TOC._cur_level | ||
__inner(TOC) | ||
@@ -246,3 +249,7 @@ | ||
function _TOC() { | ||
return {_cur_node: undefined, _cur_level: undefined} | ||
} | ||
module.exports = { | ||
@@ -249,0 +256,0 @@ from_md: from_md |
{ | ||
"name": "doczen-convert", | ||
"version": "0.0.5", | ||
"version": "0.0.6", | ||
"description": "Converts Markdown into Doczen-compatible HTML", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is not supported yet
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
20392
1.21%270
2.27%1
Infinity%