Skip to content

Commit

Permalink
Restore heading self links (#2007)
Browse files Browse the repository at this point in the history
It was a change I did not notice when upgrading Docsy from 0.8.0 to 0.11.0. Docsy changed the way heading self links are generated: they used to be rendered with JS and now they use a Hugo render hook.

This means two things:
- We need to enable them explicitly by overriding the `_default/_markup/render-heading.html` template.
- We need to add the self heading ourselves to headings that are not rendered by Hugo, i.e. HTML headings that we create ourselves.

Signed-off-by: Kévin Commaille <[email protected]>
  • Loading branch information
zecakeh authored Nov 29, 2024
1 parent f64eec5 commit 7ec9b7f
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 2 deletions.
2 changes: 1 addition & 1 deletion changelogs/internal/newsfragments/1996.clarification
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Upgrade docsy to 0.11.0 and hugo to 0.138.0.
Upgrade docsy to 0.11.0 and hugo to 0.139.0.
1 change: 1 addition & 0 deletions changelogs/internal/newsfragments/2007.clarification
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Upgrade docsy to 0.11.0 and hugo to 0.139.0.
11 changes: 11 additions & 0 deletions layouts/_default/_markup/render-heading.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- /*

This is a heading render hook (https://gohugo.io/render-hooks/headings/)
using Docsy's heading self-links hook (https://www.docsy.dev/docs/adding-content/navigation/#heading-self-links).

This is used when a heading is encountered in markdown content to generate
the HTML for that heading. A self-link anchor is added at the end of the
heading.

*/ -}}
{{ template "_default/_markup/td-render-heading.html" . }}
11 changes: 11 additions & 0 deletions layouts/_default/_markup/td-heading-self-link.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{{- /*

A simplified copy of the inlined "_default/_markup/_td-heading-self-link.html"
template in Docsy's "_default/_markup/td-render-heading.html" template to be
able to reuse it when the heading has custom markup.

Takes a string which is the ID of the heading.

*/ -}}

<a class="td-heading-self-link" href="#{{ . | safeURL }}" aria-label="Heading self-link"></a>
4 changes: 3 additions & 1 deletion layouts/partials/events/render-event.html
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,16 @@
{{ $event_name := .event_name }}
{{ $desired_example_name := .desired_example_name }}
{{ $event_data := .event_data }}
{{ $anchor := anchorize $event_name }}

<section class="rendered-data event">

<details {{ if not .Site.Params.ui.rendered_data_collapsed }}open{{ end }}>
<summary>

<h1 id="{{ anchorize $event_name }}">
<h1 id="{{ $anchor }}">
{{ with .title }}{{ . | markdownify }}{{ else }}<code>{{ $event_name }}</code>{{ end }}
{{ template "_default/_markup/td-heading-self-link.html" $anchor }}
</h1>

</summary>
Expand Down
1 change: 1 addition & 0 deletions layouts/partials/openapi/render-operation.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
<h1 id="{{ $anchor }}">
<span class="http-api-method">{{ $method }}</span>
<span class="endpoint{{ if $operation_data.deprecated }} deprecated-inline{{ end }}">{{ $endpoint }}</span>
{{ template "_default/_markup/td-heading-self-link.html" $anchor }}
</h1>
</summary>

Expand Down

0 comments on commit 7ec9b7f

Please sign in to comment.