55{{ $summary := or (index $signer.summary $lang) (index $signer.summary "en") }}
66{{ $discount := $signer.discount }}
77{{ $slug := or $signer.slug (path.Base (path.Clean $ctx.File.Dir)) }}
8+ {{ $headerID := anchorize $name }}
89{{ $connections := slice }}
910{{ if $signer.features.usb }}{{ $connections = $connections | append "USB" }}{{ end }}
1011{{ if $signer.features.qr }}{{ $connections = $connections | append "QR" }}{{ end }}
2223 {{ end }}
2324 </ div >
2425 < div class ="col ">
25- < h1 class ="mb-1 "> {{ $name }}</ h1 >
26+ < h1 class ="mb-1 " id ="{{ $headerID }} ">
27+ < a class ="header-anchor " href ="#{{ $headerID }} " aria-hidden ="true "> 🔗</ a >
28+ {{ $name }}
29+ </ h1 >
2630 {{ with $summary }}< p class ="text-muted mb-2 "> {{ . }}</ p > {{ end }}
2731 < div class ="d-flex gap-2 flex-wrap mb-2 ">
2832 {{ if $signer.bitcoin_only }}< span class ="badge bg-warning text-dark "> {{ i18n "hardware_badge_bitcoin_only" }}</ span > {{ end }}
@@ -48,7 +52,11 @@ <h1 class="mb-1">{{ $name }}</h1>
4852 < div class ="content "> {{ . }}</ div >
4953 {{ else }}
5054 < div class ="content ">
51- < h2 > {{ i18n "hardware_expect_title" }}</ h2 >
55+ {{ $expectID := anchorize (i18n "hardware_expect_title") }}
56+ < h2 id ="{{ $expectID }} ">
57+ < a class ="header-anchor " href ="#{{ $expectID }} " aria-hidden ="true "> 🔗</ a >
58+ {{ i18n "hardware_expect_title" }}
59+ </ h2 >
5260 < p > {{ i18n "hardware_expect_intro" (dict "Name" $name "Connections" $connectionLabel) }}</ p >
5361 < ul >
5462 {{ if $signer.features.usb }}< li > {{ i18n "hardware_expect_usb" }}</ li > {{ end }}
@@ -129,12 +137,21 @@ <h2>{{ i18n "hardware_expect_title" }}</h2>
129137 {{ if not (in $steps $step) }}{{ $steps = $steps | append $step }}{{ end }}
130138 {{ end }}
131139 < section class ="mt-4 ">
132- < h3 class ="h5 mb-2 "> {{ i18n "hardware_instructions" | default "Instructions" }}</ h3 >
140+ {{ $instructionsTitle := i18n "hardware_instructions" | default "Instructions" }}
141+ {{ $instructionsID := anchorize $instructionsTitle }}
142+ < h3 class ="h5 mb-2 " id ="{{ $instructionsID }} ">
143+ < a class ="header-anchor " href ="#{{ $instructionsID }} " aria-hidden ="true "> 🔗</ a >
144+ {{ $instructionsTitle }}
145+ </ h3 >
133146 {{ range $stepOrder }}
134147 {{ $step := . }}
135148 {{ if in $steps $step }}
136149 {{ $title := or (index $titleMap $step) (title (replace $step "-" " ")) }}
137- < h4 class ="h6 mt-3 mb-1 "> {{ $title }}</ h4 >
150+ {{ $stepID := printf "instruction-%s" (anchorize $title) }}
151+ < h4 class ="h6 mt-3 mb-1 " id ="{{ $stepID }} ">
152+ < a class ="header-anchor " href ="#{{ $stepID }} " aria-hidden ="true "> 🔗</ a >
153+ {{ $title }}
154+ </ h4 >
138155 {{ with (index $introMap $step) }}< p class ="text-muted small mb-2 "> {{ . }}</ p > {{ end }}
139156 < div class ="row row-cols-1 row-cols-md-2 row-cols-lg-3 g-3 mb-3 ">
140157 {{ range $screens }}
0 commit comments