mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-29 05:42:09 -05:00
Attributes for code fences should be placed after the lang indicator only
Fixes #8313
This commit is contained in:
parent
35dedf15c0
commit
b725253f9e
3 changed files with 28 additions and 4 deletions
|
@ -68,6 +68,14 @@ There are some current limitations: For tables you can currently only apply it t
|
||||||
{.list}
|
{.list}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Note that attributes in [code fences](/content-management/syntax-highlighting/#highlighting-in-code-fences) must come after the opening tag, with any other highlighting processing instruction, e.g.:
|
||||||
|
|
||||||
|
````
|
||||||
|
```go {.myclass linenos=table,hl_lines=[8,"15-17"],linenostart=199}
|
||||||
|
// ... code
|
||||||
|
```
|
||||||
|
````
|
||||||
|
|
||||||
autoHeadingIDType ("github") {{< new-in "0.62.2" >}}
|
autoHeadingIDType ("github") {{< new-in "0.62.2" >}}
|
||||||
: The strategy used for creating auto IDs (anchor names). Available types are `github`, `github-ascii` and `blackfriday`. `github` produces GitHub-compatible IDs, `github-ascii` will drop any non-Ascii characters after accent normalization, and `blackfriday` will make the IDs work as with [Blackfriday](#blackfriday), the default Markdown engine before Hugo 0.60. Note that if Goldmark is your default Markdown engine, this is also the strategy used in the [anchorize](/functions/anchorize/) template func.
|
: The strategy used for creating auto IDs (anchor names). Available types are `github`, `github-ascii` and `blackfriday`. `github` produces GitHub-compatible IDs, `github-ascii` will drop any non-Ascii characters after accent normalization, and `blackfriday` will make the IDs work as with [Blackfriday](#blackfriday), the default Markdown engine before Hugo 0.60. Note that if Goldmark is your default Markdown engine, this is also the strategy used in the [anchorize](/functions/anchorize/) template func.
|
||||||
|
|
||||||
|
|
|
@ -242,9 +242,19 @@ func TestConvertAttributes(t *testing.T) {
|
||||||
withBlockAttributes(conf)
|
withBlockAttributes(conf)
|
||||||
conf.Highlight.CodeFences = true
|
conf.Highlight.CodeFences = true
|
||||||
},
|
},
|
||||||
"```bash\necho 'foo';\n````\n{.myclass id=\"myid\"}",
|
"```bash {.myclass id=\"myid\"}\necho 'foo';\n````\n",
|
||||||
"<div class=\"highlight myclass\" id=\"myid\"><pre style",
|
"<div class=\"highlight myclass\" id=\"myid\"><pre style",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"Code block, CodeFences=true,linenos=table",
|
||||||
|
func(conf *markup_config.Config) {
|
||||||
|
withBlockAttributes(conf)
|
||||||
|
conf.Highlight.CodeFences = true
|
||||||
|
},
|
||||||
|
"```bash {linenos=table .myclass id=\"myid\"}\necho 'foo';\n````\n{ .adfadf }",
|
||||||
|
[]string{"div class=\"highlight myclass\" id=\"myid\"><div s",
|
||||||
|
"table style"},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"Paragraph",
|
"Paragraph",
|
||||||
withBlockAttributes,
|
withBlockAttributes,
|
||||||
|
|
|
@ -97,10 +97,16 @@ type transformer struct{}
|
||||||
func (a *transformer) Transform(node *ast.Document, reader text.Reader, pc parser.Context) {
|
func (a *transformer) Transform(node *ast.Document, reader text.Reader, pc parser.Context) {
|
||||||
var attributes = make([]ast.Node, 0, 500)
|
var attributes = make([]ast.Node, 0, 500)
|
||||||
ast.Walk(node, func(node ast.Node, entering bool) (ast.WalkStatus, error) {
|
ast.Walk(node, func(node ast.Node, entering bool) (ast.WalkStatus, error) {
|
||||||
if entering && node.Kind() == kindAttributesBlock && !node.HasBlankPreviousLines() {
|
if entering && node.Kind() == kindAttributesBlock {
|
||||||
attributes = append(attributes, node)
|
// Attributes for fenced code blocks are handled in their own extension,
|
||||||
return ast.WalkSkipChildren, nil
|
// but note that we currently only support code block attributes when
|
||||||
|
// CodeFences=true.
|
||||||
|
if node.PreviousSibling().Kind() != ast.KindFencedCodeBlock && !node.HasBlankPreviousLines() {
|
||||||
|
attributes = append(attributes, node)
|
||||||
|
return ast.WalkSkipChildren, nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return ast.WalkContinue, nil
|
return ast.WalkContinue, nil
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue