70 lines
No EOL
1.8 KiB
Python
70 lines
No EOL
1.8 KiB
Python
|
|
import token
|
|
import string
|
|
|
|
class TableGenerator:
|
|
def __init__(self) -> None:
|
|
self.__cols_map = {
|
|
"de": {'': 'Thema ', 'A': " Erkennen", 'B': ' Verstehen', 'C': ' Anwenden', 'D' : ' Analysiseren', 'E' : ' Synthetisieren' }
|
|
}
|
|
self.__checkmark = "X"
|
|
|
|
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(self.__checkmark)
|
|
else:
|
|
row.append(' ')
|
|
|
|
print(' | '.join(row))
|
|
|
|
self.run_template()
|
|
|
|
|
|
def run_template(self):
|
|
t = string.Template(self.get_latex_template())
|
|
print(t.substitute({ 'value' : "Test"}))
|
|
|
|
|
|
|
|
def get_latex_template(self) -> str:
|
|
|
|
return (r'\documentclass{article}'
|
|
r'\usepackage[utf8]{inputenc}'
|
|
r'\usepackage[]{tabularx}'
|
|
r'\usepackage[margin=0.7in]{geometry}'
|
|
r'\begin{document}'
|
|
r'\begin{table}[ht]'
|
|
r'\begin{tabular}{l c c}'
|
|
r'${value}'
|
|
r'\end{tabular}'
|
|
r'\end{table}'
|
|
r'\end{document}')
|
|
|
|
|
|
#
|
|
# Kompetenz & Kennen & Wertung \\
|
|
|
|
# 1 & Pandoc & +++ \\
|
|
# 2 & Latex & ++ \\
|
|
# 3 & Writer & +- \\
|
|
#
|
|
# latex image.tex;dvisvgm image.dvi |