URI: 
       markup/goldmark: Make the autoID type config a string - hugo - [fork] hugo port for 9front
  HTML git clone git@git.drkhsh.at/hugo.git
   DIR Log
   DIR Files
   DIR Refs
   DIR Submodules
   DIR README
   DIR LICENSE
       ---
   DIR commit 8f071fc159ce9a0fc0ea14a73bde8f299bedd109
   DIR parent 469351d5b6a1521069c8d82539476714df16a094
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Sun,  5 Jan 2020 11:29:22 +0100
       
       markup/goldmark: Make the autoID type config a string
       
       To potentially make room for one more.
       
       See #6707
       
       Diffstat:
         M markup/goldmark/autoid.go           |       6 ++++--
         M markup/goldmark/convert.go          |       6 +++---
         M markup/goldmark/convert_test.go     |       4 +++-
         M markup/goldmark/goldmark_config/co… |      17 ++++++++++++-----
       
       4 files changed, 22 insertions(+), 11 deletions(-)
       ---
   DIR diff --git a/markup/goldmark/autoid.go b/markup/goldmark/autoid.go
       @@ -19,6 +19,8 @@ import (
                "unicode"
                "unicode/utf8"
        
       +        "github.com/gohugoio/hugo/markup/goldmark/goldmark_config"
       +
                "github.com/gohugoio/hugo/common/text"
        
                "github.com/yuin/goldmark/ast"
       @@ -85,10 +87,10 @@ type idFactory struct {
                vals      map[string]struct{}
        }
        
       -func newIDFactory(asciiOnly bool) *idFactory {
       +func newIDFactory(idType string) *idFactory {
                return &idFactory{
                        vals:      make(map[string]struct{}),
       -                asciiOnly: asciiOnly,
       +                asciiOnly: idType == goldmark_config.AutoHeadingIDTypeGitHubAscii,
                }
        }
        
   DIR diff --git a/markup/goldmark/convert.go b/markup/goldmark/convert.go
       @@ -28,8 +28,8 @@ import (
                "github.com/spf13/afero"
        
                "github.com/gohugoio/hugo/hugofs"
       -
                "github.com/gohugoio/hugo/markup/converter"
       +        "github.com/gohugoio/hugo/markup/goldmark/goldmark_config"
                "github.com/gohugoio/hugo/markup/highlight"
                "github.com/gohugoio/hugo/markup/tableofcontents"
                "github.com/yuin/goldmark"
       @@ -57,7 +57,7 @@ func (p provide) New(cfg converter.ProviderConfig) (converter.Provider, error) {
                                cfg: cfg,
                                md:  md,
                                sanitizeAnchorName: func(s string) string {
       -                                return sanitizeAnchorNameString(s, cfg.MarkupConfig.Goldmark.Parser.AutoHeadingIDAsciiOnly)
       +                                return sanitizeAnchorNameString(s, cfg.MarkupConfig.Goldmark.Parser.AutoHeadingIDType == goldmark_config.AutoHeadingIDTypeGitHub)
                                },
                        }, nil
                }), nil
       @@ -280,7 +280,7 @@ func (c *goldmarkConverter) Supports(feature identity.Identity) bool {
        }
        
        func (c *goldmarkConverter) newParserContext(rctx converter.RenderContext) *parserContext {
       -        ctx := parser.NewContext(parser.WithIDs(newIDFactory(c.cfg.MarkupConfig.Goldmark.Parser.AutoHeadingIDAsciiOnly)))
       +        ctx := parser.NewContext(parser.WithIDs(newIDFactory(c.cfg.MarkupConfig.Goldmark.Parser.AutoHeadingIDType)))
                ctx.Set(tocEnableKey, rctx.RenderTOC)
                return &parserContext{
                        Context: ctx,
   DIR diff --git a/markup/goldmark/convert_test.go b/markup/goldmark/convert_test.go
       @@ -17,6 +17,8 @@ import (
                "strings"
                "testing"
        
       +        "github.com/gohugoio/hugo/markup/goldmark/goldmark_config"
       +
                "github.com/gohugoio/hugo/markup/highlight"
        
                "github.com/gohugoio/hugo/markup/markup_config"
       @@ -169,7 +171,7 @@ func TestConvertAutoIDAsciiOnly(t *testing.T) {
        ## God is Good: 神真美好
        `
                mconf := markup_config.Default
       -        mconf.Goldmark.Parser.AutoHeadingIDAsciiOnly = true
       +        mconf.Goldmark.Parser.AutoHeadingIDType = goldmark_config.AutoHeadingIDTypeGitHubAscii
                b := convert(c, mconf, content)
                got := string(b.Bytes())
        
   DIR diff --git a/markup/goldmark/goldmark_config/config.go b/markup/goldmark/goldmark_config/config.go
       @@ -14,6 +14,11 @@
        // Package goldmark_config holds Goldmark related configuration.
        package goldmark_config
        
       +const (
       +        AutoHeadingIDTypeGitHub      = "github"
       +        AutoHeadingIDTypeGitHubAscii = "github-ascii"
       +)
       +
        // DefaultConfig holds the default Goldmark configuration.
        var Default = Config{
                Extensions: Extensions{
       @@ -29,8 +34,9 @@ var Default = Config{
                        Unsafe: false,
                },
                Parser: Parser{
       -                AutoHeadingID: true,
       -                Attribute:     true,
       +                AutoHeadingID:     true,
       +                AutoHeadingIDType: AutoHeadingIDTypeGitHub,
       +                Attribute:         true,
                },
        }
        
       @@ -69,9 +75,10 @@ type Parser struct {
                // auto generated heading ids.
                AutoHeadingID bool
        
       -        // When AutoHeadingID is enabled this will generate IDs with Ascii
       -        // characters only.
       -        AutoHeadingIDAsciiOnly bool
       +        // The strategy to use when generating heading IDs.
       +        // Available options are "github", "github-ascii".
       +        // Default is "github", which will create GitHub-compatible anchor names.
       +        AutoHeadingIDType string
        
                // Enables custom attributes.
                Attribute bool