@md-plugins/vite-md-plugin 0.1.0-beta.2 → 0.1.0-beta.20

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/README.md CHANGED
@@ -36,6 +36,8 @@ Install the plugin via your preferred package manager:
36
36
  ```bash
37
37
  # with pnpm:
38
38
  pnpm add @md-plugins/vite-md-plugin
39
+ # with bun:
40
+ bun add @md-plugins/vite-md-plugin
39
41
  # with Yarn:
40
42
  yarn add @md-plugins/vite-md-plugin
41
43
  # with npm:
@@ -147,6 +149,13 @@ pnpm test
147
149
 
148
150
  In case this README falls out of date, please refer to the [documentation](https://md-plugins.netlify.app/vite-plugins/vite-md-plugin/overview) for the latest information.
149
151
 
152
+ ## Support
153
+
154
+ If vite-md-plugin is useful in your workflow and you want to support ongoing maintenance:
155
+
156
+ GitHub Sponsors: https://github.com/sponsors/hawkeye64
157
+ PayPal: https://paypal.me/hawkeye64
158
+
150
159
  ## License
151
160
 
152
161
  This project is licensed under the MIT License. See the [LICENSE](LICENSE.md) file for details.
package/dist/index.d.mts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
- import { Options } from 'markdown-it';
2
+ import MarkdownIt, { Options } from 'markdown-it';
3
3
  import { MarkdownItEnv } from '@md-plugins/shared';
4
4
  import { BlockquotePluginOptions } from '@md-plugins/md-plugin-blockquote';
5
5
  import { CodeblockPluginOptions } from '@md-plugins/md-plugin-codeblocks';
@@ -8,8 +8,11 @@ import { HeadersPluginOptions } from '@md-plugins/md-plugin-headers';
8
8
  import { ImagePluginOptions } from '@md-plugins/md-plugin-image';
9
9
  import { InlineCodePluginOptions } from '@md-plugins/md-plugin-inlinecode';
10
10
  import { LinkPluginOptions } from '@md-plugins/md-plugin-link';
11
+ import { MermaidPluginOptions } from '@md-plugins/md-plugin-mermaid';
11
12
  import { TablePluginOptions } from '@md-plugins/md-plugin-table';
12
13
 
14
+ type MarkdownItPlugin = (md: MarkdownIt, ...params: any[]) => void;
15
+ type MarkdownItPluginEntry = MarkdownItPlugin | [MarkdownItPlugin, ...any[]];
13
16
  interface MarkdownOptions extends Options {
14
17
  html?: boolean;
15
18
  linkify?: boolean;
@@ -22,7 +25,9 @@ interface MarkdownOptions extends Options {
22
25
  imagePlugin?: ImagePluginOptions;
23
26
  inlineCodePlugin?: InlineCodePluginOptions;
24
27
  linkPlugin?: LinkPluginOptions;
28
+ mermaidPlugin?: MermaidPluginOptions;
25
29
  tablePlugin?: TablePluginOptions;
30
+ markdownItPlugins?: MarkdownItPluginEntry[];
26
31
  preProcess?: (env: MarkdownItEnv) => void;
27
32
  postProcess?: (env: MarkdownItEnv) => void;
28
33
  }
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { Plugin } from 'vite';
2
- import { Options } from 'markdown-it';
2
+ import MarkdownIt, { Options } from 'markdown-it';
3
3
  import { MarkdownItEnv } from '@md-plugins/shared';
4
4
  import { BlockquotePluginOptions } from '@md-plugins/md-plugin-blockquote';
5
5
  import { CodeblockPluginOptions } from '@md-plugins/md-plugin-codeblocks';
@@ -8,8 +8,11 @@ import { HeadersPluginOptions } from '@md-plugins/md-plugin-headers';
8
8
  import { ImagePluginOptions } from '@md-plugins/md-plugin-image';
9
9
  import { InlineCodePluginOptions } from '@md-plugins/md-plugin-inlinecode';
10
10
  import { LinkPluginOptions } from '@md-plugins/md-plugin-link';
11
+ import { MermaidPluginOptions } from '@md-plugins/md-plugin-mermaid';
11
12
  import { TablePluginOptions } from '@md-plugins/md-plugin-table';
12
13
 
14
+ type MarkdownItPlugin = (md: MarkdownIt, ...params: any[]) => void;
15
+ type MarkdownItPluginEntry = MarkdownItPlugin | [MarkdownItPlugin, ...any[]];
13
16
  interface MarkdownOptions extends Options {
14
17
  html?: boolean;
15
18
  linkify?: boolean;
@@ -22,7 +25,9 @@ interface MarkdownOptions extends Options {
22
25
  imagePlugin?: ImagePluginOptions;
23
26
  inlineCodePlugin?: InlineCodePluginOptions;
24
27
  linkPlugin?: LinkPluginOptions;
28
+ mermaidPlugin?: MermaidPluginOptions;
25
29
  tablePlugin?: TablePluginOptions;
30
+ markdownItPlugins?: MarkdownItPluginEntry[];
26
31
  preProcess?: (env: MarkdownItEnv) => void;
27
32
  postProcess?: (env: MarkdownItEnv) => void;
28
33
  }
package/dist/index.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { join } from 'node:path';
2
2
  import MarkdownIt from 'markdown-it';
3
+ import markdownItIns from 'markdown-it-ins';
3
4
  import { frontmatterPlugin } from '@md-plugins/md-plugin-frontmatter';
4
5
  import { importsPlugin } from '@md-plugins/md-plugin-imports';
5
6
  import { headersPlugin } from '@md-plugins/md-plugin-headers';
@@ -8,6 +9,7 @@ import { inlinecodePlugin } from '@md-plugins/md-plugin-inlinecode';
8
9
  import { imagePlugin } from '@md-plugins/md-plugin-image';
9
10
  import { codeblocksPlugin } from '@md-plugins/md-plugin-codeblocks';
10
11
  import { blockquotePlugin } from '@md-plugins/md-plugin-blockquote';
12
+ import { mermaidPlugin } from '@md-plugins/md-plugin-mermaid';
11
13
  import { tablePlugin } from '@md-plugins/md-plugin-table';
12
14
  import { titlePlugin } from '@md-plugins/md-plugin-title';
13
15
  import { containersPlugin } from '@md-plugins/md-plugin-containers';
@@ -162,7 +164,7 @@ function getVueComponent(rendered, code, id, prefix, menu) {
162
164
  ${nav !== false ? ':nav="nav"' : ""}>${mdContent}</markdown-page>
163
165
  </template>
164
166
  <script setup>
165
- import { copyHeading } from 'src/.q-press/components/markdown-utils'
167
+ import { copyHeading } from '@/.q-press/components/markdown-utils'
166
168
  ${examples !== false ? `
167
169
  import { provide } from 'vue'
168
170
  provide('_markdown_examples_', import.meta.env.QUASAR_CLIENT
@@ -200,6 +202,16 @@ const createContainer = (container, containerType, defaultTitle, md) => {
200
202
  }
201
203
  ];
202
204
  };
205
+ function registerUserMarkdownItPlugins(md, plugins) {
206
+ for (const entry of plugins ?? []) {
207
+ if (Array.isArray(entry)) {
208
+ const [plugin, ...params] = entry;
209
+ md.use(plugin, ...params);
210
+ } else {
211
+ md.use(entry);
212
+ }
213
+ }
214
+ }
203
215
  function createMarkdownRenderer(options = {}) {
204
216
  const md = new MarkdownIt({
205
217
  html: true,
@@ -212,6 +224,7 @@ function createMarkdownRenderer(options = {}) {
212
224
  md.use(importsPlugin);
213
225
  md.use(titlePlugin);
214
226
  md.use(headersPlugin, { level: [2, 3], ...options });
227
+ md.use(markdownItIns);
215
228
  const containers = [
216
229
  { type: "tip", defaultTitle: "TIP" },
217
230
  { type: "warning", defaultTitle: "WARNING" },
@@ -235,14 +248,16 @@ function createMarkdownRenderer(options = {}) {
235
248
  containerComponent: "MarkdownPrerender",
236
249
  copyButtonComponent: "MarkdownCopyButton",
237
250
  pageScripts: [
238
- "import MarkdownPrerender from 'src/.q-press/components/MarkdownPrerender'",
239
- "import MarkdownCopyButton from 'src/.q-press/components/MarkdownCopyButton.vue'"
251
+ "import MarkdownPrerender from '@/.q-press/components/MarkdownPrerender'",
252
+ "import MarkdownCopyButton from '@/.q-press/components/MarkdownCopyButton.vue'"
240
253
  ],
241
254
  ...options
242
255
  });
256
+ md.use(mermaidPlugin, { ...options });
243
257
  md.use(linkPlugin, { ...options });
244
258
  md.use(inlinecodePlugin, { ...options });
245
259
  md.use(imagePlugin, { ...options });
260
+ registerUserMarkdownItPlugins(md, options.markdownItPlugins);
246
261
  return {
247
262
  // env: Environment for storing metadata
248
263
  render(code, env = {}) {
@@ -267,12 +282,12 @@ function mdParse(code, id, prefix, menu, options = {}) {
267
282
  frontmatter: { id },
268
283
  pageScripts: /* @__PURE__ */ new Set()
269
284
  };
270
- env.pageScripts.add("import MarkdownPage from 'src/.q-press/layouts/MarkdownPage.vue'");
285
+ env.pageScripts.add("import MarkdownPage from '@/.q-press/layouts/MarkdownPage.vue'");
271
286
  if (markdownApiRE.test(code)) {
272
- env.pageScripts.add("import MarkdownApi from 'src/.q-press/components/MarkdownApi.vue'");
287
+ env.pageScripts.add("import MarkdownApi from '@/.q-press/components/MarkdownApi.vue'");
273
288
  }
274
289
  if (markdownTreeRE.test(code)) {
275
- env.pageScripts.add("import MarkdownTree from 'src/.q-press/components/MarkdownTree.vue'");
290
+ env.pageScripts.add("import MarkdownTree from '@/.q-press/components/MarkdownTree.vue'");
276
291
  }
277
292
  if (typeof options.preProcess === "function") {
278
293
  options.preProcess(env);
@@ -280,12 +295,10 @@ function mdParse(code, id, prefix, menu, options = {}) {
280
295
  const md = createMarkdownRenderer(options);
281
296
  const results = md.render(code, env);
282
297
  if (env.frontmatter.examples !== void 0) {
283
- env.pageScripts.add(
284
- "import MarkdownExample from 'src/.q-press/components/MarkdownExample.vue'"
285
- );
298
+ env.pageScripts.add("import MarkdownExample from '@/.q-press/components/MarkdownExample.vue'");
286
299
  }
287
300
  if (markdownLinkRE.test(code)) {
288
- env.pageScripts.add("import MarkdownLink from 'src/.q-press/components/MarkdownLink.vue'");
301
+ env.pageScripts.add("import MarkdownLink from '@/.q-press/components/MarkdownLink.vue'");
289
302
  }
290
303
  if (typeof options.postProcess === "function") {
291
304
  options.postProcess(env);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@md-plugins/vite-md-plugin",
3
- "version": "0.1.0-beta.2",
3
+ "version": "0.1.0-beta.20",
4
4
  "description": "A very opinionated Vite plugin for @md-plugins.",
5
5
  "keywords": [
6
6
  "markdown-it",
@@ -38,26 +38,28 @@
38
38
  "access": "public"
39
39
  },
40
40
  "dependencies": {
41
- "markdown-it": "^14.1.1",
42
- "@md-plugins/md-plugin-codeblocks": "0.1.0-beta.2",
43
- "@md-plugins/md-plugin-frontmatter": "0.1.0-beta.2",
44
- "@md-plugins/md-plugin-image": "0.1.0-beta.2",
45
- "@md-plugins/md-plugin-imports": "0.1.0-beta.2",
46
- "@md-plugins/md-plugin-headers": "0.1.0-beta.2",
47
- "@md-plugins/md-plugin-inlinecode": "0.1.0-beta.2",
48
- "@md-plugins/md-plugin-containers": "0.1.0-beta.2",
49
- "@md-plugins/md-plugin-blockquote": "0.1.0-beta.2",
50
- "@md-plugins/md-plugin-link": "0.1.0-beta.2",
51
- "@md-plugins/md-plugin-title": "0.1.0-beta.2",
52
- "@md-plugins/shared": "0.1.0-beta.2",
53
- "@md-plugins/md-plugin-table": "0.1.0-beta.2"
41
+ "markdown-it": "^14.2.0",
42
+ "markdown-it-ins": "^4.0.0",
43
+ "@md-plugins/md-plugin-blockquote": "0.1.0-beta.20",
44
+ "@md-plugins/md-plugin-codeblocks": "0.1.0-beta.20",
45
+ "@md-plugins/md-plugin-frontmatter": "0.1.0-beta.20",
46
+ "@md-plugins/md-plugin-containers": "0.1.0-beta.20",
47
+ "@md-plugins/md-plugin-headers": "0.1.0-beta.20",
48
+ "@md-plugins/md-plugin-image": "0.1.0-beta.20",
49
+ "@md-plugins/md-plugin-imports": "0.1.0-beta.20",
50
+ "@md-plugins/md-plugin-inlinecode": "0.1.0-beta.20",
51
+ "@md-plugins/md-plugin-link": "0.1.0-beta.20",
52
+ "@md-plugins/md-plugin-table": "0.1.0-beta.20",
53
+ "@md-plugins/md-plugin-mermaid": "0.1.0-beta.20",
54
+ "@md-plugins/md-plugin-title": "0.1.0-beta.20",
55
+ "@md-plugins/shared": "0.1.0-beta.20"
54
56
  },
55
57
  "devDependencies": {
56
58
  "@types/markdown-it": "^14.1.2",
57
- "vite": "^8.0.12"
59
+ "vite": "^8.0.14"
58
60
  },
59
61
  "peerDependencies": {
60
- "markdown-it": "^14.1.0"
62
+ "markdown-it": "^14.2.0"
61
63
  },
62
64
  "scripts": {
63
65
  "build": "unbuild",