Skip to content

Commit 4769018

Browse files
committed
Added support for rel='noopener'
1 parent 1d3246a commit 4769018

File tree

3 files changed

+17
-1
lines changed

3 files changed

+17
-1
lines changed

Diff for: docs/configuration.md

+13
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,19 @@ window.$docsify = {
405405
};
406406
```
407407

408+
## externalLinkRel
409+
410+
- type: `String`
411+
- default: `noopener`
412+
413+
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'`.
414+
415+
```js
416+
window.$docsify = {
417+
externalLinkTarget: '' // default: 'noopener'
418+
};
419+
```
420+
408421
## routerMode
409422

410423
- type: `String`

Diff for: src/core/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export default function () {
2424
mergeNavbar: false,
2525
formatUpdated: '',
2626
externalLinkTarget: '_blank',
27+
externalLinkRel: 'noopener',
2728
routerMode: 'hash',
2829
noCompileLinks: [],
2930
relativePath: false

Diff for: src/core/render/compiler.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@ export class Compiler {
7878
this.toc = []
7979
this.cacheTOC = {}
8080
this.linkTarget = config.externalLinkTarget || '_blank'
81+
this.linkRel = this.linkTarget === '_blank' ? (config.externalLinkRel || 'noopener') : ''
8182
this.contentBase = router.getBasePath()
8283

8384
const renderer = this._initRenderer()
@@ -185,7 +186,7 @@ export class Compiler {
185186

186187
_initRenderer() {
187188
const renderer = new marked.Renderer()
188-
const {linkTarget, router, contentBase} = this
189+
const {linkTarget, linkRel, router, contentBase} = this
189190
const _self = this
190191
const origin = {}
191192

@@ -243,6 +244,7 @@ export class Compiler {
243244
href = router.toURL(href, null, router.getCurrentPath())
244245
} else {
245246
attrs += href.indexOf('mailto:') === 0 ? '' : ` target="${linkTarget}"`
247+
attrs += href.indexOf('mailto:') === 0 ? '' : (linkRel !== '' ? ` rel="${linkRel}"` : '')
246248
}
247249

248250
if (config.target) {

0 commit comments

Comments
 (0)