From 094b5cc7e3e2b11aa34e8fbe59ede0dfbf010b65 Mon Sep 17 00:00:00 2001 From: Hartmut Seichter Date: Tue, 14 Nov 2023 23:05:58 +0100 Subject: [PATCH] WIP --- coursebuilder/__main__.py | 48 ++++++++++++++++++++++++++++++++++++++- test/simple/mod.test.yaml | 10 ++++++++ test/simple/schema.yaml | 5 +++- 3 files changed, 61 insertions(+), 2 deletions(-) diff --git a/coursebuilder/__main__.py b/coursebuilder/__main__.py index 79f8495..d606540 100644 --- a/coursebuilder/__main__.py +++ b/coursebuilder/__main__.py @@ -18,6 +18,42 @@ import string import os +class TableGenerator: + def __init__(self) -> None: + self.__cols_map = { + "de": {'': 'Thema', 'A': " Erkennen", 'B': ' Verstehen', 'C': ' Anwenden', 'D' : ' Analysiseren', 'E' : ' Synthetisieren' } + } + + + def generate_table(self,data,lang='de'): + + header = False + for token in data.split(','): + if not header: + head_str = "| " + " | ".join(self.__cols_map[lang].values()) + " |" + + print(head_str) + + ruler = ['-' * len(s) for s in self.__cols_map[lang].values()] + ruler_str = "| " + " | ".join(ruler) + " |" + + print(ruler_str) + + header = True + + t = tuple(token.split(':')[:2]) + + row = [t[0]] + for k in self.__cols_map[lang].keys(): + if k in t[1]: + row.append('X') + else: + row.append(' ') + + print(' | '.join(row)) + + + class MarkdownGenerator: def __init__(self) -> None: pass @@ -200,7 +236,6 @@ class CourseBuilder: with open(mod_path) as fm: self.process(yaml.load(fm,Loader=yaml.Loader),fields=actual_fields,lang=lang,pagebreak=pagebreak,createTitle=create_title,header_level=header_level) - pass @@ -218,10 +253,21 @@ def main(): 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") + parser.add_argument('--table-gen',type=str,default=None,help='runs table generator') # get arguments args = parser.parse_args() + + if args.table_gen: + + tg = TableGenerator() + + tg.generate_table(args.table_gen) + + return + + # book mode with predefined setting from a book file if args.book and args.schema: diff --git a/test/simple/mod.test.yaml b/test/simple/mod.test.yaml index 7037a1f..17d2663 100644 --- a/test/simple/mod.test.yaml +++ b/test/simple/mod.test.yaml @@ -3,6 +3,14 @@ name: en: Test Course +test: + en: | + + # # nested lists seem to work in Markdown only in the US style way # @@ -85,3 +93,5 @@ content: - Blub + + diff --git a/test/simple/schema.yaml b/test/simple/schema.yaml index a1058d3..510ed96 100644 --- a/test/simple/schema.yaml +++ b/test/simple/schema.yaml @@ -286,4 +286,7 @@ remarks: label: { de: "Besonderes", en: "remarks" - } \ No newline at end of file + } + + + \ No newline at end of file