diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index 27f6574..79f8495 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -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()