UNPKG

typedoc-plugin-markdown

Version:

A plugin for TypeDoc that enables TypeScript API documentation to be generated in Markdown.

36 lines (35 loc) 1.38 kB
import { backTicks, strikeThrough } from '../../../libs/markdown/index.js'; import { encodeAngleBrackets, escapeChars } from '../../../libs/utils/index.js'; import { ReflectionKind } from 'typedoc'; export function memberTitle(model) { const md = []; const name = []; if (model?.kind === ReflectionKind.Class && model.flags?.isAbstract) { name.push(this.helpers.getReflectionFlags(model.flags) + ' '); } const modelName = this.options.getValue('useHTMLEncodedBrackets') ? encodeAngleBrackets(model.name) : model.name; name.push(`${/\\/.test(model.name) ? backTicks(model.name) : escapeChars(modelName)}`); if (!model.type?.declaration?.children?.length && (model.signatures?.length || model.type?.declaration?.signatures?.length)) { name.push('()'); } if (model.typeParameters?.length) { const typeParameters = model.typeParameters .map((typeParameter) => typeParameter.name) .join(', '); name.push(`${`${this.helpers.getAngleBracket('<')}${typeParameters}${this.helpers.getAngleBracket('>')}`}`); } if (model.flags?.isOptional) { name.push('?'); } if (model.isDeprecated && model.isDeprecated()) { md.push(strikeThrough(name.join(''))); } else { md.push(name.join('')); } return md.join(': '); }