Skip to content

Commit 7345f1c

Browse files
feat(client): update vue-api-manifest (#370)
1 parent 75de9a7 commit 7345f1c

File tree

2 files changed

+61
-28
lines changed

2 files changed

+61
-28
lines changed

packages/client/data/vue-apis.json

Lines changed: 51 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -108,32 +108,32 @@
108108
"url": "https:/vuejs.org/api/application#app-config-optionmergestrategies"
109109
},
110110
{
111-
"id": "doc:built-in-components:`<Transition>`",
112-
"title": "`<Transition>`",
111+
"id": "doc:built-in-components:<Transition>",
112+
"title": "<Transition>",
113113
"description": "built-in-components",
114114
"url": "https:/vuejs.org/api/built-in-components#transition"
115115
},
116116
{
117-
"id": "doc:built-in-components:`<TransitionGroup>`",
118-
"title": "`<TransitionGroup>`",
117+
"id": "doc:built-in-components:<TransitionGroup>",
118+
"title": "<TransitionGroup>",
119119
"description": "built-in-components",
120120
"url": "https:/vuejs.org/api/built-in-components#transitiongroup"
121121
},
122122
{
123-
"id": "doc:built-in-components:`<KeepAlive>`",
124-
"title": "`<KeepAlive>`",
123+
"id": "doc:built-in-components:<KeepAlive>",
124+
"title": "<KeepAlive>",
125125
"description": "built-in-components",
126126
"url": "https:/vuejs.org/api/built-in-components#keepalive"
127127
},
128128
{
129-
"id": "doc:built-in-components:`<Teleport>`",
130-
"title": "`<Teleport>`",
129+
"id": "doc:built-in-components:<Teleport>",
130+
"title": "<Teleport>",
131131
"description": "built-in-components",
132132
"url": "https:/vuejs.org/api/built-in-components#teleport"
133133
},
134134
{
135-
"id": "doc:built-in-components:`<Suspense>`",
136-
"title": "`<Suspense>`",
135+
"id": "doc:built-in-components:<Suspense>",
136+
"title": "<Suspense>",
137137
"description": "built-in-components",
138138
"url": "https:/vuejs.org/api/built-in-components#suspense"
139139
},
@@ -246,23 +246,42 @@
246246
"url": "https:/vuejs.org/api/built-in-special-attributes#is"
247247
},
248248
{
249-
"id": "doc:built-in-special-elements:`<component>`",
250-
"title": "`<component>`",
249+
"id": "doc:built-in-special-elements:<component>",
250+
"title": "<component>",
251251
"description": "built-in-special-elements",
252252
"url": "https:/vuejs.org/api/built-in-special-elements#component"
253253
},
254254
{
255-
"id": "doc:built-in-special-elements:`<slot>`",
256-
"title": "`<slot>`",
255+
"id": "doc:built-in-special-elements:<slot>",
256+
"title": "<slot>",
257257
"description": "built-in-special-elements",
258258
"url": "https:/vuejs.org/api/built-in-special-elements#slot"
259259
},
260260
{
261-
"id": "doc:built-in-special-elements:`<template>`",
262-
"title": "`<template>`",
261+
"id": "doc:built-in-special-elements:<template>",
262+
"title": "<template>",
263263
"description": "built-in-special-elements",
264264
"url": "https:/vuejs.org/api/built-in-special-elements#template"
265265
},
266+
{
267+
"id": "doc:compile-time-flags:__VUE_OPTIONS_API__",
268+
"title": "__VUE_OPTIONS_API__",
269+
"description": "compile-time-flags",
270+
"url": "https:/vuejs.org/api/compile-time-flags#VUE_OPTIONS_API"
271+
},
272+
{
273+
"id": "doc:compile-time-flags:__VUE_PROD_DEVTOOLS__",
274+
"title": "__VUE_PROD_DEVTOOLS__",
275+
"description": "compile-time-flags",
276+
"url": "https:/vuejs.org/api/compile-time-flags#VUE_PROD_DEVTOOLS"
277+
},
278+
{
279+
"id": "doc:compile-time-flags:__VUE_PROD_HYDRATION_MISMATCH_DETAILS__",
280+
"title": "__VUE_PROD_HYDRATION_MISMATCH_DETAILS__",
281+
"description": "compile-time-flags",
282+
"url": "https:/vuejs.org/api/compile-time-flags#VUE_PROD_HYDRATION_MISMATCH_DETAILS"
283+
},
284+
null,
266285
{
267286
"id": "doc:component-instance:$data",
268287
"title": "$data",
@@ -906,8 +925,8 @@
906925
"url": "https:/vuejs.org/api/sfc-css-features#css-modules"
907926
},
908927
{
909-
"id": "doc:sfc-css-features:`v-bind()` in CSS",
910-
"title": "`v-bind()` in CSS",
928+
"id": "doc:sfc-css-features:v-bind() in CSS",
929+
"title": "v-bind() in CSS",
911930
"description": "sfc-css-features",
912931
"url": "https:/vuejs.org/api/sfc-css-features#v-bind-in-css"
913932
},
@@ -941,6 +960,12 @@
941960
"description": "sfc-script-setup",
942961
"url": "https:/vuejs.org/api/sfc-script-setup#defineprops-defineemits"
943962
},
963+
{
964+
"id": "doc:sfc-script-setup:defineModel()",
965+
"title": "defineModel()",
966+
"description": "sfc-script-setup",
967+
"url": "https:/vuejs.org/api/sfc-script-setup#definemodel"
968+
},
944969
{
945970
"id": "doc:sfc-script-setup:defineExpose()",
946971
"title": "defineExpose()",
@@ -960,20 +985,20 @@
960985
"url": "https:/vuejs.org/api/sfc-script-setup#defineslots"
961986
},
962987
{
963-
"id": "doc:sfc-script-setup:`useSlots()` & `useAttrs()`",
964-
"title": "`useSlots()` & `useAttrs()`",
988+
"id": "doc:sfc-script-setup:useSlots() & useAttrs()",
989+
"title": "useSlots() & useAttrs()",
965990
"description": "sfc-script-setup",
966991
"url": "https:/vuejs.org/api/sfc-script-setup#useslots-useattrs"
967992
},
968993
{
969-
"id": "doc:sfc-script-setup:Usage alongside normal `<script>`",
970-
"title": "Usage alongside normal `<script>`",
994+
"id": "doc:sfc-script-setup:Usage alongside normal <script>",
995+
"title": "Usage alongside normal <script>",
971996
"description": "sfc-script-setup",
972997
"url": "https:/vuejs.org/api/sfc-script-setup#usage-alongside-normal-script"
973998
},
974999
{
975-
"id": "doc:sfc-script-setup:Top-level `await`",
976-
"title": "Top-level `await`",
1000+
"id": "doc:sfc-script-setup:Top-level await",
1001+
"title": "Top-level await",
9771002
"description": "sfc-script-setup",
9781003
"url": "https:/vuejs.org/api/sfc-script-setup#top-level-await"
9791004
},
@@ -1014,8 +1039,8 @@
10141039
"url": "https:/vuejs.org/api/sfc-spec#pre-processors"
10151040
},
10161041
{
1017-
"id": "doc:sfc-spec:`src` Imports",
1018-
"title": "`src` Imports",
1042+
"id": "doc:sfc-spec:src Imports",
1043+
"title": "src Imports",
10191044
"description": "sfc-spec",
10201045
"url": "https:/vuejs.org/api/sfc-spec#src-imports"
10211046
},

scripts/vue-api-manifest.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,15 @@ if (!fse.existsSync(dir)) {
1616
const APIReg = new RegexExtra(/^## (.*)\{#(.*)\}/gm)
1717

1818
const files = await fg(['src/api/*.md'], {
19-
ignore: ['!*index.md'],
19+
ignore: ['*index.md'],
2020
cwd: dir,
2121
onlyFiles: true,
2222
}).then(r => r.sort())
2323

24+
const IGNORED_TITLES = [
25+
'guide',
26+
]
27+
2428
const headerMatch = /^# (.*)/m
2529

2630
export function getTitleMarkdown(text: string) {
@@ -32,6 +36,8 @@ export function getTitleMarkdown(text: string) {
3236
return title.trim()
3337
}
3438

39+
const titleIgnored = (title: string) => IGNORED_TITLES.some(ignored => title.toLowerCase().includes(ignored))
40+
3541
const manifest = await Promise.all(files.map(async (file) => {
3642
const filepath = join(dir, file)
3743
const content = await fse.readFile(filepath, 'utf-8')
@@ -43,7 +49,9 @@ const manifest = await Promise.all(files.map(async (file) => {
4349
return
4450
const result = APIReg.capturesAll(content) ?? []
4551
return result.map((item) => {
46-
const [title, path] = item.map(i => i.replaceAll(/(?<!`)<.*>(?!`)/g, '').replaceAll('\\', '').trim())
52+
const [title, path] = item.map(i => i.replaceAll(/(?<!`)<.*>(?!`)/g, '').replaceAll('\\', '').trim().replace(/`/g, ''))
53+
if (titleIgnored(title))
54+
return null
4755
return {
4856
id: `${parentId}:${title}`,
4957
title,

0 commit comments

Comments
 (0)