Skip to content

Commit 378d7bb

Browse files
authored
Merge pull request #917 from vkallore/develop
Fix #914
2 parents 8f496d8 + 11762cb commit 378d7bb

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
@@ -418,6 +418,19 @@ window.$docsify = {
418418
};
419419
```
420420

421+
## externalLinkRel
422+
423+
- type: `String`
424+
- default: `noopener`
425+
426+
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'`.
427+
428+
```js
429+
window.$docsify = {
430+
externalLinkTarget: '' // default: 'noopener'
431+
};
432+
```
433+
421434
## routerMode
422435

423436
- type: `String`

Diff for: src/core/config.js

+1
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export default function () {
2727
externalLinkTarget: '_blank',
2828
// this config for the corner
2929
cornerExternalLinkTarget: '_blank',
30+
externalLinkRel: 'noopener',
3031
routerMode: 'hash',
3132
noCompileLinks: [],
3233
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)