aboutsummaryrefslogtreecommitdiff
path: root/gemini-to-web
diff options
context:
space:
mode:
Diffstat (limited to 'gemini-to-web')
-rw-r--r--gemini-to-web/src/gemini_to_web/parser.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/gemini-to-web/src/gemini_to_web/parser.py b/gemini-to-web/src/gemini_to_web/parser.py
index 358cada..214f301 100644
--- a/gemini-to-web/src/gemini_to_web/parser.py
+++ b/gemini-to-web/src/gemini_to_web/parser.py
@@ -106,6 +106,9 @@ def parse(gemtext: str) -> abc.Generator[GemElement]:
class TextLine:
text: str
+ def __str__(self):
+ return self.text
+
@dataclasses.dataclass
class PreformattedTextLine(TextLine):
@@ -140,6 +143,11 @@ class LinkLine:
return LinkLine(parts[0])
return LinkLine(parts[0], parts[1])
+ def __str__(self):
+ if self.link_name:
+ return f"=> {self.url} {self.link_name}"
+ return f"=> {self.url}"
+
@dataclasses.dataclass
class PreformattingToggleLine:
@@ -162,6 +170,11 @@ class PreformattingToggleLine:
line: typing.Optional[str] = line if line else None
return PreformattingToggleLine(line)
+ def __str__(self):
+ if self.alt_text:
+ return f"```{self.alt_text}"
+ return "```"
+
@dataclasses.dataclass
class HeadingLine:
@@ -183,6 +196,10 @@ class HeadingLine:
return None
return HeadingLine(len(parts[0]), parts[1])
+ def __str__(self):
+ token = "#" * self.level
+ return f"{token} {self.heading_text}"
+
@dataclasses.dataclass
class ListItem:
@@ -200,6 +217,9 @@ class ListItem:
return None
return ListItem(line.removeprefix("* "))
+ def __str__(self):
+ return f"* {self.text}"
+
@dataclasses.dataclass
class QuoteLine:
@@ -217,6 +237,9 @@ class QuoteLine:
return None
return QuoteLine(line.removeprefix("> "))
+ def __str__(self):
+ return f"> {self.text}"
+
def cli_parse():
import json, sys