Compare commits
No commits in common. "bb6c47e4a74412d0f19e1c591b1ac8291ee011b9" and "2f393dd21c19661d1a9bb0ec777bedc508a05df8" have entirely different histories.
bb6c47e4a7
...
2f393dd21c
5 changed files with 11 additions and 30 deletions
|
@ -1,5 +1,6 @@
|
|||
# CourseBuilder
|
||||
|
||||
|
||||
Coursebuilder is a preprocessor tool for [pandoc](https://pandoc.org)
|
||||
to generate multi-lingual curricula documentation tables from
|
||||
structured representations as a flatfile database. Data scheme and
|
||||
|
@ -9,8 +10,7 @@ actual values are kept in YAML files in order to version them with git.
|
|||
|
||||
```sh
|
||||
$> python coursebuilder
|
||||
usage: [-h] [-m META [META ...]] [-l LANG] [-f FIELDS [FIELDS ...]] [-s SCHEMA] [-p] [-t] [-b BOOK] [--level LEVEL]
|
||||
[--table-gen TABLE_GEN]
|
||||
usage: [-h] [-m META [META ...]] [-l LANG] [-f FIELDS [FIELDS ...]] [-s SCHEMA] [-p] [-t] [-b BOOK]
|
||||
|
||||
versatile curricula generator
|
||||
|
||||
|
@ -26,14 +26,11 @@ options:
|
|||
-p, --pagebreak add a pagebreak after each module
|
||||
-t, --title take first value in list as title
|
||||
-b BOOK, --book BOOK process a whole curriculum book with sections
|
||||
--level LEVEL level of header tags
|
||||
--table-gen TABLE_GEN
|
||||
runs table generator
|
||||
```
|
||||
|
||||
# Author
|
||||
|
||||
© Copyright 2020-2024 Hartmut Seichter
|
||||
(c) Copyright 2020-2023 Hartmut Seichter
|
||||
|
||||
|
||||
# Licence
|
||||
|
|
|
@ -78,21 +78,11 @@ class CourseBuilder:
|
|||
else:
|
||||
return [self.process_label(field,lang),enum_val]
|
||||
|
||||
def process_num(self,meta,field,lang='de'):
|
||||
def process_int(self,meta,field,lang='de'):
|
||||
v = meta[field]['value']
|
||||
t = string.Template(self.get_template(field,lang))
|
||||
return [self.process_label(field,lang),t.substitute({'value' : v})]
|
||||
|
||||
def process_multinum(self,meta,field,lang='de'):
|
||||
v = meta[field]['value']
|
||||
t = string.Template(self.get_template(field,lang))
|
||||
if hasattr(v, "__len__"):
|
||||
vv = [t.substitute({'value' : ev}) for ev in v]
|
||||
return [self.process_label(field,lang),', '.join(vv)]
|
||||
else:
|
||||
return self.process_num(meta=meta,field=field,lang=lang)
|
||||
|
||||
|
||||
def process_multikey(self,meta,field,lang='de'):
|
||||
"""
|
||||
multikey need to assign a numeric value to a key
|
||||
|
@ -119,8 +109,7 @@ class CourseBuilder:
|
|||
match self.__schema[field]['type']:
|
||||
case 'str': table_items.append(self.process_str(meta,field,lang))
|
||||
case 'enum': table_items.append(self.process_enum(meta,field,lang))
|
||||
case ['int', 'num'] : table_items.append(self.process_num(meta,field,lang))
|
||||
case 'multinum' : table_items.append(self.process_multinum(meta,field,lang))
|
||||
case 'int': table_items.append(self.process_int(meta,field,lang))
|
||||
case 'multikey': table_items.append(self.process_multikey(meta,field,lang))
|
||||
|
||||
mdg = MarkdownGenerator()
|
||||
|
@ -165,7 +154,7 @@ def main():
|
|||
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()
|
||||
|
|
|
@ -9,9 +9,4 @@ table.de.pdf:
|
|||
all: table.en.pdf table.de.pdf
|
||||
|
||||
clean:
|
||||
rm -f table.en.pdf table.de.pdf
|
||||
|
||||
|
||||
debug:
|
||||
python ../../coursebuilder -s schema.yaml -m mod.cg.yaml -l de -f fields.yaml
|
||||
|
||||
rm table.en.pdf table.de.pdf
|
|
@ -16,7 +16,7 @@ form-of-instruction:
|
|||
value: { 'lecture': 2, 'exersise': 1 }
|
||||
|
||||
term:
|
||||
value: [1, 3]
|
||||
value: 1
|
||||
|
||||
duration:
|
||||
value: 1
|
||||
|
|
|
@ -181,12 +181,12 @@ workload:
|
|||
#
|
||||
# credits/ECTS
|
||||
#
|
||||
credits:
|
||||
type: num
|
||||
credits:
|
||||
label: {
|
||||
en: "credits and weight of mark",
|
||||
de: "Kreditpunkte und Gewichtung der Note in der Gesamtnote"
|
||||
}
|
||||
type: int
|
||||
template:
|
||||
de: "${value}CP Gewichtung: ${value}CP von 120CP "
|
||||
en: "${value}CP weight: ${value} / 120 "
|
||||
|
@ -229,7 +229,7 @@ term:
|
|||
de: "Semester",
|
||||
en: "term"
|
||||
}
|
||||
type: multinum
|
||||
type: int
|
||||
template:
|
||||
de: " ${value}. Semester"
|
||||
en: " ${value}. semester"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue