]> git.plutz.net Git - shellwiki/commitdiff
min, max headline level arguments for toc macro
authorPaul Hänsch <paul@plutz.net>
Wed, 5 Jul 2023 12:57:34 +0000 (14:57 +0200)
committerPaul Hänsch <paul@plutz.net>
Wed, 5 Jul 2023 12:57:34 +0000 (14:57 +0200)
macros/toc

index 0acec760330557044facb1629eecf99dee668b63..e68ac6fcee203c291edb4c9bdb447e009d32ce2a 100755 (executable)
@@ -12,8 +12,13 @@ else
   md() { cat; }
 fi
 
+min="$1" max="$2"
+[ "$min" -ge 1 -a "$min" -le 6 ] || min=1
+[ "$max" -ge "$min" ] || max="$min"
+[ "$max" -le 6 ] || max=6
+
 md |sed -nE '
   1i<ul class="macro toc">
-  s;^.*<section class="(h[1-6])( [^"]+)?" id="([^"]*)"><h[1-6]>(([^<]|<[^aA]|<[aA][^ ])+)(<a class="anchor" href="[^>]*"></a>)?</h[1-6]>$;<li class="toc \1"><a href="#\3">\4</a></li>;p
+  s;^.*<section class="(h[1-6])( [^"]+)?" id="([^"]*)"><h['${min}-${max}']>(([^<]|<[^aA]|<[aA][^ ])+)(<a class="anchor" href="[^>]*"></a>)?</h[1-6]>$;<li class="toc \1"><a href="#\3">\4</a></li>;p
   $i</ul>
 '