@purestack/ts-common 1.1.24 → 1.1.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ts-common.d.mts +13 -8
- package/dist/ts-common.d.mts.map +1 -1
- package/dist/ts-common.mjs +63 -11
- package/dist/ts-common.mjs.map +1 -1
- package/package.json +4 -4
package/dist/ts-common.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @purestack/ts-common v1.1.
|
|
1
|
+
/*! @purestack/ts-common v1.1.26 | (c) 2026 Ahmed Yasin Koculu | MIT License */
|
|
2
2
|
|
|
3
3
|
import { SemanticTone, ThemeOptions, ThemeOptionsInput, ThemeStylesheetLink } from "@purestack/ts-style";
|
|
4
4
|
import { DeepPartial } from "@purestack/ts-util";
|
|
@@ -450,12 +450,13 @@ interface FrontmatterLayoutOptions {
|
|
|
450
450
|
/**
|
|
451
451
|
* Enables table-of-contents rendering when the page outline contains items.
|
|
452
452
|
*
|
|
453
|
-
*
|
|
454
|
-
*
|
|
453
|
+
* `true` shows the TOC when the rendered article has headings. `always`
|
|
454
|
+
* retains the panel and runtime even without headings, for client apps
|
|
455
|
+
* that populate the article and call `window.tsSsgPageToc.refresh()`.
|
|
455
456
|
*
|
|
456
457
|
* Defaults to the site-level `pageToc.enabled` setting.
|
|
457
458
|
*/
|
|
458
|
-
showToc: boolean;
|
|
459
|
+
showToc: boolean | 'always';
|
|
459
460
|
/**
|
|
460
461
|
* Controls whether the generated page navigation menu is rendered.
|
|
461
462
|
*
|
|
@@ -598,7 +599,6 @@ interface PageContext {
|
|
|
598
599
|
site: SiteConfig;
|
|
599
600
|
pageInfo: PageInfo;
|
|
600
601
|
navigation?: TsSsgNavigation;
|
|
601
|
-
outline?: PageOutlineItem[];
|
|
602
602
|
theme?: ThemeOptions;
|
|
603
603
|
basePath: string;
|
|
604
604
|
locale?: string;
|
|
@@ -612,7 +612,7 @@ interface PageContext {
|
|
|
612
612
|
}
|
|
613
613
|
//#endregion
|
|
614
614
|
//#region packages/ts-common/src/isTocEnabled.d.ts
|
|
615
|
-
export declare function isTocEnabled(frontmatter: PageFrontmatter, outline: PageOutlineItem[]
|
|
615
|
+
export declare function isTocEnabled(frontmatter: PageFrontmatter, outline: PageOutlineItem[]): boolean;
|
|
616
616
|
//#endregion
|
|
617
617
|
//#region packages/ts-common/src/page-template-types.d.ts
|
|
618
618
|
interface PageInfo {
|
|
@@ -641,7 +641,6 @@ interface PageTemplateInput extends PageHeadConfigInput {
|
|
|
641
641
|
styleLinks?: ThemeStylesheetLink[];
|
|
642
642
|
templateName: string;
|
|
643
643
|
navigation?: PageNavigation;
|
|
644
|
-
outline?: PageOutlineItem[];
|
|
645
644
|
headerHtml?: string;
|
|
646
645
|
footerHtml?: string;
|
|
647
646
|
}
|
|
@@ -650,6 +649,12 @@ type PageTemplateMap = Record<string, PageTemplate>;
|
|
|
650
649
|
/** Composes head markup before the page template receives it. */
|
|
651
650
|
type PageHeadTemplate = (input: PageTemplateInput) => TSNode<'head'> | Promise<TSNode<'head'>>;
|
|
652
651
|
//#endregion
|
|
652
|
+
//#region packages/ts-common/src/pageOutline.d.ts
|
|
653
|
+
/** Custom templates can mark their article with data-page-content. */
|
|
654
|
+
export declare function resolvePageContent(document: Document): Element;
|
|
655
|
+
/** One DOM query reserves page IDs; only headings in the article become entries. */
|
|
656
|
+
export declare function collectPageOutline(content: Element): PageOutlineItem[];
|
|
657
|
+
//#endregion
|
|
653
658
|
//#region packages/ts-common/src/resolvePageContext.d.ts
|
|
654
659
|
export declare function resolvePageContext(head: unknown): PageContext;
|
|
655
660
|
export declare function tryResolvePageContext(head: unknown): PageContext | undefined;
|
|
@@ -674,7 +679,7 @@ interface PageAssetInput {
|
|
|
674
679
|
}
|
|
675
680
|
/** Each build/session owns its processors; core handles generated files and invalidation. */
|
|
676
681
|
interface SiteAssets {
|
|
677
|
-
/** A unique path segment under /
|
|
682
|
+
/** A unique path segment under /assets/. */
|
|
678
683
|
namespace: string;
|
|
679
684
|
/** Ordered within a page; different pages may run concurrently. Input methods expire when this call completes. */
|
|
680
685
|
processPage: (input: PageAssetInput) => void | Promise<void>;
|
package/dist/ts-common.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-common.d.mts","names":[],"sources":["../src/code-highlighter.ts","../src/codeLanguages.ts","../src/consent-types.ts","../src/logo-types.ts","../src/navMenu-types.ts","../src/site-config-types.ts","../src/frontmatter-types.ts","../src/ts-ssg-context.ts","../src/isTocEnabled.ts","../src/page-template-types.ts","../src/resolvePageContext.ts","../src/site-assets.ts","../src/site-search.ts","../src/site-styles.ts"],"mappings":";;;;;UACiB;EACf,aAAa,cAAc,2BAA2B;;EAEtD,qBAAqB;;;;qBCiFV;qBAQA,uBAAuB;wBAMpB,sBAAsB;;;UCnGrB;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;;EAEf;EACA;EACA;EACA;EACA;EACA,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,UAAU;;;;KCzCA;KACA;KACA;KACA;KACA;KACA;UAEK;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,OAAO;EACP,aAAa;EACb,YAAY;EACZ,gBAAgB;EAChB,QAAQ;EACR,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe,uBAAuB,YAAY;EAClD;;;;KCtEU;KACA;UAEK;EACf,OAAO;EACP;EACA;EACA;EACA,SAAS;EACT;EACA,OAAO;;EAEP;;EAEA;;UAGe;EACf;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA,OAAO;;UAGQ;EACf;EACA;;UAGe;EACf,WAAW;EACX,OAAO;;UAGQ;EACf,MAAM;EACN;EACA;EACA,OAAO;EACP,QAAQ;EACR,MAAM;EACN,YAAY;;;;;UCrCG;EACf;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN,YAAY;EACZ,SAAS;EACT,SAAS;EACT,MAAM;EACN,KAAK;;;;;EAKL;;UAGe,mBAAmB;;EAElC,YAAY;EACZ;EACA,OAAO;EACP,YAAY;EACZ,QAAQ;EACR,UAAU;EACV,OAAO;EACP,UAAU;EACV,YAAY;EACZ,WAAW;EACX,UAAU;;;UAIK;GACd;;UAGc;;EAEf;;EAEA;;UAGe;EACf;EACA,MAAM;;EAEN;;EAEA;;UAGe;EACf;EACA;EACA;;UAGe;EACf;;EAEA;;UAGe;EACf;EACA;EACA;EACA;EACA,OAAO;;UAGQ;EACf;;UAGe;EACf;EACA;EACA;EACA,QAAQ;;UAGO;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;;UAGe;EACf,KAAK;;UAGU;EACf;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;KAGU;UAEK;EACf;EACA;EACA;EACA,aAAa;EACb;EACA;;UAGe;;EAEf;EACA;EACA;;KAGU,uBAAuB,YACjC,KAAK;EAEL,QAAQ;;KAGE,kBAAkB,YAC5B,KAAK;EAEL,QAAQ;;;KAIE,kBAAkB,iBAC5B,KAAK,uBAAuB;EAC1B,YAAY,YAAY;;;UAIX,qBAAqB,UAAU;EAC9C,QAAQ;EACR,OAAO;EACP,MAAM;;KAGI,sBACV,QAAQ,yBACL,YAAY;;KAGL,uBACV,QAAQ,qBAAqB,gBAC1B,YAAY;;UAGA;EACf,UAAU;EACV,YAAY;EACZ,WAAW;;;;;;;;;;;;;UCzLI;;;;;;;EAOf;;;;;EAMA;;;;;;;EAQA,OAAO;;;;;;;EAQP,UAAU;;;;;;;;;EAUV;;;;;;EAOA;;;;EAKA;;;;;;EAOA;;;;;;;;EASA;;;;EAKA,KAAK;;;;EAKL,QAAQ;;;;EAKR,QAAQ;;;;GAKP;;;;;;;;UASc;;;;;;;;;;EAUf;;;;;;;;;EAUA
|
|
1
|
+
{"version":3,"file":"ts-common.d.mts","names":[],"sources":["../src/code-highlighter.ts","../src/codeLanguages.ts","../src/consent-types.ts","../src/logo-types.ts","../src/navMenu-types.ts","../src/site-config-types.ts","../src/frontmatter-types.ts","../src/ts-ssg-context.ts","../src/isTocEnabled.ts","../src/page-template-types.ts","../src/pageOutline.ts","../src/resolvePageContext.ts","../src/site-assets.ts","../src/site-search.ts","../src/site-styles.ts"],"mappings":";;;;;UACiB;EACf,aAAa,cAAc,2BAA2B;;EAEtD,qBAAqB;;;;qBCiFV;qBAQA,uBAAuB;wBAMpB,sBAAsB;;;UCnGrB;EACf;EACA;EACA;EACA;;UAGe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;UAGe;;EAEf;EACA;EACA;EACA;EACA;EACA,SAAS;;UAGM;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YAAY;EACZ,UAAU;;;;KCzCA;KACA;KACA;KACA;KACA;KACA;UAEK;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,OAAO;EACP,aAAa;EACb,YAAY;EACZ,gBAAgB;EAChB,QAAQ;EACR,OAAO;EACP;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;UAIe,uBAAuB,YAAY;EAClD;;;;KCtEU;KACA;UAEK;EACf,OAAO;EACP;EACA;EACA;EACA,SAAS;EACT;EACA,OAAO;;EAEP;;EAEA;;UAGe;EACf;EACA;EACA;EACA,WAAW;EACX;EACA;EACA;EACA;EACA,OAAO;;UAGQ;EACf;EACA;;UAGe;EACf,WAAW;EACX,OAAO;;UAGQ;EACf,MAAM;EACN;EACA;EACA,OAAO;EACP,QAAQ;EACR,MAAM;EACN,YAAY;;;;;UCrCG;EACf;EACA;EACA;EACA;EACA;EACA;EACA,MAAM;EACN,YAAY;EACZ,SAAS;EACT,SAAS;EACT,MAAM;EACN,KAAK;;;;;EAKL;;UAGe,mBAAmB;;EAElC,YAAY;EACZ;EACA,OAAO;EACP,YAAY;EACZ,QAAQ;EACR,UAAU;EACV,OAAO;EACP,UAAU;EACV,YAAY;EACZ,WAAW;EACX,UAAU;;;UAIK;GACd;;UAGc;;EAEf;;EAEA;;UAGe;EACf;EACA,MAAM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"}
|
package/dist/ts-common.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! @purestack/ts-common v1.1.
|
|
1
|
+
/*! @purestack/ts-common v1.1.26 | (c) 2026 Ahmed Yasin Koculu | MIT License */
|
|
2
2
|
|
|
3
3
|
//#region packages/ts-common/src/codeLanguages.ts
|
|
4
4
|
const codeLanguages = {
|
|
@@ -235,18 +235,70 @@ function normalizeCodeLanguage(value) {
|
|
|
235
235
|
}
|
|
236
236
|
|
|
237
237
|
//#endregion
|
|
238
|
-
//#region packages/ts-common/src/
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
//#region packages/ts-common/src/pageOutline.ts
|
|
239
|
+
/** Custom templates can mark their article with data-page-content. */
|
|
240
|
+
function resolvePageContent(document) {
|
|
241
|
+
return document.querySelector("[data-page-content]") ?? document.querySelector(".doc-main .doc-content") ?? document.querySelector("main") ?? document.body;
|
|
242
|
+
}
|
|
243
|
+
function slugifyHeading(title) {
|
|
244
|
+
return title.toLowerCase().replace(/['"`]/g, "").replace(/[^a-z0-9]+/g, "-").replace(/^-|-$/g, "") || "section";
|
|
245
|
+
}
|
|
246
|
+
/** One DOM query reserves page IDs; only headings in the article become entries. */
|
|
247
|
+
function collectPageOutline(content) {
|
|
248
|
+
const documentRoot = content.ownerDocument?.documentElement;
|
|
249
|
+
const root = documentRoot?.contains(content) ? documentRoot : content;
|
|
250
|
+
const elements = root.querySelectorAll("h1, h2, h3, [id]");
|
|
251
|
+
const ids = /* @__PURE__ */ new Set();
|
|
252
|
+
if (root.id) ids.add(root.id);
|
|
253
|
+
for (const element of elements) if (element.id) ids.add(element.id);
|
|
254
|
+
const outline = [];
|
|
255
|
+
const ancestors = [];
|
|
256
|
+
const counts = /* @__PURE__ */ new Map();
|
|
257
|
+
for (const element of elements) {
|
|
258
|
+
const tag = element.tagName.toLowerCase();
|
|
259
|
+
if (tag !== "h1" && tag !== "h2" && tag !== "h3") continue;
|
|
260
|
+
if (!content.contains(element)) continue;
|
|
261
|
+
if (element.closest("[data-toc-ignore], .page-toc, pre, template, dialog")) continue;
|
|
262
|
+
const title = element.textContent?.trim() ?? "";
|
|
263
|
+
if (!title) continue;
|
|
264
|
+
if (!element.id) {
|
|
265
|
+
const base = slugifyHeading(title);
|
|
266
|
+
let count = counts.get(base) ?? 1;
|
|
267
|
+
let id = count === 1 ? base : `${base}-${count}`;
|
|
268
|
+
while (ids.has(id)) {
|
|
269
|
+
count += 1;
|
|
270
|
+
id = `${base}-${count}`;
|
|
271
|
+
}
|
|
272
|
+
counts.set(base, count + 1);
|
|
273
|
+
ids.add(id);
|
|
274
|
+
element.id = id;
|
|
275
|
+
}
|
|
276
|
+
const depth = Number(tag[1]);
|
|
277
|
+
const item = {
|
|
278
|
+
id: element.id,
|
|
279
|
+
title,
|
|
280
|
+
depth
|
|
281
|
+
};
|
|
282
|
+
while (ancestors.length && (ancestors.at(-1)?.depth ?? 0) >= depth) ancestors.pop();
|
|
283
|
+
const parent = ancestors.at(-1);
|
|
284
|
+
if (parent) {
|
|
285
|
+
parent.children ??= [];
|
|
286
|
+
parent.children.push(item);
|
|
287
|
+
} else outline.push(item);
|
|
288
|
+
ancestors.push(item);
|
|
289
|
+
}
|
|
290
|
+
return outline;
|
|
241
291
|
}
|
|
242
|
-
function
|
|
292
|
+
function visiblePageOutline(outline) {
|
|
243
293
|
const [item] = outline;
|
|
244
|
-
|
|
245
|
-
if (outline.length !== 1 || !isDocumentHeading(item)) return true;
|
|
246
|
-
return (item.children?.length ?? 0) > 0;
|
|
294
|
+
return outline.length === 1 && item?.depth === 1 ? item.children ?? [] : outline;
|
|
247
295
|
}
|
|
248
|
-
|
|
249
|
-
|
|
296
|
+
|
|
297
|
+
//#endregion
|
|
298
|
+
//#region packages/ts-common/src/isTocEnabled.ts
|
|
299
|
+
function isTocEnabled(frontmatter, outline) {
|
|
300
|
+
const { showToc } = frontmatter.layout;
|
|
301
|
+
return showToc === "always" || showToc && visiblePageOutline(outline).length > 0;
|
|
250
302
|
}
|
|
251
303
|
|
|
252
304
|
//#endregion
|
|
@@ -274,5 +326,5 @@ function tryResolvePageContext(head) {
|
|
|
274
326
|
}
|
|
275
327
|
|
|
276
328
|
//#endregion
|
|
277
|
-
export { DEFAULT_CODE_LANGUAGES, LANGUAGE_BY_EXTENSION, isTocEnabled, normalizeCodeLanguage, resolvePageContext, tryResolvePageContext };
|
|
329
|
+
export { DEFAULT_CODE_LANGUAGES, LANGUAGE_BY_EXTENSION, collectPageOutline, isTocEnabled, normalizeCodeLanguage, resolvePageContent, resolvePageContext, tryResolvePageContext };
|
|
278
330
|
//# sourceMappingURL=ts-common.mjs.map
|
package/dist/ts-common.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ts-common.mjs","names":[],"sources":["../src/codeLanguages.ts","../src/isTocEnabled.ts","../src/resolvePageContext.ts"],"sourcesContent":["interface CodeLanguage {\n aliases?: string[]\n extensions?: string[]\n}\n\n// Use Shiki names (including its aliases) as the common language identifiers.\nconst codeLanguages: Record<string, CodeLanguage> = {\n bash: {\n aliases: ['sh', 'shell', 'shellscript', 'zsh'],\n extensions: ['.sh', '.bash', '.zsh'],\n },\n bat: { aliases: ['batch', 'cmd', 'dos'], extensions: ['.bat', '.cmd'] },\n c: { extensions: ['.c', '.h'] },\n cmake: { extensions: ['.cmake'] },\n cpp: {\n aliases: ['c++', 'cc', 'cxx', 'h++', 'hpp', 'hxx'],\n extensions: ['.cc', '.cpp', '.cxx', '.hh', '.hpp', '.hxx'],\n },\n csharp: { aliases: ['c#', 'cs'], extensions: ['.cs', '.csx'] },\n css: { extensions: ['.css'] },\n dart: { extensions: ['.dart'] },\n diff: { aliases: ['patch'], extensions: ['.diff', '.patch'] },\n dockerfile: { aliases: ['docker'], extensions: ['.dockerfile'] },\n elixir: { aliases: ['ex', 'exs'], extensions: ['.ex', '.exs'] },\n erlang: { aliases: ['erl'], extensions: ['.erl', '.hrl'] },\n fsharp: { aliases: ['f#', 'fs'], extensions: ['.fs', '.fsi', '.fsx'] },\n go: { aliases: ['golang'], extensions: ['.go'] },\n graphql: { aliases: ['gql'], extensions: ['.graphql', '.gql'] },\n groovy: { extensions: ['.groovy', '.gradle'] },\n html: { aliases: ['htm'], extensions: ['.html', '.htm'] },\n http: { aliases: ['https'], extensions: ['.http', '.rest'] },\n ini: { aliases: ['properties'], extensions: ['.ini', '.cfg', '.properties'] },\n java: { extensions: ['.java'] },\n javascript: {\n aliases: ['js', 'cjs', 'mjs'],\n extensions: ['.js', '.cjs', '.mjs'],\n },\n json: { extensions: ['.json'] },\n jsonc: { extensions: ['.jsonc'] },\n jsx: { extensions: ['.jsx'] },\n kotlin: { aliases: ['kt', 'kts'], extensions: ['.kt', '.kts'] },\n less: { extensions: ['.less'] },\n lua: { extensions: ['.lua'] },\n makefile: { aliases: ['make', 'mk'], extensions: ['.mk', '.mak'] },\n markdown: {\n aliases: ['md', 'mkd', 'mdown'],\n extensions: ['.md', '.markdown', '.mkd', '.mdown'],\n },\n mdx: { aliases: ['rmdx'], extensions: ['.mdx', '.rmdx'] },\n 'objective-c': { aliases: ['objc', 'objectivec'], extensions: ['.m'] },\n perl: { aliases: ['pl', 'pm'], extensions: ['.pl', '.pm'] },\n php: { extensions: ['.php', '.phtml'] },\n powershell: {\n aliases: ['ps', 'ps1', 'pwsh'],\n extensions: ['.ps1', '.psm1', '.psd1'],\n },\n python: {\n aliases: ['py', 'py3', 'python3'],\n extensions: ['.py', '.pyw', '.pyi'],\n },\n r: { extensions: ['.r'] },\n ruby: {\n aliases: ['rb', 'gemspec'],\n extensions: ['.rb', '.rake', '.gemspec'],\n },\n rust: { aliases: ['rs'], extensions: ['.rs'] },\n scala: { extensions: ['.scala', '.sc'] },\n scss: { extensions: ['.scss'] },\n sql: { extensions: ['.sql'] },\n swift: { extensions: ['.swift'] },\n text: { aliases: ['txt', 'plaintext'], extensions: ['.txt', '.text'] },\n toml: { extensions: ['.toml'] },\n 'ts-tags': { aliases: ['lit'] },\n tsx: { extensions: ['.tsx'] },\n typescript: {\n aliases: ['ts', 'cts', 'mts'],\n extensions: ['.ts', '.cts', '.mts'],\n },\n xml: {\n aliases: ['svg', 'xhtml'],\n extensions: ['.xml', '.svg', '.xhtml', '.xsd', '.xsl', '.xslt'],\n },\n yaml: { aliases: ['yml'], extensions: ['.yaml', '.yml'] },\n}\n\nexport const DEFAULT_CODE_LANGUAGES = Object.keys(codeLanguages)\n\nconst languageAliases = new Map(\n Object.entries(codeLanguages).flatMap(([language, { aliases = [] }]) =>\n aliases.map((alias) => [alias, language] as const),\n ),\n)\n\nexport const LANGUAGE_BY_EXTENSION: Record<string, string> = Object.fromEntries(\n Object.entries(codeLanguages).flatMap(([language, { extensions = [] }]) =>\n extensions.map((extension) => [extension, language]),\n ),\n)\n\nexport function normalizeCodeLanguage(value: string): string {\n const normalized = value.trim().toLowerCase()\n return languageAliases.get(normalized) ?? normalized\n}\n","import type { PageFrontmatter } from './frontmatter-types'\nimport type { PageOutlineItem } from './ts-ssg-context'\n\nexport function isTocEnabled(\n frontmatter: PageFrontmatter,\n outline: PageOutlineItem[] | undefined,\n) {\n return frontmatter.layout.showToc && hasVisibleTocItems(outline ?? [])\n}\n\nfunction hasVisibleTocItems(outline: PageOutlineItem[]) {\n const [item] = outline\n if (!item) return false\n if (outline.length !== 1 || !isDocumentHeading(item)) return true\n return (item.children?.length ?? 0) > 0\n}\n\nfunction isDocumentHeading(item: PageOutlineItem) {\n return item.depth === 1\n}\n","import type { PageContext } from './ts-ssg-context'\n\ntype ContextCarrier = {\n pageContext?: PageContext\n}\n\ntype HeadLike = {\n ctx?: unknown[]\n}\n\nfunction hasPageContext(value: unknown): value is ContextCarrier {\n return typeof value === 'object' && value !== null && 'pageContext' in value\n}\n\nfunction hasContextStack(value: unknown): value is HeadLike {\n return typeof value === 'object' && value !== null && 'ctx' in value\n}\n\nexport function resolvePageContext(head: unknown): PageContext {\n const stack = hasContextStack(head) && Array.isArray(head.ctx) ? head.ctx : []\n for (const ctx of stack) {\n if (!hasPageContext(ctx)) continue\n if (ctx.pageContext) return ctx.pageContext\n }\n throw new Error('pageContext is not available in the Regor context stack.')\n}\n\nexport function tryResolvePageContext(head: unknown): PageContext | undefined {\n const stack = hasContextStack(head) && Array.isArray(head.ctx) ? head.ctx : []\n for (const ctx of stack) {\n if (!hasPageContext(ctx)) continue\n if (ctx.pageContext) return ctx.pageContext\n }\n return undefined\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ts-common.mjs","names":[],"sources":["../src/codeLanguages.ts","../src/pageOutline.ts","../src/isTocEnabled.ts","../src/resolvePageContext.ts"],"sourcesContent":["interface CodeLanguage {\n aliases?: string[]\n extensions?: string[]\n}\n\n// Use Shiki names (including its aliases) as the common language identifiers.\nconst codeLanguages: Record<string, CodeLanguage> = {\n bash: {\n aliases: ['sh', 'shell', 'shellscript', 'zsh'],\n extensions: ['.sh', '.bash', '.zsh'],\n },\n bat: { aliases: ['batch', 'cmd', 'dos'], extensions: ['.bat', '.cmd'] },\n c: { extensions: ['.c', '.h'] },\n cmake: { extensions: ['.cmake'] },\n cpp: {\n aliases: ['c++', 'cc', 'cxx', 'h++', 'hpp', 'hxx'],\n extensions: ['.cc', '.cpp', '.cxx', '.hh', '.hpp', '.hxx'],\n },\n csharp: { aliases: ['c#', 'cs'], extensions: ['.cs', '.csx'] },\n css: { extensions: ['.css'] },\n dart: { extensions: ['.dart'] },\n diff: { aliases: ['patch'], extensions: ['.diff', '.patch'] },\n dockerfile: { aliases: ['docker'], extensions: ['.dockerfile'] },\n elixir: { aliases: ['ex', 'exs'], extensions: ['.ex', '.exs'] },\n erlang: { aliases: ['erl'], extensions: ['.erl', '.hrl'] },\n fsharp: { aliases: ['f#', 'fs'], extensions: ['.fs', '.fsi', '.fsx'] },\n go: { aliases: ['golang'], extensions: ['.go'] },\n graphql: { aliases: ['gql'], extensions: ['.graphql', '.gql'] },\n groovy: { extensions: ['.groovy', '.gradle'] },\n html: { aliases: ['htm'], extensions: ['.html', '.htm'] },\n http: { aliases: ['https'], extensions: ['.http', '.rest'] },\n ini: { aliases: ['properties'], extensions: ['.ini', '.cfg', '.properties'] },\n java: { extensions: ['.java'] },\n javascript: {\n aliases: ['js', 'cjs', 'mjs'],\n extensions: ['.js', '.cjs', '.mjs'],\n },\n json: { extensions: ['.json'] },\n jsonc: { extensions: ['.jsonc'] },\n jsx: { extensions: ['.jsx'] },\n kotlin: { aliases: ['kt', 'kts'], extensions: ['.kt', '.kts'] },\n less: { extensions: ['.less'] },\n lua: { extensions: ['.lua'] },\n makefile: { aliases: ['make', 'mk'], extensions: ['.mk', '.mak'] },\n markdown: {\n aliases: ['md', 'mkd', 'mdown'],\n extensions: ['.md', '.markdown', '.mkd', '.mdown'],\n },\n mdx: { aliases: ['rmdx'], extensions: ['.mdx', '.rmdx'] },\n 'objective-c': { aliases: ['objc', 'objectivec'], extensions: ['.m'] },\n perl: { aliases: ['pl', 'pm'], extensions: ['.pl', '.pm'] },\n php: { extensions: ['.php', '.phtml'] },\n powershell: {\n aliases: ['ps', 'ps1', 'pwsh'],\n extensions: ['.ps1', '.psm1', '.psd1'],\n },\n python: {\n aliases: ['py', 'py3', 'python3'],\n extensions: ['.py', '.pyw', '.pyi'],\n },\n r: { extensions: ['.r'] },\n ruby: {\n aliases: ['rb', 'gemspec'],\n extensions: ['.rb', '.rake', '.gemspec'],\n },\n rust: { aliases: ['rs'], extensions: ['.rs'] },\n scala: { extensions: ['.scala', '.sc'] },\n scss: { extensions: ['.scss'] },\n sql: { extensions: ['.sql'] },\n swift: { extensions: ['.swift'] },\n text: { aliases: ['txt', 'plaintext'], extensions: ['.txt', '.text'] },\n toml: { extensions: ['.toml'] },\n 'ts-tags': { aliases: ['lit'] },\n tsx: { extensions: ['.tsx'] },\n typescript: {\n aliases: ['ts', 'cts', 'mts'],\n extensions: ['.ts', '.cts', '.mts'],\n },\n xml: {\n aliases: ['svg', 'xhtml'],\n extensions: ['.xml', '.svg', '.xhtml', '.xsd', '.xsl', '.xslt'],\n },\n yaml: { aliases: ['yml'], extensions: ['.yaml', '.yml'] },\n}\n\nexport const DEFAULT_CODE_LANGUAGES = Object.keys(codeLanguages)\n\nconst languageAliases = new Map(\n Object.entries(codeLanguages).flatMap(([language, { aliases = [] }]) =>\n aliases.map((alias) => [alias, language] as const),\n ),\n)\n\nexport const LANGUAGE_BY_EXTENSION: Record<string, string> = Object.fromEntries(\n Object.entries(codeLanguages).flatMap(([language, { extensions = [] }]) =>\n extensions.map((extension) => [extension, language]),\n ),\n)\n\nexport function normalizeCodeLanguage(value: string): string {\n const normalized = value.trim().toLowerCase()\n return languageAliases.get(normalized) ?? normalized\n}\n","import type { PageOutlineItem } from './ts-ssg-context'\n\n/** Custom templates can mark their article with data-page-content. */\nexport function resolvePageContent(document: Document) {\n return (\n document.querySelector('[data-page-content]') ??\n document.querySelector('.doc-main .doc-content') ??\n document.querySelector('main') ??\n document.body\n )\n}\n\nfunction slugifyHeading(title: string) {\n return (\n title\n .toLowerCase()\n .replace(/['\"`]/g, '')\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '') || 'section'\n )\n}\n\n/** One DOM query reserves page IDs; only headings in the article become entries. */\nexport function collectPageOutline(content: Element): PageOutlineItem[] {\n const documentRoot = content.ownerDocument?.documentElement\n const root = documentRoot?.contains(content) ? documentRoot : content\n const elements = root.querySelectorAll<HTMLElement>('h1, h2, h3, [id]')\n const ids = new Set<string>()\n if (root.id) ids.add(root.id)\n for (const element of elements) {\n if (element.id) ids.add(element.id)\n }\n const outline: PageOutlineItem[] = []\n const ancestors: PageOutlineItem[] = []\n const counts = new Map<string, number>()\n for (const element of elements) {\n const tag = element.tagName.toLowerCase()\n if (tag !== 'h1' && tag !== 'h2' && tag !== 'h3') continue\n if (!content.contains(element)) continue\n if (element.closest('[data-toc-ignore], .page-toc, pre, template, dialog'))\n continue\n const title = element.textContent?.trim() ?? ''\n if (!title) continue\n if (!element.id) {\n const base = slugifyHeading(title)\n let count = counts.get(base) ?? 1\n let id = count === 1 ? base : `${base}-${count}`\n while (ids.has(id)) {\n count += 1\n id = `${base}-${count}`\n }\n counts.set(base, count + 1)\n ids.add(id)\n element.id = id\n }\n const depth = Number(tag[1])\n const item: PageOutlineItem = { id: element.id, title, depth }\n while (ancestors.length && (ancestors.at(-1)?.depth ?? 0) >= depth) {\n ancestors.pop()\n }\n const parent = ancestors.at(-1)\n if (parent) {\n parent.children ??= []\n parent.children.push(item)\n } else outline.push(item)\n ancestors.push(item)\n }\n return outline\n}\n\nexport function visiblePageOutline(outline: PageOutlineItem[]) {\n const [item] = outline\n return outline.length === 1 && item?.depth === 1\n ? (item.children ?? [])\n : outline\n}\n","import type { PageFrontmatter } from './frontmatter-types'\nimport { visiblePageOutline } from './pageOutline'\nimport type { PageOutlineItem } from './ts-ssg-context'\n\nexport function isTocEnabled(\n frontmatter: PageFrontmatter,\n outline: PageOutlineItem[],\n) {\n const { showToc } = frontmatter.layout\n return (\n showToc === 'always' || (showToc && visiblePageOutline(outline).length > 0)\n )\n}\n","import type { PageContext } from './ts-ssg-context'\n\ntype ContextCarrier = {\n pageContext?: PageContext\n}\n\ntype HeadLike = {\n ctx?: unknown[]\n}\n\nfunction hasPageContext(value: unknown): value is ContextCarrier {\n return typeof value === 'object' && value !== null && 'pageContext' in value\n}\n\nfunction hasContextStack(value: unknown): value is HeadLike {\n return typeof value === 'object' && value !== null && 'ctx' in value\n}\n\nexport function resolvePageContext(head: unknown): PageContext {\n const stack = hasContextStack(head) && Array.isArray(head.ctx) ? head.ctx : []\n for (const ctx of stack) {\n if (!hasPageContext(ctx)) continue\n if (ctx.pageContext) return ctx.pageContext\n }\n throw new Error('pageContext is not available in the Regor context stack.')\n}\n\nexport function tryResolvePageContext(head: unknown): PageContext | undefined {\n const stack = hasContextStack(head) && Array.isArray(head.ctx) ? head.ctx : []\n for (const ctx of stack) {\n if (!hasPageContext(ctx)) continue\n if (ctx.pageContext) return ctx.pageContext\n }\n return undefined\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purestack/ts-common",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.26",
|
|
4
4
|
"packageManager": "yarn@4.9.2",
|
|
5
5
|
"module": "./dist/ts-common.mjs",
|
|
6
6
|
"types": "./dist/ts-common.d.mts",
|
|
@@ -25,9 +25,9 @@
|
|
|
25
25
|
}
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@purestack/ts-html": "^1.1.
|
|
29
|
-
"@purestack/ts-style": "^1.1.
|
|
30
|
-
"@purestack/ts-util": "^1.1.
|
|
28
|
+
"@purestack/ts-html": "^1.1.26",
|
|
29
|
+
"@purestack/ts-style": "^1.1.26",
|
|
30
|
+
"@purestack/ts-util": "^1.1.26"
|
|
31
31
|
},
|
|
32
32
|
"license": "MIT",
|
|
33
33
|
"files": [
|