aboutsummaryrefslogtreecommitdiff
path: root/node_modules/vuepress/lib/markdown/link.js
diff options
context:
space:
mode:
authorruki <waruqi@gmail.com>2018-11-08 00:43:05 +0800
committerruki <waruqi@gmail.com>2018-11-07 22:18:30 +0800
commit89e95b3f143682ed9a006991bacf45c9dcba4818 (patch)
tree4f44cf41b828577d583890bdd5a1c31e8491a6ba /node_modules/vuepress/lib/markdown/link.js
parentaa7f0199255277949790b41c56e8ec97dd4f0da4 (diff)
downloadxmake-docs-vuepress.tar.gz
xmake-docs-vuepress.zip
remove node_modulesvuepress
Diffstat (limited to 'node_modules/vuepress/lib/markdown/link.js')
-rw-r--r--node_modules/vuepress/lib/markdown/link.js91
1 files changed, 0 insertions, 91 deletions
diff --git a/node_modules/vuepress/lib/markdown/link.js b/node_modules/vuepress/lib/markdown/link.js
deleted file mode 100644
index bbe9550d..00000000
--- a/node_modules/vuepress/lib/markdown/link.js
+++ /dev/null
@@ -1,91 +0,0 @@
-// markdown-it plugin for:
-// 1. adding target="_blank" to external links
-// 2. converting internal links to <router-link>
-
-const indexRE = /(.*)(index|readme).md(#?.*)$/i
-
-module.exports = (md, externalAttrs) => {
- let hasOpenRouterLink = false
- let hasOpenExternalLink = false
-
- md.renderer.rules.link_open = (tokens, idx, options, env, self) => {
- const token = tokens[idx]
- const hrefIndex = token.attrIndex('href')
- if (hrefIndex >= 0) {
- const link = token.attrs[hrefIndex]
- const href = link[1]
- const isExternal = /^https?:/.test(href)
- const isSourceLink = /(\/|\.md|\.html)(#.*)?$/.test(href)
- if (isExternal) {
- Object.entries(externalAttrs).forEach(([key, val]) => {
- token.attrSet(key, val)
- })
- if (/_blank/i.test(externalAttrs['target'])) {
- hasOpenExternalLink = true
- }
- } else if (isSourceLink) {
- hasOpenRouterLink = true
- tokens[idx] = toRouterLink(token, link)
- }
- }
- return self.renderToken(tokens, idx, options)
- }
-
- function toRouterLink (token, link) {
- link[0] = 'to'
- let to = link[1]
-
- // convert link to filename and export it for existence check
- const links = md.__data.links || (md.__data.links = [])
- links.push(to)
-
- const indexMatch = to.match(indexRE)
- if (indexMatch) {
- const [, path, , hash] = indexMatch
- to = path + hash
- } else {
- to = to
- .replace(/\.md$/, '.html')
- .replace(/\.md(#.*)$/, '.html$1')
- }
-
- // relative path usage.
- if (!to.startsWith('/')) {
- to = ensureBeginningDotSlash(to)
- }
-
- // markdown-it encodes the uri
- link[1] = decodeURI(to)
-
- // export the router links for testing
- const routerLinks = md.__data.routerLinks || (md.__data.routerLinks = [])
- routerLinks.push(to)
-
- return Object.assign({}, token, {
- tag: 'router-link'
- })
- }
-
- md.renderer.rules.link_close = (tokens, idx, options, env, self) => {
- const token = tokens[idx]
- if (hasOpenRouterLink) {
- token.tag = 'router-link'
- hasOpenRouterLink = false
- }
- if (hasOpenExternalLink) {
- hasOpenExternalLink = false
- // add OutBoundLink to the beforeend of this link if it opens in _blank.
- return '<OutboundLink/>' + self.renderToken(tokens, idx, options)
- }
- return self.renderToken(tokens, idx, options)
- }
-}
-
-const beginningSlashRE = /^\.\//
-
-function ensureBeginningDotSlash (path) {
- if (beginningSlashRE.test(path)) {
- return path
- }
- return './' + path
-}