Files
copyparty/scripts/toc.sh

51 lines
1.1 KiB
Bash
Raw Normal View History

2022-10-24 18:48:12 +02:00
#!/bin/bash
set -e
for f in README.md docs/devnotes.md docs/versus.md; do
2022-10-24 18:48:12 +02:00
cat $f | awk '
function pr() {
if (!h) {return};
if (/^ *[*!#|]/||!s) {
printf "%s\n",h;
h=0;
return
};
if (/.../) {
printf "%s - %s\n",h,$0;
h=0
};
};
2023-06-25 21:50:33 +00:00
/```/{o=!o}
o{next}
2023-04-17 13:17:53 +02:00
/^#/{s=1;rs=0;pr()}
/^#* *(nix package)/{rs=1}
2025-01-10 18:24:40 +00:00
/^#* *(themes|install on android|dev env setup|just the sfx|complete release|optional gpl stuff|nixos module|reverse-proxy perf)|```/{s=rs}
2022-10-24 18:48:12 +02:00
/^#/{
lv=length($1);
sub(/[^ ]+ /,"");
sub(/\[/,"");
sub(/\]\([^)]+\)/,"");
2022-10-24 18:48:12 +02:00
bab=$0;
gsub(/ /,"-",bab);
gsub(/\./,"",bab);
h=sprintf("%" ((lv-1)*4+1) "s [%s](#%s)", "*",$0,bab);
next
}
!h{next}
{sub(/ .*/,"");sub(/[:;,]$/,"")}
{pr()}
' > toc
grep -E '^#+ *[^ ]+ toc$' -B1000 -A2 <$f >p1
2022-10-24 18:48:12 +02:00
h2="$(awk '/^#+ *[^ ]+ toc$/{o=1;next} o&&/^#/{print;exit}' <$f)"
2022-10-24 18:48:12 +02:00
grep -F "$h2" -B2 -A999999 <$f >p2
(cat p1; grep -F "${h2#* }" -A1000 <toc; cat p2) >$f
rm p1 p2 toc
done