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.h1 = exports.h1Renderer = void 0;
const rendering_1 = require("../rendering");
const header_1 = require("./header");
/**
* The renderer for h1 entries.
*
* @param entry The h1 entry.
* @param options Document-level render options.
* @returns Block-level h1 markdown content.
*/
const h1Renderer = (entry, options) => {
if ('h1' in entry) {
let useUnderlining = entry.underline ?? options.useH1Underlining;
let header1IndicatorPrefix = useUnderlining ? '' : '# ';
let headerText = `${header1IndicatorPrefix}${(0, rendering_1.getMarkdownString)(entry.h1, 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 h1 entry. Unable to render.');
};
exports.h1Renderer = h1Renderer;
/**
* Helper which creates a first-level header entry.
*
* @param options Entry-level options for this element.
* @returns a first-level header entry
*/
function h1(content, options) {
return {
h1: content,
...options,
};
}
exports.h1 = h1;