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:
Stefan Neuhaus
2018-05-27 23:14:34 +02:00
committed by Bjørn Erik Pedersen
parent d68367cbe7
commit 7a6192647a
3 changed files with 13 additions and 0 deletions

View File

@@ -108,6 +108,7 @@ type BlackFriday struct {
AngledQuotes bool
Fractions bool
HrefTargetBlank bool
NofollowLinks bool
SmartDashes bool
LatexDashes bool
TaskLists bool
@@ -124,6 +125,7 @@ func newBlackfriday(config map[string]interface{}) *BlackFriday {
"smartypantsQuotesNBSP": false,
"fractions": true,
"hrefTargetBlank": false,
"nofollowLinks": false,
"smartDashes": true,
"latexDashes": true,
"plainIDAnchors": true,
@@ -277,6 +279,10 @@ func (c *ContentSpec) getHTMLRenderer(defaultFlags int, ctx *RenderingContext) b
htmlFlags |= blackfriday.HTML_HREF_TARGET_BLANK
}
if ctx.Config.NofollowLinks {
htmlFlags |= blackfriday.HTML_NOFOLLOW_LINKS
}
if ctx.Config.SmartDashes {
htmlFlags |= blackfriday.HTML_SMARTYPANTS_DASHES
}

View File

@@ -204,6 +204,7 @@ func TestGetHTMLRendererAllFlags(t *testing.T) {
{blackfriday.HTML_SMARTYPANTS_ANGLED_QUOTES},
{blackfriday.HTML_SMARTYPANTS_FRACTIONS},
{blackfriday.HTML_HREF_TARGET_BLANK},
{blackfriday.HTML_NOFOLLOW_LINKS},
{blackfriday.HTML_SMARTYPANTS_DASHES},
{blackfriday.HTML_SMARTYPANTS_LATEX_DASHES},
}
@@ -212,6 +213,7 @@ func TestGetHTMLRendererAllFlags(t *testing.T) {
ctx.Config.AngledQuotes = true
ctx.Config.Fractions = true
ctx.Config.HrefTargetBlank = true
ctx.Config.NofollowLinks = true
ctx.Config.LatexDashes = true
ctx.Config.PlainIDAnchors = true
ctx.Config.SmartDashes = true