// gitxt — teletext for git. Pages addressed by 3-digit numbers; navigate by // typing digits or clicking the coloured FASTEXT bar. Authentic teletext look. const { useState, useEffect, useRef } = React; // colour helpers (teletext palette) const C = ({ children }) => {children}; // cyan const Y = ({ children }) => {children}; // yellow const G = ({ children }) => {children}; // green const R = ({ children }) => {children}; // red const M = ({ children }) => {children}; // magenta const W = ({ children }) => {children}; // white const Row = ({ children, center }) => (
{children || '\u00A0'}
); // double-height title block const Title = ({ color = '#3fe0e0', children }) => (
{children}
); const Link = ({ n, go, children }) => ( go(n)}>{n} {children} ); const PAGES = { 100: { fast: [200, 300, 400, 100], render: (go) => (<> gitxt teletext for git · kBenestad ━━━━━━━━━━━━━━ index ━━━━━━━━━━━━━━ repositories recent commits open issues build status help & navigation type a page number, or use the coloured buttons below. ) }, 200: { fast: [210, 220, 300, 100], render: (go) => (<> repositories page 200 · 8 repos tracked kbpkg      v2.4.0 gitxt      v0.3.0 mdcms      v0.6.1 capcms     v0.2.0 invoice    v1.1.0 timesheet  v1.0.0 select a repo for detail. ) }, 210: { fast: [300, 400, 200, 100], render: (go) => (<> kbpkg repo 210 · v2.4.0 · main git-based package manager branch  main  ↑0 ↓0 commits 1,284 open    3 issues build   ● passing last: fix: resolve nested deps by karl · 1 day ago ) }, 300: { fast: [310, 200, 400, 100], render: (go) => (<> recent commits page 300 · all repos a3f1 fix: resolve nested deps kbpkg · 1d 9c02 feat: number navigation gitxt · 2d 1e7d chore: bump cms/md mdcms · 4d b840 fix: locale rounding invoice · 5d ) }, 400: { fast: [200, 300, 500, 100], render: (go) => (<> open issues page 400 · 6 open #42 resolve circular dep graph kbpkg · high #38 page 9xx reserved range gitxt · low #31 fr-NO plural forms mdcms · medium ) }, 500: { fast: [200, 300, 400, 100], render: (go) => (<> build status page 500 · last 24h ● passing  kbpkg ● passing  gitxt ● passing  invoice ● pending  mdcms ● failing  capcms capcms: test timeout in case-export suite. ) }, 888: { fast: [100, 200, 300, 100], render: (go) => (<> help page 888 type any 3-digit page number to jump straight to it. 100 index 200 repositories 300 commits coloured buttons jump to the four pages shown at the foot. ) }, }; // alias detail pages [220, 230, 240, 250, 260, 310].forEach(n => { if (!PAGES[n]) PAGES[n] = PAGES[210]; }); Object.assign(window, { PAGES, C, Y, G, R, M, W, Row, Title });