docs_vue2/one/build/rehype-link.js

25 lines
699 B
JavaScript
Raw Normal View History

2020-08-13 11:47:56 +08:00
import { resolve, relative } from 'path'
import visit from 'unist-util-visit'
import { RE_LOCALE } from './i18n'
const DOCS_DIR = resolve(__dirname, '../docs')
export default function attacher () {
return (tree, { path }) => {
let localPath = `/${relative(DOCS_DIR, path)}`
let [, locale] = localPath.match(RE_LOCALE) || []
visit(tree, 'element', node => {
let { tagName, properties: { href, ...props } } = node
2020-08-13 11:47:56 +08:00
if (tagName !== 'a' || href.match(/^\w+:\/\//)) {
return
}
let routePath = locale && href.indexOf('/') === 0 ? `/${locale}${href}` : href
node.tagName = 'nuxt-link'
node.properties = { ...props, to: routePath }
2020-08-13 11:47:56 +08:00
})
}
}