vitepress 1.0.0-draft.1 → 1.0.0-draft.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.
Files changed (101) hide show
  1. package/dist/client/index.d.ts +5 -0
  2. package/dist/client/shared.js +1 -0
  3. package/dist/client/theme-default/Layout.vue +18 -1
  4. package/dist/client/theme-default/components/VPBackdrop.vue +1 -1
  5. package/dist/client/theme-default/components/VPBox.vue +59 -0
  6. package/dist/client/theme-default/components/VPButton.vue +123 -0
  7. package/dist/client/theme-default/components/VPContent.vue +35 -5
  8. package/dist/client/theme-default/components/{VPContentDoc.vue → VPDoc.vue} +13 -13
  9. package/dist/client/theme-default/components/{VPContentDocFooter.vue → VPDocFooter.vue} +3 -2
  10. package/dist/client/theme-default/components/{VPContentDocOutline.vue → VPDocOutline.vue} +2 -2
  11. package/dist/client/theme-default/components/VPFooter.vue +53 -0
  12. package/dist/client/theme-default/components/VPHero.vue +144 -0
  13. package/dist/client/theme-default/components/VPHome.vue +33 -0
  14. package/dist/client/theme-default/components/VPHomeFeatures.vue +96 -0
  15. package/dist/client/theme-default/components/VPHomeHero.vue +17 -0
  16. package/dist/client/theme-default/components/VPHomeSponsors.vue +97 -0
  17. package/dist/client/theme-default/components/VPNavBar.vue +1 -0
  18. package/dist/client/theme-default/components/VPNavBarAppearance.vue +4 -1
  19. package/dist/client/theme-default/components/VPNavBarExtra.vue +2 -2
  20. package/dist/client/theme-default/components/VPNavBarSearch.vue +3 -3
  21. package/dist/client/theme-default/components/VPNavBarTitle.vue +26 -13
  22. package/dist/client/theme-default/components/VPNavScreenAppearance.vue +4 -1
  23. package/dist/client/theme-default/components/VPPage.vue +5 -0
  24. package/dist/client/theme-default/components/VPSponsors.vue +77 -0
  25. package/dist/client/theme-default/components/VPSponsorsGrid.vue +32 -0
  26. package/dist/client/theme-default/components/VPSwitchAppearance.vue +3 -3
  27. package/dist/client/theme-default/components/icons/VPIconHeart.vue +5 -0
  28. package/dist/client/theme-default/composables/outline.js +1 -19
  29. package/dist/client/theme-default/composables/sponsor-grid.js +92 -0
  30. package/dist/client/theme-default/composables/sponsor.js +87 -0
  31. package/dist/client/theme-default/index.js +4 -0
  32. package/dist/client/theme-default/styles/base.css +3 -0
  33. package/dist/client/theme-default/styles/vars.css +86 -1
  34. package/dist/client/theme-default/styles/vp-doc.css +8 -2
  35. package/dist/client/theme-default/styles/vp-sponsor.css +86 -0
  36. package/dist/client/theme-default/support/utils.js +19 -0
  37. package/dist/node/alias.js +60 -0
  38. package/dist/node/alias.js.map +1 -0
  39. package/dist/node/build/build.js +57 -0
  40. package/dist/node/build/build.js.map +1 -0
  41. package/dist/node/build/buildMPAClient.js +44 -0
  42. package/dist/node/build/buildMPAClient.js.map +1 -0
  43. package/dist/node/build/bundle.js +163 -0
  44. package/dist/node/build/bundle.js.map +1 -0
  45. package/dist/node/build/render.js +185 -0
  46. package/dist/node/build/render.js.map +1 -0
  47. package/dist/node/cli.js +37 -294
  48. package/dist/node/cli.js.map +1 -0
  49. package/dist/node/config.js +176 -0
  50. package/dist/node/config.js.map +1 -0
  51. package/dist/node/index.d.ts +19 -1
  52. package/dist/node/index.js +22 -37
  53. package/dist/node/index.js.map +1 -0
  54. package/dist/node/markdown/markdown.js +75 -0
  55. package/dist/node/markdown/markdown.js.map +1 -0
  56. package/dist/node/markdown/plugins/component.js +86 -0
  57. package/dist/node/markdown/plugins/component.js.map +1 -0
  58. package/dist/node/markdown/plugins/containers.js +41 -0
  59. package/dist/node/markdown/plugins/containers.js.map +1 -0
  60. package/dist/node/markdown/plugins/headings.js +25 -0
  61. package/dist/node/markdown/plugins/headings.js.map +1 -0
  62. package/dist/node/markdown/plugins/highlight.js +53 -0
  63. package/dist/node/markdown/plugins/highlight.js.map +1 -0
  64. package/dist/node/markdown/plugins/highlightLines.js +48 -0
  65. package/dist/node/markdown/plugins/highlightLines.js.map +1 -0
  66. package/dist/node/markdown/plugins/hoist.js +22 -0
  67. package/dist/node/markdown/plugins/hoist.js.map +1 -0
  68. package/dist/node/markdown/plugins/image.js +17 -0
  69. package/dist/node/markdown/plugins/image.js.map +1 -0
  70. package/dist/node/markdown/plugins/lineNumbers.js +23 -0
  71. package/dist/node/markdown/plugins/lineNumbers.js.map +1 -0
  72. package/dist/node/markdown/plugins/link.js +85 -0
  73. package/dist/node/markdown/plugins/link.js.map +1 -0
  74. package/dist/node/markdown/plugins/preWrapper.js +22 -0
  75. package/dist/node/markdown/plugins/preWrapper.js.map +1 -0
  76. package/dist/node/markdown/plugins/slugify.js +26 -0
  77. package/dist/node/markdown/plugins/slugify.js.map +1 -0
  78. package/dist/node/markdown/plugins/snippet.js +146 -0
  79. package/dist/node/markdown/plugins/snippet.js.map +1 -0
  80. package/dist/node/markdownToVue.js +166 -0
  81. package/dist/node/markdownToVue.js.map +1 -0
  82. package/dist/node/plugin.js +227 -0
  83. package/dist/node/plugin.js.map +1 -0
  84. package/dist/node/serve/serve.js +59 -0
  85. package/dist/node/serve/serve.js.map +1 -0
  86. package/dist/node/{serve-428d4610.js → serve-b5dc02b2.js} +26 -2
  87. package/dist/node/server.js +18 -0
  88. package/dist/node/server.js.map +1 -0
  89. package/dist/node/shared.js +72 -0
  90. package/dist/node/shared.js.map +1 -0
  91. package/dist/node/staticDataPlugin.js +99 -0
  92. package/dist/node/staticDataPlugin.js.map +1 -0
  93. package/dist/node/utils/getGitTimestamp.js +17 -0
  94. package/dist/node/utils/getGitTimestamp.js.map +1 -0
  95. package/dist/node/utils/parseHeader.js +57 -0
  96. package/dist/node/utils/parseHeader.js.map +1 -0
  97. package/dist/node/utils/slash.js +8 -0
  98. package/dist/node/utils/slash.js.map +1 -0
  99. package/package.json +4 -2
  100. package/types/default-theme.d.ts +12 -0
  101. package/types/shared.d.ts +11 -6
@@ -0,0 +1,75 @@
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.createMarkdownRenderer = void 0;
7
+ const markdown_it_1 = __importDefault(require("markdown-it"));
8
+ const parseHeader_1 = require("../utils/parseHeader");
9
+ const highlight_1 = require("./plugins/highlight");
10
+ const slugify_1 = require("./plugins/slugify");
11
+ const highlightLines_1 = require("./plugins/highlightLines");
12
+ const lineNumbers_1 = require("./plugins/lineNumbers");
13
+ const component_1 = require("./plugins/component");
14
+ const containers_1 = require("./plugins/containers");
15
+ const snippet_1 = require("./plugins/snippet");
16
+ const hoist_1 = require("./plugins/hoist");
17
+ const preWrapper_1 = require("./plugins/preWrapper");
18
+ const link_1 = require("./plugins/link");
19
+ const headings_1 = require("./plugins/headings");
20
+ const image_1 = require("./plugins/image");
21
+ const markdown_it_anchor_1 = __importDefault(require("markdown-it-anchor"));
22
+ const markdown_it_attrs_1 = __importDefault(require("markdown-it-attrs"));
23
+ const markdown_it_emoji_1 = __importDefault(require("markdown-it-emoji"));
24
+ const markdown_it_table_of_contents_1 = __importDefault(require("markdown-it-table-of-contents"));
25
+ const createMarkdownRenderer = (srcDir, options = {}, base) => {
26
+ const md = (0, markdown_it_1.default)({
27
+ html: true,
28
+ linkify: true,
29
+ highlight: highlight_1.highlight,
30
+ ...options
31
+ });
32
+ // custom plugins
33
+ md.use(component_1.componentPlugin)
34
+ .use(highlightLines_1.highlightLinePlugin)
35
+ .use(preWrapper_1.preWrapperPlugin)
36
+ .use(snippet_1.snippetPlugin, srcDir)
37
+ .use(hoist_1.hoistPlugin)
38
+ .use(containers_1.containerPlugin)
39
+ .use(headings_1.headingPlugin)
40
+ .use(image_1.imagePlugin)
41
+ .use(link_1.linkPlugin, {
42
+ target: '_blank',
43
+ rel: 'noopener noreferrer',
44
+ ...options.externalLinks
45
+ }, base)
46
+ // 3rd party plugins
47
+ .use(markdown_it_attrs_1.default, options.attrs)
48
+ .use(markdown_it_anchor_1.default, {
49
+ slugify: slugify_1.slugify,
50
+ permalink: markdown_it_anchor_1.default.permalink.ariaHidden({}),
51
+ ...options.anchor
52
+ })
53
+ .use(markdown_it_table_of_contents_1.default, {
54
+ slugify: slugify_1.slugify,
55
+ includeLevel: [2, 3],
56
+ format: parseHeader_1.parseHeader,
57
+ ...options.toc
58
+ })
59
+ .use(markdown_it_emoji_1.default);
60
+ // apply user config
61
+ if (options.config) {
62
+ options.config(md);
63
+ }
64
+ if (options.lineNumbers) {
65
+ md.use(lineNumbers_1.lineNumberPlugin);
66
+ }
67
+ const originalRender = md.render;
68
+ md.render = (...args) => {
69
+ md.__data = {};
70
+ return originalRender.call(md, ...args);
71
+ };
72
+ return md;
73
+ };
74
+ exports.createMarkdownRenderer = createMarkdownRenderer;
75
+ //# sourceMappingURL=markdown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/node/markdown/markdown.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAoC;AACpC,sDAAkD;AAClD,mDAA+C;AAC/C,+CAA2C;AAC3C,6DAA8D;AAC9D,uDAAwD;AACxD,mDAAqD;AACrD,qDAAsD;AACtD,+CAAiD;AACjD,2CAA6C;AAC7C,qDAAuD;AACvD,yCAA2C;AAC3C,iDAAkD;AAClD,2CAA6C;AAE7C,4EAAuC;AACvC,0EAAqC;AACrC,0EAAqC;AACrC,kGAA+C;AAgCxC,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,UAA2B,EAAE,EAC7B,IAAY,EACM,EAAE;IACpB,MAAM,EAAE,GAAG,IAAA,qBAAU,EAAC;QACpB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,SAAS,EAAT,qBAAS;QACT,GAAG,OAAO;KACX,CAAqB,CAAA;IAEtB,iBAAiB;IACjB,EAAE,CAAC,GAAG,CAAC,2BAAe,CAAC;SACpB,GAAG,CAAC,oCAAmB,CAAC;SACxB,GAAG,CAAC,6BAAgB,CAAC;SACrB,GAAG,CAAC,uBAAa,EAAE,MAAM,CAAC;SAC1B,GAAG,CAAC,mBAAW,CAAC;SAChB,GAAG,CAAC,4BAAe,CAAC;SACpB,GAAG,CAAC,wBAAa,CAAC;SAClB,GAAG,CAAC,mBAAW,CAAC;SAChB,GAAG,CACF,iBAAU,EACV;QACE,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,qBAAqB;QAC1B,GAAG,OAAO,CAAC,aAAa;KACzB,EACD,IAAI,CACL;QACD,oBAAoB;SACnB,GAAG,CAAC,2BAAK,EAAE,OAAO,CAAC,KAAK,CAAC;SACzB,GAAG,CAAC,4BAAM,EAAE;QACX,OAAO,EAAP,iBAAO;QACP,SAAS,EAAE,4BAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,GAAG,OAAO,CAAC,MAAM;KAClB,CAAC;SACD,GAAG,CAAC,uCAAG,EAAE;QACR,OAAO,EAAP,iBAAO;QACP,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,yBAAW;QACnB,GAAG,OAAO,CAAC,GAAG;KACf,CAAC;SACD,GAAG,CAAC,2BAAK,CAAC,CAAA;IAEb,oBAAoB;IACpB,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;KACnB;IAED,IAAI,OAAO,CAAC,WAAW,EAAE;QACvB,EAAE,CAAC,GAAG,CAAC,8BAAgB,CAAC,CAAA;KACzB;IAED,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAA;IAChC,EAAE,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QACtB,EAAE,CAAC,MAAM,GAAG,EAAE,CAAA;QACd,OAAO,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAA;IACzC,CAAC,CAAA;IAED,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AA7DY,QAAA,sBAAsB,0BA6DlC"}
@@ -0,0 +1,86 @@
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.componentPlugin = void 0;
7
+ const html_blocks_1 = __importDefault(require("markdown-it/lib/common/html_blocks"));
8
+ const html_re_1 = require("markdown-it/lib/common/html_re");
9
+ // Replacing the default htmlBlock rule to allow using custom components at
10
+ // root level
11
+ // An array of opening and corresponding closing sequences for html tags,
12
+ // last argument defines whether it can terminate a paragraph or not
13
+ const HTML_SEQUENCES = [
14
+ [/^<(script|pre|style)(?=(\s|>|$))/i, /<\/(script|pre|style)>/i, true],
15
+ [/^<!--/, /-->/, true],
16
+ [/^<\?/, /\?>/, true],
17
+ [/^<![A-Z]/, />/, true],
18
+ [/^<!\[CDATA\[/, /\]\]>/, true],
19
+ // PascalCase Components
20
+ [/^<[A-Z]/, />/, true],
21
+ // custom elements with hyphens
22
+ [/^<\w+\-/, />/, true],
23
+ [
24
+ new RegExp('^</?(' + html_blocks_1.default.join('|') + ')(?=(\\s|/?>|$))', 'i'),
25
+ /^$/,
26
+ true
27
+ ],
28
+ [new RegExp(html_re_1.HTML_OPEN_CLOSE_TAG_RE.source + '\\s*$'), /^$/, false]
29
+ ];
30
+ const componentPlugin = (md) => {
31
+ md.block.ruler.at('html_block', htmlBlock);
32
+ };
33
+ exports.componentPlugin = componentPlugin;
34
+ const htmlBlock = (state, startLine, endLine, silent) => {
35
+ let i, nextLine, lineText;
36
+ let pos = state.bMarks[startLine] + state.tShift[startLine];
37
+ let max = state.eMarks[startLine];
38
+ // if it's indented more than 3 spaces, it should be a code block
39
+ if (state.sCount[startLine] - state.blkIndent >= 4) {
40
+ return false;
41
+ }
42
+ if (!state.md.options.html) {
43
+ return false;
44
+ }
45
+ if (state.src.charCodeAt(pos) !== 0x3c /* < */) {
46
+ return false;
47
+ }
48
+ lineText = state.src.slice(pos, max);
49
+ for (i = 0; i < HTML_SEQUENCES.length; i++) {
50
+ if (HTML_SEQUENCES[i][0].test(lineText)) {
51
+ break;
52
+ }
53
+ }
54
+ if (i === HTML_SEQUENCES.length) {
55
+ return false;
56
+ }
57
+ if (silent) {
58
+ // true if this sequence can be a terminator, false otherwise
59
+ return HTML_SEQUENCES[i][2];
60
+ }
61
+ nextLine = startLine + 1;
62
+ // If we are here - we detected HTML block.
63
+ // Let's roll down till block end.
64
+ if (!HTML_SEQUENCES[i][1].test(lineText)) {
65
+ for (; nextLine < endLine; nextLine++) {
66
+ if (state.sCount[nextLine] < state.blkIndent) {
67
+ break;
68
+ }
69
+ pos = state.bMarks[nextLine] + state.tShift[nextLine];
70
+ max = state.eMarks[nextLine];
71
+ lineText = state.src.slice(pos, max);
72
+ if (HTML_SEQUENCES[i][1].test(lineText)) {
73
+ if (lineText.length !== 0) {
74
+ nextLine++;
75
+ }
76
+ break;
77
+ }
78
+ }
79
+ }
80
+ state.line = nextLine;
81
+ const token = state.push('html_block', '', 0);
82
+ token.map = [startLine, nextLine];
83
+ token.content = state.getLines(startLine, nextLine, state.blkIndent, true);
84
+ return true;
85
+ };
86
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/component.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
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.containerPlugin = void 0;
7
+ const markdown_it_container_1 = __importDefault(require("markdown-it-container"));
8
+ const containerPlugin = (md) => {
9
+ md.use(...createContainer('tip', 'TIP'))
10
+ .use(...createContainer('info', 'INFO'))
11
+ .use(...createContainer('warning', 'WARNING'))
12
+ .use(...createContainer('danger', 'WARNING'))
13
+ .use(...createContainer('details', 'Details'))
14
+ // explicitly escape Vue syntax
15
+ .use(markdown_it_container_1.default, 'v-pre', {
16
+ render: (tokens, idx) => tokens[idx].nesting === 1 ? `<div v-pre>\n` : `</div>\n`
17
+ });
18
+ };
19
+ exports.containerPlugin = containerPlugin;
20
+ function createContainer(klass, defaultTitle) {
21
+ return [
22
+ markdown_it_container_1.default,
23
+ klass,
24
+ {
25
+ render(tokens, idx) {
26
+ const token = tokens[idx];
27
+ const info = token.info.trim().slice(klass.length).trim();
28
+ if (token.nesting === 1) {
29
+ if (klass === 'details') {
30
+ return `<details class="${klass} custom-block">${info ? `<summary>${info}</summary>` : ''}\n`;
31
+ }
32
+ return `<div class="${klass} custom-block"><p class="custom-block-title">${info || defaultTitle}</p>\n`;
33
+ }
34
+ else {
35
+ return klass === 'details' ? `</details>\n` : `</div>\n`;
36
+ }
37
+ }
38
+ }
39
+ ];
40
+ }
41
+ //# sourceMappingURL=containers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/containers.ts"],"names":[],"mappings":";;;;;;AAEA,kFAA6C;AAEtC,MAAM,eAAe,GAAG,CAAC,EAAc,EAAE,EAAE;IAChD,EAAE,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;SACrC,GAAG,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACvC,GAAG,CAAC,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;SAC7C,GAAG,CAAC,GAAG,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;SAC5C,GAAG,CAAC,GAAG,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC9C,+BAA+B;SAC9B,GAAG,CAAC,+BAAS,EAAE,OAAO,EAAE;QACvB,MAAM,EAAE,CAAC,MAAe,EAAE,GAAW,EAAE,EAAE,CACvC,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,UAAU;KAC3D,CAAC,CAAA;AACN,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAUD,SAAS,eAAe,CAAC,KAAa,EAAE,YAAoB;IAC1D,OAAO;QACL,+BAAS;QACT,KAAK;QACL;YACE,MAAM,CAAC,MAAM,EAAE,GAAG;gBAChB,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;gBACzB,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;gBACzD,IAAI,KAAK,CAAC,OAAO,KAAK,CAAC,EAAE;oBACvB,IAAI,KAAK,KAAK,SAAS,EAAE;wBACvB,OAAO,mBAAmB,KAAK,kBAC7B,IAAI,CAAC,CAAC,CAAC,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,EACxC,IAAI,CAAA;qBACL;oBACD,OAAO,eAAe,KAAK,gDACzB,IAAI,IAAI,YACV,QAAQ,CAAA;iBACT;qBAAM;oBACL,OAAO,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,UAAU,CAAA;iBACzD;YACH,CAAC;SACF;KACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.headingPlugin = void 0;
4
+ const parseHeader_1 = require("../../utils/parseHeader");
5
+ const slugify_1 = require("./slugify");
6
+ const headingPlugin = (md, include = ['h2', 'h3']) => {
7
+ md.renderer.rules.heading_open = (tokens, i, options, env, self) => {
8
+ const token = tokens[i];
9
+ if (include.includes(token.tag)) {
10
+ const title = tokens[i + 1].content;
11
+ const idAttr = token.attrs.find(([name]) => name === 'id');
12
+ const slug = idAttr && idAttr[1];
13
+ const data = md.__data;
14
+ const headers = data.headers || (data.headers = []);
15
+ headers.push({
16
+ level: parseInt(token.tag.slice(1), 10),
17
+ title: (0, parseHeader_1.deeplyParseHeader)(title),
18
+ slug: slug || (0, slugify_1.slugify)(title)
19
+ });
20
+ }
21
+ return self.renderToken(tokens, i, options);
22
+ };
23
+ };
24
+ exports.headingPlugin = headingPlugin;
25
+ //# sourceMappingURL=headings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"headings.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/headings.ts"],"names":[],"mappings":";;;AACA,yDAA2D;AAC3D,uCAAmC;AAG5B,MAAM,aAAa,GAAG,CAAC,EAAc,EAAE,OAAO,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE;IACtE,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QACjE,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE;YAC/B,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAA;YACnC,MAAM,MAAM,GAAG,KAAK,CAAC,KAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;YAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;YAChC,MAAM,IAAI,GAAI,EAAuB,CAAC,MAAM,CAAA;YAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC,CAAA;YACnD,OAAO,CAAC,IAAI,CAAC;gBACX,KAAK,EAAE,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;gBACvC,KAAK,EAAE,IAAA,+BAAiB,EAAC,KAAK,CAAC;gBAC/B,IAAI,EAAE,IAAI,IAAI,IAAA,iBAAO,EAAC,KAAK,CAAC;aAC7B,CAAC,CAAA;SACH;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAA;AACH,CAAC,CAAA;AAjBY,QAAA,aAAa,iBAiBzB"}
@@ -0,0 +1,53 @@
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.highlight = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const escape_html_1 = __importDefault(require("escape-html"));
9
+ const prismjs_1 = __importDefault(require("prismjs"));
10
+ // prism is listed as actual dep so it's ok to require
11
+ const loadLanguages = require('prismjs/components/index');
12
+ // required to make embedded highlighting work...
13
+ loadLanguages(['markup', 'css', 'javascript']);
14
+ function wrap(code, lang) {
15
+ if (lang === 'text') {
16
+ code = (0, escape_html_1.default)(code);
17
+ }
18
+ return `<pre v-pre><code>${code}</code></pre>`;
19
+ }
20
+ const highlight = (str, lang) => {
21
+ if (!lang) {
22
+ return wrap(str, 'text');
23
+ }
24
+ lang = lang.toLowerCase();
25
+ const rawLang = lang;
26
+ if (lang === 'vue' || lang === 'html') {
27
+ lang = 'markup';
28
+ }
29
+ if (lang === 'md') {
30
+ lang = 'markdown';
31
+ }
32
+ if (lang === 'ts') {
33
+ lang = 'typescript';
34
+ }
35
+ if (lang === 'py') {
36
+ lang = 'python';
37
+ }
38
+ if (!prismjs_1.default.languages[lang]) {
39
+ try {
40
+ loadLanguages([lang]);
41
+ }
42
+ catch (e) {
43
+ console.warn(chalk_1.default.yellow(`[vitepress] Syntax highlight for language "${lang}" is not supported.`));
44
+ }
45
+ }
46
+ if (prismjs_1.default.languages[lang]) {
47
+ const code = prismjs_1.default.highlight(str, prismjs_1.default.languages[lang], lang);
48
+ return wrap(code, rawLang);
49
+ }
50
+ return wrap(str, 'text');
51
+ };
52
+ exports.highlight = highlight;
53
+ //# sourceMappingURL=highlight.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlight.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/highlight.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAyB;AACzB,8DAAoC;AACpC,sDAA2B;AAE3B,sDAAsD;AACtD,MAAM,aAAa,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAA;AAEzD,iDAAiD;AACjD,aAAa,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,YAAY,CAAC,CAAC,CAAA;AAE9C,SAAS,IAAI,CAAC,IAAY,EAAE,IAAY;IACtC,IAAI,IAAI,KAAK,MAAM,EAAE;QACnB,IAAI,GAAG,IAAA,qBAAU,EAAC,IAAI,CAAC,CAAA;KACxB;IACD,OAAO,oBAAoB,IAAI,eAAe,CAAA;AAChD,CAAC;AAEM,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE,IAAY,EAAE,EAAE;IACrD,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;KACzB;IACD,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAA;IACzB,MAAM,OAAO,GAAG,IAAI,CAAA;IACpB,IAAI,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,MAAM,EAAE;QACrC,IAAI,GAAG,QAAQ,CAAA;KAChB;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,IAAI,GAAG,UAAU,CAAA;KAClB;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,IAAI,GAAG,YAAY,CAAA;KACpB;IACD,IAAI,IAAI,KAAK,IAAI,EAAE;QACjB,IAAI,GAAG,QAAQ,CAAA;KAChB;IACD,IAAI,CAAC,iBAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QAC1B,IAAI;YACF,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA;SACtB;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,CAAC,IAAI,CACV,eAAK,CAAC,MAAM,CACV,8CAA8C,IAAI,qBAAqB,CACxE,CACF,CAAA;SACF;KACF;IACD,IAAI,iBAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE;QACzB,MAAM,IAAI,GAAG,iBAAK,CAAC,SAAS,CAAC,GAAG,EAAE,iBAAK,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAA;QAC9D,OAAO,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;KAC3B;IACD,OAAO,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;AAC1B,CAAC,CAAA;AAlCY,QAAA,SAAS,aAkCrB"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.highlightLinePlugin = void 0;
4
+ const wrapperRE = /^<pre .*?><code>/;
5
+ const highlightLinePlugin = (md) => {
6
+ const fence = md.renderer.rules.fence;
7
+ md.renderer.rules.fence = (...args) => {
8
+ const [tokens, idx, options] = args;
9
+ const token = tokens[idx];
10
+ // due to use of markdown-it-attrs, the {0} syntax would have been converted
11
+ // to attrs on the token
12
+ const attr = token.attrs && token.attrs[0];
13
+ if (!attr) {
14
+ return fence(...args);
15
+ }
16
+ const lines = attr[0];
17
+ if (!lines || !/[\d,-]+/.test(lines)) {
18
+ return fence(...args);
19
+ }
20
+ const lineNumbers = lines
21
+ .split(',')
22
+ .map((v) => v.split('-').map((v) => parseInt(v, 10)));
23
+ const code = options.highlight
24
+ ? options.highlight(token.content, token.info, '')
25
+ : token.content;
26
+ const rawCode = code.replace(wrapperRE, '');
27
+ const highlightLinesCode = rawCode
28
+ .split('\n')
29
+ .map((split, index) => {
30
+ const lineNumber = index + 1;
31
+ const inRange = lineNumbers.some(([start, end]) => {
32
+ if (start && end) {
33
+ return lineNumber >= start && lineNumber <= end;
34
+ }
35
+ return lineNumber === start;
36
+ });
37
+ if (inRange) {
38
+ return `<div class="highlighted">&nbsp;</div>`;
39
+ }
40
+ return '<br>';
41
+ })
42
+ .join('');
43
+ const highlightLinesWrapperCode = `<div class="highlight-lines">${highlightLinesCode}</div>`;
44
+ return highlightLinesWrapperCode + code;
45
+ };
46
+ };
47
+ exports.highlightLinePlugin = highlightLinePlugin;
48
+ //# sourceMappingURL=highlightLines.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"highlightLines.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/highlightLines.ts"],"names":[],"mappings":";;;AAGA,MAAM,SAAS,GAAG,kBAAkB,CAAA;AAE7B,MAAM,mBAAmB,GAAG,CAAC,EAAc,EAAE,EAAE;IACpD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAA;IACtC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QACpC,MAAM,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,IAAI,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAEzB,4EAA4E;QAC5E,wBAAwB;QACxB,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;QAC1C,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;SACtB;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAA;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YACpC,OAAO,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;SACtB;QAED,MAAM,WAAW,GAAG,KAAK;aACtB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QAEvD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS;YAC5B,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAClD,CAAC,CAAC,KAAK,CAAC,OAAO,CAAA;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAA;QAC3C,MAAM,kBAAkB,GAAG,OAAO;aAC/B,KAAK,CAAC,IAAI,CAAC;aACX,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;YACpB,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAA;YAC5B,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE;gBAChD,IAAI,KAAK,IAAI,GAAG,EAAE;oBAChB,OAAO,UAAU,IAAI,KAAK,IAAI,UAAU,IAAI,GAAG,CAAA;iBAChD;gBACD,OAAO,UAAU,KAAK,KAAK,CAAA;YAC7B,CAAC,CAAC,CAAA;YACF,IAAI,OAAO,EAAE;gBACX,OAAO,uCAAuC,CAAA;aAC/C;YACD,OAAO,MAAM,CAAA;QACf,CAAC,CAAC;aACD,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,MAAM,yBAAyB,GAAG,gCAAgC,kBAAkB,QAAQ,CAAA;QAE5F,OAAO,yBAAyB,GAAG,IAAI,CAAA;IACzC,CAAC,CAAA;AACH,CAAC,CAAA;AAhDY,QAAA,mBAAmB,uBAgD/B"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.hoistPlugin = void 0;
4
+ // hoist <script> and <style> tags out of the returned html
5
+ // so that they can be placed outside as SFC blocks.
6
+ const hoistPlugin = (md) => {
7
+ const RE = /^<(script|style)(?=(\s|>|$))/i;
8
+ md.renderer.rules.html_block = (tokens, idx) => {
9
+ const content = tokens[idx].content;
10
+ const data = md.__data;
11
+ const hoistedTags = data.hoistedTags || (data.hoistedTags = []);
12
+ if (RE.test(content.trim())) {
13
+ hoistedTags.push(content);
14
+ return '';
15
+ }
16
+ else {
17
+ return content;
18
+ }
19
+ };
20
+ };
21
+ exports.hoistPlugin = hoistPlugin;
22
+ //# sourceMappingURL=hoist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hoist.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/hoist.ts"],"names":[],"mappings":";;;AAGA,2DAA2D;AAC3D,oDAAoD;AAC7C,MAAM,WAAW,GAAG,CAAC,EAAc,EAAE,EAAE;IAC5C,MAAM,EAAE,GAAG,+BAA+B,CAAA;IAE1C,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,OAAO,CAAA;QACnC,MAAM,IAAI,GAAI,EAAuB,CAAC,MAAM,CAAA;QAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,IAAI,CAAC,WAAW,GAAG,EAAE,CAAC,CAAA;QAC/D,IAAI,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE;YAC3B,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YACzB,OAAO,EAAE,CAAA;SACV;aAAM;YACL,OAAO,OAAO,CAAA;SACf;IACH,CAAC,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,WAAW,eAcvB"}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ // markdown-it plugin for normalizing image source
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.imagePlugin = void 0;
5
+ const shared_1 = require("../../shared");
6
+ const imagePlugin = (md) => {
7
+ md.renderer.rules.image = (tokens, idx, options, env, self) => {
8
+ const token = tokens[idx];
9
+ const url = token.attrGet('src');
10
+ if (url && !shared_1.EXTERNAL_URL_RE.test(url) && !/^\.?\//.test(url)) {
11
+ token.attrSet('src', './' + url);
12
+ }
13
+ return self.renderToken(tokens, idx, options);
14
+ };
15
+ };
16
+ exports.imagePlugin = imagePlugin;
17
+ //# sourceMappingURL=image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"image.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/image.ts"],"names":[],"mappings":";AAAA,kDAAkD;;;AAGlD,yCAA8C;AAEvC,MAAM,WAAW,GAAG,CAAC,EAAc,EAAE,EAAE;IAC5C,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;QAC5D,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAChC,IAAI,GAAG,IAAI,CAAC,wBAAe,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;YAC5D,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,GAAG,CAAC,CAAA;SACjC;QACD,OAAO,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAC/C,CAAC,CAAA;AACH,CAAC,CAAA;AATY,QAAA,WAAW,eASvB"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ // markdown-it plugin for generating line numbers.
3
+ // It depends on preWrapper plugin.
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.lineNumberPlugin = void 0;
6
+ const lineNumberPlugin = (md) => {
7
+ const fence = md.renderer.rules.fence;
8
+ md.renderer.rules.fence = (...args) => {
9
+ const rawCode = fence(...args);
10
+ const code = rawCode.slice(rawCode.indexOf('<code>'), rawCode.indexOf('</code>'));
11
+ const lines = code.split('\n');
12
+ const lineNumbersCode = [...Array(lines.length - 1)]
13
+ .map((line, index) => `<span class="line-number">${index + 1}</span><br>`)
14
+ .join('');
15
+ const lineNumbersWrapperCode = `<div class="line-numbers-wrapper">${lineNumbersCode}</div>`;
16
+ const finalCode = rawCode
17
+ .replace(/<\/div>$/, `${lineNumbersWrapperCode}</div>`)
18
+ .replace(/"(language-\w+)"/, '"$1 line-numbers-mode"');
19
+ return finalCode;
20
+ };
21
+ };
22
+ exports.lineNumberPlugin = lineNumberPlugin;
23
+ //# sourceMappingURL=lineNumbers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lineNumbers.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/lineNumbers.ts"],"names":[],"mappings":";AAAA,kDAAkD;AAClD,mCAAmC;;;AAI5B,MAAM,gBAAgB,GAAG,CAAC,EAAc,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAA;IACtC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QACpC,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9B,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CACxB,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,EACzB,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAC3B,CAAA;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9B,MAAM,eAAe,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;aACjD,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,6BAA6B,KAAK,GAAG,CAAC,aAAa,CAAC;aACzE,IAAI,CAAC,EAAE,CAAC,CAAA;QAEX,MAAM,sBAAsB,GAAG,qCAAqC,eAAe,QAAQ,CAAA;QAE3F,MAAM,SAAS,GAAG,OAAO;aACtB,OAAO,CAAC,UAAU,EAAE,GAAG,sBAAsB,QAAQ,CAAC;aACtD,OAAO,CAAC,kBAAkB,EAAE,wBAAwB,CAAC,CAAA;QAExD,OAAO,SAAS,CAAA;IAClB,CAAC,CAAA;AACH,CAAC,CAAA;AAtBY,QAAA,gBAAgB,oBAsB5B"}
@@ -0,0 +1,85 @@
1
+ "use strict";
2
+ // markdown-it plugin for:
3
+ // 1. adding target="_blank" to external links
4
+ // 2. normalize internal links to end with `.html`
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.linkPlugin = void 0;
7
+ const url_1 = require("url");
8
+ const shared_1 = require("../../shared");
9
+ const indexRE = /(^|.*\/)index.md(#?.*)$/i;
10
+ const linkPlugin = (md, externalAttrs, base) => {
11
+ md.renderer.rules.link_open = (tokens, idx, options, env, self) => {
12
+ const token = tokens[idx];
13
+ const hrefIndex = token.attrIndex('href');
14
+ if (hrefIndex >= 0) {
15
+ const hrefAttr = token.attrs[hrefIndex];
16
+ const url = hrefAttr[1];
17
+ const isExternal = shared_1.EXTERNAL_URL_RE.test(url);
18
+ if (isExternal) {
19
+ Object.entries(externalAttrs).forEach(([key, val]) => {
20
+ token.attrSet(key, val);
21
+ });
22
+ // catch localhost links as dead link
23
+ if (url.replace(shared_1.EXTERNAL_URL_RE, '').startsWith('//localhost:')) {
24
+ pushLink(url);
25
+ }
26
+ }
27
+ else if (
28
+ // internal anchor links
29
+ !url.startsWith('#') &&
30
+ // mail links
31
+ !url.startsWith('mailto:') &&
32
+ // links to files (other than html/md)
33
+ !/\.(?!html|md)\w+($|\?)/i.test(url)) {
34
+ normalizeHref(hrefAttr);
35
+ }
36
+ // encode vite-specific replace strings in case they appear in URLs
37
+ // this also excludes them from build-time replacements (which injects
38
+ // <wbr/> and will break URLs)
39
+ hrefAttr[1] = hrefAttr[1]
40
+ .replace(/\bimport\.meta/g, 'import%2Emeta')
41
+ .replace(/\bprocess\.env/g, 'process%2Eenv');
42
+ }
43
+ return self.renderToken(tokens, idx, options);
44
+ };
45
+ function normalizeHref(hrefAttr) {
46
+ let url = hrefAttr[1];
47
+ const indexMatch = url.match(indexRE);
48
+ if (indexMatch) {
49
+ const [, path, hash] = indexMatch;
50
+ url = path + hash;
51
+ }
52
+ else {
53
+ let cleanUrl = url.replace(/[?#].*$/, '');
54
+ // .md -> .html
55
+ if (cleanUrl.endsWith('.md')) {
56
+ cleanUrl = cleanUrl.replace(/\.md$/, '.html');
57
+ }
58
+ // ./foo -> ./foo.html
59
+ if (!cleanUrl.endsWith('.html') && !cleanUrl.endsWith('/')) {
60
+ cleanUrl += '.html';
61
+ }
62
+ const parsed = new url_1.URL(url, 'http://a.com');
63
+ url = cleanUrl + parsed.search + parsed.hash;
64
+ }
65
+ // ensure leading . for relative paths
66
+ if (!url.startsWith('/') && !/^\.\//.test(url)) {
67
+ url = './' + url;
68
+ }
69
+ // export it for existence check
70
+ pushLink(url.replace(/\.html$/, ''));
71
+ // append base to internal (non-relative) urls
72
+ if (url.startsWith('/')) {
73
+ url = `${base}${url}`.replace(/\/+/g, '/');
74
+ }
75
+ // markdown-it encodes the uri
76
+ hrefAttr[1] = decodeURI(url);
77
+ }
78
+ function pushLink(link) {
79
+ const data = md.__data;
80
+ const links = data.links || (data.links = []);
81
+ links.push(link);
82
+ }
83
+ };
84
+ exports.linkPlugin = linkPlugin;
85
+ //# sourceMappingURL=link.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/link.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ // markdown-it plugin for wrapping <pre> ... </pre>.
3
+ //
4
+ // If your plugin was chained before preWrapper, you can add additional element directly.
5
+ // If your plugin was chained after preWrapper, you can use these slots:
6
+ // 1. <!--beforebegin-->
7
+ // 2. <!--afterbegin-->
8
+ // 3. <!--beforeend-->
9
+ // 4. <!--afterend-->
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.preWrapperPlugin = void 0;
12
+ const preWrapperPlugin = (md) => {
13
+ const fence = md.renderer.rules.fence;
14
+ md.renderer.rules.fence = (...args) => {
15
+ const [tokens, idx] = args;
16
+ const token = tokens[idx];
17
+ const rawCode = fence(...args);
18
+ return `<div class="language-${token.info.trim()}">${rawCode}</div>`;
19
+ };
20
+ };
21
+ exports.preWrapperPlugin = preWrapperPlugin;
22
+ //# sourceMappingURL=preWrapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preWrapper.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/preWrapper.ts"],"names":[],"mappings":";AAAA,oDAAoD;AACpD,EAAE;AACF,yFAAyF;AACzF,wEAAwE;AACxE,0BAA0B;AAC1B,yBAAyB;AACzB,wBAAwB;AACxB,uBAAuB;;;AAIhB,MAAM,gBAAgB,GAAG,CAAC,EAAc,EAAE,EAAE;IACjD,MAAM,KAAK,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAM,CAAA;IACtC,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;QACpC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAA;QAC1B,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QACzB,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9B,OAAO,wBAAwB,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,OAAO,QAAQ,CAAA;IACtE,CAAC,CAAA;AACH,CAAC,CAAA;AARY,QAAA,gBAAgB,oBAQ5B"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slugify = void 0;
4
+ // string.js slugify drops non ascii chars so we have to
5
+ // use a custom implementation here
6
+ const diacritics_1 = require("diacritics");
7
+ // eslint-disable-next-line no-control-regex
8
+ const rControl = /[\u0000-\u001f]/g;
9
+ const rSpecial = /[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.?/]+/g;
10
+ const slugify = (str) => {
11
+ return ((0, diacritics_1.remove)(str)
12
+ // Remove control characters
13
+ .replace(rControl, '')
14
+ // Replace special characters
15
+ .replace(rSpecial, '-')
16
+ // Remove continuous separators
17
+ .replace(/\-{2,}/g, '-')
18
+ // Remove prefixing and trailing separators
19
+ .replace(/^\-+|\-+$/g, '')
20
+ // ensure it doesn't start with a number (#121)
21
+ .replace(/^(\d)/, '_$1')
22
+ // lowercase
23
+ .toLowerCase());
24
+ };
25
+ exports.slugify = slugify;
26
+ //# sourceMappingURL=slugify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slugify.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/slugify.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AACxD,mCAAmC;AACnC,2CAAuD;AACvD,4CAA4C;AAC5C,MAAM,QAAQ,GAAG,kBAAkB,CAAA;AACnC,MAAM,QAAQ,GAAG,2CAA2C,CAAA;AAErD,MAAM,OAAO,GAAG,CAAC,GAAW,EAAU,EAAE;IAC7C,OAAO,CACL,IAAA,mBAAgB,EAAC,GAAG,CAAC;QACnB,4BAA4B;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QACtB,6BAA6B;SAC5B,OAAO,CAAC,QAAQ,EAAE,GAAG,CAAC;QACvB,+BAA+B;SAC9B,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC;QACxB,2CAA2C;SAC1C,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;QAC1B,+CAA+C;SAC9C,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC;QACxB,YAAY;SACX,WAAW,EAAE,CACjB,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,OAAO,WAgBnB"}