mirror of
https://github.com/gohugoio/hugo.git
synced 2025-08-23 21:53:09 +02:00
markup/goldmark: Update the CJK extension to allow specifying line break styles
This commit follows https://github.com/yuin/goldmark/pull/411
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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)
|
||||
|
||||
|
@@ -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
|
||||
}
|
||||
|
Reference in New Issue
Block a user