URI: 
       Add Markdown as an output format - 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 322d19a81fedbf423a047bdf286499d2e25d14be
   DIR parent 7cb484e121da73b63aab231ba29bb644b5f7965e
  HTML Author: Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
       Date:   Fri, 27 May 2022 15:19:02 +0200
       
       Add Markdown as an output format
       
       The motivation behind this is not to make it easier to publish Markdown files, as that sounds unusual.
       
       This is mainly meant for shortcodes that produces Markdown to be inlined.
       
       You would do this by creating shortcodes with `*.md` suffix (e.g. `layouts/shortcodes/myshortcode.md`).
       
       This output format is defined as plain text, and will use Go's much more lenient text template parser.
       
       Updates #9821
       
       Diffstat:
         M hugolib/shortcode_test.go           |      33 +++++++++++++++++++++++++++++++
         M media/mediaType.go                  |       4 +++-
         M media/mediaType_test.go             |       2 +-
         M output/outputFormat.go              |       9 +++++++++
         M output/outputFormat_test.go         |       2 +-
       
       5 files changed, 47 insertions(+), 3 deletions(-)
       ---
   DIR diff --git a/hugolib/shortcode_test.go b/hugolib/shortcode_test.go
       @@ -909,3 +909,36 @@ outputs: ["html", "css", "csv", "json"]
        
                }
        }
       +
       +// #9821
       +func TestShortcodeMarkdownOutputFormat(t *testing.T) {
       +        t.Parallel()
       +
       +        files := `
       +-- config.toml --
       +-- content/p1.md --
       +---
       +title: "p1"
       +---
       +{{< foo >}}
       +-- layouts/shortcodes/foo.md --
       +§§§
       +<x
       +§§§
       +-- layouts/_default/single.html --
       +{{ .Content }}
       +`
       +
       +        b := NewIntegrationTestBuilder(
       +                IntegrationTestConfig{
       +                        T:           t,
       +                        TxtarString: files,
       +                        Running:     true,
       +                },
       +        ).Build()
       +
       +        b.AssertFileContent("public/p1/index.html", `
       +<x
       +        `)
       +
       +}
   DIR diff --git a/media/mediaType.go b/media/mediaType.go
       @@ -257,7 +257,8 @@ var (
                OpenTypeFontType = newMediaType("font", "otf", []string{"otf"})
        
                // Common document types
       -        PDFType = newMediaType("application", "pdf", []string{"pdf"})
       +        PDFType      = newMediaType("application", "pdf", []string{"pdf"})
       +        MarkdownType = newMediaType("text", "markdown", []string{"md", "markdown"})
        
                // Common video types
                AVIType  = newMediaType("video", "x-msvideo", []string{"avi"})
       @@ -278,6 +279,7 @@ var DefaultTypes = Types{
                SCSSType,
                SASSType,
                HTMLType,
       +        MarkdownType,
                JavascriptType,
                TypeScriptType,
                TSXType,
   DIR diff --git a/media/mediaType_test.go b/media/mediaType_test.go
       @@ -63,7 +63,7 @@ func TestDefaultTypes(t *testing.T) {
        
                }
        
       -        c.Assert(len(DefaultTypes), qt.Equals, 33)
       +        c.Assert(len(DefaultTypes), qt.Equals, 34)
        }
        
        func TestGetByType(t *testing.T) {
   DIR diff --git a/output/outputFormat.go b/output/outputFormat.go
       @@ -133,6 +133,14 @@ var (
                        Weight: 10,
                }
        
       +        MarkdownFormat = Format{
       +                Name:        "MARKDOWN",
       +                MediaType:   media.MarkdownType,
       +                BaseName:    "index",
       +                Rel:         "alternate",
       +                IsPlainText: true,
       +        }
       +
                JSONFormat = Format{
                        Name:        "JSON",
                        MediaType:   media.JSONType,
       @@ -183,6 +191,7 @@ var DefaultFormats = Formats{
                CSVFormat,
                HTMLFormat,
                JSONFormat,
       +        MarkdownFormat,
                WebAppManifestFormat,
                RobotsTxtFormat,
                RSSFormat,
   DIR diff --git a/output/outputFormat_test.go b/output/outputFormat_test.go
       @@ -68,7 +68,7 @@ func TestDefaultTypes(t *testing.T) {
                c.Assert(RSSFormat.NoUgly, qt.Equals, true)
                c.Assert(CalendarFormat.IsHTML, qt.Equals, false)
        
       -        c.Assert(len(DefaultFormats), qt.Equals, 10)
       +        c.Assert(len(DefaultFormats), qt.Equals, 11)
        
        }