{% extends "base.html" %} {% block content %}

Public, permanent, on-chain. Posting burns {{ BOARD_POST_AMOUNT }} tick, plus a separate network fee, currently {{ board_fee_floor }}+ ticks and rising as the board fills up or with congestion. Voting is an ordinary transaction (still burns {{ BOARD_POST_AMOUNT }} tick) and never raises that floor. Icon and nickname ride along on a post you were already sending, never a post of their own.

{% if rows %} {% for row in rows %} {% set mine = row.tx.from == own_addr %} {% set score = row.up - row.down %}
{{ row.nick or row.tx.from }} {% if row.pending %} pending… {% else %}   {% endif %} {# Vote widget: markup/CSS/icon ported from Remark42's own CommentVotes component (comment-votes.tsx/.module.css, icons/arrow.tsx), full identity intact -- same class names, same color tokens (var(--colorN)), same disabled/active states once already voted, not a fresh rebuild. #} {% if is_private %} {% endif %} {{ score }}{{ '…' if row.vote_pending }} {% if is_private %} {% endif %}
{% if row.reply_ref %} {% if row.reply_from %}replying to {{ row.reply_from[:14] }}…: “{{ row.reply_snippet }}” {% else %}replying to an earlier post{% endif %} {% endif %}
{{ render_board_text(row.text) }}
{% if is_private and not row.pending %} {% endif %}
{% endfor %} {% else %}

Nothing posted yet.

{% endif %} {% if is_private %}
{% if compose_err %}
{{ compose_err }}
{% endif %}
{# Toolbar ported unmodified from GitHub's own markdown-toolbar-element (github/markdown-toolbar-element, MIT -- see vendor/README.md), the exact same custom element Remark42's own compose box wires up to its textarea. Header/list/image are still left out: this board's own render_board_text has no support for those, so a button for markdown this page can't render would be wiring a lie. Bold, italic, code, quote and link all now have a matching render_board_text rule (see api.py), so all five get a button. #}
fee: {{ board_fee_floor }}+ ticks
{% endif %}
{% if total_pages > 1 %} {% endif %} {% endblock %}