Three sites, one directory each
flux.vision, tobias.raayoni-last.com and randogoth.com. They were one site until October 2026, serving four audiences from a single dated list, which is the only format that can hold unrelated things at once. flux.vision is recovered from the Wayback Machine, where it had sat since being deleted in 2021: 90 articles, closed and maintained rather than updated. tobias.raayoni-last.com is the professional record, 97 articles back to 1999. randogoth.com is the technical work, 41 articles across six areas, served as an ANSI bulletin board. History starts here deliberately. The development history, the 266-row inventory that records why each article went where it did, the Wayback pipelines, the pruned articles, the source archives and the full-size images are kept beside the repo rather than in it, so a clone is the web presence and not the argument that produced it. REFACTOR.md is gitignored for the same reason. See README.md for where that material lives, and keep it: the sort is not reproducible from these three directories alone. Each site documents itself in its own README, including the traps that cost time and look like nothing when you get them wrong.
This commit is contained in:
commit
8505b7e9e0
1003 changed files with 13289 additions and 0 deletions
8
randogoth.com/bbs/templates/404.html
Normal file
8
randogoth.com/bbs/templates/404.html
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}NO CARRIER · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<pre class="box">┌─ <span class="boxtitle">ERROR</span> ──────────────────────────────────────────────────────────────────────┐</pre>
|
||||
<pre class="box">│ <span class="new">{{ "%-76s"|format("NO CARRIER") }}</span> │</pre>
|
||||
<pre class="box">│ <span class="desc">{{ "%-76s"|format("That message does not exist on this board.") }}</span> │</pre>
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% endblock %}
|
||||
5
randogoth.com/bbs/templates/_logo.html
Normal file
5
randogoth.com/bbs/templates/_logo.html
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
▀██▀▀█▄ ▄█▄ ██▄ ██ ▀██▀█▄ ▄█▀▀▀█▄ ▄█▀▀█▄ ▄█▀▀▀█▄ ██████ ██ ██
|
||||
██ ██ ▄█▀ ▀█▄ ████▄██ ██ ██ ██ ██ ██ ▀ ██ ██ ▀ ██ ▀ ██ ██
|
||||
██▀██ ██▄▄▄██ ██ ▀███ ██ ██ ██ ██ ██ ▄▄▄▄ ██ ██ ██ ██▀▀▀██
|
||||
██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██ ██
|
||||
▄██ ██ ██ ██ ██ ██ ▄██▄█▀ ▀█▄▄▄█▀ ▀█▄▄▀█ ▀█▄▄▄█▀ ▄██▄ ██ ██
|
||||
10
randogoth.com/bbs/templates/archives.html
Normal file
10
randogoth.com/bbs/templates/archives.html
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}Message Index · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<pre class="box">┌─ <span class="boxtitle">MESSAGE INDEX</span> ──────────────────────────────────────────────────────────────┐</pre>
|
||||
{%- for a in dates %}
|
||||
{%- set n = loop.index %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ "%2d"|format(n) }}</b>]</span> <span class="date">{{ a.date.strftime('%d %b %y')|lower }}</span> <span class="sect">{{ "%-8s"|format(a.category|string) }}</span> <a data-key="{{ n }}" href="{{ SITEURL }}/{{ a.url }}">{{ "%-52s"|format(a.title|striptags|truncate(52, true, '')) }}</a> │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% endblock %}
|
||||
15
randogoth.com/bbs/templates/article.html
Normal file
15
randogoth.com/bbs/templates/article.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}{{ article.title|striptags }} · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
|
||||
<pre class="msghdr"> 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="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>
|
||||
{% endblock %}
|
||||
37
randogoth.com/bbs/templates/base.html
Normal file
37
randogoth.com/bbs/templates/base.html
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="{{ DEFAULT_LANG }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>{% block title %}{{ SITENAME }}{% endblock %}</title>
|
||||
<link rel="stylesheet" href="{{ SITEURL }}/theme/bbs.css">
|
||||
<link rel="me" href="https://mas.to/@randogoth">
|
||||
{% if FEED_ALL_ATOM %}<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_ATOM }}" type="application/atom+xml" rel="alternate" title="{{ SITENAME }} Atom">{% endif %}
|
||||
{% if FEED_ALL_RSS %}<link href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} RSS">{% endif %}
|
||||
<script src="{{ SITEURL }}/theme/bbs.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<div id="screen">
|
||||
|
||||
<pre class="logo" id="logo"> <span class="f3">█████▄</span> <span class="f3">▄█</span><span class="f3 b2">█</span><span class="f3">█▄</span> <span class="f3 b2">█▓</span><span class="f3">▄</span><span class="f3 b2">██</span><span class="f3">▄</span> <span class="f3 b2">█▓█</span><span class="f3">██▄</span> <span class="f3">▄█</span><span class="f3 b2">█</span><span class="f3">█▄</span> <span class="f3">▄█</span><span class="f3 b2">█</span><span class="f3">███</span> <span class="f3">▄█</span><span class="f3 b2">█</span><span class="f3">█▄</span> <span class="f3 b2">█</span><span class="f3">█</span><span class="f3 b2">█▓█</span><span class="f3">█</span> <span class="f3">██</span> <span class="f3">██</span>
|
||||
<span class="f3 b2">▓▒</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span><span class="f3">▀</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span><span class="f3">▀</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span><span class="f3">▀</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span><span class="f3">▀</span> <span class="f3">█</span><span class="f3 b2">▒</span> <span class="f3 b2">▓▒</span><span class="f3">▀</span> <span class="f3">▀</span><span class="f3 b2">▒▓</span> <span class="f3 b2">▓▒</span> <span class="f3 b2">▓▒</span> <span class="f3 b2">▒▓</span>
|
||||
<span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span> <span class="f3 b2">▒░</span> <span class="f3 b2">▒░</span> <span class="f3 b2">░▒</span>
|
||||
<span class="f3 b2">░</span><span class="b2"> </span> <span class="f2">▄</span><span class="b2"> </span><span class="f2">▀</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="f2">██</span><span class="f3 b2">░</span><span class="b2"> </span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="f3 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f3 b2">░</span>
|
||||
<span class="b2"> </span><span class="f1 b2">░</span><span class="b2"> </span><span class="f2">▄</span> <span class="b2"> </span><span class="f1 b2">░</span><span class="b2"> </span><span class="f1 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="f1 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="f1 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="f1 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="f1 b2">░</span><span class="b2"> </span> <span class="b2"> </span><span class="f1 b2">░</span> <span class="b2"> </span><span class="f1 b2">░</span><span class="b2"> </span><span class="f1 b2">░</span><span class="b2"> </span>
|
||||
<span class="f1 b2">░▒</span> <span class="f2">▀</span><span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">░▒</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span> <span class="f1 b2">░▒</span> <span class="f1 b2">░▒</span> <span class="f1 b2">▒░</span>
|
||||
<span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▒▓</span> <span class="f1 b2">▓▒</span>
|
||||
<span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1 b2">█▓</span> <span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1 b2">█▓</span> <span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1">█</span><span class="f1 b2">▓</span> <span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1">▄█</span><span class="f1 b2">▓</span> <span class="f1 b2">▓█</span><span class="f1">▄</span> <span class="f1">▄</span><span class="f1 b2">█▓</span> <span class="f1 b2">▓</span><span class="f1">█▄</span> <span class="f1 b2">█▓</span> <span class="f1 b2">▓█</span><span class="f1">▄</span> <span class="f1">▄</span><span class="f1 b2">█▓</span> <span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1 b2">▓</span><span class="f1">█</span> <span class="f1 b2">█▓</span>
|
||||
<span class="f1">██</span> <span class="f1">██</span> <span class="f1">██</span> <span class="f1">██</span> <span class="f1">██</span> <span class="f1">██</span> <span class="f1">██████▀</span> <span class="f1">▀███▀</span> <span class="f1">▀█████</span> <span class="f1">▀███▀</span> <span class="f1">██</span> <span class="f1">██</span> <span class="f1">██</span> </pre>
|
||||
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
|
||||
<pre class="sysline"> Node <b>1</b> <span class="rule">·</span> <b>2400</b> baud <span class="rule">·</span> <b>{{ articles|length }}</b> msgs in <b>{{ categories|length }}</b> areas <span class="rule">·</span> sysop <b>randogoth</b></pre>
|
||||
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
|
||||
|
||||
{% block content %}{% endblock %}
|
||||
|
||||
<pre class="rule">────────────────────────────────────────────────────────────────────────────────</pre>
|
||||
<pre class="prompt"> <a data-key="I" href="{{ SITEURL }}/archives.html"><span class="key">[<b>I</b>]</span>ndex</a> <a data-key="K" href="{{ SITEURL }}/tags.html"><span class="key">[<b>K</b>]</span>eywords</a> <a data-key="F" href="{{ FEED_DOMAIN }}/{{ FEED_ALL_RSS }}"><span class="key">[<b>F</b>]</span>eed</a> <a data-key="M" href="{{ SITEURL }}/">Main <span class="key">[<b>M</b>]</span>enu</a>
|
||||
Command: <span id="typed"></span><span class="cursor"> </span></pre>
|
||||
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
14
randogoth.com/bbs/templates/categories.html
Normal file
14
randogoth.com/bbs/templates/categories.html
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}Areas · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
{%- set rows = [] %}
|
||||
{%- for cat, arts in categories %}{% set _ = rows.append((BBS_AREAS.get(cat|string, 99), cat, arts)) %}{% endfor %}
|
||||
{%- set ordered = rows|sort(attribute='0') %}
|
||||
{%- set half = (ordered|length + 1) // 2 %}
|
||||
<pre class="box">┌─ <span class="boxtitle">MESSAGE AREAS</span> ───────────────────────┬──────────────────────────────────────┐</pre>
|
||||
{%- for i in range(half) %}
|
||||
{%- set a = ordered[i] %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ a[0] }}</b>]</span> <a data-key="{{ a[0] }}" href="{{ SITEURL }}/{{ a[1].url }}"><span class="area">{{ "%-9s"|format(a[1]|string) }}</span></a> <span class="count">{{ "%3d"|format(a[2]|length) }}</span> │ {% if ordered|length > i + half %}{% set b = ordered[i + half] %}<span class="key">[<b>{{ b[0] }}</b>]</span> <a data-key="{{ b[0] }}" href="{{ SITEURL }}/{{ b[1].url }}"><span class="area">{{ "%-9s"|format(b[1]|string) }}</span></a> <span class="count">{{ "%3d"|format(b[2]|length) }}</span>{% else %} {% endif %} │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└───────────────────────────────────────┴──────────────────────────────────────┘</pre>
|
||||
{% endblock %}
|
||||
15
randogoth.com/bbs/templates/category.html
Normal file
15
randogoth.com/bbs/templates/category.html
Normal file
|
|
@ -0,0 +1,15 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}{{ category }} · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
{% set info = BBS_AREAS.get(category|string, 0) %}
|
||||
{% set t = "AREA " ~ info ~ ": " ~ category %}
|
||||
<pre class="box">┌─ <span class="boxtitle">{{ t }}</span> {{ "─" * (75 - t|length) }}┐</pre>
|
||||
<pre class="box">├──────────────────────────────────────────────────────────────────────────────┤</pre>
|
||||
{%- set total = articles_paginator.object_list|length %}
|
||||
{%- for a in articles_page.object_list %}
|
||||
{%- set n = total - (loop.index0 + (articles_page.number - 1) * articles_paginator.per_page) %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ "%3d"|format(n) }}</b>]</span> <span class="date">{{ a.date.strftime('%d %b %y')|lower }}</span> <a data-key="{{ n }}" href="{{ SITEURL }}/{{ a.url }}">{{ "%-60s"|format(a.title|striptags|truncate(60, true, '')) }}</a> │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% include 'pagination.html' %}
|
||||
{% endblock %}
|
||||
29
randogoth.com/bbs/templates/index.html
Normal file
29
randogoth.com/bbs/templates/index.html
Normal file
|
|
@ -0,0 +1,29 @@
|
|||
{% extends "base.html" %}
|
||||
{% block content %}
|
||||
{%- set rows = [] %}
|
||||
{%- for cat, arts in categories %}{% set _ = rows.append((BBS_AREAS.get(cat|string, 99), cat, arts)) %}{% endfor %}
|
||||
{%- set ordered = rows|sort(attribute='0') %}
|
||||
{%- set half = (ordered|length + 1) // 2 %}
|
||||
<pre class="box">┌─ <span class="boxtitle">MESSAGE AREAS</span> ───────────────────────┬──────────────────────────────────────┐</pre>
|
||||
{%- for i in range(half) %}
|
||||
{%- set a = ordered[i] %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ a[0] }}</b>]</span> <a data-key="{{ a[0] }}" href="{{ SITEURL }}/{{ a[1].url }}"><span class="area">{{ "%-9s"|format(a[1]|string) }}</span></a> <span class="count">{{ "%3d"|format(a[2]|length) }}</span> │ {% if ordered|length > i + half %}{% set b = ordered[i + half] %}<span class="key">[<b>{{ b[0] }}</b>]</span> <a data-key="{{ b[0] }}" href="{{ SITEURL }}/{{ b[1].url }}"><span class="area">{{ "%-9s"|format(b[1]|string) }}</span></a> <span class="count">{{ "%3d"|format(b[2]|length) }}</span>{% else %} {% endif %} │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└───────────────────────────────────────┴──────────────────────────────────────┘</pre>
|
||||
|
||||
{# GUESTBOOK is commented out of the menu until it is built; the page and its
|
||||
mockup stay in the tree. Restoring it means a third column here and
|
||||
dropping Status: draft from content/pages/guestbook.md. #}
|
||||
<pre class="box">┌─ <span class="boxtitle">SYSTEM</span> ──────────────────────────────┬──────────────────────────────────────┐</pre>
|
||||
<pre class="box">│ <a data-key="A" href="{{ SITEURL }}/about.html"><span class="key">[<b>A</b>]</span> <span class="area">ABOUT</span></a> │ <a data-key="C" href="{{ SITEURL }}/connect.html"><span class="key">[<b>C</b>]</span> <span class="area">CONNECT</span></a> │</pre>
|
||||
<pre class="box">└───────────────────────────────────────┴──────────────────────────────────────┘</pre>
|
||||
|
||||
<pre class="box">┌─ <span class="boxtitle">LATEST</span> ─────────────────────────────────────────────────────────────────────┐</pre>
|
||||
{%- set base = BBS_AREAS|length %}
|
||||
{%- for article in articles_page.object_list %}
|
||||
{%- set n = base + loop.index %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ "%2d"|format(n) }}</b>]</span> <span class="date">{{ article.date.strftime('%d %b %y')|lower }}</span> <span class="sect">{{ "%-8s"|format(article.category|string) }}</span> <a data-key="{{ n }}" href="{{ SITEURL }}/{{ article.url }}">{{ "%-52s"|format(article.title|striptags|truncate(52, true, '')) }}</a> │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% include 'pagination.html' %}
|
||||
{% endblock %}
|
||||
8
randogoth.com/bbs/templates/page.html
Normal file
8
randogoth.com/bbs/templates/page.html
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}{{ page.title|striptags }} · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
|
||||
<pre class="msghdr"> Subj : <span class="subj">{{ page.title|striptags }}</span></pre>
|
||||
<pre class="rule">════════════════════════════════════════════════════════════════════════════════</pre>
|
||||
<div class="msgbody">{{ page.content }}</div>
|
||||
{% endblock %}
|
||||
3
randogoth.com/bbs/templates/pagination.html
Normal file
3
randogoth.com/bbs/templates/pagination.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{% if articles_paginator and articles_paginator.num_pages > 1 %}
|
||||
<pre class="prompt"> Page <b>{{ articles_page.number }}</b> of <b>{{ articles_paginator.num_pages }}</b> {% if articles_page.has_previous() %}<a href="{{ SITEURL }}/{{ articles_previous_page.url }}"><span class="key">[<b><</b>]</span> prev</a>{% endif %} {% if articles_page.has_next() %}<a href="{{ SITEURL }}/{{ articles_next_page.url }}"><span class="key">[<b>></b>]</span> more</a>{% endif %}</pre>
|
||||
{% endif %}
|
||||
13
randogoth.com/bbs/templates/tag.html
Normal file
13
randogoth.com/bbs/templates/tag.html
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}{{ tag }} · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
{% set t = "KEYWORD: " ~ tag %}
|
||||
<pre class="box">┌─ <span class="boxtitle">{{ t }}</span> {{ "─" * (75 - t|length) }}┐</pre>
|
||||
{%- set total = articles_paginator.object_list|length %}
|
||||
{%- for a in articles_page.object_list %}
|
||||
{%- set n = loop.index0 + 1 + (articles_page.number - 1) * articles_paginator.per_page %}
|
||||
<pre class="box">│ <span class="key">[<b>{{ "%2d"|format(n) }}</b>]</span> <span class="date">{{ a.date.strftime('%d %b %y')|lower }}</span> <span class="sect">{{ "%-8s"|format(a.category|string) }}</span> <a data-key="{{ n }}" href="{{ SITEURL }}/{{ a.url }}">{{ "%-52s"|format(a.title|striptags|truncate(52, true, '')) }}</a> │</pre>
|
||||
{%- endfor %}
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% include 'pagination.html' %}
|
||||
{% endblock %}
|
||||
8
randogoth.com/bbs/templates/tags.html
Normal file
8
randogoth.com/bbs/templates/tags.html
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
{% extends "base.html" %}
|
||||
{% block title %}Keywords · {{ SITENAME }}{% endblock %}
|
||||
{% block content %}
|
||||
{% set t = "KEYWORDS" %}
|
||||
<pre class="box">┌─ <span class="boxtitle">{{ t }}</span> {{ "─" * (75 - t|length) }}┐</pre>
|
||||
<div class="cloud">{% for tg, arts in tags|sort %}<span class="key">[<b>{{ loop.index }}</b>]</span><a data-key="{{ loop.index }}" href="{{ SITEURL }}/{{ tg.url }}">{{ tg }}</a><span class="num">({{ arts|length }})</span> {% endfor %}</div>
|
||||
<pre class="box">└──────────────────────────────────────────────────────────────────────────────┘</pre>
|
||||
{% endblock %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue