update with proper formating
This commit is contained in:
parent
027b49a588
commit
324b5ba4cc
2 changed files with 92 additions and 36 deletions
|
@ -16,7 +16,7 @@ import os
|
||||||
import textwrap
|
import textwrap
|
||||||
|
|
||||||
config_file = 'modulhandbuch.yaml'
|
config_file = 'modulhandbuch.yaml'
|
||||||
line_length = 80
|
line_length = 128
|
||||||
column_ratio= 0.28
|
column_ratio= 0.28
|
||||||
|
|
||||||
def build_curriculum(input_path,lang='de',pagebreak=False,title=False):
|
def build_curriculum(input_path,lang='de',pagebreak=False,title=False):
|
||||||
|
@ -101,23 +101,75 @@ class CourseBuilder:
|
||||||
|
|
||||||
def set_schema(self,schema = None):
|
def set_schema(self,schema = None):
|
||||||
self.__schema = schema
|
self.__schema = schema
|
||||||
# print(self.__schema)
|
|
||||||
|
|
||||||
def process(self,meta = None,lang='en'):
|
|
||||||
|
|
||||||
fields = ['name','goal']
|
def generate_markdown(self,ti):
|
||||||
|
|
||||||
|
h_len = int(line_length * column_ratio)
|
||||||
|
d_len = line_length-h_len
|
||||||
|
|
||||||
|
# if title:
|
||||||
|
# print('#',desc[lang]['name'],'\n')
|
||||||
|
|
||||||
|
print(''.join(['+',"".ljust(h_len,'-'),'+',"".ljust(d_len,'-'),'+']))
|
||||||
|
|
||||||
|
headline = False
|
||||||
|
|
||||||
|
for k,v in ti:
|
||||||
|
|
||||||
|
h = textwrap.wrap(k, h_len, break_long_words=False)
|
||||||
|
wrapper = textwrap.TextWrapper(d_len)
|
||||||
|
t = [wrapper.wrap(i) for i in v.split('\n') if i != '']
|
||||||
|
t = list(itertools.chain.from_iterable(t))
|
||||||
|
|
||||||
|
# get rows
|
||||||
|
rows = list(itertools.zip_longest(h,t,fillvalue=""))
|
||||||
|
|
||||||
|
# expand rows
|
||||||
|
for r in rows:
|
||||||
|
print(''.join(['|',r[0].ljust(h_len,' '),'|',r[1].ljust(d_len,' '),'|']))
|
||||||
|
|
||||||
|
if headline:
|
||||||
|
print(''.join(['+',"".ljust(h_len,'-'),'+',"".ljust(d_len,'-'),'+']))
|
||||||
|
else:
|
||||||
|
print(''.join(['+',"".ljust(h_len,'='),'+',"".ljust(d_len,'='),'+']))
|
||||||
|
headline = True
|
||||||
|
|
||||||
|
# to control pagebreaks for pandoc
|
||||||
|
# if pagebreak:
|
||||||
|
# print('\n\\newpage')
|
||||||
|
|
||||||
|
|
||||||
|
def process(self,meta,fields,lang):
|
||||||
|
|
||||||
|
# fields = ['name','goal','form-of-exam']
|
||||||
|
# fields = ['form-of-exam']
|
||||||
|
|
||||||
|
table_items = []
|
||||||
|
|
||||||
for field in fields:
|
for field in fields:
|
||||||
match self.__schema[field]['type']:
|
match self.__schema[field]['type']:
|
||||||
case 'str': self.process_str(meta,field,lang)
|
case 'str': table_items.append(self.process_str(meta,field,lang))
|
||||||
|
case 'enum': table_items.append(self.process_enum(meta,field,lang))
|
||||||
|
|
||||||
def process_str(self,meta,field,lang='de'):
|
# print(table_items)
|
||||||
print(self.__schema[field]['label'][lang],':',meta[field][lang])
|
|
||||||
|
|
||||||
def process_int(self,lang='de'):
|
self.generate_markdown(table_items)
|
||||||
|
|
||||||
|
|
||||||
|
def process_label(self,field,lang='de'):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
def process_enum(self):
|
def process_str(self,meta,field,lang='de'):
|
||||||
|
return [self.__schema[field]['label'][lang],meta[field][lang]]
|
||||||
|
# print(self.__schema[field]['label'][lang],':',meta[field][lang])
|
||||||
|
|
||||||
|
def process_enum(self,meta,field,lang='de'):
|
||||||
|
v = meta[field]['value']
|
||||||
|
return [self.__schema[field]['label'][lang],self.__schema[field]['values'][v][lang]]
|
||||||
|
# print(self.__schema[field]['label'][lang],':',self.__schema[field]['values'][v][lang])
|
||||||
|
|
||||||
|
def process_int(self,lang='de'):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
@ -132,6 +184,8 @@ def main():
|
||||||
|
|
||||||
parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="course description(s) as YAML file(s)")
|
parser.add_argument('-m','--meta',action="extend", nargs="+", type=str,help="course description(s) as YAML file(s)")
|
||||||
parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de')
|
parser.add_argument('-l','--lang',help="Language to parse from meta file (use de or en)",default='de')
|
||||||
|
parser.add_argument('-f','--fields',help="Fields to be used",action="extend", nargs="+", type=str)
|
||||||
|
|
||||||
# parser.add_argument('-c','--create',action='store_true',help="Create a meta file from description")
|
# parser.add_argument('-c','--create',action='store_true',help="Create a meta file from description")
|
||||||
# parser.add_argument('-n','--newpage',action='store_true',help="Create a pagebreak after each table")
|
# parser.add_argument('-n','--newpage',action='store_true',help="Create a pagebreak after each table")
|
||||||
# parser.add_argument('-t','--title',action='store_true',help="Create a title ahead of each table")
|
# parser.add_argument('-t','--title',action='store_true',help="Create a title ahead of each table")
|
||||||
|
@ -142,6 +196,7 @@ def main():
|
||||||
# get arguments
|
# get arguments
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
|
||||||
# only run debug
|
# only run debug
|
||||||
if args.schema:
|
if args.schema:
|
||||||
|
|
||||||
|
@ -152,7 +207,7 @@ def main():
|
||||||
|
|
||||||
for m in args.meta:
|
for m in args.meta:
|
||||||
with open(m) as fm:
|
with open(m) as fm:
|
||||||
cb.process(yaml.load(fm,Loader=yaml.Loader),lang=args.lang)
|
cb.process(yaml.load(fm,Loader=yaml.Loader),fields=args.fields,lang=args.lang)
|
||||||
else:
|
else:
|
||||||
parser.print_help()
|
parser.print_help()
|
||||||
|
|
||||||
|
|
|
@ -19,39 +19,41 @@ common:
|
||||||
author-of-indenture:
|
author-of-indenture:
|
||||||
form: lecture # lecture, seminar, lecture_seminar, lecture_exersice, project
|
form: lecture # lecture, seminar, lecture_seminar, lecture_exersice, project
|
||||||
|
|
||||||
|
form-of-exam:
|
||||||
|
value: written
|
||||||
|
|
||||||
goal: {
|
goal:
|
||||||
de: "Computergrafik ist ein Schmelztiegel von Technologien in der Informatik mit dem Ziel visuelle
|
de: |
|
||||||
|
Computergrafik ist ein Schmelztiegel von Technologien in der Informatik mit dem Ziel visuelle
|
||||||
Inhalte effizient zu generieren und dem Nutzer zu präsentieren. Studierende können den
|
Inhalte effizient zu generieren und dem Nutzer zu präsentieren. Studierende können den
|
||||||
Zusammenhang von visuellen Technologien in der Informatik, den zugrunde liegenden mathematischen
|
Zusammenhang von visuellen Technologien in der Informatik, den zugrunde liegenden mathematischen
|
||||||
Konzepte und der Physiognomie des Menschen, insbesondere des Sehapparates herstellen.
|
Konzepte und der Physiognomie des Menschen, insbesondere des Sehapparates herstellen.
|
||||||
Sie können die Eigenschaften verschiedener Darstellungsformen und -techniken analysieren und
|
Sie können die Eigenschaften verschiedener Darstellungsformen und -techniken analysieren und
|
||||||
bewerten. Sie lernen grundsätzliche Technologien der 3D Echtzeitdarstellung
|
bewerten. Sie lernen grundsätzliche Technologien der 3D Echtzeitdarstellung
|
||||||
kennen und wenden diese an.",
|
kennen und wenden diese an.
|
||||||
en: "Computer graphics is describing all techniques in computer science
|
en: |
|
||||||
|
Computer graphics is describing all techniques in computer science
|
||||||
generating images perceivable by humans. Participants will have a broad
|
generating images perceivable by humans. Participants will have a broad
|
||||||
overview of techniques and concepts of computer graphics. They will be
|
overview of techniques and concepts of computer graphics. They will be
|
||||||
able to apply theoretical concepts in practice. "
|
able to apply theoretical concepts in practice.
|
||||||
}
|
|
||||||
|
|
||||||
content: {
|
content:
|
||||||
de: "
|
de: |
|
||||||
* Grundkenntnisse der menschlichen Wahrnehmung
|
* Grundkenntnisse der menschlichen Wahrnehmung
|
||||||
* Grundkonzepte der Bilderzeugung, Speicherung und Transformation
|
* Grundkonzepte der Bilderzeugung, Speicherung und Transformation
|
||||||
* Anwendungen von Computergrafik
|
* Anwendungen von Computergrafik
|
||||||
* Technologien zur Bilddarstellung
|
* Technologien zur Bilddarstellung
|
||||||
* 3D Modelle, insbesondere Surface- und Volumemodelle
|
* 3D Modelle, insbesondere Surface- und Volumemodelle
|
||||||
* Transformationspipeline
|
* Transformationspipeline
|
||||||
* Homogene Vektorräume und Transformationen
|
* Homogene Vektorräume und Transformationen
|
||||||
* Szenengraphen und Echtzeit Rendering APIs
|
* Szenengraphen und Echtzeit Rendering APIs
|
||||||
* Bildsyntheseverfahren
|
* Bildsyntheseverfahren
|
||||||
* Geometrie und Bild Samplingverfahren und Anti-Aliasing Strategien
|
* Geometrie und Bild Samplingverfahren und Anti-Aliasing Strategien
|
||||||
* Lichttransport, Physikalische Beleuchtungsmodelle
|
* Lichttransport, Physikalische Beleuchtungsmodelle
|
||||||
* Texturierungsverfahren
|
* Texturierungsverfahren
|
||||||
* Überblick Visualisierung
|
* Überblick Visualisierung
|
||||||
* Graphische Nutzeroberflächen und Systeme
|
* Graphische Nutzeroberflächen und Systeme
|
||||||
",
|
en: |
|
||||||
en: "
|
|
||||||
* Basics of human perception
|
* Basics of human perception
|
||||||
* Concepts of image storage and manipulation
|
* Concepts of image storage and manipulation
|
||||||
* Applications of computer graphics
|
* Applications of computer graphics
|
||||||
|
@ -66,8 +68,7 @@ content: {
|
||||||
* Texturing
|
* Texturing
|
||||||
* Overview visualizations
|
* Overview visualizations
|
||||||
* Graphical User Interfaces
|
* Graphical User Interfaces
|
||||||
"
|
|
||||||
}
|
|
||||||
|
|
||||||
# German Variant
|
# German Variant
|
||||||
de:
|
de:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue