Skip to main content

max / makenotwork

v0.6.19: library page spacing fixes library_downloads.html: treat Some("") cover_image_url as no-cover. A blank string previously rendered a 200px-tall broken-image column with the item title bleeding through as alt text, leaving a large empty gap above the Downloads section. .library-page .library-header: align-items center so when a real cover is present the title+creator sit at the cover's vertical midpoint instead of pinned to the top. .discussion-section: drop unscoped max-width: 720px and margin: 2rem auto. On wide containers (library-page, item-page) the auto-centering looked indented next to neighbouring full-width cards. Article and player pages already constrain via their own parent layout, so dropping the inner max-width doesn't widen reading contexts. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Author: Max J. <87768334+MaxJMath@users.noreply.github.com> · 2026-05-21 04:31 UTC
Commit: 5fef806106e7be84d014668eb6f3ae243ccb9216
Parent: 4fe7d07
4 files changed, +17 insertions, -9 deletions
@@ -3551,7 +3551,7 @@ dependencies = [
3551 3551
3552 3552 [[package]]
3553 3553 name = "makenotwork"
3554 - version = "0.6.18"
3554 + version = "0.6.19"
3555 3555 dependencies = [
3556 3556 "anyhow",
3557 3557 "argon2",
@@ -1,6 +1,6 @@
1 1 [package]
2 2 name = "makenotwork"
3 - version = "0.6.18"
3 + version = "0.6.19"
4 4 edition = "2024"
5 5 license-file = "LICENSE"
6 6
@@ -1133,9 +1133,13 @@ form button:hover {
1133 1133 DISCUSSION SECTION
1134 1134 =========================================== */
1135 1135
1136 + /* Sits inside the parent container; previously had max-width: 720px and
1137 + margin: 2rem auto, which looked indented on wide pages (.library-page,
1138 + .item-page) where every neighbouring card filled the container. Let the
1139 + parent dictate width — article-page already constrains via
1140 + .article-container; player pages have their own narrow layout. */
1136 1141 .discussion-section {
1137 - max-width: 720px;
1138 - margin: 2rem auto;
1142 + margin: 2rem 0;
1139 1143 padding: 1.5rem;
1140 1144 border: 1px solid var(--border);
1141 1145 font-family: var(--font-mono);
@@ -1782,7 +1786,7 @@ form button:hover {
1782 1786 grid-template-columns: 200px 1fr;
1783 1787 gap: var(--space-5);
1784 1788 margin-bottom: var(--space-6);
1785 - align-items: start;
1789 + align-items: center;
1786 1790 }
1787 1791
1788 1792 .library-page .library-header.no-cover { grid-template-columns: 1fr; }
@@ -16,13 +16,17 @@
16 16 <a href="/library">Your library</a>
17 17 </p>
18 18
19 - <div class="library-header{% if item.cover_image_url.is_none() %} no-cover{% endif %}">
20 - {% if let Some(img) = item.cover_image_url %}
19 + {# A creator may save an empty cover_image_url (Some("")). Treat that
20 + like None so we don't reserve a 200px column with broken-image alt
21 + text. The cover wrapper is omitted entirely; CSS .no-cover collapses
22 + the grid to a single column. #}
23 + <div class="library-header{% if item.cover_image_url.as_deref().unwrap_or("").is_empty() %} no-cover{% endif %}">
24 + {% if let Some(img) = item.cover_image_url %}{% if !img.is_empty() %}
21 25 <div class="library-cover">
22 26 <img src="{{ img }}" alt="{{ item.title }}">
23 27 </div>
24 - {% endif %}
25 - <div>
28 + {% endif %}{% endif %}
29 + <div class="library-header-body">
26 30 <h1 class="library-title">{{ item.title }}</h1>
27 31 <p class="library-creator">
28 32 by <a href="/u/{{ creator_username }}">{{ creator_username }}</a>