diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-02-07 18:08:46 +0100 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-02-08 19:52:55 +0100 |
commit | 2681633db8d340d2dc59cf801419874d572fc704 (patch) | |
tree | 74451c9bc4249a387aacf8071127d880cfea07db /markup/markup_config | |
parent | 1b2472825664763c0b88807b0d193e73553423ec (diff) |
markup/goldmark: Add attributes support for blocks (tables etc.)
E.g.:
```
> foo
> bar
{.myclass}
```
There are some current limitations: For tables you can currently only apply it to the full table, and for lists the ul/ol-nodes only, e.g.:
```
* Fruit
* Apple
* Orange
* Banana
{.fruits}
* Dairy
* Milk
* Cheese
{.dairies}
{.list}
```
Fixes #7548
Diffstat (limited to 'markup/markup_config')
-rw-r--r-- | markup/markup_config/config.go | 13 | ||||
-rw-r--r-- | markup/markup_config/config_test.go | 13 |
2 files changed, 26 insertions, 0 deletions
diff --git a/markup/markup_config/config.go b/markup/markup_config/config.go index 376350c95..725e04b84 100644 --- a/markup/markup_config/config.go +++ b/markup/markup_config/config.go @@ -44,6 +44,8 @@ type Config struct { func Decode(cfg config.Provider) (conf Config, err error) { conf = Default + normalizeConfig(cfg) + m := cfg.GetStringMap("markup") if m == nil { return @@ -65,6 +67,17 @@ func Decode(cfg config.Provider) (conf Config, err error) { return } +func normalizeConfig(cfg config.Provider) { + // Changed from a bool in 0.81.0 + const attrKey = "markup.goldmark.parser.attribute" + av := cfg.Get(attrKey) + if avb, ok := av.(bool); ok { + cfg.Set(attrKey, goldmark_config.ParserAttribute{ + Title: avb, + }) + } +} + func applyLegacyConfig(cfg config.Provider, conf *Config) error { if bm := cfg.GetStringMap("blackfriday"); bm != nil { // Legacy top level blackfriday config. diff --git a/markup/markup_config/config_test.go b/markup/markup_config/config_test.go index 89da62bab..4a1f1232b 100644 --- a/markup/markup_config/config_test.go +++ b/markup/markup_config/config_test.go @@ -46,6 +46,8 @@ func TestConfig(t *testing.T) { c.Assert(err, qt.IsNil) c.Assert(conf.Goldmark.Renderer.Unsafe, qt.Equals, true) c.Assert(conf.BlackFriday.Fractions, qt.Equals, true) + c.Assert(conf.Goldmark.Parser.Attribute.Title, qt.Equals, true) + c.Assert(conf.Goldmark.Parser.Attribute.Block, qt.Equals, false) c.Assert(conf.AsciidocExt.WorkingFolderCurrent, qt.Equals, true) c.Assert(conf.AsciidocExt.Extensions[0], qt.Equals, "asciidoctor-html5s") @@ -63,6 +65,14 @@ func TestConfig(t *testing.T) { v.Set("footnoteReturnLinkContents", "myreturn") v.Set("pygmentsStyle", "hugo") v.Set("pygmentsCodefencesGuessSyntax", true) + + v.Set("markup", map[string]interface{}{ + "goldmark": map[string]interface{}{ + "parser": map[string]interface{}{ + "attribute": false, // Was changed to a struct in 0.81.0 + }, + }, + }) conf, err := Decode(v) c.Assert(err, qt.IsNil) @@ -72,5 +82,8 @@ func TestConfig(t *testing.T) { c.Assert(conf.Highlight.Style, qt.Equals, "hugo") c.Assert(conf.Highlight.CodeFences, qt.Equals, true) c.Assert(conf.Highlight.GuessSyntax, qt.Equals, true) + c.Assert(conf.Goldmark.Parser.Attribute.Title, qt.Equals, false) + c.Assert(conf.Goldmark.Parser.Attribute.Block, qt.Equals, false) + }) } |