rehype-mdx-toc 1.0.0 → 1.1.0
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/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -5
- package/dist/src/index.js.map +1 -1
- package/dist/test/index.js +3 -3
- package/dist/test/index.js.map +1 -1
- package/package.json +8 -7
- package/src/index.ts +7 -7
package/dist/src/index.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAKjC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAEnC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAEjD;;;;;;GAMG;AACH,MAAM,MAAM,mBAAmB,GAAG;IAChC;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;;;;OAKG;IACH,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;GAUG;AACH,MAAM,MAAM,OAAO,GAAG;IACpB,KAAK,EAAE,YAAY,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAY,EACZ,GAAG,OAAO,EACX,GAAE,mBAAwB,IAEjB,MAAM,IAAI,EAAE,MAAM,KAAK,UA8ChC"}
|
package/dist/src/index.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
import { define } from "unist-util-mdx-define";
|
2
|
-
import { headingRank } from "hast-util-heading-rank";
|
3
|
-
import { toString } from "hast-util-to-string";
|
4
1
|
import { valueToEstree } from "estree-util-value-to-estree";
|
2
|
+
import { headingRank } from "hast-util-heading-rank";
|
3
|
+
import { toString as getNodeValue } from "hast-util-to-string";
|
4
|
+
import { define } from "unist-util-mdx-define";
|
5
5
|
import { CONTINUE, visit } from "unist-util-visit";
|
6
6
|
/**
|
7
7
|
* Rehype plugin to generate a table of contents (TOC) for MDX files.
|
@@ -22,7 +22,7 @@ export default function rehypeMdxToc({ name = "toc", ...options } = {}) {
|
|
22
22
|
// Each index corresponds to a heading level: [h1, h2, h3, h4, h5, h6].
|
23
23
|
const currentNumbering = [0, 0, 0, 0, 0, 0];
|
24
24
|
// Visit every HTML element in the tree.
|
25
|
-
visit(tree, "element",
|
25
|
+
visit(tree, "element", (node) => {
|
26
26
|
// Check if this element is a heading (<h1>–<h6>).
|
27
27
|
const rank = headingRank(node);
|
28
28
|
// If the rank is undefined, skip this node.
|
@@ -42,7 +42,7 @@ export default function rehypeMdxToc({ name = "toc", ...options } = {}) {
|
|
42
42
|
// Add this heading to the TOC array.
|
43
43
|
toc.push({
|
44
44
|
depth,
|
45
|
-
value:
|
45
|
+
value: getNodeValue(node),
|
46
46
|
numbering: [...currentNumbering],
|
47
47
|
id: node.properties?.id,
|
48
48
|
href: node.properties?.id ? `#${node.properties.id}` : undefined,
|
package/dist/src/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAsEnD;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,UAAU,YAAY,CAAC,EACnC,IAAI,GAAG,KAAK,EACZ,GAAG,OAAO,KACa,EAAE;IACzB,qDAAqD;IACrD,OAAO,CAAC,IAAU,EAAE,IAAW,EAAE,EAAE;QACjC,mDAAmD;QACnD,MAAM,GAAG,GAAc,EAAE,CAAC;QAE1B,6CAA6C;QAC7C,uEAAuE;QACvE,MAAM,gBAAgB,GAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtD,wCAAwC;QACxC,KAAK,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YAC9B,kDAAkD;YAClD,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;YAE/B,4CAA4C;YAC5C,IAAI,IAAI,KAAK,SAAS;gBAAE,OAAO,QAAQ,CAAC;YAExC,0DAA0D;YAC1D,MAAM,KAAK,GAAG,IAAoB,CAAC;YACnC,IAAI,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC;gBAAE,OAAO,QAAQ,CAAC;YAExD,gDAAgD;YAChD,gBAAgB,CAAC,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;YAEjC,mCAAmC;YACnC,8DAA8D;YAC9D,KAAK,IAAI,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrD,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;YAED,qCAAqC;YACrC,GAAG,CAAC,IAAI,CAAC;gBACP,KAAK;gBACL,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC;gBACzB,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC;gBAChC,EAAE,EAAE,IAAI,CAAC,UAAU,EAAE,EAAwB;gBAC7C,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS;aACjE,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,0DAA0D;QAC1D,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;QAEhD,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE;YACjB,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC;SAC5B,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
|
package/dist/test/index.js
CHANGED
@@ -1,9 +1,9 @@
|
|
1
|
-
import { describe, it } from "node:test";
|
2
1
|
import assert from "node:assert/strict";
|
2
|
+
import { describe, it } from "node:test";
|
3
3
|
import { compile, run } from "@mdx-js/mdx";
|
4
|
+
import * as runtime from "react/jsx-runtime";
|
4
5
|
import rehypeMdxToc, {} from "rehype-mdx-toc";
|
5
6
|
import rehypeSlug from "rehype-slug";
|
6
|
-
import * as runtime from "react/jsx-runtime";
|
7
7
|
const source = `
|
8
8
|
# The Main Heading
|
9
9
|
|
@@ -188,7 +188,7 @@ describe("rehype-mdx-toc", () => {
|
|
188
188
|
rehypePlugins: [[rehypeMdxToc, { default: "No headings in this MDX" }]],
|
189
189
|
});
|
190
190
|
const result = await run(compiled, { ...runtime });
|
191
|
-
assert.ok(
|
191
|
+
assert.ok(result.toc === "No headings in this MDX", "should export toc with custom default value without headings");
|
192
192
|
});
|
193
193
|
it("should skip headings based on skipDepth option", async () => {
|
194
194
|
const mdx = `
|
package/dist/test/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../test/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"name": "rehype-mdx-toc",
|
3
3
|
"type": "module",
|
4
|
-
"version": "1.
|
4
|
+
"version": "1.1.0",
|
5
5
|
"description": "A rehype plugin to create the table of contents and convert it into MDX exports",
|
6
6
|
"keywords": [
|
7
7
|
"toc",
|
@@ -40,24 +40,25 @@
|
|
40
40
|
"scripts": {
|
41
41
|
"build": "tsc --build",
|
42
42
|
"pretest": "npm run build",
|
43
|
-
"test": "node --test",
|
43
|
+
"test": "npx @biomejs/biome check ./src ./test && node --test",
|
44
44
|
"test-coverage": "c8 --100 node --test && c8 report --reporter=html --reporter=lcov"
|
45
45
|
},
|
46
46
|
"dependencies": {
|
47
|
-
"estree-util-value-to-estree": "^3.
|
47
|
+
"estree-util-value-to-estree": "^3.0.0",
|
48
48
|
"hast-util-heading-rank": "^3.0.0",
|
49
|
-
"hast-util-to-string": "^3.0.
|
50
|
-
"unist-util-mdx-define": "^1.
|
49
|
+
"hast-util-to-string": "^3.0.0",
|
50
|
+
"unist-util-mdx-define": "^1.0.0",
|
51
51
|
"unist-util-visit": "^5.0.0"
|
52
52
|
},
|
53
53
|
"devDependencies": {
|
54
|
+
"@biomejs/biome": "2.0.6",
|
54
55
|
"@mdx-js/mdx": "^3.1.0",
|
55
56
|
"@types/hast": "^3.0.4",
|
56
57
|
"@types/node": "^22.16.0",
|
57
|
-
"@types/react": "^
|
58
|
+
"@types/react": "^18.3.23",
|
58
59
|
"@types/vfile": "^3.0.2",
|
59
60
|
"c8": "^10.1.3",
|
60
|
-
"react": "^
|
61
|
+
"react": "^18.3.1",
|
61
62
|
"rehype-slug": "^6.0.0",
|
62
63
|
"typescript": "^5.8.3"
|
63
64
|
},
|
package/src/index.ts
CHANGED
@@ -1,10 +1,10 @@
|
|
1
|
+
import { valueToEstree } from "estree-util-value-to-estree";
|
1
2
|
import type { Root } from "hast";
|
2
|
-
import type { VFile } from "vfile";
|
3
|
-
import { define } from "unist-util-mdx-define";
|
4
3
|
import { headingRank } from "hast-util-heading-rank";
|
5
|
-
import { toString } from "hast-util-to-string";
|
6
|
-
import {
|
4
|
+
import { toString as getNodeValue } from "hast-util-to-string";
|
5
|
+
import { define } from "unist-util-mdx-define";
|
7
6
|
import { CONTINUE, visit } from "unist-util-visit";
|
7
|
+
import type { VFile } from "vfile";
|
8
8
|
|
9
9
|
/**
|
10
10
|
* Type representing the depth of headings in a table of contents.
|
@@ -97,7 +97,7 @@ export default function rehypeMdxToc({
|
|
97
97
|
const currentNumbering: number[] = [0, 0, 0, 0, 0, 0];
|
98
98
|
|
99
99
|
// Visit every HTML element in the tree.
|
100
|
-
visit(tree, "element",
|
100
|
+
visit(tree, "element", (node) => {
|
101
101
|
// Check if this element is a heading (<h1>–<h6>).
|
102
102
|
const rank = headingRank(node);
|
103
103
|
|
@@ -120,7 +120,7 @@ export default function rehypeMdxToc({
|
|
120
120
|
// Add this heading to the TOC array.
|
121
121
|
toc.push({
|
122
122
|
depth,
|
123
|
-
value:
|
123
|
+
value: getNodeValue(node),
|
124
124
|
numbering: [...currentNumbering],
|
125
125
|
id: node.properties?.id as string | undefined,
|
126
126
|
href: node.properties?.id ? `#${node.properties.id}` : undefined,
|
@@ -129,7 +129,7 @@ export default function rehypeMdxToc({
|
|
129
129
|
|
130
130
|
// Attach the TOC as an exported variable in the MDX file.
|
131
131
|
const data = toc.length ? toc : options.default;
|
132
|
-
|
132
|
+
|
133
133
|
define(tree, file, {
|
134
134
|
[name]: valueToEstree(data),
|
135
135
|
});
|