Commit c31e8bfa41
c31e8bfa414cdc1fe035a5d6d55a477f77525dd7
parent: 036f01c663
Verified · cmc
cmc <hello@cleberg.net> · 2026-08-03 20:25 UTC
remove bubbles.town vote widget, keep comment link
Drop the third-party vote.js script and its mount div so posts no longer
auto-fetch from bubbles.town (174 pages), completing onion
self-containment. The opt-in 'comment on Bubbles' link stays. Remove the
now-orphaned .bubbles-vote CSS rule.
Layout: unified · split
README.md
+4 −2
| @@ -118,8 +118,10 @@ absolute `img.cleberg.net` URLs, so local previews load images from the |
| 118 | 118 | live host and need no symlink. |
| 119 | 119 | |
| 120 | 120 | Once assets are same-origin, the vhost CSP can tighten `img-src`, |
| 121 | | `style-src`, and `font-src` back to `'self'`. After deploying, purge the |
| 122 | | Cloudflare cache (responses carry a 31-day `max-age`). |
| 121 | `style-src`, and `font-src` back to `'self'`, and drop `bubbles.town` |
| 122 | from `script-src`/`connect-src` (the vote widget was removed; only a |
| 123 | plain link to Bubbles remains). After deploying, purge the Cloudflare |
| 124 | cache (responses carry a 31-day `max-age`). |
| 123 | 125 | |
| 124 | 126 | ## Creating New Blog Posts |
| 125 | 127 | |
theme/static/styles.css
−1
| @@ -3,7 +3,6 @@ a, a:visited { color: #0000ff; } |
| 3 | 3 | nav ul { list-style: none; padding: 0; display: flex; flex-direction: row; } |
| 4 | 4 | nav ul li { padding-right: 0.5rem;} |
| 5 | 5 | img { max-width: 100%; } |
| 6 | | .bubbles-vote { min-height: 20px; margin-top: 1rem; } |
| 7 | 6 | .post-list { padding: 0; padding-inline-start: 0; } |
| 8 | 7 | .post-list-item { display: flex; list-style: none; align-items: baseline; } |
| 9 | 8 | .post-list-item time { padding-right: 0.5rem; white-space: nowrap; } |
theme/templates/post.html
−2
| @@ -7,13 +7,11 @@ |
| 7 | 7 | {% elif project_description is defined %} |
| 8 | 8 | <meta property="og:description" content="{{ project_description }}" /> |
| 9 | 9 | {% endif %} |
| 10 | | <script src="https://bubbles.town/vote.js" defer></script> |
| 11 | 10 | {% endblock %} |
| 12 | 11 | {% block main %} |
| 13 | 12 | <article> |
| 14 | 13 | <h1>{{ post.title }}</h1> |
| 15 | 14 | <p><time datetime='{{ post.date|strftime("%Y-%m-%d") }}'>{{ post.date|strftime("%Y-%m-%d") }}</time>{% if post.description is defined %} · {{ post.description }}{% endif %}</p> |
| 16 | | <div class="bubbles-vote"></div> |
| 17 | 15 | <div>{{ post.html | safe }}</div> |
| 18 | 16 | <div><a href="mailto:hello@cleberg.net">Reply via email →</a></div> |
| 19 | 17 | <div><i>...or, comment on this post on <a href="https://bubbles.town/source/cleberg.net">Bubbles</a>!</i></div> |