From 6afa9aa6db43ad684a2c0b9ae016eb3faca4d4ff Mon Sep 17 00:00:00 2001 From: Ville Rantanen Date: Tue, 3 Jan 2023 14:34:10 +0200 Subject: [PATCH] auto toc help --- reporting/md-toc | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/reporting/md-toc b/reporting/md-toc index e40296d..bf64eb3 100755 --- a/reporting/md-toc +++ b/reporting/md-toc @@ -4,9 +4,24 @@ import argparse import sys import re + def get_opts(): - parser = argparse.ArgumentParser(description="TOC for markdown.") + parser = argparse.ArgumentParser( + description="TOC for markdown.", + epilog="""Automatic TOC guide: +Add these hidden comments in the markdown: +[TOCSTART]: # +[TOCEND]: # + +Then, use this command to generate TOC: (make a backup first...) + sed -i -n \\ + -e '1,/^\[TOCSTART\]: #/p;/^\[TOCEND\]: #/,$p' \\ + -e '/^\[TOCSTART\]: #/r '<( md-toc document.md ) \\ + document.md +""", + formatter_class=argparse.RawTextHelpFormatter, + ) parser.add_argument("-n", help="Number TOC", action="store_true") parser.add_argument("-l", help="TOC as links", action="store_true") parser.add_argument( @@ -30,12 +45,12 @@ def main(): bullet = "-" counters = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] lastlev = 0 - re_anchor = re.compile('[^0-9a-z-]') + re_anchor = re.compile("[^0-9a-z-]") for row in fp: if row.startswith("#"): headers, title = row.strip().split(" ", 1) if opts.l: - anchor = re_anchor.sub('' , title.lower().replace(" ", "-")) + anchor = re_anchor.sub("", title.lower().replace(" ", "-")) title = "[{}](#{})".format(title, anchor) pad = headers.count("#") - 1 if pad < lastlev: