diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-04-12 10:15:02 +0200 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2023-04-12 14:41:32 +0200 |
commit | 5596dc24a0adc8907f52886a8e035e1bcd66dd8d (patch) | |
tree | 372bece1601ed69fc92e3925e6183b6a1b9293e2 /markup/goldmark/convert.go | |
parent | d01731d53c7c9492cb9666a1223419691a95006c (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.go | 26 |
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), + } + +} |