UNPKG

@storm-stack/core

Version:

A build toolkit and runtime used by Storm Software in TypeScript applications

42 lines (39 loc) 1.54 kB
import { __name } from './chunk-IRPJW6HH.js'; import { slug } from 'github-slugger'; import path from 'node:path'; import { MarkdownTheme, MarkdownThemeRenderContext } from 'typedoc-plugin-markdown'; var externalLinkRegex = /^\w+:/; var StormStackMarkdownTheme = class extends MarkdownTheme { static { __name(this, "StormStackMarkdownTheme"); } hideInPageTOC = false; getRenderContext(pageEvent) { return new StormStackMarkdownThemeContext(pageEvent, this.application.options); } }; var StormStackMarkdownThemeContext = class StormStackMarkdownThemeContext2 extends MarkdownThemeRenderContext { static { __name(this, "StormStackMarkdownThemeContext"); } relativeURL = /* @__PURE__ */ __name((url) => { if (!url) { return null; } else if (externalLinkRegex.test(url)) { return url; } const basePath = this.options.getValue("basePath"); const basePathParsed = path.parse(basePath); const baseUrl = basePath.replace(basePathParsed.root, "/"); const filePathParsed = path.parse(url); const directory = filePathParsed.dir.split(path.sep).join("/"); const [, anchor] = filePathParsed.base.split("#"); let constructedUrl = typeof baseUrl === "string" ? baseUrl : ""; constructedUrl += "/"; constructedUrl += directory.length > 0 ? `${directory}/` : ""; constructedUrl += filePathParsed.name; constructedUrl += anchor && anchor.length > 0 ? `#${slug(anchor)}` : ""; return constructedUrl; }, "relativeURL"); }; export { StormStackMarkdownTheme };