diff --git a/docs/.vitepress/components/api-docs/method.vue b/docs/.vitepress/components/api-docs/method.vue index 56fcb3492ce..db98657aa4f 100644 --- a/docs/.vitepress/components/api-docs/method.vue +++ b/docs/.vitepress/components/api-docs/method.vue @@ -1,12 +1,13 @@ diff --git a/docs/.vitepress/shared/utils/slugify.ts b/docs/.vitepress/shared/utils/slugify.ts new file mode 100644 index 00000000000..11dd77cc53a --- /dev/null +++ b/docs/.vitepress/shared/utils/slugify.ts @@ -0,0 +1,16 @@ +export function slugify(value: string): string { + // Copied from https://github.com/vuejs/docs/blob/b392b068fb893e3ac6079710fe34decbde7a3be3/src/api/ApiIndex.vue#L50-L65 + return ( + value + // Replace special characters + .replace(/[\s~`!@#$%^&*()\-_+=[\]{}|\\;:"'<>,.?/]+/g, '-') + // Remove continuous separators + .replace(/\-{2,}/g, '-') + // Remove prefixing and trailing separators + .replace(/^\-+|\-+$/g, '') + // ensure it doesn't start with a number (like #123) + .replace(/^(\d)/, '_$1') + // lowercase + .toLowerCase() + ); +} diff --git a/docs/api/ApiIndex.vue b/docs/api/ApiIndex.vue index ec9c752e981..882c4a69e14 100644 --- a/docs/api/ApiIndex.vue +++ b/docs/api/ApiIndex.vue @@ -2,6 +2,7 @@