diff --git a/docs/notes/theme/guide/markdown/field.md b/docs/notes/theme/guide/markdown/field.md index c0e4a179..5482e42f 100644 --- a/docs/notes/theme/guide/markdown/field.md +++ b/docs/notes/theme/guide/markdown/field.md @@ -69,6 +69,10 @@ export default defineUserConfig({ 是否可选 ::: +::: field name="deprecated" type="boolean" optional +是否弃用 +::: + ::: field name="default" type="string" optional 默认值, 如果为空字符串,应该使用 `default="''"` ::: @@ -111,8 +115,14 @@ export default defineUserConfig({ ::: ::: field name="callback" type="(...args: any[]) => void" optional default="() => {}" + 回调函数 ::: + +::: field name="other" type="string" deprecated + +已弃用属性 +::: :::: ``` @@ -128,6 +138,12 @@ export default defineUserConfig({ ::: ::: field name="callback" type="(...args: any[]) => void" optional default="() => {}" + 回调函数 ::: + +::: field name="other" type="string" deprecated + +已弃用属性 +::: :::: diff --git a/plugins/plugin-md-power/__test__/__snapshots__/field.spec.ts.snap b/plugins/plugin-md-power/__test__/__snapshots__/field.spec.ts.snap new file mode 100644 index 00000000..b1b0e994 --- /dev/null +++ b/plugins/plugin-md-power/__test__/__snapshots__/field.spec.ts.snap @@ -0,0 +1,15 @@ +// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html + +exports[`fieldPlugin > ::: field 1`] = ` +"

description

+

description

+

description

+

description

+
" +`; + +exports[`fieldPlugin > ::: field-group 1`] = ` +"

description

+

description

+
" +`; diff --git a/plugins/plugin-md-power/__test__/field.spec.ts b/plugins/plugin-md-power/__test__/field.spec.ts new file mode 100644 index 00000000..43511f44 --- /dev/null +++ b/plugins/plugin-md-power/__test__/field.spec.ts @@ -0,0 +1,43 @@ +import MarkdownIt from 'markdown-it' +import { describe, expect, it } from 'vitest' +import { fieldPlugin } from '../src/node/container/field.js' + +describe('fieldPlugin', () => { + const md = new MarkdownIt().use(fieldPlugin) + + it('::: field', () => { + const code = `\ +::: field name="foo" type="string" required +description +::: + +::: field name="bar" type="string" optional +description +::: + +::: field name="bar" type="string" deprecated default="baz" +description +::: + +::: field name="foo" default="undefined" +description +::: +` + expect(md.render(code)).toMatchSnapshot() + }) + + it('::: field-group', () => { + const code = `\ +:::: field-group +::: field name="foo" type="string" required +description +::: + +::: field name="bar" type="string" optional +description +::: +:::: +` + expect(md.render(code)).toMatchSnapshot() + }) +}) diff --git a/plugins/plugin-md-power/src/client/components/VPField.vue b/plugins/plugin-md-power/src/client/components/VPField.vue index b47879a9..571e3690 100644 --- a/plugins/plugin-md-power/src/client/components/VPField.vue +++ b/plugins/plugin-md-power/src/client/components/VPField.vue @@ -4,15 +4,17 @@ defineProps<{ type?: string required?: boolean optional?: boolean + deprecated?: boolean defaultValue?: string }>()