]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
markup/goldmark: Update the CJK extension to allow specifying line break styles
authorOMOTO Tsukasa <tsukasa@oomo.to>
Sun, 29 Oct 2023 09:13:56 +0000 (18:13 +0900)
committerGitHub <noreply@github.com>
Sun, 29 Oct 2023 09:13:56 +0000 (10:13 +0100)
This commit follows https://github.com/yuin/goldmark/pull/411

go.mod
go.sum
markup/goldmark/convert.go
markup/goldmark/convert_test.go
markup/goldmark/goldmark_config/config.go

diff --git a/go.mod b/go.mod
index 943b6ff764388cf1da14a168e8181715aaf41574..adb87109420f0ee0deacb77263bed1199d3f29a5 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -63,7 +63,7 @@ require (
        github.com/spf13/pflag v1.0.5
        github.com/tdewolff/minify/v2 v2.12.9
        github.com/tdewolff/parse/v2 v2.6.8
-       github.com/yuin/goldmark v1.5.6
+       github.com/yuin/goldmark v1.6.0
        github.com/yuin/goldmark-emoji v1.0.2
        go.uber.org/atomic v1.11.0
        go.uber.org/automaxprocs v1.5.3
diff --git a/go.sum b/go.sum
index f537477a9057e20086ded487358ea5acdce14d8c..0f8e72028823e3615a554151fd74aaee2f48c58d 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -446,8 +446,8 @@ github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9dec
 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.3.7/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
-github.com/yuin/goldmark v1.5.6 h1:COmQAWTCcGetChm3Ig7G/t8AFAN00t+o8Mt4cf7JpwA=
-github.com/yuin/goldmark v1.5.6/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68=
+github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/goldmark-emoji v1.0.2 h1:c/RgTShNgHTtc6xdz2KKI74jJr6rWi7FPgnP9GAsO5s=
 github.com/yuin/goldmark-emoji v1.0.2/go.mod h1:RhP/RWpexdp+KHs7ghKnifRoIs/Bq4nDS7tRbCkOwKY=
 go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU=
index d6668778328c33954d1270cdae71d3077d6d93ee..6ebcd8a7779f581ff236ec028bba7468ea8899d4 100644 (file)
@@ -140,7 +140,11 @@ func newMarkdown(pcfg converter.ProviderConfig) goldmark.Markdown {
        if cfg.Extensions.CJK.Enable {
                opts := []extension.CJKOption{}
                if cfg.Extensions.CJK.EastAsianLineBreaks {
-                       opts = append(opts, extension.WithEastAsianLineBreaks())
+                       if cfg.Extensions.CJK.EastAsianLineBreaksStyle == "css3draft" {
+                               opts = append(opts, extension.WithEastAsianLineBreaks(extension.EastAsianLineBreaksCSS3Draft))
+                       } else {
+                               opts = append(opts, extension.WithEastAsianLineBreaks())
+                       }
                }
 
                if cfg.Extensions.CJK.EscapedSpace {
index 6d73b301f00b21ec4b31a8d4155c3f7d24608583..c97156f7a89a18e2f94887fb5d193b172c7c8c09 100644 (file)
@@ -675,6 +675,60 @@ eastAsianLineBreaks=true
        c.Assert(got, qt.Contains, "<p>私は太郎です。プログラミングが好きで、運動が苦手です。</p>\n")
 }
 
+func TestConvertCJKWithExtensionWithEastAsianLineBreaksOptionWithSimple(t *testing.T) {
+       c := qt.New(t)
+
+       content := `
+私は太郎です。
+Programming が好きで、
+運動が苦手です。
+`
+
+       confStr := `
+[markup]
+[markup.goldmark]
+[markup.goldmark.extensions.CJK]
+enable=true
+eastAsianLineBreaks=true
+eastAsianLineBreaksStyle="simple"
+`
+
+       cfg := config.FromTOMLConfigString(confStr)
+       conf := testconfig.GetTestConfig(nil, cfg)
+
+       b := convert(c, conf, content)
+       got := string(b.Bytes())
+
+       c.Assert(got, qt.Contains, "<p>私は太郎です。\nProgramming が好きで、運動が苦手です。</p>\n")
+}
+
+func TestConvertCJKWithExtensionWithEastAsianLineBreaksOptionWithStyle(t *testing.T) {
+       c := qt.New(t)
+
+       content := `
+私は太郎です。
+Programming が好きで、
+運動が苦手です。
+`
+
+       confStr := `
+[markup]
+[markup.goldmark]
+[markup.goldmark.extensions.CJK]
+enable=true
+eastAsianLineBreaks=true
+eastAsianLineBreaksStyle="css3draft"
+`
+
+       cfg := config.FromTOMLConfigString(confStr)
+       conf := testconfig.GetTestConfig(nil, cfg)
+
+       b := convert(c, conf, content)
+       got := string(b.Bytes())
+
+       c.Assert(got, qt.Contains, "<p>私は太郎です。Programming が好きで、運動が苦手です。</p>\n")
+}
+
 func TestConvertCJKWithExtensionWithEscapedSpaceOption(t *testing.T) {
        c := qt.New(t)
 
index dfbcc5a90bcd1d539a2f0fee9b5e86fb11253c39..cdfb4e7cc00ecffdf590a50cc46097b865397e7a 100644 (file)
@@ -44,9 +44,10 @@ var Default = Config{
                LinkifyProtocol: "https",
                TaskList:        true,
                CJK: CJK{
-                       Enable:              false,
-                       EastAsianLineBreaks: false,
-                       EscapedSpace:        false,
+                       Enable:                   false,
+                       EastAsianLineBreaks:      false,
+                       EastAsianLineBreaksStyle: "simple",
+                       EscapedSpace:             false,
                },
        },
        Renderer: Renderer{
@@ -118,6 +119,9 @@ type CJK struct {
        // Whether softline breaks between east asian wide characters should be ignored.
        EastAsianLineBreaks bool
 
+       // Styles of Line Breaking of EastAsianLineBreaks: "simple" or "css3draft"
+       EastAsianLineBreaksStyle string
+
        // Whether a '\' escaped half-space(0x20) should not be rendered.
        EscapedSpace bool
 }