added headerlevel feature

This commit is contained in:
Hartmut Seichter 2023-11-12 20:23:04 +01:00
parent 5e73a5ff95
commit 787f551b2c

View file

@ -23,7 +23,7 @@ class MarkdownGenerator:
pass
def generate_markdown(self,ti,pagebreak = False,title = False) -> str:
def generate_markdown(self,ti,pagebreak = False,title = False,header_level = 1) -> str:
line_length = 128
column_ratio= 0.28
@ -32,7 +32,7 @@ class MarkdownGenerator:
d_len = line_length-h_len
if title:
print('#',ti[0][1],'\n')
print('#' * header_level,ti[0][1],'\n')
print(''.join(['+',"".ljust(h_len,'-'),'+',"".ljust(d_len,'-'),'+']))
@ -165,7 +165,7 @@ class CourseBuilder:
return [k,', '.join(parts)]
def process(self,meta,fields = [],lang = 'de',pagebreak = False,createTitle=False):
def process(self,meta,fields = [],lang = 'de',pagebreak = False,createTitle=False,header_level=1):
table_items = []
@ -177,12 +177,12 @@ class CourseBuilder:
case 'multikey': table_items.append(self.process_multikey(meta,field,lang))
mdg = MarkdownGenerator()
mdg.generate_markdown(table_items,pagebreak,createTitle)
mdg.generate_markdown(table_items,pagebreak,createTitle,header_level=header_level)
def process_book_section(self,section,lang='de'):
pass
def process_book(self,book,bookpath,create_title,pagebreak,lang='de'):
def process_book(self,book,bookpath,create_title,pagebreak,lang='de',header_level=2):
actual_fields = []
@ -198,7 +198,7 @@ class CourseBuilder:
mod_path = os.path.join(os.path.dirname(bookpath),m)
with open(mod_path) as fm:
self.process(yaml.load(fm,Loader=yaml.Loader),fields=actual_fields,lang=lang,pagebreak=pagebreak,createTitle=create_title)
self.process(yaml.load(fm,Loader=yaml.Loader),fields=actual_fields,lang=lang,pagebreak=pagebreak,createTitle=create_title,header_level=header_level)
pass
@ -217,6 +217,7 @@ def main():
parser.add_argument('-p','--pagebreak',action="store_true",help="add a pagebreak after each module")
parser.add_argument('-t','--title',action="store_true",help="take first value in list as title")
parser.add_argument('-b','--book',type=str,help="process a whole curriculum book with sections")
parser.add_argument('--level',type=int,default=1,help="level of header tags")
# get arguments
@ -231,7 +232,7 @@ def main():
cb.set_schema(yaml.load(sf,Loader=yaml.Loader))
with open(args.book) as bf:
cb.process_book(yaml.load(bf,Loader=yaml.Loader),os.path.abspath(args.book),lang=args.lang,pagebreak=args.pagebreak,create_title=args.title)
cb.process_book(yaml.load(bf,Loader=yaml.Loader),os.path.abspath(args.book),lang=args.lang,pagebreak=args.pagebreak,create_title=args.title,header_level=args.level)
# verbose command line mode
@ -253,7 +254,7 @@ def main():
for m in args.meta:
with open(m) as fm:
cb.process(yaml.load(fm,Loader=yaml.Loader),fields=actual_fields,lang=args.lang,pagebreak=args.pagebreak,createTitle=args.title)
cb.process(yaml.load(fm,Loader=yaml.Loader),fields=actual_fields,lang=args.lang,pagebreak=args.pagebreak,createTitle=args.title,header_level=args.level)
else:
parser.print_help()