clone

a personal forge on plain git: static pages, stacked-diff reviews, signed local ci, repo sites and releases

main
forge / test / scenarios / home-topics.sh
home-topics.sh 1.8K
1# The home page's topics are the shelves across the public repos, each2# with its count. One owner's shelf links to it on their page, where ui.ts3# opens the tab the fragment names; a shelf several owners share links to4# it on /topics/, every public repo by shelf, each naming its owner.5. "$(dirname "$0")/../lib.sh"6user dami7user ana8for r in dami/chess dami/go dami/hammer ana/cards ana/notes; do9 repo "$r"10 clone "${r%%/*}" "$r" "$T/w/${r#*/}"11 at "$T/w/${r#*/}" commit "first"12 push_as "${r%%/*}" "$T/w/${r#*/}" origin main13done14repo --private ana/secret15for r in dami/chess dami/go ana/cards ana/secret; do printf 'games\n' >"$FORGE_ROOT/$r.git/category"; done16printf 'tools\n' >"$FORGE_ROOT/dami/hammer.git/category"17export FORGE_STRICT=118build19i=$FORGE_WWW/index.html20has "$i" '<li><a href="/topics/#games">games<span class="n">3 repos</span></a></li>'21has "$i" '<li><a href="/dami/#tools">tools<span class="n">1 repo</span></a></li>'22has "$i" '<li><a href="/ana/#other">other<span class="n">1 repo</span></a></li>'23# Where they go.24has "$FORGE_WWW/dami/index.html" '<a href="#tools" data-shelf="tools">tools<span class="n">1</span></a>'25has "$FORGE_WWW/dami/index.html" 'data-shelf="tools" id="tools"'26t=$FORGE_WWW/topics/index.html27has "$t" '<section class="panel shelf" data-shelf="games" id="games"><ul class="rows cards'28has "$t" '<a href="#games" data-shelf="games">games<span class="n">3</span></a>'29has "$t" '<span class="desc">ana / </span>cards</a>'30lacks "$t" 'secret'31# ui.ts opens the shelf a link names.32has site/assets/ui.ts 'location.hash'33# A single repo's build redoes /topics/ too.34printf 'tools\n' >"$FORGE_ROOT/ana/notes.git/category"35build ana/notes36has "$t" '<a href="#tools" data-shelf="tools">tools<span class="n">2</span></a>'37has "$i" '<li><a href="/topics/#tools">tools<span class="n">2 repos</span></a></li>'