mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 00:12:11 -05:00
Add a BlackFriday option for rel="nofollow" on external links
Add a configuration option "nofollowLinks". When set to "true" the "HTML_NOFOLLOW_LINKS" flag is being passed to Blackfriday. Thereby all *absolute* links will get a "nofollow" value for the "rel" attribute. Fixes #4722
This commit is contained in:
parent
d68367cbe7
commit
7a6192647a
3 changed files with 13 additions and 0 deletions
|
@ -43,6 +43,11 @@
|
||||||
Blackfriday flag: **`HTML_HREF_TARGET_BLANK`** <br>
|
Blackfriday flag: **`HTML_HREF_TARGET_BLANK`** <br>
|
||||||
Purpose: `true` opens <s>external links</s> **absolute** links in a new window or tab. While the `target="_blank"` attribute is typically used for external links, Blackfriday does that for _all_ absolute links ([ref](https://discourse.gohugo.io/t/internal-links-in-same-tab-external-links-in-new-tab/11048/8)). One needs to make note of this if they use absolute links throughout, for internal links too (for example, by setting `canonifyURLs` to `true` or via `absURL`).
|
Purpose: `true` opens <s>external links</s> **absolute** links in a new window or tab. While the `target="_blank"` attribute is typically used for external links, Blackfriday does that for _all_ absolute links ([ref](https://discourse.gohugo.io/t/internal-links-in-same-tab-external-links-in-new-tab/11048/8)). One needs to make note of this if they use absolute links throughout, for internal links too (for example, by setting `canonifyURLs` to `true` or via `absURL`).
|
||||||
|
|
||||||
|
`nofollowLinks`
|
||||||
|
: default: **`false`** <br>
|
||||||
|
Blackfriday flag: **`HTML_NOFOLLOW_LINKS`** <br>
|
||||||
|
Purpose: `true` creates <s>external links</s> **absolute** links with `nofollow` being added to their `rel` attribute. Thereby crawlers are advised to not follow the link. While the `rel="nofollow"` attribute is typically used for external links, Blackfriday does that for _all_ absolute links. One needs to make note of this if they use absolute links throughout, for internal links too (for example, by setting `canonifyURLs` to `true` or via `absURL`).
|
||||||
|
|
||||||
`plainIDAnchors`
|
`plainIDAnchors`
|
||||||
: default **`true`** <br>
|
: default **`true`** <br>
|
||||||
Blackfriday flag: **`FootnoteAnchorPrefix` and `HeaderIDSuffix`** <br>
|
Blackfriday flag: **`FootnoteAnchorPrefix` and `HeaderIDSuffix`** <br>
|
||||||
|
|
|
@ -108,6 +108,7 @@ type BlackFriday struct {
|
||||||
AngledQuotes bool
|
AngledQuotes bool
|
||||||
Fractions bool
|
Fractions bool
|
||||||
HrefTargetBlank bool
|
HrefTargetBlank bool
|
||||||
|
NofollowLinks bool
|
||||||
SmartDashes bool
|
SmartDashes bool
|
||||||
LatexDashes bool
|
LatexDashes bool
|
||||||
TaskLists bool
|
TaskLists bool
|
||||||
|
@ -124,6 +125,7 @@ func newBlackfriday(config map[string]interface{}) *BlackFriday {
|
||||||
"smartypantsQuotesNBSP": false,
|
"smartypantsQuotesNBSP": false,
|
||||||
"fractions": true,
|
"fractions": true,
|
||||||
"hrefTargetBlank": false,
|
"hrefTargetBlank": false,
|
||||||
|
"nofollowLinks": false,
|
||||||
"smartDashes": true,
|
"smartDashes": true,
|
||||||
"latexDashes": true,
|
"latexDashes": true,
|
||||||
"plainIDAnchors": true,
|
"plainIDAnchors": true,
|
||||||
|
@ -277,6 +279,10 @@ func (c *ContentSpec) getHTMLRenderer(defaultFlags int, ctx *RenderingContext) b
|
||||||
htmlFlags |= blackfriday.HTML_HREF_TARGET_BLANK
|
htmlFlags |= blackfriday.HTML_HREF_TARGET_BLANK
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ctx.Config.NofollowLinks {
|
||||||
|
htmlFlags |= blackfriday.HTML_NOFOLLOW_LINKS
|
||||||
|
}
|
||||||
|
|
||||||
if ctx.Config.SmartDashes {
|
if ctx.Config.SmartDashes {
|
||||||
htmlFlags |= blackfriday.HTML_SMARTYPANTS_DASHES
|
htmlFlags |= blackfriday.HTML_SMARTYPANTS_DASHES
|
||||||
}
|
}
|
||||||
|
|
|
@ -204,6 +204,7 @@ func TestGetHTMLRendererAllFlags(t *testing.T) {
|
||||||
{blackfriday.HTML_SMARTYPANTS_ANGLED_QUOTES},
|
{blackfriday.HTML_SMARTYPANTS_ANGLED_QUOTES},
|
||||||
{blackfriday.HTML_SMARTYPANTS_FRACTIONS},
|
{blackfriday.HTML_SMARTYPANTS_FRACTIONS},
|
||||||
{blackfriday.HTML_HREF_TARGET_BLANK},
|
{blackfriday.HTML_HREF_TARGET_BLANK},
|
||||||
|
{blackfriday.HTML_NOFOLLOW_LINKS},
|
||||||
{blackfriday.HTML_SMARTYPANTS_DASHES},
|
{blackfriday.HTML_SMARTYPANTS_DASHES},
|
||||||
{blackfriday.HTML_SMARTYPANTS_LATEX_DASHES},
|
{blackfriday.HTML_SMARTYPANTS_LATEX_DASHES},
|
||||||
}
|
}
|
||||||
|
@ -212,6 +213,7 @@ func TestGetHTMLRendererAllFlags(t *testing.T) {
|
||||||
ctx.Config.AngledQuotes = true
|
ctx.Config.AngledQuotes = true
|
||||||
ctx.Config.Fractions = true
|
ctx.Config.Fractions = true
|
||||||
ctx.Config.HrefTargetBlank = true
|
ctx.Config.HrefTargetBlank = true
|
||||||
|
ctx.Config.NofollowLinks = true
|
||||||
ctx.Config.LatexDashes = true
|
ctx.Config.LatexDashes = true
|
||||||
ctx.Config.PlainIDAnchors = true
|
ctx.Config.PlainIDAnchors = true
|
||||||
ctx.Config.SmartDashes = true
|
ctx.Config.SmartDashes = true
|
||||||
|
|
Loading…
Reference in a new issue