@mdit-vue/plugin-toc 0.8.0 → 0.9.2

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/index.cjs CHANGED
@@ -18,7 +18,9 @@ const createRenderHeaders = ({
18
18
  const linkTagString = shared.htmlEscape(linkTag);
19
19
  const linkClassString = linkClass ? ` class="${shared.htmlEscape(linkClass)}"` : "";
20
20
  const linkTo = (slug) => linkTag === "router-link" ? ` to="#${slug}"` : ` href="#${slug}"`;
21
- const renderHeaders = (headers) => `<${listTagString}${listClassString}>${headers.map((header) => `<${itemTagString}${itemClassString}${itemClassString}><${linkTagString}${linkClassString}${linkTo(header.slug)}>${header.title}</${linkTagString}>${header.children.length > 0 ? renderHeaders(header.children) : ""}</${itemTagString}>`).join("")}</${listTagString}>`;
21
+ const renderHeaders = (headers) => `<${listTagString}${listClassString}>${headers.map(
22
+ (header) => `<${itemTagString}${itemClassString}${itemClassString}><${linkTagString}${linkClassString}${linkTo(header.slug)}>${header.title}</${linkTagString}>${header.children.length > 0 ? renderHeaders(header.children) : ""}</${itemTagString}>`
23
+ ).join("")}</${listTagString}>`;
22
24
  return renderHeaders;
23
25
  };
24
26
 
@@ -69,24 +71,18 @@ const tocPlugin = (md, {
69
71
  linkTag = "a",
70
72
  linkClass = ""
71
73
  } = {}) => {
72
- let headers;
73
- md.core.ruler.push("resolveTocHeaders", (state) => {
74
- headers = shared.resolveHeadersFromTokens(state.tokens, {
75
- level,
76
- shouldAllowHtml: true,
77
- shouldEscapeText: true,
78
- slugify,
79
- format
80
- });
81
- return true;
82
- });
83
- md.block.ruler.before("heading", "toc", createTocBlockRule({
84
- pattern,
85
- containerTag,
86
- containerClass
87
- }), {
88
- alt: ["paragraph", "reference", "blockquote"]
89
- });
74
+ md.block.ruler.before(
75
+ "heading",
76
+ "toc",
77
+ createTocBlockRule({
78
+ pattern,
79
+ containerTag,
80
+ containerClass
81
+ }),
82
+ {
83
+ alt: ["paragraph", "reference", "blockquote"]
84
+ }
85
+ );
90
86
  const renderHeaders = createRenderHeaders({
91
87
  listTag,
92
88
  listClass,
@@ -94,12 +90,15 @@ const tocPlugin = (md, {
94
90
  linkTag,
95
91
  linkClass
96
92
  });
97
- md.renderer.rules.toc_body = () => {
98
- if (!headers) {
99
- return "";
100
- }
101
- return renderHeaders(headers);
102
- };
93
+ md.renderer.rules.toc_body = (tokens) => renderHeaders(
94
+ shared.resolveHeadersFromTokens(tokens, {
95
+ level,
96
+ shouldAllowHtml: true,
97
+ shouldEscapeText: true,
98
+ slugify,
99
+ format
100
+ })
101
+ );
103
102
  };
104
103
 
105
104
  exports.createRenderHeaders = createRenderHeaders;
package/dist/index.mjs CHANGED
@@ -14,7 +14,9 @@ const createRenderHeaders = ({
14
14
  const linkTagString = htmlEscape(linkTag);
15
15
  const linkClassString = linkClass ? ` class="${htmlEscape(linkClass)}"` : "";
16
16
  const linkTo = (slug) => linkTag === "router-link" ? ` to="#${slug}"` : ` href="#${slug}"`;
17
- const renderHeaders = (headers) => `<${listTagString}${listClassString}>${headers.map((header) => `<${itemTagString}${itemClassString}${itemClassString}><${linkTagString}${linkClassString}${linkTo(header.slug)}>${header.title}</${linkTagString}>${header.children.length > 0 ? renderHeaders(header.children) : ""}</${itemTagString}>`).join("")}</${listTagString}>`;
17
+ const renderHeaders = (headers) => `<${listTagString}${listClassString}>${headers.map(
18
+ (header) => `<${itemTagString}${itemClassString}${itemClassString}><${linkTagString}${linkClassString}${linkTo(header.slug)}>${header.title}</${linkTagString}>${header.children.length > 0 ? renderHeaders(header.children) : ""}</${itemTagString}>`
19
+ ).join("")}</${listTagString}>`;
18
20
  return renderHeaders;
19
21
  };
20
22
 
@@ -65,24 +67,18 @@ const tocPlugin = (md, {
65
67
  linkTag = "a",
66
68
  linkClass = ""
67
69
  } = {}) => {
68
- let headers;
69
- md.core.ruler.push("resolveTocHeaders", (state) => {
70
- headers = resolveHeadersFromTokens(state.tokens, {
71
- level,
72
- shouldAllowHtml: true,
73
- shouldEscapeText: true,
74
- slugify: slugify$1,
75
- format
76
- });
77
- return true;
78
- });
79
- md.block.ruler.before("heading", "toc", createTocBlockRule({
80
- pattern,
81
- containerTag,
82
- containerClass
83
- }), {
84
- alt: ["paragraph", "reference", "blockquote"]
85
- });
70
+ md.block.ruler.before(
71
+ "heading",
72
+ "toc",
73
+ createTocBlockRule({
74
+ pattern,
75
+ containerTag,
76
+ containerClass
77
+ }),
78
+ {
79
+ alt: ["paragraph", "reference", "blockquote"]
80
+ }
81
+ );
86
82
  const renderHeaders = createRenderHeaders({
87
83
  listTag,
88
84
  listClass,
@@ -90,12 +86,15 @@ const tocPlugin = (md, {
90
86
  linkTag,
91
87
  linkClass
92
88
  });
93
- md.renderer.rules.toc_body = () => {
94
- if (!headers) {
95
- return "";
96
- }
97
- return renderHeaders(headers);
98
- };
89
+ md.renderer.rules.toc_body = (tokens) => renderHeaders(
90
+ resolveHeadersFromTokens(tokens, {
91
+ level,
92
+ shouldAllowHtml: true,
93
+ shouldEscapeText: true,
94
+ slugify: slugify$1,
95
+ format
96
+ })
97
+ );
99
98
  };
100
99
 
101
100
  export { createRenderHeaders, createTocBlockRule, tocPlugin };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mdit-vue/plugin-toc",
3
- "version": "0.8.0",
3
+ "version": "0.9.2",
4
4
  "description": "A markdown-it plugin to generate table-of-contents that compatible with Vue.js",
5
5
  "keywords": [
6
6
  "markdown-it",
@@ -38,19 +38,16 @@
38
38
  "test": "vitest"
39
39
  },
40
40
  "dependencies": {
41
- "@mdit-vue/shared": "0.8.0",
42
- "@mdit-vue/types": "0.8.0",
41
+ "@mdit-vue/shared": "0.9.2",
42
+ "@mdit-vue/types": "0.9.2",
43
43
  "@types/markdown-it": "^12.2.3",
44
44
  "markdown-it": "^13.0.1"
45
45
  },
46
46
  "devDependencies": {
47
- "c8": "^7.12.0",
48
- "markdown-it-anchor": "^8.6.4",
49
- "unbuild": "^0.7.6",
50
- "vitest": "^0.18.1"
47
+ "markdown-it-anchor": "^8.6.4"
51
48
  },
52
49
  "publishConfig": {
53
50
  "access": "public"
54
51
  },
55
- "gitHead": "7fd357a18b8bcc347cf17e2e78da3b3ed4242e58"
52
+ "gitHead": "11b8e8654846fc959d219dbe89f93c62a4b8f109"
56
53
  }