Skip to content

Commit 16ffaf8

Browse files
committed
feat: allow markdownItSetup to be async
1 parent 2264b1b commit 16ffaf8

File tree

6 files changed

+13
-13
lines changed

6 files changed

+13
-13
lines changed

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ function VitePluginMarkdown(userOptions: Options = {}): Plugin {
1616
return {
1717
name: 'vite-plugin-vue-markdown',
1818
enforce: 'pre',
19-
transform(raw, id) {
19+
async transform(raw, id) {
2020
if (!filter(id))
2121
return
2222
try {
23-
return markdownToVue(id, raw)
23+
return (await markdownToVue)(id, raw)
2424
}
2525
catch (e: any) {
2626
this.error(e)
@@ -32,7 +32,7 @@ function VitePluginMarkdown(userOptions: Options = {}): Plugin {
3232

3333
const defaultRead = ctx.read
3434
ctx.read = async function () {
35-
return markdownToVue(ctx.file, await defaultRead()).code
35+
return (await markdownToVue)(ctx.file, await defaultRead()).code
3636
}
3737
},
3838
}

src/markdown.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ function extractCustomBlock(html: string, options: ResolvedOptions) {
6161
return { html, blocks }
6262
}
6363

64-
export function createMarkdown(options: ResolvedOptions) {
64+
export async function createMarkdown(options: ResolvedOptions) {
6565
const isVue2 = options.vueVersion.startsWith('2.')
6666

6767
const markdown = new MarkdownIt({
@@ -91,7 +91,7 @@ export function createMarkdown(options: ResolvedOptions) {
9191
markdown.use(plugin, options)
9292
})
9393

94-
options.markdownItSetup(markdown)
94+
await options.markdownItSetup(markdown)
9595

9696
return (id: string, raw: string): TransformResult => {
9797
const {

src/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ export interface Options {
165165
* A function providing the Markdown It instance gets the ability to apply custom
166166
* settings/plugins
167167
*/
168-
markdownItSetup?: (MarkdownIt: MarkdownIt) => void
168+
markdownItSetup?: (MarkdownIt: MarkdownIt) => void | Promise<void>
169169

170170
/**
171171
* Class names for wrapper div

test/excerpt.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { createMarkdown } from '../src/markdown'
33
import { resolveOptions } from '../src/options'
44

55
describe('excerpt', () => {
6-
it('rendered excerpt', () => {
6+
it('rendered excerpt', async () => {
77
const options = resolveOptions({
88
excerpt: true,
99
frontmatterOptions: {
@@ -13,7 +13,7 @@ describe('excerpt', () => {
1313
},
1414
},
1515
})
16-
const markdownToVue = createMarkdown(options)
16+
const markdownToVue = await createMarkdown(options)
1717
const md = `---
1818
title: Hey
1919
---
@@ -30,7 +30,7 @@ This is an excerpt which has been rendered to **HTML**.
3030
expect(markdownToVue('', md).code).toMatchSnapshot()
3131
})
3232

33-
it('raw excerpt', () => {
33+
it('raw excerpt', async () => {
3434
const options = resolveOptions({
3535
excerpt: true,
3636
frontmatterOptions: {
@@ -41,7 +41,7 @@ This is an excerpt which has been rendered to **HTML**.
4141
},
4242
},
4343
})
44-
const markdownToVue = createMarkdown(options)
44+
const markdownToVue = await createMarkdown(options)
4545
const md = `---
4646
title: Hey
4747
---

test/frontmatterPreprocessor.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const frontmatterPreprocess: ResolvedOptions['frontmatterPreprocess'] = (fm) =>
2727

2828
describe('provide bespoke frontmatter processor', () => {
2929
it('inline markdown is used over default properties', async () => {
30-
const parser = createMarkdown(resolveOptions({ frontmatterPreprocess }))
30+
const parser = await createMarkdown(resolveOptions({ frontmatterPreprocess }))
3131
const md = parser('', await readFile('test/fixtures/simple.md', 'utf-8')).code
3232
// Positive tests
3333
expect(

test/transform.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@ import { describe, expect, it } from 'vitest'
22
import { createMarkdown } from '../src/markdown'
33
import { resolveOptions } from '../src/options'
44

5-
describe('transform', () => {
5+
describe('transform', async () => {
66
const options = resolveOptions({})
7-
const markdownToVue = createMarkdown(options)
7+
const markdownToVue = await createMarkdown(options)
88

99
it('basic', () => {
1010
const md = `---

0 commit comments

Comments
 (0)