UNPKG

ts-markdown

Version:

An extensible TypeScript markdown generator that takes JSON and creates a markdown document.

40 lines (39 loc) 1.27 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.code = exports.codeRenderer = void 0; /** * The renderer for code entries. * * @param entry The code entry. * @param options Document-level render options. * @returns Code markdown content. */ const codeRenderer = (entry, options) => { if ('code' in entry) { let backtickTally = 0; entry.code.split('').reduce((prev, curr) => { let tally = curr === '`' ? prev + 1 : 0; backtickTally = Math.max(backtickTally, tally); return tally; }, 0); let codeStartPadding = entry.code.startsWith('`') ? ' ' : ''; let codeEndPadding = entry.code.endsWith('`') ? ' ' : ''; let codeIndicator = ''.padEnd(backtickTally + 1, '`'); return `${codeIndicator}${codeStartPadding}${entry.code}${codeEndPadding}${codeIndicator}`; } throw new Error('Entry is not a code entry. Unable to render.'); }; exports.codeRenderer = codeRenderer; /** * Helper which creates a code segment entry. * * @param options Entry-level options for this element. * @returns a code segment entry */ function code(content, options) { return { code: content, ...options, }; } exports.code = code;