typedoc-plugin-sphinx
Version:
A plugin for TypeDoc that enables TypeScript API documentation to be generated in Sphinx's reStructuredText.
38 lines (37 loc) • 1.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const Handlebars = require("handlebars");
const utils_1 = require("../../utils");
function default_1(theme) {
Handlebars.registerHelper('breadcrumbs', function () {
const { entryPoints, entryDocument, project, readme } = theme;
if (!project) {
return '';
}
const hasReadmeFile = !readme.endsWith('none');
const breadcrumbs = [];
const globalsName = entryPoints.length > 1 ? 'Modules' : 'Exports';
breadcrumbs.push(this.url === entryDocument
? project.name
: `\`${project.name} <${Handlebars.helpers.relativeURL(entryDocument)}>\`_`);
if (hasReadmeFile) {
breadcrumbs.push(this.url === project.url
? globalsName
: `\`${globalsName} <${Handlebars.helpers.relativeURL('index.rst')}>\`_`);
}
const breadcrumbsOut = breadcrumb(this, this.model, breadcrumbs);
return breadcrumbsOut;
});
}
exports.default = default_1;
function breadcrumb(page, model, md) {
if (model && model.parent) {
breadcrumb(page, model.parent, md);
if (model.url) {
md.push(page.url === model.url
? `${(0, utils_1.escapeChars)(model.name)}`
: `\`${(0, utils_1.escapeChars)(model.name)} <${Handlebars.helpers.relativeURL(model.url)}>\`_`);
}
}
return md.join(' / ');
}