UNPKG

hackmd-to-html-cli

Version:

A node.js CLI tool for converting HackMD markdown to HTML.

99 lines 3.96 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.Converter = void 0; const yamlMetadata_1 = require("./markdown/yamlMetadata"); const container_1 = require("./markdown/container"); const checkbox_1 = require("./markdown/checkbox"); const external_1 = require("./markdown/external"); const blockquotex_1 = require("./markdown/blockquotex"); const fencex_1 = require("./markdown/fencex"); const markdown_it_1 = __importDefault(require("markdown-it")); const markdown_it_sub_1 = __importDefault(require("markdown-it-sub")); const markdown_it_sup_1 = __importDefault(require("markdown-it-sup")); const markdown_it_footnote_1 = __importDefault(require("markdown-it-footnote")); const markdown_it_deflist_1 = __importDefault(require("markdown-it-deflist")); const markdown_it_abbr_1 = __importDefault(require("markdown-it-abbr")); const markdown_it_emoji_1 = __importDefault(require("markdown-it-emoji")); const markdown_it_ins_1 = __importDefault(require("markdown-it-ins")); const markdown_it_mark_1 = __importDefault(require("markdown-it-mark")); const markdown_it_imsize_1 = __importDefault(require("markdown-it-imsize")); const markdown_it_mathjax3_1 = __importDefault(require("markdown-it-mathjax3")); const markdown_it_table_of_contents_1 = __importDefault(require("markdown-it-table-of-contents")); const markdown_it_anchor_1 = __importDefault(require("markdown-it-anchor")); const markdown_it_ruby_1 = __importDefault(require("markdown-it-ruby")); class Converter { constructor(options = { html: true, breaks: true, linkify: true, typographer: true }) { // https://hackmd.io/c/codimd-documentation/%2F%40codimd%2Fmarkdown-syntax this.md = new markdown_it_1.default(options) .use(markdown_it_mathjax3_1.default) .use(markdown_it_sub_1.default) .use(markdown_it_sup_1.default) .use(markdown_it_footnote_1.default) .use(markdown_it_deflist_1.default) .use(markdown_it_abbr_1.default) .use(markdown_it_mark_1.default) .use(markdown_it_emoji_1.default.full) .use(markdown_it_ins_1.default) .use(markdown_it_imsize_1.default) .use(markdown_it_table_of_contents_1.default, { markerPattern: /^\[toc\]/im, includeLevel: [1, 2, 3, 4] }) .use(yamlMetadata_1.MarkdownItYAMLMetadata, (metadata) => { this.metadata = metadata; }) .use(markdown_it_anchor_1.default) .use(markdown_it_ruby_1.default) .use(container_1.MarkdownItContainer) .use(checkbox_1.MarkdownItCheckbox) .use(external_1.MarkdownItExternal) .use(blockquotex_1.MarkdownItBlockquoteX) .use(fencex_1.MarkdownItFenceX); } /** * @param markdown markdown text * * @returns ConvertedResult contains `main` and `metadata` * * ``` * ConvertedResult { * main: string; // generated html text * metadata: Metadata; // parsed metadata * } * * Metadata { * title: string; * description: string; * lang: string; * robots: string; * dir: string; * image: string; * } * ``` */ render(markdown) { var _a; const main = this.md.render(markdown); return { main: main, metadata: (_a = this.metadata) !== null && _a !== void 0 ? _a : { title: '', description: '', lang: '', robots: '', dir: '', image: '' } }; } } exports.Converter = Converter; //# sourceMappingURL=converter.js.map