Skip to main content

max / makenotwork

Move the reader Copy link into the article, dropping the last two footers Finishes the site-footer consolidation. The two reader pages kept a second footer because it held a data-copy-link control that base.html's site-footer cannot offer: that footer is global chrome and the link needs the current item or post. The control moves into each page's existing .article-footer, beside the tags on text_reader and the blog crumb on blog_post. It reads better there than it did before: it used to sit below the whole discussion section, so on a post with comments the share control for the piece was several screens under the piece. The handler is delegated on [data-copy-link] at the document, so relocating the element needed no JS change. .text-reader-footer is gone from the stylesheet, both the plain and the .article-page-scoped copy, and .reader-actions replaces it. Also fixes the .lib-text-footer comment, which distinguished itself from the class this commit deletes. Dropped with the footers: the tagline "Fair distribution for creatives of all kinds", which appeared only on these two pages. Nothing carries it now. If it should be site-wide it belongs in site-footer, which is a separate call.
Co-Authored-By
Claude Opus 5 (1M context) <noreply@anthropic.com>
Author: Max Johnson <me@maxj.phd> · 2026-08-05 21:32 UTC
Signed with PGP, not checked
Commit: ce0a38d68e7fc583ada6f173adbe70de2ae203b0
Parent: 5d7533d
3 files changed, +18 insertions, -35 deletions
@@ -2268,21 +2268,18 @@
2268 2268 text-decoration: none;
2269 2269 }
2270 2270
2271 - .article-page .text-reader-footer {
2271 + /* Share controls at the end of the article, inside .article-footer beside
2272 + the tags or the blog crumb. Was a page-bottom footer below the comments
2273 + until the site-footer consolidation; the control belongs with the piece
2274 + it copies, not under the discussion. */
2275 + .article-page .reader-actions {
2272 2276 font-family: var(--font-mono);
2273 - text-align: center;
2274 - padding: var(--gap-page);
2275 2277 font-size: var(--text-note);
2276 - color: var(--content-muted);
2277 - border-top: 1px solid var(--border);
2278 + margin-top: var(--gap-section);
2278 2279 }
2279 2280
2280 - .article-page .text-reader-footer a {
2281 - color: var(--content);
2282 - text-decoration: none;
2283 - }
2284 -
2285 - .article-page .text-reader-footer a:hover { text-decoration: underline; }
2281 + .article-page .reader-actions a { color: var(--content); text-decoration: none; }
2282 + .article-page .reader-actions a:hover { text-decoration: underline; }
2286 2283
2287 2284 /* Blog-specific: nav crumb above the article. */
2288 2285 .article-page .blog-nav {
@@ -6628,18 +6625,6 @@
6628 6625 .doc-backlinks-list a { color: var(--content); text-decoration: none; }
6629 6626 .doc-backlinks-list a:hover { text-decoration: underline; }
6630 6627
6631 - .text-reader-footer {
6632 - font-family: var(--font-mono);
6633 - text-align: center;
6634 - padding: var(--gap-page);
6635 - font-size: var(--text-note);
6636 - color: var(--content-muted);
6637 - border-top: 1px solid var(--border);
6638 - }
6639 -
6640 - .text-reader-footer a { color: var(--content); text-decoration: none; }
6641 - .text-reader-footer a:hover { text-decoration: underline; }
6642 -
6643 6628 /* Docs index page */
6644 6629 .docs-index {
6645 6630 max-width: 680px;
@@ -10484,8 +10469,8 @@
10484 10469 /* Footer below the item-footer (was inline on library_downloads.html). */
10485 10470 .library-page .item-footer-sub { margin-top: var(--gap-peer); }
10486 10471
10487 - /* library_text.html footer (terse text-page footer, distinct from the
10488 - text_reader.html .text-reader-footer that has its own classed style). */
10472 + /* library_text.html footer: a terse in-page footer for the library's own
10473 + text view, unrelated to base.html's site-footer. */
10489 10474 .article-page .lib-text-footer {
10490 10475 text-align: center;
10491 10476 padding: var(--gap-page);
@@ -69,13 +69,12 @@
69 69 <div class="blog-nav">
70 70 <a href="/p/{{ project_slug }}/blog">Back to all posts</a>
71 71 </div>
72 +
73 + <div class="reader-actions">
74 + <a href="/p/{{ project_slug }}/blog/{{ post_slug }}" data-copy-link>Copy link</a>
75 + </div>
72 76 </footer>
73 77 </article>
74 78
75 79 {% include "partials/discussion_section.html" %}
76 -
77 - <footer class="text-reader-footer">
78 - <a href="/p/{{ project_slug }}/blog/{{ post_slug }}" data-copy-link>Copy link</a> &middot;
79 - <a href="/">Makenot<span class="dot">.</span>work</a> | Fair distribution for creatives of all kinds
80 - </footer>
81 80 {% endblock %}
@@ -109,13 +109,12 @@
109 109 {% endfor %}
110 110 </div>
111 111 {% endif %}
112 +
113 + <div class="reader-actions">
114 + <a href="/i/{{ item.id }}" data-copy-link>Copy link</a>
115 + </div>
112 116 </footer>
113 117 </article>
114 118
115 119 {% include "partials/discussion_section.html" %}
116 -
117 - <footer class="text-reader-footer">
118 - <a href="/i/{{ item.id }}" data-copy-link>Copy link</a> &middot;
119 - <a href="/">Makenot<span class="dot">.</span>work</a> | Fair distribution for creatives of all kinds
120 - </footer>
121 120 {% endblock %}