feature: first table implementation

This commit is contained in:
Prof. Dr. Matthias Jung DL9MJ
2025-05-14 14:53:31 +02:00
parent 0236f65bce
commit 4216ccce50
5 changed files with 115 additions and 5 deletions
+58
View File
@@ -0,0 +1,58 @@
from mistletoe.block_token import BlockToken
class Table(BlockToken):
@staticmethod
def start(line):
return '|' in line
@classmethod
def parseHeader(self, line):
line = line.strip().strip('|') # Remove leading/trailing whitespace and pipes
columns = [col.strip() for col in line.split('|')] # Split by pipe |
alignment = []
data = []
for column in columns:
attr, val = column.split(':')
alignment.append(attr)
data.append(val)
return data, alignment
@classmethod
def parseRow(self, line):
line = line.strip().strip('|')
columns = [col.strip() for col in line.split('|')]
data = []
for column in columns:
data.append(column)
return data
@classmethod
def read(self, lines):
table = []
header = next(lines)
data, alignment = self.parseHeader(header)
table.append([data])
for line in lines:
if "|" not in line:
break
data = self.parseRow(line)
table.append([data])
return [table, alignment]
def __init__(self, match):
self.table = match[0]
self.alignment = match[1]
print("init")