nuartz 0.1.5 → 0.1.7

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.
Files changed (45) hide show
  1. package/dist/__tests__/backlinks.test.js +48 -50
  2. package/dist/__tests__/backlinks.test.js.map +1 -1
  3. package/dist/__tests__/fs.test.js +100 -105
  4. package/dist/__tests__/fs.test.js.map +1 -1
  5. package/dist/__tests__/markdown.test.js +61 -63
  6. package/dist/__tests__/markdown.test.js.map +1 -1
  7. package/dist/__tests__/search.test.js +52 -54
  8. package/dist/__tests__/search.test.js.map +1 -1
  9. package/dist/backlinks.js +2 -6
  10. package/dist/backlinks.js.map +1 -1
  11. package/dist/config.js +1 -4
  12. package/dist/config.js.map +1 -1
  13. package/dist/fs.js +16 -24
  14. package/dist/fs.js.map +1 -1
  15. package/dist/index.js +11 -28
  16. package/dist/index.js.map +1 -1
  17. package/dist/markdown.js +44 -50
  18. package/dist/markdown.js.map +1 -1
  19. package/dist/plugins/arrows.js +3 -7
  20. package/dist/plugins/arrows.js.map +1 -1
  21. package/dist/plugins/callout.js +3 -7
  22. package/dist/plugins/callout.js.map +1 -1
  23. package/dist/plugins/callout.test.js +39 -44
  24. package/dist/plugins/callout.test.js.map +1 -1
  25. package/dist/plugins/comment.js +3 -7
  26. package/dist/plugins/comment.js.map +1 -1
  27. package/dist/plugins/comment.test.js +32 -37
  28. package/dist/plugins/comment.test.js.map +1 -1
  29. package/dist/plugins/highlight.js +3 -7
  30. package/dist/plugins/highlight.js.map +1 -1
  31. package/dist/plugins/highlight.test.js +28 -33
  32. package/dist/plugins/highlight.test.js.map +1 -1
  33. package/dist/plugins/tag.js +3 -7
  34. package/dist/plugins/tag.js.map +1 -1
  35. package/dist/plugins/tag.test.js +42 -47
  36. package/dist/plugins/tag.test.js.map +1 -1
  37. package/dist/plugins/wikilink.js +3 -7
  38. package/dist/plugins/wikilink.js.map +1 -1
  39. package/dist/plugins/wikilink.test.js +54 -59
  40. package/dist/plugins/wikilink.test.js.map +1 -1
  41. package/dist/search.js +1 -4
  42. package/dist/search.js.map +1 -1
  43. package/dist/types.js +1 -2
  44. package/package.json +25 -5
  45. package/styles/prose.css +254 -0
@@ -1,62 +1,60 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const markdown_1 = require("../markdown");
5
- (0, vitest_1.describe)("renderMarkdown", () => {
6
- (0, vitest_1.it)("returns empty result for empty string", async () => {
7
- const result = await (0, markdown_1.renderMarkdown)("");
8
- (0, vitest_1.expect)(result.html).toBe("");
9
- (0, vitest_1.expect)(result.toc).toEqual([]);
10
- (0, vitest_1.expect)(result.tags).toEqual([]);
11
- (0, vitest_1.expect)(result.links).toEqual([]);
1
+ import { describe, it, expect } from "vitest";
2
+ import { renderMarkdown } from "../markdown";
3
+ describe("renderMarkdown", () => {
4
+ it("returns empty result for empty string", async () => {
5
+ const result = await renderMarkdown("");
6
+ expect(result.html).toBe("");
7
+ expect(result.toc).toEqual([]);
8
+ expect(result.tags).toEqual([]);
9
+ expect(result.links).toEqual([]);
12
10
  });
13
- (0, vitest_1.it)("extracts heading into toc", async () => {
14
- const result = await (0, markdown_1.renderMarkdown)("# Hello World");
15
- (0, vitest_1.expect)(result.toc).toHaveLength(1);
16
- (0, vitest_1.expect)(result.toc[0]).toMatchObject({
11
+ it("extracts heading into toc", async () => {
12
+ const result = await renderMarkdown("# Hello World");
13
+ expect(result.toc).toHaveLength(1);
14
+ expect(result.toc[0]).toMatchObject({
17
15
  depth: 1,
18
16
  text: "Hello World",
19
17
  });
20
- (0, vitest_1.expect)(result.toc[0].id).toBeTruthy();
18
+ expect(result.toc[0].id).toBeTruthy();
21
19
  });
22
- (0, vitest_1.it)("builds nested toc tree", async () => {
20
+ it("builds nested toc tree", async () => {
23
21
  const md = "# Top\n## Sub\n### Deep";
24
- const result = await (0, markdown_1.renderMarkdown)(md);
25
- (0, vitest_1.expect)(result.toc).toHaveLength(1);
26
- (0, vitest_1.expect)(result.toc[0].text).toBe("Top");
27
- (0, vitest_1.expect)(result.toc[0].children).toHaveLength(1);
28
- (0, vitest_1.expect)(result.toc[0].children[0].text).toBe("Sub");
29
- (0, vitest_1.expect)(result.toc[0].children[0].children).toHaveLength(1);
30
- (0, vitest_1.expect)(result.toc[0].children[0].children[0].text).toBe("Deep");
22
+ const result = await renderMarkdown(md);
23
+ expect(result.toc).toHaveLength(1);
24
+ expect(result.toc[0].text).toBe("Top");
25
+ expect(result.toc[0].children).toHaveLength(1);
26
+ expect(result.toc[0].children[0].text).toBe("Sub");
27
+ expect(result.toc[0].children[0].children).toHaveLength(1);
28
+ expect(result.toc[0].children[0].children[0].text).toBe("Deep");
31
29
  });
32
- (0, vitest_1.it)("parses frontmatter", async () => {
30
+ it("parses frontmatter", async () => {
33
31
  const md = `---
34
32
  title: My Page
35
33
  date: 2024-01-01
36
34
  ---
37
35
 
38
36
  Some content`;
39
- const result = await (0, markdown_1.renderMarkdown)(md);
40
- (0, vitest_1.expect)(result.frontmatter.title).toBe("My Page");
37
+ const result = await renderMarkdown(md);
38
+ expect(result.frontmatter.title).toBe("My Page");
41
39
  // gray-matter parses YAML dates as Date objects
42
40
  const date = result.frontmatter.date;
43
41
  const dateStr = date instanceof Date ? date.toISOString().split("T")[0] : date;
44
- (0, vitest_1.expect)(dateStr).toBe("2024-01-01");
42
+ expect(dateStr).toBe("2024-01-01");
45
43
  });
46
- (0, vitest_1.it)("extracts wikilinks into links array", async () => {
47
- const result = await (0, markdown_1.renderMarkdown)("Check [[Some Page]] for details");
48
- (0, vitest_1.expect)(result.links).toContain("Some Page");
44
+ it("extracts wikilinks into links array", async () => {
45
+ const result = await renderMarkdown("Check [[Some Page]] for details");
46
+ expect(result.links).toContain("Some Page");
49
47
  });
50
- (0, vitest_1.it)("extracts wikilink with alias", async () => {
51
- const result = await (0, markdown_1.renderMarkdown)("See [[Target|display text]]");
52
- (0, vitest_1.expect)(result.links).toContain("Target");
53
- (0, vitest_1.expect)(result.html).toContain("display text");
48
+ it("extracts wikilink with alias", async () => {
49
+ const result = await renderMarkdown("See [[Target|display text]]");
50
+ expect(result.links).toContain("Target");
51
+ expect(result.html).toContain("display text");
54
52
  });
55
- (0, vitest_1.it)("extracts inline tags", async () => {
56
- const result = await (0, markdown_1.renderMarkdown)("This has #mytag in it");
57
- (0, vitest_1.expect)(result.tags).toContain("mytag");
53
+ it("extracts inline tags", async () => {
54
+ const result = await renderMarkdown("This has #mytag in it");
55
+ expect(result.tags).toContain("mytag");
58
56
  });
59
- (0, vitest_1.it)("merges frontmatter tags with inline tags and deduplicates", async () => {
57
+ it("merges frontmatter tags with inline tags and deduplicates", async () => {
60
58
  const md = `---
61
59
  tags:
62
60
  - alpha
@@ -64,39 +62,39 @@ tags:
64
62
  ---
65
63
 
66
64
  Content with #beta and #gamma`;
67
- const result = await (0, markdown_1.renderMarkdown)(md);
68
- (0, vitest_1.expect)(result.tags).toContain("alpha");
69
- (0, vitest_1.expect)(result.tags).toContain("beta");
70
- (0, vitest_1.expect)(result.tags).toContain("gamma");
65
+ const result = await renderMarkdown(md);
66
+ expect(result.tags).toContain("alpha");
67
+ expect(result.tags).toContain("beta");
68
+ expect(result.tags).toContain("gamma");
71
69
  // beta should appear only once
72
70
  const betaCount = result.tags.filter((t) => t === "beta").length;
73
- (0, vitest_1.expect)(betaCount).toBe(1);
71
+ expect(betaCount).toBe(1);
74
72
  });
75
- (0, vitest_1.it)("renders callout with correct class", async () => {
73
+ it("renders callout with correct class", async () => {
76
74
  const md = "> [!note]\n> Some note content";
77
- const result = await (0, markdown_1.renderMarkdown)(md);
78
- (0, vitest_1.expect)(result.html).toContain("callout");
79
- (0, vitest_1.expect)(result.html).toContain("callout-note");
75
+ const result = await renderMarkdown(md);
76
+ expect(result.html).toContain("callout");
77
+ expect(result.html).toContain("callout-note");
80
78
  });
81
- (0, vitest_1.it)("renders LaTeX with KaTeX", async () => {
82
- const result = await (0, markdown_1.renderMarkdown)("Inline math: $$x^2$$");
83
- (0, vitest_1.expect)(result.html).toContain("katex");
79
+ it("renders LaTeX with KaTeX", async () => {
80
+ const result = await renderMarkdown("Inline math: $$x^2$$");
81
+ expect(result.html).toContain("katex");
84
82
  });
85
- (0, vitest_1.it)("renders display math with KaTeX", async () => {
86
- const result = await (0, markdown_1.renderMarkdown)("$$\nx^2 + y^2 = z^2\n$$");
87
- (0, vitest_1.expect)(result.html).toContain("katex");
83
+ it("renders display math with KaTeX", async () => {
84
+ const result = await renderMarkdown("$$\nx^2 + y^2 = z^2\n$$");
85
+ expect(result.html).toContain("katex");
88
86
  });
89
- (0, vitest_1.it)("generates html for basic markdown", async () => {
90
- const result = await (0, markdown_1.renderMarkdown)("Hello **world**");
91
- (0, vitest_1.expect)(result.html).toContain("<strong>world</strong>");
87
+ it("generates html for basic markdown", async () => {
88
+ const result = await renderMarkdown("Hello **world**");
89
+ expect(result.html).toContain("<strong>world</strong>");
92
90
  });
93
- (0, vitest_1.it)("does not include embed links in outgoing links", async () => {
94
- const result = await (0, markdown_1.renderMarkdown)("![[image.png]]");
95
- (0, vitest_1.expect)(result.links).not.toContain("image.png");
91
+ it("does not include embed links in outgoing links", async () => {
92
+ const result = await renderMarkdown("![[image.png]]");
93
+ expect(result.links).not.toContain("image.png");
96
94
  });
97
- (0, vitest_1.it)("adds slug ids to headings via rehype-slug", async () => {
98
- const result = await (0, markdown_1.renderMarkdown)("## My Section");
99
- (0, vitest_1.expect)(result.html).toContain('id="my-section"');
95
+ it("adds slug ids to headings via rehype-slug", async () => {
96
+ const result = await renderMarkdown("## My Section");
97
+ expect(result.html).toContain('id="my-section"');
100
98
  });
101
99
  });
102
100
  //# sourceMappingURL=markdown.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/__tests__/markdown.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../src/__tests__/markdown.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const vitest_1 = require("vitest");
4
- const search_1 = require("../search");
1
+ import { describe, it, expect } from "vitest";
2
+ import { buildSearchIndex } from "../search";
5
3
  function makeFile(overrides) {
6
4
  return {
7
5
  filePath: `/${overrides.slug}.md`,
@@ -10,8 +8,8 @@ function makeFile(overrides) {
10
8
  ...overrides,
11
9
  };
12
10
  }
13
- (0, vitest_1.describe)("buildSearchIndex", () => {
14
- (0, vitest_1.it)("returns SearchEntry[] with slug, title, content, tags", () => {
11
+ describe("buildSearchIndex", () => {
12
+ it("returns SearchEntry[] with slug, title, content, tags", () => {
15
13
  const files = [
16
14
  makeFile({
17
15
  slug: "hello",
@@ -19,14 +17,14 @@ function makeFile(overrides) {
19
17
  raw: "---\ntitle: Hello\ntags:\n - greeting\n---\nSome body text",
20
18
  }),
21
19
  ];
22
- const index = (0, search_1.buildSearchIndex)(files);
23
- (0, vitest_1.expect)(index).toHaveLength(1);
24
- (0, vitest_1.expect)(index[0].slug).toBe("hello");
25
- (0, vitest_1.expect)(index[0].title).toBe("Hello");
26
- (0, vitest_1.expect)(index[0].content).toContain("Some body text");
27
- (0, vitest_1.expect)(index[0].tags).toEqual(["greeting"]);
20
+ const index = buildSearchIndex(files);
21
+ expect(index).toHaveLength(1);
22
+ expect(index[0].slug).toBe("hello");
23
+ expect(index[0].title).toBe("Hello");
24
+ expect(index[0].content).toContain("Some body text");
25
+ expect(index[0].tags).toEqual(["greeting"]);
28
26
  });
29
- (0, vitest_1.it)("excludes draft:true files", () => {
27
+ it("excludes draft:true files", () => {
30
28
  const files = [
31
29
  makeFile({
32
30
  slug: "published",
@@ -39,62 +37,62 @@ function makeFile(overrides) {
39
37
  raw: "---\ntitle: Draft\ndraft: true\n---\nDraft content",
40
38
  }),
41
39
  ];
42
- const index = (0, search_1.buildSearchIndex)(files);
43
- (0, vitest_1.expect)(index).toHaveLength(1);
44
- (0, vitest_1.expect)(index[0].slug).toBe("published");
40
+ const index = buildSearchIndex(files);
41
+ expect(index).toHaveLength(1);
42
+ expect(index[0].slug).toBe("published");
45
43
  });
46
- (0, vitest_1.it)("strips heading markers from content", () => {
44
+ it("strips heading markers from content", () => {
47
45
  const files = [
48
46
  makeFile({
49
47
  slug: "headings",
50
48
  raw: "# Heading One\n## Heading Two\nBody",
51
49
  }),
52
50
  ];
53
- const index = (0, search_1.buildSearchIndex)(files);
54
- (0, vitest_1.expect)(index[0].content).not.toMatch(/^#/);
55
- (0, vitest_1.expect)(index[0].content).toContain("Heading One");
56
- (0, vitest_1.expect)(index[0].content).toContain("Body");
51
+ const index = buildSearchIndex(files);
52
+ expect(index[0].content).not.toMatch(/^#/);
53
+ expect(index[0].content).toContain("Heading One");
54
+ expect(index[0].content).toContain("Body");
57
55
  });
58
- (0, vitest_1.it)("strips bold and italic markers", () => {
56
+ it("strips bold and italic markers", () => {
59
57
  const files = [
60
58
  makeFile({
61
59
  slug: "emphasis",
62
60
  raw: "Some **bold** and *italic* and __also__ text",
63
61
  }),
64
62
  ];
65
- const index = (0, search_1.buildSearchIndex)(files);
66
- (0, vitest_1.expect)(index[0].content).not.toContain("**");
67
- (0, vitest_1.expect)(index[0].content).not.toContain("*");
68
- (0, vitest_1.expect)(index[0].content).not.toContain("__");
69
- (0, vitest_1.expect)(index[0].content).toContain("bold");
70
- (0, vitest_1.expect)(index[0].content).toContain("italic");
63
+ const index = buildSearchIndex(files);
64
+ expect(index[0].content).not.toContain("**");
65
+ expect(index[0].content).not.toContain("*");
66
+ expect(index[0].content).not.toContain("__");
67
+ expect(index[0].content).toContain("bold");
68
+ expect(index[0].content).toContain("italic");
71
69
  });
72
- (0, vitest_1.it)("strips inline code", () => {
70
+ it("strips inline code", () => {
73
71
  const files = [
74
72
  makeFile({
75
73
  slug: "code",
76
74
  raw: "Use `console.log` to debug",
77
75
  }),
78
76
  ];
79
- const index = (0, search_1.buildSearchIndex)(files);
80
- (0, vitest_1.expect)(index[0].content).not.toContain("`");
77
+ const index = buildSearchIndex(files);
78
+ expect(index[0].content).not.toContain("`");
81
79
  });
82
- (0, vitest_1.it)("strips wikilinks keeping display text", () => {
80
+ it("strips wikilinks keeping display text", () => {
83
81
  const files = [
84
82
  makeFile({
85
83
  slug: "links",
86
84
  raw: "See [[My Page]] and [[Other|display]]",
87
85
  }),
88
86
  ];
89
- const index = (0, search_1.buildSearchIndex)(files);
87
+ const index = buildSearchIndex(files);
90
88
  // wikilink regex captures target (first group), not alias
91
89
  // [[My Page]] → "My Page", [[Other|display]] → "Other"
92
- (0, vitest_1.expect)(index[0].content).toContain("My Page");
93
- (0, vitest_1.expect)(index[0].content).toContain("Other");
94
- (0, vitest_1.expect)(index[0].content).not.toContain("[[");
95
- (0, vitest_1.expect)(index[0].content).not.toContain("]]");
90
+ expect(index[0].content).toContain("My Page");
91
+ expect(index[0].content).toContain("Other");
92
+ expect(index[0].content).not.toContain("[[");
93
+ expect(index[0].content).not.toContain("]]");
96
94
  });
97
- (0, vitest_1.it)("uses last slug segment as title fallback", () => {
95
+ it("uses last slug segment as title fallback", () => {
98
96
  const files = [
99
97
  makeFile({
100
98
  slug: "notes/deep/my-page",
@@ -102,10 +100,10 @@ function makeFile(overrides) {
102
100
  raw: "Content without title",
103
101
  }),
104
102
  ];
105
- const index = (0, search_1.buildSearchIndex)(files);
106
- (0, vitest_1.expect)(index[0].title).toBe("my-page");
103
+ const index = buildSearchIndex(files);
104
+ expect(index[0].title).toBe("my-page");
107
105
  });
108
- (0, vitest_1.it)("includes frontmatter tags", () => {
106
+ it("includes frontmatter tags", () => {
109
107
  const files = [
110
108
  makeFile({
111
109
  slug: "tagged",
@@ -113,10 +111,10 @@ function makeFile(overrides) {
113
111
  raw: "---\ntags:\n - alpha\n - beta\n---\nContent",
114
112
  }),
115
113
  ];
116
- const index = (0, search_1.buildSearchIndex)(files);
117
- (0, vitest_1.expect)(index[0].tags).toEqual(["alpha", "beta"]);
114
+ const index = buildSearchIndex(files);
115
+ expect(index[0].tags).toEqual(["alpha", "beta"]);
118
116
  });
119
- (0, vitest_1.it)("includes description from frontmatter", () => {
117
+ it("includes description from frontmatter", () => {
120
118
  const files = [
121
119
  makeFile({
122
120
  slug: "desc",
@@ -124,24 +122,24 @@ function makeFile(overrides) {
124
122
  raw: "---\ntitle: Desc\ndescription: A short summary\n---\nBody",
125
123
  }),
126
124
  ];
127
- const index = (0, search_1.buildSearchIndex)(files);
128
- (0, vitest_1.expect)(index[0].description).toBe("A short summary");
125
+ const index = buildSearchIndex(files);
126
+ expect(index[0].description).toBe("A short summary");
129
127
  });
130
- (0, vitest_1.it)("returns empty array for empty input", () => {
131
- const index = (0, search_1.buildSearchIndex)([]);
132
- (0, vitest_1.expect)(index).toEqual([]);
128
+ it("returns empty array for empty input", () => {
129
+ const index = buildSearchIndex([]);
130
+ expect(index).toEqual([]);
133
131
  });
134
- (0, vitest_1.it)("strips code blocks from content", () => {
132
+ it("strips code blocks from content", () => {
135
133
  const files = [
136
134
  makeFile({
137
135
  slug: "codeblock",
138
136
  raw: "Before\n```js\nconsole.log('hi')\n```\nAfter",
139
137
  }),
140
138
  ];
141
- const index = (0, search_1.buildSearchIndex)(files);
142
- (0, vitest_1.expect)(index[0].content).not.toContain("console.log");
143
- (0, vitest_1.expect)(index[0].content).toContain("Before");
144
- (0, vitest_1.expect)(index[0].content).toContain("After");
139
+ const index = buildSearchIndex(files);
140
+ expect(index[0].content).not.toContain("console.log");
141
+ expect(index[0].content).toContain("Before");
142
+ expect(index[0].content).toContain("After");
145
143
  });
146
144
  });
147
145
  //# sourceMappingURL=search.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../src/__tests__/search.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.test.js","sourceRoot":"","sources":["../../src/__tests__/search.test.ts"],"names":[],"mappings":"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"}
package/dist/backlinks.js CHANGED
@@ -1,7 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.buildBacklinkIndex = buildBacklinkIndex;
4
- exports.getBacklinks = getBacklinks;
5
1
  /**
6
2
  * Builds a backlink index from a collection of rendered pages.
7
3
  *
@@ -11,7 +7,7 @@ exports.getBacklinks = getBacklinks;
11
7
  * @param pages - Map of slug → { result, raw content }
12
8
  * @returns Map of slug → pages that link to it
13
9
  */
14
- function buildBacklinkIndex(pages) {
10
+ export function buildBacklinkIndex(pages) {
15
11
  const index = new Map();
16
12
  for (const [slug, { result, raw }] of pages) {
17
13
  const title = result.frontmatter.title ?? slug;
@@ -31,7 +27,7 @@ function buildBacklinkIndex(pages) {
31
27
  /**
32
28
  * Looks up backlinks for a given slug.
33
29
  */
34
- function getBacklinks(index, slug) {
30
+ export function getBacklinks(index, slug) {
35
31
  return index.get(slug) ?? [];
36
32
  }
37
33
  //# sourceMappingURL=backlinks.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backlinks.js","sourceRoot":"","sources":["../src/backlinks.ts"],"names":[],"mappings":";;AAmBA,gDAsBC;AAKD,oCAKC;AAzCD;;;;;;;;GAQG;AACH,SAAgB,kBAAkB,CAChC,KAAyD;IAEzD,MAAM,KAAK,GAAkB,IAAI,GAAG,EAAE,CAAA;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAA;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;QAE7E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,gBAAgB,GAAG,MAAM;iBAC5B,WAAW,EAAE;iBACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACvC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,SAAgB,YAAY,CAC1B,KAAoB,EACpB,IAAY;IAEZ,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC"}
1
+ {"version":3,"file":"backlinks.js","sourceRoot":"","sources":["../src/backlinks.ts"],"names":[],"mappings":"AAUA;;;;;;;;GAQG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAAyD;IAEzD,MAAM,KAAK,GAAkB,IAAI,GAAG,EAAE,CAAA;IAEtC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,KAAK,IAAI,IAAI,CAAA;QAC9C,MAAM,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAA;QAE7E,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;YAClC,MAAM,gBAAgB,GAAG,MAAM;iBAC5B,WAAW,EAAE;iBACb,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;iBACpB,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;YAEzB,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAA;YAClD,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAA;YACvC,KAAK,CAAC,GAAG,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAA;QACvC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAC1B,KAAoB,EACpB,IAAY;IAEZ,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;AAC9B,CAAC"}
package/dist/config.js CHANGED
@@ -1,6 +1,3 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineConfig = defineConfig;
4
1
  const DEFAULT_FEATURES = {
5
2
  wikilinks: true,
6
3
  callouts: true,
@@ -10,7 +7,7 @@ const DEFAULT_FEATURES = {
10
7
  search: true,
11
8
  darkMode: true,
12
9
  };
13
- function defineConfig(config) {
10
+ export function defineConfig(config) {
14
11
  return {
15
12
  ...config,
16
13
  site: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;AAqDA,oCASC;AAnBD,MAAM,gBAAgB,GAAuC;IAC3D,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;IACf,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,SAAgB,YAAY,CAAC,MAAoB;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE;YACJ,OAAO,EAAE,uBAAuB;YAChC,GAAG,MAAM,CAAC,IAAI;SACf;QACD,QAAQ,EAAE,EAAE,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;KACtD,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AA2CA,MAAM,gBAAgB,GAAuC;IAC3D,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,SAAS,EAAE,IAAI;IACf,GAAG,EAAE,IAAI;IACT,MAAM,EAAE,IAAI;IACZ,QAAQ,EAAE,IAAI;CACf,CAAA;AAED,MAAM,UAAU,YAAY,CAAC,MAAoB;IAC/C,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE;YACJ,OAAO,EAAE,uBAAuB;YAChC,GAAG,MAAM,CAAC,IAAI;SACf;QACD,QAAQ,EAAE,EAAE,GAAG,gBAAgB,EAAE,GAAG,MAAM,CAAC,QAAQ,EAAE;KACtD,CAAA;AACH,CAAC"}
package/dist/fs.js CHANGED
@@ -1,14 +1,6 @@
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
- exports.getAllMarkdownFiles = getAllMarkdownFiles;
7
- exports.getMarkdownBySlug = getMarkdownBySlug;
8
- exports.buildFileTree = buildFileTree;
9
- const promises_1 = __importDefault(require("node:fs/promises"));
10
- const node_path_1 = __importDefault(require("node:path"));
11
- const gray_matter_1 = __importDefault(require("gray-matter"));
1
+ import fs from "node:fs/promises";
2
+ import path from "node:path";
3
+ import matter from "gray-matter";
12
4
  /** Extract date from frontmatter or filename (e.g. 2025-10-13-title.md) */
13
5
  function extractDate(file) {
14
6
  if (file.frontmatter.date) {
@@ -28,33 +20,33 @@ function extractDate(file) {
28
20
  /**
29
21
  * Recursively walks a directory and returns all .md files.
30
22
  */
31
- async function getAllMarkdownFiles(contentDir) {
23
+ export async function getAllMarkdownFiles(contentDir) {
32
24
  const results = [];
33
25
  async function walk(dir) {
34
26
  let entries;
35
27
  try {
36
- entries = await promises_1.default.readdir(dir, { withFileTypes: true });
28
+ entries = await fs.readdir(dir, { withFileTypes: true });
37
29
  }
38
30
  catch {
39
31
  return;
40
32
  }
41
33
  for (const entry of entries) {
42
- const fullPath = node_path_1.default.join(dir, entry.name);
34
+ const fullPath = path.join(dir, entry.name);
43
35
  if (entry.isDirectory()) {
44
36
  await walk(fullPath);
45
37
  }
46
38
  else if (entry.name.endsWith(".md") && !entry.name.startsWith("_")) {
47
- const raw = await promises_1.default.readFile(fullPath, "utf-8");
48
- const { data } = (0, gray_matter_1.default)(raw);
39
+ const raw = await fs.readFile(fullPath, "utf-8");
40
+ const { data } = matter(raw);
49
41
  // Skip draft or unpublished files
50
42
  if (data.draft === true || data.published === false)
51
43
  continue;
52
- const relative = node_path_1.default.relative(contentDir, fullPath);
44
+ const relative = path.relative(contentDir, fullPath);
53
45
  const slug = relative.replace(/\.md$/, "").replace(/\\/g, "/");
54
46
  // Get file modification time
55
47
  let mtime;
56
48
  try {
57
- const stat = await promises_1.default.stat(fullPath);
49
+ const stat = await fs.stat(fullPath);
58
50
  mtime = stat.mtime;
59
51
  }
60
52
  catch {
@@ -77,14 +69,14 @@ async function getAllMarkdownFiles(contentDir) {
77
69
  * Reads a single markdown file by slug.
78
70
  * Returns null if the file doesn't exist.
79
71
  */
80
- async function getMarkdownBySlug(contentDir, slug) {
81
- const filePath = node_path_1.default.join(contentDir, slug + ".md");
72
+ export async function getMarkdownBySlug(contentDir, slug) {
73
+ const filePath = path.join(contentDir, slug + ".md");
82
74
  try {
83
- const raw = await promises_1.default.readFile(filePath, "utf-8");
84
- const { data } = (0, gray_matter_1.default)(raw);
75
+ const raw = await fs.readFile(filePath, "utf-8");
76
+ const { data } = matter(raw);
85
77
  let mtime;
86
78
  try {
87
- const stat = await promises_1.default.stat(filePath);
79
+ const stat = await fs.stat(filePath);
88
80
  mtime = stat.mtime;
89
81
  }
90
82
  catch {
@@ -99,7 +91,7 @@ async function getMarkdownBySlug(contentDir, slug) {
99
91
  /**
100
92
  * Builds a nested file tree from a flat list of MarkdownFile entries.
101
93
  */
102
- function buildFileTree(files, options) {
94
+ export function buildFileTree(files, options) {
103
95
  const { sortBy = 'name' } = options ?? {};
104
96
  const root = [];
105
97
  const nodeMap = new Map();
package/dist/fs.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fs.js","sourceRoot":"","sources":["../src/fs.ts"],"names":[],"mappings":"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"}