HASH d266a4563e71
DATE 2026-07-17
SUBJECT web: 404 as a retrieval report
FILES 1 CHANGED
HASH d266a4563e71
DATE 2026-07-17
SUBJECT web: 404 as a retrieval report
FILES 1 CHANGED
┌─ ooknet-design/src/pages/404.astro ────────────────────────────────────────┐
│ diff --git a/ooknet-design/src/pages/404.astro b/ooknet-design/src/pages/404.astro │
│ new file mode 100644 │
│ index 0000000..1567d50 │
│ --- /dev/null │
│ +++ b/ooknet-design/src/pages/404.astro │
│ @@ -0,0 +1,37 @@ │
│ +--- │
│ +import ArticleLayout from "../layouts/ArticleLayout/ArticleLayout.astro"; │
│ +import TopHeader from "../components/TopHeader/TopHeader.astro"; │
│ +import Frame from "../components/Frame/Frame.astro"; │
│ +import Pre from "../components/Pre/Pre.astro"; │
│ +import Button from "../components/Button/Button.astro"; │
│ +import ArticleFooter from "../components/ArticleFooter/ArticleFooter.astro"; │
│ +import { kv, pad, row2, ruleD } from "../lib/ascii"; │
│ + │
│ +const buildHeader = (w: number) => │
│ + [row2("RETRIEVAL REPORT", "NOTE 404", w), ruleD(w)].join("\n"); │
│ +--- │
│ +<ArticleLayout title="OOKNET KB - 404 NOT ON FILE"> │
│ + <TopHeader /> │
│ + <Frame build={buildHeader} /> │
│ + <Pre>{" "}</Pre> │
│ + <div class="frame-wide"><Pre>{pad("REQUESTED", 12)}<span data-notfound-path dat │
│ a-cells="72">?</span></Pre></div> │
│ + <div class="frame-narrow"><Pre>{pad("REQUESTED", 12)}<span data-notfound-path d │
│ ata-cells="34">?</span></Pre></div> │
│ + <Pre>{kv("RECORDS", "0", 12, 48).trimEnd()}</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre>*** NO DOCUMENT ON FILE ***</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre><Button label="< INDEX" href="/" />{" press / to search"}</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre>*** END OF REPORT ***</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <ArticleFooter page={404} /> │
│ +</ArticleLayout> │
│ + │
│ +<script is:inline> │
│ + for (const el of document.querySelectorAll("[data-notfound-path]")) { │
│ + const max = Number(el.dataset.cells) || 34; │
│ + let p = window.location.pathname; │
│ + if (p.length > max) p = p.slice(0, max - 1) + "..."; │
│ + el.textContent = p; │
│ + } │
│ +</script> │
└────────────────────────────────────────────────────────────────────────────────────┘
┌─ ...et-design/src/pages/404.astro ───┐
│ diff --git a/ooknet-design/src/pages/404.ast │
│ ro b/ooknet-design/src/pages/404.astro │
│ new file mode 100644 │
│ index 0000000..1567d50 │
│ --- /dev/null │
│ +++ b/ooknet-design/src/pages/404.astro │
│ @@ -0,0 +1,37 @@ │
│ +--- │
│ +import ArticleLayout from "../layouts/Artic │
│ leLayout/ArticleLayout.astro"; │
│ +import TopHeader from "../components/TopHea │
│ der/TopHeader.astro"; │
│ +import Frame from "../components/Frame/Fram │
│ e.astro"; │
│ +import Pre from "../components/Pre/Pre.astr │
│ o"; │
│ +import Button from "../components/Button/Bu │
│ tton.astro"; │
│ +import ArticleFooter from "../components/Ar │
│ ticleFooter/ArticleFooter.astro"; │
│ +import { kv, pad, row2, ruleD } from "../li │
│ b/ascii"; │
│ + │
│ +const buildHeader = (w: number) => │
│ + [row2("RETRIEVAL REPORT", "NOTE 404", w), │
│ ruleD(w)].join("\n"); │
│ +--- │
│ +<ArticleLayout title="OOKNET KB - 404 NOT O │
│ N FILE"> │
│ + <TopHeader /> │
│ + <Frame build={buildHeader} /> │
│ + <Pre>{" "}</Pre> │
│ + <div class="frame-wide"><Pre>{pad("REQUES │
│ TED", 12)}<span data-notfound-path data-cell │
│ s="72">?</span></Pre></div> │
│ + <div class="frame-narrow"><Pre>{pad("REQU │
│ ESTED", 12)}<span data-notfound-path data-ce │
│ lls="34">?</span></Pre></div> │
│ + <Pre>{kv("RECORDS", "0", 12, 48).trimEnd( │
│ )}</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre>*** NO DOCUMENT ON FILE ***</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre><Button label="< INDEX" href="/" />{ │
│ " press / to search"}</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <Pre>*** END OF REPORT ***</Pre> │
│ + <Pre>{" "}</Pre> │
│ + <ArticleFooter page={404} /> │
│ +</ArticleLayout> │
│ + │
│ +<script is:inline> │
│ + for (const el of document.querySelectorAl │
│ l("[data-notfound-path]")) { │
│ + const max = Number(el.dataset.cells) || │
│ 34; │
│ + let p = window.location.pathname; │
│ + if (p.length > max) p = p.slice(0, max │
│ - 1) + "..."; │
│ + el.textContent = p; │
│ + } │
│ +</script> │
└──────────────────────────────────────────────┘
[ BACK TO LOG ]
──────────────────────────────────────────────────────────────────────────────────────
OOKNET
────────────────────────────────────────────────
OOKNET