fix
This commit is contained in:
10
book/node_modules/@honkit/markdown-legacy/lib/index.js
generated
vendored
Normal file
10
book/node_modules/@honkit/markdown-legacy/lib/index.js
generated
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
var { createParser } = require("@honkit/html");
|
||||
|
||||
var toHTML = require("./toHTML");
|
||||
var toMarkdown = require("./toMarkdown");
|
||||
var page = require("./page");
|
||||
|
||||
module.exports = createParser(toHTML, toMarkdown);
|
||||
// Add the custom page escaping
|
||||
// TODO: remove it. use parser.page.prepare instead
|
||||
module.exports.page.prepare = page.prepare;
|
80
book/node_modules/@honkit/markdown-legacy/lib/page.js
generated
vendored
Normal file
80
book/node_modules/@honkit/markdown-legacy/lib/page.js
generated
vendored
Normal file
@ -0,0 +1,80 @@
|
||||
var _ = require("lodash");
|
||||
var kramed = require("kramed");
|
||||
var annotate = require("kramed/lib/annotate/");
|
||||
|
||||
var RAW_START = "{% raw %}";
|
||||
var RAW_END = "{% endraw %}";
|
||||
|
||||
/**
|
||||
Escape a code block's content using raw blocks
|
||||
|
||||
@param {String}
|
||||
@return {String}
|
||||
*/
|
||||
function escape(str) {
|
||||
return RAW_START + str + RAW_END;
|
||||
}
|
||||
|
||||
/**
|
||||
Combines annotated nodes
|
||||
|
||||
@param {Array}
|
||||
@return {String}
|
||||
*/
|
||||
function combine(nodes) {
|
||||
return _.map(nodes, "raw").join("");
|
||||
}
|
||||
|
||||
/**
|
||||
Add templating "raw" to code blocks to
|
||||
avoid nunjucks processing their content.
|
||||
|
||||
@param {String} src
|
||||
@return {String}
|
||||
*/
|
||||
function preparePage(src) {
|
||||
// annotate.blocks does not normalize the following characters
|
||||
var normalizedSource = src
|
||||
.replace(/\r\n|\r|\u2424/g, "\n")
|
||||
.replace(/\t/g, " ")
|
||||
.replace(/\u00a0/g, " ");
|
||||
var lexed = annotate.blocks(normalizedSource);
|
||||
var levelRaw = 0;
|
||||
|
||||
function escapeCodeElement(el) {
|
||||
if (el.type == "code" && levelRaw == 0) {
|
||||
el.raw = escape(el.raw);
|
||||
} else if (el.type == "tplexpr") {
|
||||
var expr = el.matches[0];
|
||||
if (expr === "raw") {
|
||||
levelRaw = levelRaw + 1;
|
||||
} else if (expr === "endraw") {
|
||||
levelRaw = 0;
|
||||
}
|
||||
}
|
||||
return el;
|
||||
}
|
||||
|
||||
var escaped = _.map(lexed, function (el) {
|
||||
// Only escape paragraphs and headings
|
||||
if (el.type == "paragraph" || el.type == "heading") {
|
||||
var line = annotate.inline(el.raw);
|
||||
|
||||
// Escape inline code blocks
|
||||
line = line.map(escapeCodeElement);
|
||||
|
||||
// Change raw source code
|
||||
el.raw = combine(line);
|
||||
|
||||
return el;
|
||||
} else {
|
||||
return escapeCodeElement(el);
|
||||
}
|
||||
});
|
||||
|
||||
return combine(escaped);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
prepare: preparePage,
|
||||
};
|
57
book/node_modules/@honkit/markdown-legacy/lib/toHTML.js
generated
vendored
Normal file
57
book/node_modules/@honkit/markdown-legacy/lib/toHTML.js
generated
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
var _ = require("lodash");
|
||||
var kramed = require("kramed");
|
||||
|
||||
/**
|
||||
Get renderer for kramed with correct configuration
|
||||
|
||||
@return {kramed.Renderer}
|
||||
*/
|
||||
function getRenderer() {
|
||||
return new kramed.Renderer({
|
||||
langPrefix: "lang-",
|
||||
smartypants: false,
|
||||
headerPrefix: "",
|
||||
headerAutoId: false,
|
||||
xhtml: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
Get options for markdown parsing
|
||||
|
||||
@return {Object}
|
||||
*/
|
||||
function getOption() {
|
||||
return _.extend({}, kramed.defaults, {
|
||||
mathjax: false,
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
Convert Markdown block to HTML
|
||||
|
||||
@param {String} src (markdown)
|
||||
@return {String} (html)
|
||||
*/
|
||||
function convertMdToHTMLBlock(src) {
|
||||
var options = _.extend(getOption(), {
|
||||
renderer: getRenderer(),
|
||||
});
|
||||
|
||||
return kramed(src, options);
|
||||
}
|
||||
|
||||
/**
|
||||
Convert Markdown inline to HTML
|
||||
|
||||
@param {String} src (markdown)
|
||||
@return {String} (html)
|
||||
*/
|
||||
function convertMdToHTMLInline(src) {
|
||||
return kramed.inlineLexer(src, getOption(), getRenderer());
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
block: convertMdToHTMLBlock,
|
||||
inline: convertMdToHTMLInline,
|
||||
};
|
49
book/node_modules/@honkit/markdown-legacy/lib/toMarkdown.js
generated
vendored
Normal file
49
book/node_modules/@honkit/markdown-legacy/lib/toMarkdown.js
generated
vendored
Normal file
@ -0,0 +1,49 @@
|
||||
// Return N time a string
|
||||
function ns(s, n) {
|
||||
return Array(n + 1).join(s);
|
||||
}
|
||||
|
||||
/*
|
||||
This module provides markup rules for gitbook-html
|
||||
These rules are being used to generate SUMMARY/GLOSSARY/LANGS
|
||||
*/
|
||||
module.exports = {
|
||||
onTitleStart: function (level) {
|
||||
return ns("#", level) + " ";
|
||||
},
|
||||
onTitleEnd: function (level) {
|
||||
return this.onBL();
|
||||
},
|
||||
|
||||
onParagraphStart: function () {
|
||||
return this.onSection();
|
||||
},
|
||||
onParagraphEnd: function () {
|
||||
return this.onSection();
|
||||
},
|
||||
|
||||
onLinkStart: function () {
|
||||
return "[";
|
||||
},
|
||||
onLinkEnd: function (href) {
|
||||
return "](" + href + ")";
|
||||
},
|
||||
|
||||
onListStart: function (level) {
|
||||
return "";
|
||||
},
|
||||
onListEnd: function () {
|
||||
return "";
|
||||
},
|
||||
|
||||
onListItemStart: function (level) {
|
||||
return ns(" ", level * 4) + "* ";
|
||||
},
|
||||
onListItemEnd: function () {
|
||||
return "";
|
||||
},
|
||||
|
||||
onHR: function () {
|
||||
return "-----";
|
||||
},
|
||||
};
|
Reference in New Issue
Block a user