summaryrefslogtreecommitdiffstats
path: root/markup/goldmark/convert.go
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-04-12 10:15:02 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2023-04-12 14:41:32 +0200
commit5596dc24a0adc8907f52886a8e035e1bcd66dd8d (patch)
tree372bece1601ed69fc92e3925e6183b6a1b9293e2 /markup/goldmark/convert.go
parentd01731d53c7c9492cb9666a1223419691a95006c (diff)
markup/goldmark: Add config options for the typographer extension
Note that the config per language part of this will be handled in #10602. Updates #9772
Diffstat (limited to 'markup/goldmark/convert.go')
-rw-r--r--markup/goldmark/convert.go26
1 files changed, 24 insertions, 2 deletions
diff --git a/markup/goldmark/convert.go b/markup/goldmark/convert.go
index 3c8dbb299..efcfb7142 100644
--- a/markup/goldmark/convert.go
+++ b/markup/goldmark/convert.go
@@ -20,6 +20,7 @@ import (
"github.com/gohugoio/hugo/identity"
"github.com/gohugoio/hugo/markup/goldmark/codeblocks"
+ "github.com/gohugoio/hugo/markup/goldmark/goldmark_config"
"github.com/gohugoio/hugo/markup/goldmark/images"
"github.com/gohugoio/hugo/markup/goldmark/internal/extensions/attributes"
"github.com/gohugoio/hugo/markup/goldmark/internal/render"
@@ -120,8 +121,11 @@ func newMarkdown(pcfg converter.ProviderConfig) goldmark.Markdown {
extensions = append(extensions, extension.TaskList)
}
- if cfg.Extensions.Typographer {
- extensions = append(extensions, extension.Typographer)
+ if !cfg.Extensions.Typographer.Disable {
+ t := extension.NewTypographer(
+ extension.WithTypographicSubstitutions(toTypographicPunctuationMap(cfg.Extensions.Typographer)),
+ )
+ extensions = append(extensions, t)
}
if cfg.Extensions.DefinitionList {
@@ -278,3 +282,21 @@ func (p *parserContext) TableOfContents() *tableofcontents.Fragments {
}
return nil
}
+
+// Note: It's tempting to put this in the config package, but that doesn't work.
+// TODO(bep) create upstream issue.
+func toTypographicPunctuationMap(t goldmark_config.Typographer) map[extension.TypographicPunctuation][]byte {
+ return map[extension.TypographicPunctuation][]byte{
+ extension.LeftSingleQuote: []byte(t.LeftSingleQuote),
+ extension.RightSingleQuote: []byte(t.RightSingleQuote),
+ extension.LeftDoubleQuote: []byte(t.LeftDoubleQuote),
+ extension.RightDoubleQuote: []byte(t.RightDoubleQuote),
+ extension.EnDash: []byte(t.EnDash),
+ extension.EmDash: []byte(t.EmDash),
+ extension.Ellipsis: []byte(t.Ellipsis),
+ extension.LeftAngleQuote: []byte(t.LeftAngleQuote),
+ extension.RightAngleQuote: []byte(t.RightAngleQuote),
+ extension.Apostrophe: []byte(t.Apostrophe),
+ }
+
+}