Theological Markup Language to gemtext converter
Improve p parsing, and include inline elements
Zach DeCook 2020-12-02
parent 028e867 · commit 25778cf
-rwxr-xr-xthml2gmi.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/thml2gmi.py b/thml2gmi.py
index 9137ab5..5705ebf 100755
--- a/thml2gmi.py
+++ b/thml2gmi.py
@@ -14,6 +14,11 @@ def parseSomething(thing):
parseDiv(thing)
elif (thing.tag == 'p'):
parseP(thing)
+ elif (thing.tag in ['span']):
+ parseInline(thing)
+ else:
+ for thing in list(thing):
+ parseSomething(thing)
def parseDiv(div):
indentLevel = int(div.tag[3:])
@@ -23,8 +28,17 @@ def parseDiv(div):
parseSomething(child)
def parseP(p):
- text = "".join([x for x in p.itertext()])
- print(text.replace("\n", " "))
+ parseInline(p)
+ # Each paragraph should end with a newline
+ print("")
+
+def parseInline(inline):
+ if(inline.text):
+ print(inline.text.replace("\n"," "), end='')
+ for thing in inline:
+ parseSomething(thing)
+ if(thing.tail):
+ print(thing.tail.replace("\n"," "), end='')
if __name__ == '__main__':
main(sys.argv)