diff options
| author | Shinigami <[email protected]> | 2022-09-10 01:59:47 +0800 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-09-09 13:59:47 -0400 |
| commit | 4efa530e5924e78712c220c9b4f4a0cf41cb5167 (patch) | |
| tree | 362fe26e917b7de2171f9f7d4c8a1685a3430869 /docs | |
| parent | 0c6e9b16548614dc0ce91296e3885c9e421e4e99 (diff) | |
| download | faker-4efa530e5924e78712c220c9b4f4a0cf41cb5167.tar.xz faker-4efa530e5924e78712c220c9b4f4a0cf41cb5167.zip | |
docs: fix @see links (#1363)
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/.vitepress/components/api-docs/method.vue | 3 | ||||
| -rw-r--r-- | docs/.vitepress/shared/utils/slugify.ts | 16 | ||||
| -rw-r--r-- | docs/api/ApiIndex.vue | 18 |
3 files changed, 19 insertions, 18 deletions
diff --git a/docs/.vitepress/components/api-docs/method.vue b/docs/.vitepress/components/api-docs/method.vue index 56fcb349..db98657a 100644 --- a/docs/.vitepress/components/api-docs/method.vue +++ b/docs/.vitepress/components/api-docs/method.vue @@ -1,12 +1,13 @@ <script setup lang="ts"> import type { Method } from './method'; import MethodParameters from './method-parameters.vue'; +import { slugify } from '../../shared/utils/slugify'; const props = defineProps<{ method: Method }>(); function seeAlsoToUrl(see: string): string { const [, module, method] = see.replace(/\(.*/, '').split('\.'); - return module + '.html#' + method; + return module + '.html#' + slugify(method); } </script> diff --git a/docs/.vitepress/shared/utils/slugify.ts b/docs/.vitepress/shared/utils/slugify.ts new file mode 100644 index 00000000..11dd77cc --- /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 ec9c752e..882c4a69 100644 --- a/docs/api/ApiIndex.vue +++ b/docs/api/ApiIndex.vue @@ -2,6 +2,7 @@ <script setup lang="ts"> import { computed, ref } from 'vue'; +import { slugify } from '../.vitepress/shared/utils/slugify'; import apiSearchIndex from './api-search-index.json'; import { APIGroup } from './api-types'; @@ -42,23 +43,6 @@ const filtered = computed(() => { }) .filter((i) => i) as APIGroup[]; }); - -// same as vitepress' slugify logic -function slugify(text: string): string { - return ( - text - // 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() - ); -} </script> <template> |
