Example of Attributes Render Hook in v0.82.0

Does anyone have an example of a working render hook using “Attributes (map)” working, specifically for class and id? The docs say it’s possible for v0.82.0 (which I have) but there is no example of how to use it for both the markdown and the HTML equivalent.

My use case: I have a link in the middle of a markdown file that needs to have a certain ID on it, so I can “select” it via JavaScript. I’m lost as to what the Markdown Syntax and the HTML syntax is for id and class for the “render-link.html” render hook placed inside of “layouts/_default/_markup/render-link.html”

1 Like

Support for attributes is limited to headings, code blocks, and block elements. Links and images are inline elements. See

See for a workaround.

Perhaps it is possible -in markdown file- to wrap the link with a shortcode {{<link-with-id id = "link-id">}} link {{</ link-with-id>}}

And then in the shortcode file replace the content of the <a> tag using Hugo’s replace function.
Similar to what is suggested here:


{{< a href="" id="foo" style="color: green" >}}
This is **bold** text.
{{< /a >}}


  {{- range $k, $v := .Params -}}
    {{- (printf " %s=%q" $k $v) | safeHTMLAttr -}}
  {{- end -}}
  {{- .Inner | .Page.RenderString -}}

Resulting HTML

<a href="" id="foo" style="color: green">This is <strong>bold</strong> text.</a>

Nice solution.

1 Like

I was afraid I would have to depend on a shortcode. Which is fine, except when I start nesting shortcodes and HTML stops being rendered.

This is the cleanest and best “a” link shortcode I’ve ever seen. Bravo, and many thanks. I will utilize this and re-think my nested shortcodes.


This topic was automatically closed 2 days after the last reply. New replies are no longer allowed.