docs: consolidate site to two tools — archive + browse
All checks were successful
Deploy content to live site / deploy (push) Successful in 3s

We're consolidating ZDDC functionality into two tools rather than
the four previously advertised. Transmittal Creator, Document
Classifier, and Markdown Editor are removed from the public site;
their workflows are absorbed into Browse (file-tree navigator with
in-place markdown editing, on-demand DOCX/HTML/PDF download, file
management surface for classification and transmittal preparation).

Changes:
- Dropdown menu (both index + reference): two entries (Archive
  Browser, Browse).
- index.html "Try the tools": two tool cards. Hero + intro copy
  reflect the two-tool framing.
- index.html "Install on your server": baked-in tool list collapses
  to archive + browse + index; the slash/no-slash routing
  convention is referenced rather than re-listing per-folder
  tool mappings.
- index.html "Local: just download": two download links.
- reference.html § 1 intro: "two tools" wording.
- reference.html § 9 project layout: working/ description now
  points at the browse tool for markdown editing rather than the
  retired mdedit.
- reference.html § 10 Tools: two cards with refreshed descriptions
  that match the consolidated scope.
- README.md: tool list updated for new contributors.

federal.html, css/, and js/ have no tool-product references to
update; their "transmittal" mentions are the document-flow concept
and stay as-is.
This commit is contained in:
ZDDC 2026-05-19 10:36:09 -05:00
parent 82af26c3c9
commit 21b357607d
3 changed files with 37 additions and 89 deletions

View file

@ -9,10 +9,10 @@ files:
Plus `css/`, `js/`, `img/` for shared styles and assets.
This repo intentionally does **not** contain release artifacts. The
ZDDC tools (`archive`, `transmittal`, `classifier`, `mdedit`,
`landing`) and the `zddc-server` binary are built from the source
repo at <https://codeberg.org/VARASYS/ZDDC> and deployed to the live
site by its build pipeline. They live on the deploy host under
ZDDC tools (`archive`, `browse`, `landing`) and the `zddc-server`
binary are built from the source repo at
<https://codeberg.org/VARASYS/ZDDC> and deployed to the live site by
its build pipeline. They live on the deploy host under
`/srv/zddc/releases/`, never in this repo's git history.
## Preview locally

View file

@ -4,11 +4,11 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ZDDC — Zero Day Document Control</title>
<meta name="description" content="A file-naming convention and a small set of single-file HTML tools for managing project deliverables. Self-contained, offline-capable, dependency-free.">
<meta name="description" content="A file-naming convention and two single-file HTML tools — archive and browse — for managing project deliverables. Self-contained, offline-capable, dependency-free.">
<meta property="og:type" content="website">
<meta property="og:url" content="https://zddc.varasys.io/">
<meta property="og:title" content="ZDDC — Zero Day Document Control">
<meta property="og:description" content="A file-naming convention and a small set of single-file HTML tools for managing project deliverables. Self-contained, offline-capable, dependency-free.">
<meta property="og:description" content="A file-naming convention and two single-file HTML tools — archive and browse — for managing project deliverables. Self-contained, offline-capable, dependency-free.">
<meta name="theme-color" content="#2a5a8a">
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
@ -66,17 +66,9 @@
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M20 6H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2zm0 12H4V8h16v10zM4 2h16v2H4z"/></svg>
Archive Browser
</a>
<a href="releases/transmittal_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
Transmittal Creator
</a>
<a href="releases/classifier_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
Document Classifier
</a>
<a href="releases/mdedit_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 000-1.41l-2.34-2.34a1 1 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
Markdown Editor
<a href="releases/browse_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
Browse
</a>
</div>
</div>
@ -91,7 +83,7 @@
<section class="hero">
<div class="container">
<h1>Zero Day Document Control</h1>
<p class="hero-subtitle">A file-naming convention and a small set of single-file HTML tools for managing project deliverables. Self-contained, offline-capable, dependency-free.</p>
<p class="hero-subtitle">A file-naming convention and two single-file HTML tools — archive and browse — for managing project deliverables. Self-contained, offline-capable, dependency-free.</p>
</div>
</section>
@ -100,7 +92,7 @@
<section style="margin-top: var(--spacing-xl);">
<h2>What is it?</h2>
<p>ZDDC is a convention, not a platform. Every deliverable's filename encodes its tracking number, revision, status, and title; every transmittal folder is date-prefixed and self-describing. A plain shared folder becomes a fully searchable, auditable information-management system — no server, no database, no software required to read the archive.</p>
<p>The four tools below are <em>optional</em> interfaces around this structure. Each is a single self-contained HTML file that works two ways: open it locally and point it at a folder on your disk, or put it behind any web server (including the optional <code class="inline">zddc-server</code> described below) and use it over the network. Same on-disk layout either way.</p>
<p>The two tools below are <em>optional</em> interfaces around this structure. Each is a single self-contained HTML file that works two ways: open it locally and point it at a folder on your disk, or put it behind any web server (including the optional <code class="inline">zddc-server</code> described below) and use it over the network. Same on-disk layout either way.</p>
<p style="margin-top: var(--spacing-md);"><a href="reference.html">Read the full specification →</a></p>
</section>
@ -112,7 +104,7 @@
<div class="tool-card">
<div class="tool-card__title">Archive Browser</div>
<div class="tool-card__desc">Browse, search, and filter your project folder. Group by transmittal; filter by tracking number, revision, status, or free text. Export selections as ZIP.</div>
<div class="tool-card__desc">Search the formal record. Filter by tracking number, discipline, revision, status, or free text; group rows by transmittal to see each deliverable's lifecycle; export the current selection as a ZIP. Read-only — the archive is preserved as-issued.</div>
<div class="channel-row">
<a href="releases/archive_stable.html" class="channel-stable">stable</a>
<a href="releases/archive_beta.html" class="channel-beta">beta</a>
@ -121,32 +113,12 @@
</div>
<div class="tool-card">
<div class="tool-card__title">Transmittal Creator</div>
<div class="tool-card__desc">Fill in metadata, drag in files, publish a self-contained HTML transmittal record with SHA-256 checksums. Optional digital signatures. The published file <em>is</em> the transmittal record.</div>
<div class="tool-card__title">Browse</div>
<div class="tool-card__desc">File-tree navigator for the whole project. Edit markdown in place with live preview, YAML front matter, and a table of contents pane; download any markdown source as DOCX, HTML, or PDF on demand; classify inbound files to ZDDC names, draft transmittals, and manage the project tree end-to-end.</div>
<div class="channel-row">
<a href="releases/transmittal_stable.html" class="channel-stable">stable</a>
<a href="releases/transmittal_beta.html" class="channel-beta">beta</a>
<a href="releases/transmittal_alpha.html" class="channel-alpha">alpha</a>
</div>
</div>
<div class="tool-card">
<div class="tool-card__title">Document Classifier</div>
<div class="tool-card__desc">Spreadsheet-like interface for bulk-renaming files into ZDDC format. Copy/paste with Excel. Point it at a folder, fill in the columns, save all at once.</div>
<div class="channel-row">
<a href="releases/classifier_stable.html" class="channel-stable">stable</a>
<a href="releases/classifier_beta.html" class="channel-beta">beta</a>
<a href="releases/classifier_alpha.html" class="channel-alpha">alpha</a>
</div>
</div>
<div class="tool-card">
<div class="tool-card__title">Markdown Editor</div>
<div class="tool-card__desc">Browser-based markdown editor with live preview, YAML front matter, and table of contents. Direct local file access via the File System Access API.</div>
<div class="channel-row">
<a href="releases/mdedit_stable.html" class="channel-stable">stable</a>
<a href="releases/mdedit_beta.html" class="channel-beta">beta</a>
<a href="releases/mdedit_alpha.html" class="channel-alpha">alpha</a>
<a href="releases/browse_stable.html" class="channel-stable">stable</a>
<a href="releases/browse_beta.html" class="channel-beta">beta</a>
<a href="releases/browse_alpha.html" class="channel-alpha">alpha</a>
</div>
</div>
@ -207,22 +179,19 @@ Role definitions cascade like everything else; a child <code class="inline">.zdd
<div class="install-grid">
<div class="install-card">
<h3>Server: just run zddc-server</h3>
<p class="when">The binary has the current-stable build of all five tools baked in at compile time. They appear automatically at the right paths in the served tree:</p>
<p class="when">The binary has the current-stable build of both tools baked in at compile time. They appear automatically at the right paths in the served tree:</p>
<ul class="install-points">
<li><strong>archive.html</strong> and <strong>browse.html</strong> at every level (root, project, archive, party)</li>
<li><strong>mdedit.html</strong> in any <code class="inline">working/</code> directory and its subtree</li>
<li><strong>transmittal.html</strong> in any <code class="inline">staging/</code> directory and its subtree</li>
<li><strong>classifier.html</strong> in any <code class="inline">working/</code>, <code class="inline">staging/</code>, or <code class="inline">archive/&lt;party&gt;/incoming/</code> subtree</li>
<li><strong>mdl.table.html</strong> at every <code class="inline">archive/&lt;party&gt;/</code> — the per-party Master Deliverables List, served from a built-in default schema unless the party's <code class="inline">.zddc</code> declares a custom one</li>
<li><strong>archive.html</strong> at every <code class="inline">archive/</code> path — the read-only search-and-export view of the formal record</li>
<li><strong>browse.html</strong> at every directory (the slash form of any path) — the file-tree navigator, in-place markdown editor, and inbound-file handling surface</li>
<li><strong>index.html</strong> (the project picker) at the deployment root</li>
</ul>
<p class="when" style="margin-top: 0.6rem;">Folder names are case-insensitive — <code class="inline">Working/</code>, <code class="inline">working/</code>, and <code class="inline">WORKING/</code> all match the <code class="inline">working/</code> rule.</p>
<p class="when" style="margin-top: 0.6rem;">Which tool serves at a given URL is decided by the <code class="inline">.zddc</code> cascade — the embedded defaults map <code class="inline">archive/</code> subtrees to the archive tool and everything else to browse, but operators can override per folder via <code class="inline">default_tool:</code>. Folder names are case-insensitive — <code class="inline">Working/</code>, <code class="inline">working/</code>, and <code class="inline">WORKING/</code> all match the same rule.</p>
<pre><code>./zddc-server</code></pre>
<p class="when" style="margin-top: 0.6rem;">No flags needed for a quick start. The served tree defaults to the current working directory; the listener defaults to <code class="inline">https://localhost:8443/</code> with a self-signed certificate. <code class="inline">--root</code>, <code class="inline">--addr</code>, and <code class="inline">--tls-cert</code> / <code class="inline">--tls-key</code> override each. <code class="inline">--help</code> prints the full flag list.</p>
<p class="when" style="margin-top: 0.6rem;"><strong>To override a tool</strong> at any path: drop a real <code class="inline">.html</code> file there — that file wins over the baked-in version. <strong>To pin a different version</strong>, write an <code class="inline">apps:</code> entry in any <code class="inline">.zddc</code> file along the path:</p>
<pre><code># &lt;project&gt;/.zddc
apps:
classifier: stable # or beta / alpha / v0.0.4 / v0.0 / v0
browse: stable # or beta / alpha / v0.0.4 / v0.0 / v0
archive: https://my-fork.example/archive.html</code></pre>
<p class="when" style="margin-top: 0.6rem;">URL sources are fetched once and cached in <code class="inline">&lt;ZDDC_ROOT&gt;/_app/</code>. To force a re-fetch, delete the cache file. Closer-to-leaf <code class="inline">.zddc</code> entries override parent ones.</p>
</div>
@ -232,9 +201,7 @@ apps:
<p class="when">No server, no install — open in any modern browser.</p>
<ul class="install-points">
<li><a href="releases/archive_stable.html">archive.html</a></li>
<li><a href="releases/transmittal_stable.html">transmittal.html</a></li>
<li><a href="releases/classifier_stable.html">classifier.html</a></li>
<li><a href="releases/mdedit_stable.html">mdedit.html</a></li>
<li><a href="releases/browse_stable.html">browse.html</a></li>
</ul>
<p class="when" style="margin-top: 0.6rem;">Right-click → Save As. Each tool is a self-contained HTML file with everything inlined; works from <code class="inline">file://</code> or any static host.</p>
</div>

View file

@ -44,17 +44,9 @@
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M20 6H4a2 2 0 00-2 2v10a2 2 0 002 2h16a2 2 0 002-2V8a2 2 0 00-2-2zm0 12H4V8h16v10zM4 2h16v2H4z"/></svg>
Archive Browser
</a>
<a href="releases/transmittal_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M20 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V6c0-1.1-.9-2-2-2zm0 4l-8 5-8-5V6l8 5 8-5v2z"/></svg>
Transmittal Creator
</a>
<a href="releases/classifier_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/></svg>
Document Classifier
</a>
<a href="releases/mdedit_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04a1 1 0 000-1.41l-2.34-2.34a1 1 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"/></svg>
Markdown Editor
<a href="releases/browse_stable.html">
<svg class="dropdown-menu-icon" viewBox="0 0 24 24"><path d="M10 4H4c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V8c0-1.1-.9-2-2-2h-8l-2-2z"/></svg>
Browse
</a>
</div>
</div>
@ -104,7 +96,7 @@
</ul>
<p>Together, these two rules mean a plain folder on any shared drive becomes a fully searchable, auditable information management system. No server, no database, no software required to read the archive.</p>
<p>Because every deliverable is self-describing — its identity, revision, and status encoded in the filename itself — the convention works across organisational boundaries without requiring a shared platform. A project adopting ZDDC can extend the same convention to its clients, subcontractors, vendors, and any other party in the project ecosystem. Each party maintains their own archive; the shared naming convention makes every archive mutually intelligible. Adoption can be voluntary or contractually required. The result is a globally scalable, distributed information management system built on nothing more than agreed file naming and standard directory structures.</p>
<p>The four tools implement interfaces around this structure — but they're optional. The structure works without them, and any party can participate using only their file browser.</p>
<p>The two tools below implement interfaces around this structure — but they're optional. The structure works without them, and any party can participate using only their file browser.</p>
<div class="highlight-box" style="margin-top: var(--spacing-lg);">
<p><strong>Convention harmonization.</strong> The convention is designed to be applied at multiple organisational scopes simultaneously — corporate, client, project, department — and the code registries at each scope should be harmonized so they do not conflict. A corporate discipline code such as <code>HR</code> (Human Resources) does not exist at the project level, so there is no clash. But a code that means one thing corporately and something different on a project would create ambiguity in a unified archive. The ideal is that conventions flow down: corporate establishes the master code registry, projects inherit it and extend it only where gaps exist, and no code is reused with a different meaning at a lower scope.</p>
</div>
@ -1011,8 +1003,9 @@ project/
working/ ← Where staff draft. Each person has their own
subfolder here (named by email) and works on
documents in private until they're ready to
issue. Markdown opens in mdedit; arbitrary
files are dropped in via the browse tool.
issue. The browse tool handles everything here
— file management, in-place markdown editing
with live preview, on-demand format conversion.
staging/ ← The "about to issue" lane. A folder in here
declares a planned outbound transmittal: its
@ -1111,35 +1104,23 @@ project/
<!-- Section 10: Tools -->
<section id="tools">
<h2>10. Tools</h2>
<p>Four single-file HTML applications — each is complete and self-contained. Save them locally and they work forever, without internet, without updates, without a subscription.</p>
<p>Two single-file HTML applications — each is complete and self-contained. Save them locally and they work forever, without internet, without updates, without a subscription. Together they cover the full ZDDC workflow: <strong>archive</strong> for searching and exporting the formal record; <strong>browse</strong> for navigating, editing, and managing the project tree.</p>
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: var(--spacing-lg); margin-top: var(--spacing-lg);">
<a href="releases/archive_stable.html" class="tool-card" style="text-decoration: none; display: block;">
<div class="tool-card__title">Archive Browser</div>
<div class="tool-card__desc">Browse, search, filter your project folder. Filter by tracking number, discipline, revision, status, or free text. Group by transmittal. Download selected files as ZIP.</div>
<div class="tool-card__desc">Search and filter the formal record. Filter by tracking number, discipline, revision, status, or free text. Group rows by transmittal to see the lifecycle of any deliverable. Download the current selection as a ZIP. Read-only — the archive is preserved as-issued.</div>
<div class="tool-card__link">Open Archive Browser</div>
</a>
<a href="releases/transmittal_stable.html" class="tool-card" style="text-decoration: none; display: block;">
<div class="tool-card__title">Transmittal Creator</div>
<div class="tool-card__desc">Fill in metadata, drag in files, publish a self-contained HTML transmittal record with SHA-256 checksums. Supports digital signatures. The published file IS the transmittal record.</div>
<div class="tool-card__link">Create Transmittal</div>
</a>
<a href="releases/classifier_stable.html" class="tool-card" style="text-decoration: none; display: block;">
<div class="tool-card__title">Document Classifier</div>
<div class="tool-card__desc">Spreadsheet-like interface for bulk-renaming files to ZDDC format. Copy/paste with Excel. Point it at a folder, fill in the columns, save all at once.</div>
<div class="tool-card__link">Run Classifier</div>
</a>
<a href="releases/mdedit_stable.html" class="tool-card" style="text-decoration: none; display: block;">
<div class="tool-card__title">Markdown Editor</div>
<div class="tool-card__desc">Browser-based markdown editor with live preview, YAML front matter support, and table of contents. Direct local file access via File System Access API.</div>
<div class="tool-card__link">Open Editor</div>
<a href="releases/browse_stable.html" class="tool-card" style="text-decoration: none; display: block;">
<div class="tool-card__title">Browse</div>
<div class="tool-card__desc">File-tree navigator for the project. Edit markdown in place (live preview, YAML front matter pane, table of contents). Download any markdown source as DOCX, HTML, or PDF on demand. Drop in files, classify them to ZDDC names, draft transmittals, and prepare deliverables — every workflow happens here.</div>
<div class="tool-card__link">Open Browse</div>
</a>
</div>
<p style="margin-top: var(--spacing-xl); color: var(--color-text-muted);">Local directory access relies on the <a href="https://www.chromium.org/Home/">Chromium</a>-based browser File System Access API. It does not work in Firefox or Safari.</p>
<p style="margin-top: var(--spacing-xl); color: var(--color-text-muted);">Local directory access relies on the <a href="https://www.chromium.org/Home/">Chromium</a>-based browser File System Access API. It does not work in Firefox or Safari. Run both tools through <code>zddc-server</code> for any browser, network access, and ACL enforcement.</p>
</section>
</main>
</div>