hugo

Unnamed repository; edit this file 'description' to name the repository.

git clone git://git.shimmy1996.com/hugo.git
commit 1651beb2c162f64a55d17f8f62223d82418569c9
parent 2b6063c3e388056597af88709ff017d15f53c962
Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Date:   Tue,  4 Jan 2022 13:26:23 +0100

Remove mmark

Closes #9350

Diffstat:
Mgo.mod | 1-
Mgo.sum | 2--
Mhelpers/content.go | 3---
Mhelpers/general_test.go | 1-
Mhugolib/page_test.go | 1-
Mhugolib/shortcode_test.go | 17+++++------------
Mmarkup/markup.go | 4----
Mmarkup/markup_test.go | 1-
Dmarkup/mmark/convert.go | 137-------------------------------------------------------------------------------
Dmarkup/mmark/convert_test.go | 72------------------------------------------------------------------------
Dmarkup/mmark/renderer.go | 42------------------------------------------
11 files changed, 5 insertions(+), 276 deletions(-)
diff --git a/go.mod b/go.mod
@@ -36,7 +36,6 @@ require (
 	github.com/kyokomi/emoji/v2 v2.2.8
 	github.com/magefile/mage v1.11.0
 	github.com/mattn/go-isatty v0.0.14
-	github.com/miekg/mmark v1.3.6
 	github.com/mitchellh/hashstructure v1.1.0
 	github.com/mitchellh/mapstructure v1.4.3
 	github.com/muesli/smartcrop v0.3.0
diff --git a/go.sum b/go.sum
@@ -420,8 +420,6 @@ github.com/mattn/go-isatty v0.0.14/go.mod h1:7GGIvUiUoEMVVmxf/4nioHXj79iQHKdU27k
 github.com/mattn/go-runewidth v0.0.9 h1:Lm995f3rfxdpd6TSmuVCHVb/QhupuXlYr8sCI/QdE+0=
 github.com/mattn/go-runewidth v0.0.9/go.mod h1:H031xJmbD/WCDINGzjvQ9THkh0rPKHF+m2gUSrubnMI=
 github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
-github.com/miekg/mmark v1.3.6 h1:t47x5vThdwgLJzofNsbsAl7gmIiJ7kbDQN5BxwBmwvY=
-github.com/miekg/mmark v1.3.6/go.mod h1:w7r9mkTvpS55jlfyn22qJ618itLryxXBhA7Jp3FIlkw=
 github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
 github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
 github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y=
diff --git a/helpers/content.go b/helpers/content.go
@@ -215,9 +215,6 @@ func (c *ContentSpec) ResolveMarkup(in string) string {
 	case "html", "htm":
 		return "html"
 	default:
-		if in == "mmark" {
-			Deprecated("Markup type mmark", "See https://gohugo.io//content-management/formats/#list-of-content-formats", true)
-		}
 		if conv := c.Converters.Get(in); conv != nil {
 			return conv.Name()
 		}
diff --git a/helpers/general_test.go b/helpers/general_test.go
@@ -46,7 +46,6 @@ func TestResolveMarkup(t *testing.T) {
 		{"rst", "rst"},
 		{"pandoc", "pandoc"},
 		{"pdc", "pandoc"},
-		{"mmark", "mmark"},
 		{"html", "html"},
 		{"htm", "html"},
 		{"org", "org"},
diff --git a/hugolib/page_test.go b/hugolib/page_test.go
@@ -375,7 +375,6 @@ func testAllMarkdownEnginesForPages(t *testing.T,
 		shouldExecute func() bool
 	}{
 		{"md", func() bool { return true }},
-		{"mmark", func() bool { return true }},
 		{"ad", func() bool { return asciidocext.Supports() }},
 		{"rst", func() bool { return rst.Supports() }},
 	}
diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go
@@ -533,17 +533,7 @@ e`,
 			filepath.FromSlash("public/sect/doc8/index.html"),
 			"<div class=\"document\">\n\n\n<p><strong>Shortcodes:</strong> <em>b: b c: c</em></p>\n</div>",
 		},
-		{
-			"sect/doc9.mmark", `
----
-menu:
-  main:
-    parent: 'parent'
----
-**Shortcodes:** *b: {{< b >}} c: {{% c %}}*`,
-			filepath.FromSlash("public/sect/doc9/index.html"),
-			"<p><strong>Shortcodes:</strong> <em>b: b c: c</em></p>\n",
-		},
+
 		// Issue #1229: Menus not available in shortcode.
 		{
 			"sect/doc10.md", `---
@@ -562,6 +552,9 @@ tags:
 			"sect/doc11.md", `---
 tags:
 - Bugs
+menu:
+  main:
+    parent: 'parent'
 ---
 **Tags:** {{< tags >}}`,
 			filepath.FromSlash("public/sect/doc11/index.html"),
@@ -1390,7 +1383,7 @@ outputs: ["html", "css", "csv", "json"]
 
 		b.Build(BuildCfg{})
 
-		//helpers.PrintFs(b.Fs.Destination, "public", os.Stdout)
+		// helpers.PrintFs(b.Fs.Destination, "public", os.Stdout)
 
 		for i := 0; i < numPages; i++ {
 			b.AssertFileContent(fmt.Sprintf("public/page%d/index.html", i), "Short-HTML")
diff --git a/markup/markup.go b/markup/markup.go
@@ -27,7 +27,6 @@ import (
 	"github.com/gohugoio/hugo/markup/asciidocext"
 	"github.com/gohugoio/hugo/markup/blackfriday"
 	"github.com/gohugoio/hugo/markup/converter"
-	"github.com/gohugoio/hugo/markup/mmark"
 	"github.com/gohugoio/hugo/markup/pandoc"
 	"github.com/gohugoio/hugo/markup/rst"
 )
@@ -73,9 +72,6 @@ func NewConverterProvider(cfg converter.ProviderConfig) (ConverterProvider, erro
 	if err := add(blackfriday.Provider); err != nil {
 		return nil, err
 	}
-	if err := add(mmark.Provider); err != nil {
-		return nil, err
-	}
 	if err := add(asciidocext.Provider, "ad", "adoc"); err != nil {
 		return nil, err
 	}
diff --git a/markup/markup_test.go b/markup/markup_test.go
@@ -39,7 +39,6 @@ func TestConverterRegistry(t *testing.T) {
 	c.Assert(r.Get("markdown").Name(), qt.Equals, "goldmark")
 
 	checkName("goldmark")
-	checkName("mmark")
 	checkName("asciidocext")
 	checkName("rst")
 	checkName("pandoc")
diff --git a/markup/mmark/convert.go b/markup/mmark/convert.go
@@ -1,137 +0,0 @@
-// Copyright 2019 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package mmark converts Markdown to HTML using MMark v1.
-package mmark
-
-import (
-	"github.com/gohugoio/hugo/identity"
-	"github.com/gohugoio/hugo/markup/blackfriday/blackfriday_config"
-	"github.com/gohugoio/hugo/markup/converter"
-	"github.com/miekg/mmark"
-)
-
-// Provider is the package entry point.
-var Provider converter.ProviderProvider = provider{}
-
-type provider struct {
-}
-
-func (p provider) New(cfg converter.ProviderConfig) (converter.Provider, error) {
-	defaultBlackFriday := cfg.MarkupConfig.BlackFriday
-	defaultExtensions := getMmarkExtensions(defaultBlackFriday)
-
-	return converter.NewProvider("mmark", func(ctx converter.DocumentContext) (converter.Converter, error) {
-		b := defaultBlackFriday
-		extensions := defaultExtensions
-
-		if ctx.ConfigOverrides != nil {
-			var err error
-			b, err = blackfriday_config.UpdateConfig(b, ctx.ConfigOverrides)
-			if err != nil {
-				return nil, err
-			}
-			extensions = getMmarkExtensions(b)
-		}
-
-		return &mmarkConverter{
-			ctx:        ctx,
-			b:          b,
-			extensions: extensions,
-			cfg:        cfg,
-		}, nil
-	}), nil
-}
-
-type mmarkConverter struct {
-	ctx        converter.DocumentContext
-	extensions int
-	b          blackfriday_config.Config
-	cfg        converter.ProviderConfig
-}
-
-func (c *mmarkConverter) Convert(ctx converter.RenderContext) (converter.Result, error) {
-	r := getHTMLRenderer(c.ctx, c.b, c.cfg)
-	return mmark.Parse(ctx.Src, r, c.extensions), nil
-}
-
-func (c *mmarkConverter) Supports(feature identity.Identity) bool {
-	return false
-}
-
-func getHTMLRenderer(
-	ctx converter.DocumentContext,
-	cfg blackfriday_config.Config,
-	pcfg converter.ProviderConfig) mmark.Renderer {
-	var (
-		flags      int
-		documentID string
-	)
-
-	documentID = ctx.DocumentID
-
-	renderParameters := mmark.HtmlRendererParameters{
-		FootnoteAnchorPrefix:       cfg.FootnoteAnchorPrefix,
-		FootnoteReturnLinkContents: cfg.FootnoteReturnLinkContents,
-	}
-
-	if documentID != "" && !cfg.PlainIDAnchors {
-		renderParameters.FootnoteAnchorPrefix = documentID + ":" + renderParameters.FootnoteAnchorPrefix
-	}
-
-	htmlFlags := flags
-	htmlFlags |= mmark.HTML_FOOTNOTE_RETURN_LINKS
-
-	return &mmarkRenderer{
-		BlackfridayConfig: cfg,
-		Config:            pcfg,
-		Renderer:          mmark.HtmlRendererWithParameters(htmlFlags, "", "", renderParameters),
-	}
-}
-
-func getMmarkExtensions(cfg blackfriday_config.Config) int {
-	flags := 0
-	flags |= mmark.EXTENSION_TABLES
-	flags |= mmark.EXTENSION_FENCED_CODE
-	flags |= mmark.EXTENSION_AUTOLINK
-	flags |= mmark.EXTENSION_SPACE_HEADERS
-	flags |= mmark.EXTENSION_CITATION
-	flags |= mmark.EXTENSION_TITLEBLOCK_TOML
-	flags |= mmark.EXTENSION_HEADER_IDS
-	flags |= mmark.EXTENSION_AUTO_HEADER_IDS
-	flags |= mmark.EXTENSION_UNIQUE_HEADER_IDS
-	flags |= mmark.EXTENSION_FOOTNOTES
-	flags |= mmark.EXTENSION_SHORT_REF
-	flags |= mmark.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK
-	flags |= mmark.EXTENSION_INCLUDE
-
-	for _, extension := range cfg.Extensions {
-		if flag, ok := mmarkExtensionMap[extension]; ok {
-			flags |= flag
-		}
-	}
-	return flags
-}
-
-var mmarkExtensionMap = map[string]int{
-	"tables":                 mmark.EXTENSION_TABLES,
-	"fencedCode":             mmark.EXTENSION_FENCED_CODE,
-	"autolink":               mmark.EXTENSION_AUTOLINK,
-	"laxHtmlBlocks":          mmark.EXTENSION_LAX_HTML_BLOCKS,
-	"spaceHeaders":           mmark.EXTENSION_SPACE_HEADERS,
-	"hardLineBreak":          mmark.EXTENSION_HARD_LINE_BREAK,
-	"footnotes":              mmark.EXTENSION_FOOTNOTES,
-	"noEmptyLineBeforeBlock": mmark.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK,
-	"headerIds":              mmark.EXTENSION_HEADER_IDS,
-	"autoHeaderIds":          mmark.EXTENSION_AUTO_HEADER_IDS,
-}
diff --git a/markup/mmark/convert_test.go b/markup/mmark/convert_test.go
@@ -1,72 +0,0 @@
-// Copyright 2019 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package mmark
-
-import (
-	"testing"
-
-	"github.com/gohugoio/hugo/config"
-
-	"github.com/gohugoio/hugo/common/loggers"
-
-	qt "github.com/frankban/quicktest"
-	"github.com/gohugoio/hugo/markup/blackfriday/blackfriday_config"
-	"github.com/gohugoio/hugo/markup/converter"
-	"github.com/miekg/mmark"
-)
-
-func TestGetMmarkExtensions(t *testing.T) {
-	b := blackfriday_config.Default
-
-	// TODO: This is doing the same just with different marks...
-	type data struct {
-		testFlag int
-	}
-
-	b.Extensions = []string{"tables"}
-	b.ExtensionsMask = []string{""}
-	allExtensions := []data{
-		{mmark.EXTENSION_TABLES},
-		{mmark.EXTENSION_FENCED_CODE},
-		{mmark.EXTENSION_AUTOLINK},
-		{mmark.EXTENSION_SPACE_HEADERS},
-		{mmark.EXTENSION_CITATION},
-		{mmark.EXTENSION_TITLEBLOCK_TOML},
-		{mmark.EXTENSION_HEADER_IDS},
-		{mmark.EXTENSION_AUTO_HEADER_IDS},
-		{mmark.EXTENSION_UNIQUE_HEADER_IDS},
-		{mmark.EXTENSION_FOOTNOTES},
-		{mmark.EXTENSION_SHORT_REF},
-		{mmark.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK},
-		{mmark.EXTENSION_INCLUDE},
-	}
-
-	actualFlags := getMmarkExtensions(b)
-	for _, e := range allExtensions {
-		if actualFlags&e.testFlag != e.testFlag {
-			t.Errorf("Flag %v was not found in the list of extensions.", e)
-		}
-	}
-}
-
-func TestConvert(t *testing.T) {
-	c := qt.New(t)
-	p, err := Provider.New(converter.ProviderConfig{Cfg: config.New(), Logger: loggers.NewErrorLogger()})
-	c.Assert(err, qt.IsNil)
-	conv, err := p.New(converter.DocumentContext{})
-	c.Assert(err, qt.IsNil)
-	b, err := conv.Convert(converter.RenderContext{Src: []byte("testContent")})
-	c.Assert(err, qt.IsNil)
-	c.Assert(string(b.Bytes()), qt.Equals, "<p>testContent</p>\n")
-}
diff --git a/markup/mmark/renderer.go b/markup/mmark/renderer.go
@@ -1,42 +0,0 @@
-// Copyright 2019 The Hugo Authors. All rights reserved.
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-package mmark
-
-import (
-	"bytes"
-	"strings"
-
-	"github.com/gohugoio/hugo/markup/blackfriday/blackfriday_config"
-	"github.com/gohugoio/hugo/markup/converter"
-	"github.com/miekg/mmark"
-)
-
-// hugoHTMLRenderer wraps a blackfriday.Renderer, typically a blackfriday.Html
-// adding some custom behaviour.
-type mmarkRenderer struct {
-	Config            converter.ProviderConfig
-	BlackfridayConfig blackfriday_config.Config
-	mmark.Renderer
-}
-
-// BlockCode renders a given text as a block of code.
-func (r *mmarkRenderer) BlockCode(out *bytes.Buffer, text []byte, lang string, caption []byte, subfigure bool, callouts bool) {
-	if r.Config.MarkupConfig.Highlight.CodeFences {
-		str := strings.Trim(string(text), "\n\r")
-		highlighted, _ := r.Config.Highlight(str, lang, "")
-		out.WriteString(highlighted)
-	} else {
-		r.Renderer.BlockCode(out, text, lang, caption, subfigure, callouts)
-	}
-}