{# ---- Tab bar. Counts come from the scan, so an empty ---- #}
{# ---- section is visibly empty rather than just absent. -- #}
{# Transient confirmation after a delete -- says which trash #}
{# the file went to, so "deleted" reads as recoverable. #}
{# Inline create form. Opened from a section's "+" button, #}
{# which passes the directory the note should land in. #}
{# ================= Skills ================= #}
{# flex-fill + min-w-0: without the grow/shrink pair the #}
{# long path sets this column's width and squeezes the #}
{# badge beside it down to a few letters. #}
{# A plugin has no SKILL.md of its own -- saying so #}
{# keeps the green tick from reading as "this is a #}
{# skill just like the others". #}
{# ================= Knowledge base ================= #}
{# Edit only for the suffixes the server will accept a #}
{# write for -- offering it on a .pdf would be a lie. #}
{# Editor. Replaces the rendered view rather than sitting #}
{# beside it -- a split view in a modal leaves neither #}
{# half wide enough to be worth reading. #}
{% with v='viewer', save='saveFile()', cancel='toggleEdit()' %}
{% include "workspace/templates/editor.html" %}
{% endwith %}
{# Rendered Markdown. Sanitized in ws-common.js before it lands here. #}
{# CSV rendered as a real table -- these are exports, and a #}
{# wall of semicolons is unreadable. #}