36 lines
1.1 KiB
Python
36 lines
1.1 KiB
Python
import os
|
|
|
|
from orgparse import loads
|
|
|
|
blogDir: str = "./blogs"
|
|
debug: bool = True
|
|
|
|
def debugPrint(msg: str) -> None:
|
|
if debug:
|
|
print("(ORG HANDLER) PRINT: " + msg)
|
|
|
|
def checkAndRetrieveMetadata(fileData, metadataName: str):
|
|
metadataFullName = "#+" + metadataName + ":"
|
|
for line in fileData:
|
|
if metadataFullName in line:
|
|
linetoarray = line.split()
|
|
return " ".join(linetoarray[1:])
|
|
debugPrint("Could not find " + metadataFullName + " metadata field of document!")
|
|
return False
|
|
|
|
def orgToHTML(orgData: str) -> str:
|
|
try:
|
|
orgRoot = loads(orgData)
|
|
parsedHTML = ""
|
|
|
|
for node in orgRoot[1:]:
|
|
if node.heading:
|
|
headingLevel = node.level if node.level <= 6 else 6
|
|
headingLevel += 2
|
|
parsedHTML += "<h" + str(headingLevel) + ">" + node.heading + "</h" + str(headingLevel) + ">" + "\n"
|
|
if node.body:
|
|
parsedHTML += node.body + "\n"
|
|
return parsedHTML
|
|
except Exception as error:
|
|
debugPrint("Error parsing org! Unexpected error: " + repr(error) + ".")
|