ts-markdown
Version:
An extensible TypeScript markdown generator that takes JSON and creates a markdown document.
42 lines (41 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.h2 = exports.h2Renderer = void 0;
const rendering_1 = require("../rendering");
const header_1 = require("./header");
/**
* The renderer for h2 entries.
*
* @param entry The h2 entry.
* @param options Document-level render options.
* @returns Block-level h2 markdown content.
*/
const h2Renderer = (entry, options) => {
if ('h2' in entry) {
let useUnderlining = entry.underline ?? options.useH2Underlining;
let header2IndicatorPrefix = useUnderlining ? '' : '## ';
let headerText = `${header2IndicatorPrefix}${(0, rendering_1.getMarkdownString)(entry.h2, options)}${(0, header_1.getOptionalHeaderIdText)(entry.id, ' ')}`;
if (useUnderlining) {
headerText += '\n' + ''.padEnd(headerText.length, '-');
}
return {
markdown: headerText,
blockLevel: true,
};
}
throw new Error('Entry is not an h2 entry. Unable to render.');
};
exports.h2Renderer = h2Renderer;
/**
* Helper which creates a second-level header entry.
*
* @param options Entry-level options for this element.
* @returns a second-level header entry
*/
function h2(content, options) {
return {
h2: content,
...options,
};
}
exports.h2 = h2;