From e95db67b20163c8ab43f4a652b9b6dc7dc13a230 Mon Sep 17 00:00:00 2001
From: Anthony Fok <foka@debian.org>
Date: Wed, 5 Aug 2015 16:39:29 -0600
Subject: [PATCH] Add smartDashes flag for Blackfriday

To allow the end users to disable any form of smart dashes
(LaTeX-style or not) while keeping the rest of Blackfriday
SmartyPants features.

Depends on https://github.com/russross/blackfriday/pull/190
"Add HTML_SMARTYPANTS_DASHES for toggling smart dashes"
to be accepted by Blackfriday developers.
---
 docs/content/overview/configuration.md | 13 ++++++++++++-
 helpers/content.go                     |  6 ++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/docs/content/overview/configuration.md b/docs/content/overview/configuration.md
index 2a3f16f0b..95727f530 100644
--- a/docs/content/overview/configuration.md
+++ b/docs/content/overview/configuration.md
@@ -179,7 +179,7 @@ But Hugo does expose some options---as listed in the table below, matched with t
 <tr>
 <td class="purpose-title">Purpose:</td>
 <td class="purpose-description" colspan="2">Enable/Disable smart punctuation substitutions such as smart quotes, smart dashes, etc.
-May be fine-tuned with the <code>angledQuotes</code>, <code>fractions</code> and <code>latexDashes</code> flags below.</td>
+May be fine-tuned with the <code>angledQuotes</code>, <code>fractions</code>, <code>smartDashes</code> and <code>latexDashes</code> flags below.</td>
 </tr>
 
 <tr>
@@ -208,6 +208,17 @@ Blackfriday would still convert 1/2, 1/4 and 3/4 to ½&nbsp;(<code>&amp;frac12;<
 but only these three.</small></td>
 </tr>
 
+<tr>
+<td><code><strong>smartDashes</strong></code></td>
+<td><code>true</code></td>
+<td><code>HTML_SMARTYPANTS_DASHES</code></td>
+</tr>
+<tr>
+<td class="purpose-title">Purpose:</td>
+<td class="purpose-description" colspan="2">Enable/Disable smart dashes, i.e. turning hyphens into en&nbsp;dash or em&nbsp;dash.<br>
+Its behavior can be modified with the <code>latexDashes</code> flag listed below.</td>
+</tr>
+
 <tr>
 <td><code><strong>latexDashes</strong></code></td>
 <td><code>true</code></td>
diff --git a/helpers/content.go b/helpers/content.go
index 847d4dcbc..b42efaefe 100644
--- a/helpers/content.go
+++ b/helpers/content.go
@@ -45,6 +45,7 @@ type Blackfriday struct {
 	AngledQuotes    bool
 	Fractions       bool
 	HrefTargetBlank bool
+	SmartDashes     bool
 	LatexDashes     bool
 	PlainIDAnchors  bool
 	Extensions      []string
@@ -58,6 +59,7 @@ func NewBlackfriday() *Blackfriday {
 		AngledQuotes:    false,
 		Fractions:       true,
 		HrefTargetBlank: false,
+		SmartDashes:     true,
 		LatexDashes:     true,
 		PlainIDAnchors:  false,
 	}
@@ -169,6 +171,10 @@ func GetHTMLRenderer(defaultFlags int, ctx *RenderingContext) blackfriday.Render
 		htmlFlags |= blackfriday.HTML_HREF_TARGET_BLANK
 	}
 
+	if ctx.getConfig().SmartDashes {
+		htmlFlags |= blackfriday.HTML_SMARTYPANTS_DASHES
+	}
+
 	if ctx.getConfig().LatexDashes {
 		htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
 	}