diff --git a/docs/.vitepress/config/plugins.ts b/docs/.vitepress/config/plugins.ts index 3dabc9d13f0f0..d6963e1becd36 100644 --- a/docs/.vitepress/config/plugins.ts +++ b/docs/.vitepress/config/plugins.ts @@ -5,6 +5,7 @@ import mdContainer from 'markdown-it-container' import { docRoot } from '@element-plus/build-utils' import externalLinkIcon from '../plugins/external-link-icon' import tableWrapper from '../plugins/table-wrapper' +import tooltip from '../plugins/tooltip' import { ApiTableContainer } from '../plugins/api-table' import { highlight } from '../utils/highlight' import type Token from 'markdown-it/lib/token' @@ -27,6 +28,7 @@ interface ContainerOpts { export const mdPlugin = (md: MarkdownIt) => { md.use(externalLinkIcon) md.use(tableWrapper) + md.use(tooltip) md.use(mdContainer, 'demo', { validate(params) { return !!params.trim().match(/^demo\s*(.*)$/) diff --git a/docs/.vitepress/plugins/tooltip.ts b/docs/.vitepress/plugins/tooltip.ts new file mode 100644 index 0000000000000..3d1168ec73925 --- /dev/null +++ b/docs/.vitepress/plugins/tooltip.ts @@ -0,0 +1,31 @@ +import type MarkdownIt from 'markdown-it' + +export default (md: MarkdownIt): void => { + md.renderer.rules.tooltip = (tokens, idx) => { + const token = tokens[idx] + + return `` + } + + md.inline.ruler.before('emphasis', 'tooltip', (state, silent) => { + const tooltipRegExp = /^\^\[([^\]]*)\](\[[^\]]*\])?/ + const str = state.src.slice(state.pos, state.posMax) + + if (!tooltipRegExp.test(str)) return false + if (silent) return true + + const result = str.match(tooltipRegExp) + + if (!result) return false + + const token = state.push('tooltip', 'tooltip', 0) + token.content = result[1] + token.info = (result[2] || '') + .replace(/^\[([^\]]*)\]$/, '$1') + .replace(/^`([^`]*)`$/, '$1') + token.level = state.level + state.pos += result[0].length + + return true + }) +} diff --git a/docs/.vitepress/vitepress/components/globals/vp-api-typing.vue b/docs/.vitepress/vitepress/components/globals/vp-api-typing.vue index 71cf00046d9cc..995edfdf9db7f 100644 --- a/docs/.vitepress/vitepress/components/globals/vp-api-typing.vue +++ b/docs/.vitepress/vitepress/components/globals/vp-api-typing.vue @@ -12,7 +12,7 @@ defineProps({ {{ type }} - +