2022-10-24 18:48:12 +02:00
#!/bin/bash
set -e
2023-01-23 22:44:29 +00:00
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-08-21 19:23:44 +00:00
/^#* *( themes| install on android| install on iOS| 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( /[ ^ ] + /,"" ) ;
2023-01-23 22:44:29 +00:00
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
2023-01-23 22:44:29 +00:00
grep -E '^#+ *[^ ]+ toc$' -B1000 -A2 <$f >p1
2022-10-24 18:48:12 +02:00
2023-01-23 22:44:29 +00: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