nuartz 0.1.0 → 0.1.1
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/__tests__/backlinks.test.d.ts +2 -0
- package/dist/__tests__/backlinks.test.d.ts.map +1 -0
- package/dist/__tests__/backlinks.test.js +132 -0
- package/dist/__tests__/backlinks.test.js.map +1 -0
- package/dist/__tests__/fs.test.d.ts +2 -0
- package/dist/__tests__/fs.test.d.ts.map +1 -0
- package/dist/__tests__/fs.test.js +153 -0
- package/dist/__tests__/fs.test.js.map +1 -0
- package/dist/__tests__/markdown.test.d.ts +2 -0
- package/dist/__tests__/markdown.test.d.ts.map +1 -0
- package/dist/__tests__/markdown.test.js +102 -0
- package/dist/__tests__/markdown.test.js.map +1 -0
- package/dist/__tests__/search.test.d.ts +2 -0
- package/dist/__tests__/search.test.d.ts.map +1 -0
- package/dist/__tests__/search.test.js +147 -0
- package/dist/__tests__/search.test.js.map +1 -0
- package/dist/backlinks.d.ts +25 -0
- package/dist/backlinks.d.ts.map +1 -0
- package/dist/backlinks.js +37 -0
- package/dist/backlinks.js.map +1 -0
- package/dist/config.d.ts +46 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/fs.d.ts +27 -0
- package/dist/fs.d.ts.map +1 -0
- package/dist/fs.js +113 -0
- package/dist/fs.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/markdown.d.ts +3 -0
- package/dist/markdown.d.ts.map +1 -0
- package/dist/markdown.js +119 -0
- package/dist/markdown.js.map +1 -0
- package/dist/plugins/arrows.d.ts +4 -0
- package/dist/plugins/arrows.d.ts.map +1 -0
- package/dist/plugins/arrows.js +16 -0
- package/dist/plugins/arrows.js.map +1 -0
- package/dist/plugins/callout.d.ts +4 -0
- package/dist/plugins/callout.d.ts.map +1 -0
- package/dist/plugins/callout.js +75 -0
- package/dist/plugins/callout.js.map +1 -0
- package/dist/plugins/callout.test.d.ts +2 -0
- package/dist/plugins/callout.test.d.ts.map +1 -0
- package/dist/plugins/callout.test.js +75 -0
- package/dist/plugins/callout.test.js.map +1 -0
- package/dist/plugins/comment.d.ts +4 -0
- package/dist/plugins/comment.d.ts.map +1 -0
- package/dist/plugins/comment.js +36 -0
- package/dist/plugins/comment.js.map +1 -0
- package/dist/plugins/comment.test.d.ts +2 -0
- package/dist/plugins/comment.test.d.ts.map +1 -0
- package/dist/plugins/comment.test.js +55 -0
- package/dist/plugins/comment.test.js.map +1 -0
- package/dist/plugins/highlight.d.ts +4 -0
- package/dist/plugins/highlight.d.ts.map +1 -0
- package/dist/plugins/highlight.js +33 -0
- package/dist/plugins/highlight.js.map +1 -0
- package/dist/plugins/highlight.test.d.ts +2 -0
- package/dist/plugins/highlight.test.d.ts.map +1 -0
- package/dist/plugins/highlight.test.js +51 -0
- package/dist/plugins/highlight.test.js.map +1 -0
- package/dist/plugins/tag.d.ts +11 -0
- package/dist/plugins/tag.d.ts.map +1 -0
- package/dist/plugins/tag.js +47 -0
- package/dist/plugins/tag.js.map +1 -0
- package/dist/plugins/tag.test.d.ts +2 -0
- package/dist/plugins/tag.test.d.ts.map +1 -0
- package/dist/plugins/tag.test.js +75 -0
- package/dist/plugins/tag.test.js.map +1 -0
- package/dist/plugins/wikilink.d.ts +12 -0
- package/dist/plugins/wikilink.d.ts.map +1 -0
- package/dist/plugins/wikilink.js +85 -0
- package/dist/plugins/wikilink.js.map +1 -0
- package/dist/plugins/wikilink.test.d.ts +2 -0
- package/dist/plugins/wikilink.test.d.ts.map +1 -0
- package/dist/plugins/wikilink.test.js +99 -0
- package/dist/plugins/wikilink.test.js.map +1 -0
- package/dist/search.d.ts +14 -0
- package/dist/search.d.ts.map +1 -0
- package/dist/search.js +35 -0
- package/dist/search.js.map +1 -0
- package/dist/types.d.ts +33 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +3 -0
- package/dist/types.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const vitest_1 = require("vitest");
|
|
7
|
+
const unified_1 = require("unified");
|
|
8
|
+
const remark_parse_1 = __importDefault(require("remark-parse"));
|
|
9
|
+
const remark_rehype_1 = __importDefault(require("remark-rehype"));
|
|
10
|
+
const rehype_stringify_1 = __importDefault(require("rehype-stringify"));
|
|
11
|
+
const wikilink_js_1 = require("./wikilink.js");
|
|
12
|
+
async function process(md, options) {
|
|
13
|
+
const result = await (0, unified_1.unified)()
|
|
14
|
+
.use(remark_parse_1.default)
|
|
15
|
+
.use(wikilink_js_1.remarkWikilink, options)
|
|
16
|
+
.use(remark_rehype_1.default)
|
|
17
|
+
.use(rehype_stringify_1.default)
|
|
18
|
+
.process(md);
|
|
19
|
+
return String(result);
|
|
20
|
+
}
|
|
21
|
+
async function processWithData(md, options) {
|
|
22
|
+
const file = await (0, unified_1.unified)()
|
|
23
|
+
.use(remark_parse_1.default)
|
|
24
|
+
.use(wikilink_js_1.remarkWikilink, options)
|
|
25
|
+
.use(remark_rehype_1.default)
|
|
26
|
+
.use(rehype_stringify_1.default)
|
|
27
|
+
.process(md);
|
|
28
|
+
return { html: String(file), links: file.data.links ?? [] };
|
|
29
|
+
}
|
|
30
|
+
(0, vitest_1.describe)("remarkWikilink", () => {
|
|
31
|
+
(0, vitest_1.it)("transforms [[Page Name]] into a wikilink", async () => {
|
|
32
|
+
const html = await process("Visit [[Page Name]] for details");
|
|
33
|
+
(0, vitest_1.expect)(html).toContain('href="/page-name"');
|
|
34
|
+
(0, vitest_1.expect)(html).toContain('class="wikilink"');
|
|
35
|
+
(0, vitest_1.expect)(html).toContain("Page Name");
|
|
36
|
+
});
|
|
37
|
+
(0, vitest_1.it)("handles alias [[Page|Alias]]", async () => {
|
|
38
|
+
const html = await process("See [[Page|Custom Display]]");
|
|
39
|
+
(0, vitest_1.expect)(html).toContain('href="/page"');
|
|
40
|
+
(0, vitest_1.expect)(html).toContain("Custom Display");
|
|
41
|
+
});
|
|
42
|
+
(0, vitest_1.it)("handles heading [[Page#Heading]]", async () => {
|
|
43
|
+
const html = await process("Go to [[Page#My Section]]");
|
|
44
|
+
(0, vitest_1.expect)(html).toContain('href="/page#my-section"');
|
|
45
|
+
(0, vitest_1.expect)(html).toContain("Page > My Section");
|
|
46
|
+
});
|
|
47
|
+
(0, vitest_1.it)("handles heading with alias [[Page#Heading|Alias]]", async () => {
|
|
48
|
+
const html = await process("See [[Page#Section|Link Text]]");
|
|
49
|
+
(0, vitest_1.expect)(html).toContain('href="/page#section"');
|
|
50
|
+
(0, vitest_1.expect)(html).toContain("Link Text");
|
|
51
|
+
});
|
|
52
|
+
(0, vitest_1.it)("transforms ![[image.png]] into an embed image", async () => {
|
|
53
|
+
const html = await process("Here: ![[image.png]]");
|
|
54
|
+
(0, vitest_1.expect)(html).toContain("<img");
|
|
55
|
+
(0, vitest_1.expect)(html).toContain('src="/api/content/image.png"');
|
|
56
|
+
(0, vitest_1.expect)(html).toContain('class="embed-image"');
|
|
57
|
+
});
|
|
58
|
+
(0, vitest_1.it)("converts spaces to hyphens in href", async () => {
|
|
59
|
+
const html = await process("[[My Long Page Name]]");
|
|
60
|
+
(0, vitest_1.expect)(html).toContain('href="/my-long-page-name"');
|
|
61
|
+
});
|
|
62
|
+
(0, vitest_1.it)("accumulates links in file.data.links", async () => {
|
|
63
|
+
const { links } = await processWithData("[[Page A]] and [[Page B]]");
|
|
64
|
+
(0, vitest_1.expect)(links).toContain("Page A");
|
|
65
|
+
(0, vitest_1.expect)(links).toContain("Page B");
|
|
66
|
+
});
|
|
67
|
+
(0, vitest_1.it)("deduplicates collected links", async () => {
|
|
68
|
+
const { links } = await processWithData("[[Same]] and [[Same]]");
|
|
69
|
+
(0, vitest_1.expect)(links).toEqual(["Same"]);
|
|
70
|
+
});
|
|
71
|
+
(0, vitest_1.it)("does not add embeds to outgoing links", async () => {
|
|
72
|
+
const { links } = await processWithData("![[image.png]]");
|
|
73
|
+
(0, vitest_1.expect)(links).toEqual([]);
|
|
74
|
+
});
|
|
75
|
+
(0, vitest_1.it)("supports custom resolve function", async () => {
|
|
76
|
+
const html = await process("[[My Page]]", {
|
|
77
|
+
resolve: (target) => `/custom/${target.toLowerCase().replace(/\s+/g, "_")}`,
|
|
78
|
+
});
|
|
79
|
+
(0, vitest_1.expect)(html).toContain('href="/custom/my_page"');
|
|
80
|
+
});
|
|
81
|
+
(0, vitest_1.it)("supports custom baseUrl", async () => {
|
|
82
|
+
const html = await process("[[Page]]", { baseUrl: "/wiki/" });
|
|
83
|
+
(0, vitest_1.expect)(html).toContain('href="/wiki/page"');
|
|
84
|
+
});
|
|
85
|
+
(0, vitest_1.it)("sets data-target attribute", async () => {
|
|
86
|
+
const html = await process("[[My Page]]");
|
|
87
|
+
(0, vitest_1.expect)(html).toContain('data-target="My Page"');
|
|
88
|
+
});
|
|
89
|
+
(0, vitest_1.it)("sets data-heading attribute when heading present", async () => {
|
|
90
|
+
const html = await process("[[Page#Section]]");
|
|
91
|
+
(0, vitest_1.expect)(html).toContain('data-heading="Section"');
|
|
92
|
+
});
|
|
93
|
+
(0, vitest_1.it)("preserves surrounding text", async () => {
|
|
94
|
+
const html = await process("before [[Link]] after");
|
|
95
|
+
(0, vitest_1.expect)(html).toContain("before ");
|
|
96
|
+
(0, vitest_1.expect)(html).toContain(" after");
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
//# sourceMappingURL=wikilink.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wikilink.test.js","sourceRoot":"","sources":["../../src/plugins/wikilink.test.ts"],"names":[],"mappings":"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"}
|
package/dist/search.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { MarkdownFile } from "./fs.js";
|
|
2
|
+
export interface SearchEntry {
|
|
3
|
+
slug: string;
|
|
4
|
+
title: string;
|
|
5
|
+
content: string;
|
|
6
|
+
tags: string[];
|
|
7
|
+
description?: string;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Builds a flat search index from a list of MarkdownFile entries.
|
|
11
|
+
* Strip HTML and frontmatter for plain-text indexing.
|
|
12
|
+
*/
|
|
13
|
+
export declare function buildSearchIndex(files: MarkdownFile[]): SearchEntry[];
|
|
14
|
+
//# sourceMappingURL=search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAE3C,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,MAAM,CAAA;IACb,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG,WAAW,EAAE,CA2BrE"}
|
package/dist/search.js
ADDED
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildSearchIndex = buildSearchIndex;
|
|
4
|
+
/**
|
|
5
|
+
* Builds a flat search index from a list of MarkdownFile entries.
|
|
6
|
+
* Strip HTML and frontmatter for plain-text indexing.
|
|
7
|
+
*/
|
|
8
|
+
function buildSearchIndex(files) {
|
|
9
|
+
return files
|
|
10
|
+
.filter((f) => !f.frontmatter.draft)
|
|
11
|
+
.map((file) => {
|
|
12
|
+
// Strip frontmatter block
|
|
13
|
+
const body = file.raw.replace(/^---[\s\S]*?---\n?/, "");
|
|
14
|
+
// Strip markdown syntax (rough pass)
|
|
15
|
+
const text = body
|
|
16
|
+
.replace(/```[\s\S]*?```/g, "") // code blocks
|
|
17
|
+
.replace(/`[^`]+`/g, "") // inline code
|
|
18
|
+
.replace(/!\[.*?\]\(.*?\)/g, "") // images
|
|
19
|
+
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1") // links → text
|
|
20
|
+
.replace(/\[\[([^\]|#]+)(?:[|#][^\]]*)?\]\]/g, "$1") // wikilinks → text
|
|
21
|
+
.replace(/#{1,6}\s/g, "") // headings
|
|
22
|
+
.replace(/[*_~]/g, "") // emphasis
|
|
23
|
+
.replace(/>\s/g, "") // blockquotes
|
|
24
|
+
.replace(/\s+/g, " ")
|
|
25
|
+
.trim();
|
|
26
|
+
return {
|
|
27
|
+
slug: file.slug,
|
|
28
|
+
title: file.frontmatter.title ?? file.slug.split("/").pop() ?? file.slug,
|
|
29
|
+
content: text,
|
|
30
|
+
tags: file.frontmatter.tags ?? [],
|
|
31
|
+
description: file.frontmatter.description,
|
|
32
|
+
};
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=search.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"search.js","sourceRoot":"","sources":["../src/search.ts"],"names":[],"mappings":";;AAcA,4CA2BC;AA/BD;;;GAGG;AACH,SAAgB,gBAAgB,CAAC,KAAqB;IACpD,OAAO,KAAK;SACT,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,KAAK,CAAC;SACnC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACZ,0BAA0B;QAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,oBAAoB,EAAE,EAAE,CAAC,CAAA;QACvD,qCAAqC;QACrC,MAAM,IAAI,GAAG,IAAI;aACd,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAG,cAAc;aAC/C,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAU,cAAc;aAC/C,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAE,SAAS;aAC1C,OAAO,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC,eAAe;aACvD,OAAO,CAAC,oCAAoC,EAAE,IAAI,CAAC,CAAC,mBAAmB;aACvE,OAAO,CAAC,WAAW,EAAE,EAAE,CAAC,CAAS,WAAW;aAC5C,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAY,WAAW;aAC5C,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAc,cAAc;aAC/C,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,IAAI,EAAE,CAAA;QAET,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,IAAI;YACxE,OAAO,EAAE,IAAI;YACb,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,EAAE;YACjC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW;SAC1C,CAAA;IACH,CAAC,CAAC,CAAA;AACN,CAAC"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export interface Frontmatter {
|
|
2
|
+
title?: string;
|
|
3
|
+
date?: string | Date;
|
|
4
|
+
tags?: string[];
|
|
5
|
+
description?: string;
|
|
6
|
+
draft?: boolean;
|
|
7
|
+
aliases?: string[];
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
export interface TocEntry {
|
|
11
|
+
depth: number;
|
|
12
|
+
text: string;
|
|
13
|
+
id: string;
|
|
14
|
+
children: TocEntry[];
|
|
15
|
+
}
|
|
16
|
+
export interface RenderResult {
|
|
17
|
+
html: string;
|
|
18
|
+
frontmatter: Frontmatter;
|
|
19
|
+
toc: TocEntry[];
|
|
20
|
+
links: string[];
|
|
21
|
+
tags: string[];
|
|
22
|
+
}
|
|
23
|
+
export interface RenderOptions {
|
|
24
|
+
/** Base URL for wikilinks (default: '/') */
|
|
25
|
+
baseUrl?: string;
|
|
26
|
+
/** Resolve wikilink target to URL path */
|
|
27
|
+
resolveLink?: (target: string) => string;
|
|
28
|
+
/** Known slugs for dead-link detection */
|
|
29
|
+
knownSlugs?: Set<string>;
|
|
30
|
+
/** Whether to strip draft pages (default: false) */
|
|
31
|
+
stripDrafts?: boolean;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;IACf,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,QAAQ;IACvB,KAAK,EAAE,MAAM,CAAA;IACb,IAAI,EAAE,MAAM,CAAA;IACZ,EAAE,EAAE,MAAM,CAAA;IACV,QAAQ,EAAE,QAAQ,EAAE,CAAA;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,EAAE,WAAW,CAAA;IACxB,GAAG,EAAE,QAAQ,EAAE,CAAA;IACf,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,EAAE,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAA;IACxC,0CAA0C;IAC1C,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAA;IACxB,oDAAoD;IACpD,WAAW,CAAC,EAAE,OAAO,CAAA;CACtB"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|