Added support for rel='noopener'

This commit is contained in:
Vaishak Kallore 2019-09-06 11:13:40 +05:30
parent 1d3246a26f
commit 4769018e26
3 changed files with 17 additions and 1 deletions

View File

@ -405,6 +405,19 @@ window.$docsify = {
};
```
## externalLinkRel
- type: `String`
- default: `noopener`
Default `'noopener'` (no opener) prevents the newly opened external page (when [externalLinkTarget](#externallinktarget) is `'_blank'`) from having the ability to control our page. No `rel` is set when its not `'_blank'`.
```js
window.$docsify = {
externalLinkTarget: '' // default: 'noopener'
};
```
## routerMode
- type: `String`

View File

@ -24,6 +24,7 @@ export default function () {
mergeNavbar: false,
formatUpdated: '',
externalLinkTarget: '_blank',
externalLinkRel: 'noopener',
routerMode: 'hash',
noCompileLinks: [],
relativePath: false

View File

@ -78,6 +78,7 @@ export class Compiler {
this.toc = []
this.cacheTOC = {}
this.linkTarget = config.externalLinkTarget || '_blank'
this.linkRel = this.linkTarget === '_blank' ? (config.externalLinkRel || 'noopener') : ''
this.contentBase = router.getBasePath()
const renderer = this._initRenderer()
@ -185,7 +186,7 @@ export class Compiler {
_initRenderer() {
const renderer = new marked.Renderer()
const {linkTarget, router, contentBase} = this
const {linkTarget, linkRel, router, contentBase} = this
const _self = this
const origin = {}
@ -243,6 +244,7 @@ export class Compiler {
href = router.toURL(href, null, router.getCurrentPath())
} else {
attrs += href.indexOf('mailto:') === 0 ? '' : ` target="${linkTarget}"`
attrs += href.indexOf('mailto:') === 0 ? '' : (linkRel !== '' ? ` rel="${linkRel}"` : '')
}
if (config.target) {