]> Nishi Git Mirror - aya.git/commitdiff
Update to use goldmark (Fixes #11)
authorJames Mills <1290234+prologic@users.noreply.github.com>
Thu, 16 Mar 2023 07:47:21 +0000 (17:47 +1000)
committerJames Mills <1290234+prologic@users.noreply.github.com>
Thu, 16 Mar 2023 07:47:21 +0000 (17:47 +1000)
go.mod
go.sum
main.go

diff --git a/go.mod b/go.mod
index e908abe808b30b2f8bfe061d0cfa36f73b7b27fd..ef558d1f19189790a3eec87d2091700deab418ab 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -3,11 +3,11 @@ module go.mills.io/zs
 go 1.18
 
 require (
-       github.com/russross/blackfriday/v2 v2.1.0
        github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06
        github.com/sirupsen/logrus v1.9.0
        github.com/spf13/cobra v1.6.1
-       go.mills.io/static v0.0.0-20230312034046-6dff09caed3b
+       github.com/yuin/goldmark v1.5.4
+       go.mills.io/static v0.0.0-20230316074605-51908d346ffc
        golang.org/x/sync v0.1.0
        gopkg.in/yaml.v2 v2.4.0
 )
@@ -15,12 +15,12 @@ require (
 require (
        github.com/NYTimes/gziphandler v1.1.1 // indirect
        github.com/cyphar/filepath-securejoin v0.2.3 // indirect
-       github.com/inconshreveable/mousetrap v1.0.1 // indirect
+       github.com/inconshreveable/mousetrap v1.1.0 // indirect
        github.com/julienschmidt/httprouter v1.3.0 // indirect
        github.com/kr/pretty v0.3.0 // indirect
        github.com/spf13/pflag v1.0.5 // indirect
        github.com/stretchr/testify v1.8.1 // indirect
        github.com/unrolled/logger v0.0.0-20201216141554-31a3694fe979 // indirect
-       golang.org/x/sys v0.3.0 // indirect
+       golang.org/x/sys v0.6.0 // indirect
        gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 // indirect
 )
diff --git a/go.sum b/go.sum
index 8894b326e1a81c25edc709c0b2c4879fd8a79d32..bff23abe5cdc3b994e1036a3e3a0b21e2c327d97 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -9,6 +9,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
 github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
 github.com/inconshreveable/mousetrap v1.0.1 h1:U3uMjPSQEBMNp1lFxmllqCPM6P5u/Xq7Pgzkat/bFNc=
 github.com/inconshreveable/mousetrap v1.0.1/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
 github.com/julienschmidt/httprouter v1.3.0 h1:U0609e9tgbseu3rBINet9P48AI/D3oJs4dN7jwJOQ1U=
 github.com/julienschmidt/httprouter v1.3.0/go.mod h1:JR6WtHb+2LUe8TCKY3cZOxFyyO8IZAc4RVcycCCAKdM=
 github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
@@ -22,7 +24,6 @@ github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZb
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
 github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k=
 github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
-github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk=
 github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
 github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06 h1:OkMGxebDjyw0ULyrTYWeN0UNCCkmCWfjPnIA2W6oviI=
 github.com/sabhiram/go-gitignore v0.0.0-20210923224102-525f6e181f06/go.mod h1:+ePHsJ1keEjQtpvf9HHw0f4ZeJ0TLRsxhunSI2hYJSs=
@@ -44,14 +45,20 @@ github.com/stretchr/testify v1.8.1 h1:w7B6lhMri9wdJUVmEZPGGhZzrYTPvgJArz7wNPgYKs
 github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
 github.com/unrolled/logger v0.0.0-20201216141554-31a3694fe979 h1:47+K4wN0S8L3fUwgZtPEBIfNqtAE3tUvBfvHVZJAXfg=
 github.com/unrolled/logger v0.0.0-20201216141554-31a3694fe979/go.mod h1:X5DBNY1yIVkuLwJP3BXlCoQCa5mGg7hPJPIA0Blwc44=
+github.com/yuin/goldmark v1.5.4 h1:2uY/xC0roWy8IBEGLgB1ywIoEJFGmRrX21YQcvGZzjU=
+github.com/yuin/goldmark v1.5.4/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 go.mills.io/static v0.0.0-20230312034046-6dff09caed3b h1:9mSSHQJztO83b4939B31Z8bCOlvQUei6bRhnJq8eRC0=
 go.mills.io/static v0.0.0-20230312034046-6dff09caed3b/go.mod h1:TmaEDwM+IgrCRyMxtVWtmSdoxLP3N6ehBa7AiOZj2Mk=
+go.mills.io/static v0.0.0-20230316074605-51908d346ffc h1:BMeFNGUZAQCfgo8DxUKxgGNrXQa1KglS5gZ4Kn5fUsQ=
+go.mills.io/static v0.0.0-20230316074605-51908d346ffc/go.mod h1:TmaEDwM+IgrCRyMxtVWtmSdoxLP3N6ehBa7AiOZj2Mk=
 golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
 golang.org/x/sync v0.1.0/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
 golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.0.0-20221010170243-090e33056c14/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.3.0 h1:w8ZOecv6NaNa/zC8944JTU3vz4u6Lagfk4RPQxv92NQ=
 golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/sys v0.6.0 h1:MVltZSvRTcU2ljQOhs94SXPftV6DCNnZViHeQps87pQ=
+golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
 gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
diff --git a/main.go b/main.go
index 93571503b1091e1798ee8cb9e2d1e896e618b4cf..86df72121970114e3b220199a7d27c6393d02872 100644 (file)
--- a/main.go
+++ b/main.go
@@ -16,10 +16,13 @@ import (
        "text/template"
        "time"
 
-       "github.com/russross/blackfriday/v2"
        ignore "github.com/sabhiram/go-gitignore"
        log "github.com/sirupsen/logrus"
        "github.com/spf13/cobra"
+       "github.com/yuin/goldmark"
+       "github.com/yuin/goldmark/extension"
+       "github.com/yuin/goldmark/parser"
+       "github.com/yuin/goldmark/renderer/html"
        "go.mills.io/static"
        "golang.org/x/sync/errgroup"
        "gopkg.in/yaml.v2"
@@ -369,14 +372,32 @@ func buildMarkdown(path string, w io.Writer, vars Vars) error {
        if err != nil {
                return err
        }
+
        content, err := render(body, v)
        if err != nil {
                return err
        }
-       v["content"] = string(blackfriday.Run(
-               []byte(content),
-               blackfriday.WithExtensions(blackfriday.CommonExtensions|blackfriday.AutoHeadingIDs),
-       ))
+
+       buf := &bytes.Buffer{}
+       gm := goldmark.New(
+               goldmark.WithExtensions(
+                       extension.GFM,
+                       extension.Linkify,
+               ),
+               goldmark.WithParserOptions(
+                       parser.WithAutoHeadingID(),
+               ),
+               goldmark.WithRendererOptions(
+                       html.WithHardWraps(),
+                       html.WithXHTML(),
+                       html.WithUnsafe(),
+               ),
+       )
+       if err := gm.Convert([]byte(content), buf); err != nil {
+               return err
+       }
+       v["content"] = buf.String()
+
        if w == nil {
                out, err := os.Create(filepath.Join(PUBDIR, renameExt(path, "", ".html")))
                if err != nil {
@@ -385,6 +406,7 @@ func buildMarkdown(path string, w io.Writer, vars Vars) error {
                defer out.Close()
                w = out
        }
+
        return buildHTML(filepath.Join(ZSDIR, v["layout"]), w, v)
 }