feat(ux): add hover-reveal ¶ anchors, strip parens from nav

- Add pilcrow (¶) anchor link after heading text for deep-linking
- CSS: hidden by default, visible on heading hover, user-overridable
- Add strip_parens Tera filter for cleaner nav anchor labels
- Update test expectations for new heading format
This commit is contained in:
Timothy DeHerrera
2026-02-01 09:57:47 -07:00
parent fc9e75d687
commit ce8a9e8f00
4 changed files with 60 additions and 6 deletions

25
docs/static/style.css vendored
View File

@@ -193,6 +193,31 @@ h3 {
margin: 1.5rem 0 0.75rem;
}
/* Heading anchor links (¶) - hover reveal for deep-linking */
.heading-anchor {
visibility: hidden;
margin-left: 0.5em;
font-size: 0.75em;
color: var(--fg-muted);
text-decoration: none;
opacity: 0.5;
}
.heading-anchor:hover {
color: var(--accent);
opacity: 1;
}
/* Show anchor on heading hover */
h1:hover .heading-anchor,
h2:hover .heading-anchor,
h3:hover .heading-anchor,
h4:hover .heading-anchor,
h5:hover .heading-anchor,
h6:hover .heading-anchor {
visibility: visible;
}
p {
margin-bottom: 1rem;
}

View File

@@ -41,7 +41,7 @@
{% if page_path == item.path and page.toc and anchors %}
<div class="nav-anchors">
{% for anchor in anchors %}
<a href="#{{ anchor.id }}" class="anchor-link level-{{ anchor.level }}">{{ anchor.label }}</a>
<a href="#{{ anchor.id }}" class="anchor-link level-{{ anchor.level }}">{{ anchor.label | strip_parens }}</a>
{% endfor %}
</div>
{% endif %}
@@ -53,7 +53,7 @@
{% if page_path == child.path and page.toc and anchors %}
<div class="nav-anchors">
{% for anchor in anchors %}
<a href="#{{ anchor.id }}" class="anchor-link level-{{ anchor.level }}">{{ anchor.label }}</a>
<a href="#{{ anchor.id }}" class="anchor-link level-{{ anchor.level }}">{{ anchor.label | strip_parens }}</a>
{% endfor %}
</div>
{% endif %}