sites/randogoth.com/bbs/templates/article.html
randogoth 4238af304e fix: key threads on the canonical URL, and space the header box
SITEURL is empty in this config, so rendering the thread key into the template
produced a relative path. Threads would have been keyed on /pastfetch.html and
orphaned the moment the site moved or gained a prefix. The page computes
location.origin + location.pathname instead, which is unambiguous and needs no
configuration.

The fill in the REPLIES header ran straight into the count, which read as
'────0 messages'. Every other box on the board keeps a space there.
2026-10-06 18:14:23 +03:00

31 lines
2.4 KiB
HTML

{% extends "base.html" %}
{% block title %}{{ article.title|striptags }} · {{ SITENAME }}{% endblock %}
{% block content %}
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
<pre class="msghdr desktop-only"> Msg : <b>{{ "%-44s"|format(article.slug) }}</b> Area : <b>{{ article.category }}</b>
From : <b>{{ "%-44s"|format(article.author|default(AUTHOR, true)|string) }}</b> Date : <b>{{ article.date.strftime('%d %b %Y') }}</b>
Subj : <span class="subj">{{ article.title|striptags }}</span>{% if article.tags %}
Keys : {% for t in article.tags %}<a href="{{ SITEURL }}/{{ t.url }}">{{ t }}</a>{% if not loop.last %}, {% endif %}{% endfor %}{% endif %}</pre>
<pre class="msghdr mobile-only"> Msg : <b>{{ article.slug }}</b></pre>
<pre class="msghdr mobile-only"> Area : <b>{{ article.category }}</b></pre>
<pre class="msghdr mobile-only"> From : <b>{{ article.author|default(AUTHOR, true)|string }}</b></pre>
<pre class="msghdr mobile-only"> Date : <b>{{ article.date.strftime('%d %b %Y') }}</b></pre>
<pre class="msghdr mobile-only"> Subj : <span class="subj">{{ article.title|striptags }}</span></pre>
{%- if article.tags %}
<pre class="msghdr mobile-only"> Keys : {% for t in article.tags %}<a href="{{ SITEURL }}/{{ t.url }}">{{ t }}</a>{% if not loop.last %}, {% endif %}{% endfor %}</pre>
{%- endif %}
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
<div class="msgbody">{{ article.content }}</div>
<pre class="tagline">--- {{ SITENAME }} BBS
<span class="origin">* Origin:</span> randogoth.com <span class="origin">(1:1/1)</span></pre>
{#- Replies. A message base is a thing people answer, which is the one feature
the metaphor was missing. Filled by bbs.js from the comment server; without
JS the section simply is not there, which is honest, and the capsule never
sees it at all since Gemini has no way to render it. -#}
{%- if COMMENTS_HOST %}
<div id="replies" data-host="{{ COMMENTS_HOST }}" data-site="{{ COMMENTS_SITE }}"></div>
{%- endif %}
{% endblock %}