This commit is contained in:
2025-05-12 05:38:44 +09:00
parent dced21c3f8
commit 6d78bfa46e
8120 changed files with 1161564 additions and 0 deletions

10
book/node_modules/@honkit/markdown-legacy/lib/index.js generated vendored Normal file
View 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
View 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,
};

View 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,
};

View 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 "-----";
},
};