parent
1f04912a8f
commit
4ad96f3d12
3 changed files with 47 additions and 19 deletions
|
|
@ -57,3 +57,8 @@ You will get `<a href="/demo/">link</a>`html. Do not worry, you can still set ti
|
||||||
[link](/demo2 ":target=_self")
|
[link](/demo2 ":target=_self")
|
||||||
```
|
```
|
||||||
|
|
||||||
|
## Disable link
|
||||||
|
|
||||||
|
```md
|
||||||
|
[link](/demo ":disabled")
|
||||||
|
```
|
||||||
|
|
|
||||||
|
|
@ -25,9 +25,11 @@ export class Compiler {
|
||||||
if (isFn(mdConf)) {
|
if (isFn(mdConf)) {
|
||||||
compile = mdConf(marked, renderer)
|
compile = mdConf(marked, renderer)
|
||||||
} else {
|
} else {
|
||||||
marked.setOptions(merge(mdConf, {
|
marked.setOptions(
|
||||||
renderer: merge(renderer, mdConf.renderer)
|
merge(mdConf, {
|
||||||
}))
|
renderer: merge(renderer, mdConf.renderer)
|
||||||
|
})
|
||||||
|
)
|
||||||
compile = marked
|
compile = marked
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -91,33 +93,49 @@ export class Compiler {
|
||||||
}
|
}
|
||||||
// highlight code
|
// highlight code
|
||||||
origin.code = renderer.code = function (code, lang = '') {
|
origin.code = renderer.code = function (code, lang = '') {
|
||||||
const hl = Prism.highlight(code, Prism.languages[lang] || Prism.languages.markup)
|
const hl = Prism.highlight(
|
||||||
|
code,
|
||||||
|
Prism.languages[lang] || Prism.languages.markup
|
||||||
|
)
|
||||||
|
|
||||||
return `<pre v-pre data-lang="${lang}"><code class="lang-${lang}">${hl}</code></pre>`
|
return `<pre v-pre data-lang="${lang}"><code class="lang-${lang}">${hl}</code></pre>`
|
||||||
}
|
}
|
||||||
origin.link = renderer.link = function (href, title, text) {
|
origin.link = renderer.link = function (href, title = '', text) {
|
||||||
let blank = ''
|
let attrs = ''
|
||||||
|
const config = {}
|
||||||
|
|
||||||
if (!/:|(\/{2})/.test(href) &&
|
if (title) {
|
||||||
!_self.matchNotCompileLink(href) &&
|
title = title
|
||||||
!/(\s?:ignore)(\s\S+)?$/.test(title)) {
|
.replace(/:(\w+)=?(\w+)?/g, (m, key, value) => {
|
||||||
href = router.toURL(href, null, router.getCurrentPath())
|
config[key] = value || true
|
||||||
} else {
|
return ''
|
||||||
blank = ` target="${linkTarget}"`
|
})
|
||||||
title = title && title.replace(/:ignore/g, '').trim()
|
.trim()
|
||||||
}
|
}
|
||||||
|
|
||||||
let target = title && title.match(/:target=\w+/)
|
if (
|
||||||
if (target) {
|
!/:|(\/{2})/.test(href) &&
|
||||||
target = target[0]
|
!_self.matchNotCompileLink(href) &&
|
||||||
title = title.replace(target, '')
|
!config.ignore
|
||||||
blank = ' ' + target.slice(1)
|
) {
|
||||||
|
href = router.toURL(href, null, router.getCurrentPath())
|
||||||
|
} else {
|
||||||
|
attrs += ` target="${linkTarget}"`
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.target) {
|
||||||
|
attrs += ' target=' + config.target
|
||||||
|
}
|
||||||
|
|
||||||
|
if (config.disabled) {
|
||||||
|
attrs += ' disabled'
|
||||||
|
href = 'javascript:void(0)'
|
||||||
}
|
}
|
||||||
|
|
||||||
if (title) {
|
if (title) {
|
||||||
title = ` title="${title}"`
|
title = ` title="${title}"`
|
||||||
}
|
}
|
||||||
return `<a href="${href}"${title || ''}${blank}>${text}</a>`
|
return `<a href="${href}"${title || ''}${attrs}>${text}</a>`
|
||||||
}
|
}
|
||||||
origin.paragraph = renderer.paragraph = function (text) {
|
origin.paragraph = renderer.paragraph = function (text) {
|
||||||
if (/^!>/.test(text)) {
|
if (/^!>/.test(text)) {
|
||||||
|
|
|
||||||
|
|
@ -75,6 +75,11 @@ img {
|
||||||
max-width: 100%;
|
max-width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a[disabled] {
|
||||||
|
cursor: not-allowed;
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
kbd {
|
kbd {
|
||||||
border: solid 1px #ccc;
|
border: solid 1px #ccc;
|
||||||
border-radius: 3px;
|
border-radius: 3px;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue