Broken project to implement a cross-protocol browser in textual
Browset: Fully recreate gemtext widget on entry
Zach DeCook 2022-12-23
parent 7f7c524 · commit f62aa8b
-rw-r--r--browset.py3
-rw-r--r--gemtext.py10
2 files changed, 4 insertions, 9 deletions
diff --git a/browset.py b/browset.py
index 7ea57c6..9dce9c3 100644
--- a/browset.py
+++ b/browset.py
@@ -26,7 +26,8 @@ class Browset(App):
yield Gemtext(txt=self.content, id="content")
async def on_input_submitted(self, message: Input.Submitted) -> None:
self.content = "## new stuff\n"+message.value
- self.query_one("#content", Gemtext).update(self.content)
+ self.query_one("#content", Gemtext).remove()
+ self.mount(Gemtext(txt=self.content, id="content"))
if __name__ == "__main__":
app = Browset()
diff --git a/gemtext.py b/gemtext.py
index 62640a3..66a2ad6 100644
--- a/gemtext.py
+++ b/gemtext.py
@@ -4,17 +4,11 @@ from textual.containers import Container
class Gemtext(Static):
"""Gemtext widget."""
- items = []
- #def compose(self) -> ComposeResult:
- # yield Container(id="content")
def __init__(self, txt, id):
super().__init__(id=id)
- self.update(txt)
- def update(self, txt):
- #S = self.query("Static")
- #if S:
- # S.last().remove()
+ self.addlines(txt)
+ def addlines(self, txt):
for line in txt.split('\n'):
if line.startswith("=>"):
path = line[2:].lstrip().split(' ')[0]