@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 +9 -0
- package/dist/index.d.mts +6 -1
- package/dist/index.d.ts +6 -1
- package/dist/index.mjs +23 -10
- package/package.json +18 -16
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 '
|
|
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 '
|
|
239
|
-
"import MarkdownCopyButton from '
|
|
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 '
|
|
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 '
|
|
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 '
|
|
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 '
|
|
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.
|
|
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.
|
|
42
|
-
"
|
|
43
|
-
"@md-plugins/md-plugin-
|
|
44
|
-
"@md-plugins/md-plugin-
|
|
45
|
-
"@md-plugins/md-plugin-
|
|
46
|
-
"@md-plugins/md-plugin-
|
|
47
|
-
"@md-plugins/md-plugin-
|
|
48
|
-
"@md-plugins/md-plugin-
|
|
49
|
-
"@md-plugins/md-plugin-
|
|
50
|
-
"@md-plugins/md-plugin-
|
|
51
|
-
"@md-plugins/md-plugin-
|
|
52
|
-
"@md-plugins/
|
|
53
|
-
"@md-plugins/md-plugin-
|
|
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.
|
|
59
|
+
"vite": "^8.0.14"
|
|
58
60
|
},
|
|
59
61
|
"peerDependencies": {
|
|
60
|
-
"markdown-it": "^14.
|
|
62
|
+
"markdown-it": "^14.2.0"
|
|
61
63
|
},
|
|
62
64
|
"scripts": {
|
|
63
65
|
"build": "unbuild",
|