mirror of
https://github.com/gohugoio/hugo.git
synced 2025-04-28 06:30:33 +03:00
markup/goldmark: Use Ordinal to create default lineanchors
The `Ordinal` starts at 0, so with a `hl-` prefix, this gives `hl-0-1` as a starting point. Fixes #9567
This commit is contained in:
parent
78afdb88ab
commit
0f80be341f
3 changed files with 41 additions and 34 deletions
|
@ -23,10 +23,19 @@ import (
|
|||
"github.com/spf13/cast"
|
||||
|
||||
"github.com/gohugoio/hugo/config"
|
||||
"github.com/gohugoio/hugo/markup/converter/hooks"
|
||||
|
||||
"github.com/mitchellh/mapstructure"
|
||||
)
|
||||
|
||||
const (
|
||||
lineanchorsKey = "lineanchors"
|
||||
lineNosKey = "linenos"
|
||||
hlLinesKey = "hl_lines"
|
||||
linosStartKey = "linenostart"
|
||||
noHlKey = "nohl"
|
||||
)
|
||||
|
||||
var DefaultConfig = Config{
|
||||
// The highlighter style to use.
|
||||
// See https://xyproto.github.io/splash/docs/all.html
|
||||
|
@ -38,7 +47,6 @@ var DefaultConfig = Config{
|
|||
TabWidth: 4,
|
||||
}
|
||||
|
||||
//
|
||||
type Config struct {
|
||||
Style string
|
||||
|
||||
|
@ -133,6 +141,16 @@ func applyOptionsFromMap(optsm map[string]interface{}, cfg *Config) error {
|
|||
return mapstructure.WeakDecode(optsm, cfg)
|
||||
}
|
||||
|
||||
func applyOptionsFromCodeBlockContext(ctx hooks.CodeblockContext, cfg *Config) error {
|
||||
if cfg.LineAnchors == "" {
|
||||
const lineAnchorPrefix = "hl-"
|
||||
// Set it to the ordinal with a prefix.
|
||||
cfg.LineAnchors = fmt.Sprintf("%s%d", lineAnchorPrefix, ctx.Ordinal())
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// ApplyLegacyConfig applies legacy config from back when we had
|
||||
// Pygments.
|
||||
func ApplyLegacyConfig(cfg config.Provider, conf *Config) error {
|
||||
|
@ -191,13 +209,6 @@ func normalizeHighlightOptions(m map[string]interface{}) {
|
|||
return
|
||||
}
|
||||
|
||||
const (
|
||||
lineNosKey = "linenos"
|
||||
hlLinesKey = "hl_lines"
|
||||
linosStartKey = "linenostart"
|
||||
noHlKey = "nohl"
|
||||
)
|
||||
|
||||
baseLineNumber := 1
|
||||
if v, ok := m[linosStartKey]; ok {
|
||||
baseLineNumber = cast.ToInt(v)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue