Broken project to implement a cross-protocol browser in textual
Diffstat (limited to 'gemtext.py')
-rw-r--r--gemtext.py14
1 files changed, 13 insertions, 1 deletions
diff --git a/gemtext.py b/gemtext.py
index 5c28e16..602d308 100644
--- a/gemtext.py
+++ b/gemtext.py
@@ -4,17 +4,26 @@ from textual.containers import Container
class Gemtext(Static):
"""Gemtext widget."""
+ inPre = False
def __init__(self, fp, id):
super().__init__(id=id)
self.addlines(fp)
+
def addlines(self, fp):
for lin in fp:
line = lin
if type(line) is bytes:
line = line.decode("UTF-8")
line = line.rstrip("\r\n")
- if line.startswith("=>"):
+ if line.startswith("```"):
+ self.inPre = not self.inPre
+ if self.inPre:
+ self.inPre = Preformatted()
+ self.mount(self.inPre)
+ elif self.inPre:
+ self.inPre.mount(Static(line, markup=False))
+ elif line.startswith("=>"):
path = line[2:].lstrip().split(' ')[0]
text = ' '.join(line[2:].lstrip().split(' ')[1:])
self.mount(Button(text or path, name=path))
@@ -25,6 +34,9 @@ class Gemtext(Static):
else:
self.mount(Static(line, markup=False))
+class Preformatted(Container):
+ pass
+
if __name__ == "__main__":
from textual.app import App
class Test(App):