diff --git a/requirements.txt b/requirements.txt index 2b4ca95..8ec22fc 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,5 +1,6 @@ pyyaml python-slugify[unidecode] peewee -pyparsing -lark + +# pyparsing +# lark diff --git a/spip2md/content.py b/spip2md/content.py index 45ea7d2..5fe1d96 100644 --- a/spip2md/content.py +++ b/spip2md/content.py @@ -1,17 +1,29 @@ +import re from os import path -from lark import Lark -from pyparsing import Word, alphas +# from lark import Lark +# from pyparsing import Word, alphas -larkParser = Lark(open(path.dirname(__file__) + "/spip.lark")) +# larkParser = Lark(open(path.dirname(__file__) + "/spip.lark")) class content: + _mappings = ( + (re.compile(r"\{\{\{(.*?)\}\}\}", re.S | re.I), r"## \1"), + (re.compile(r"\{\{ \{(.*?)\} \}\}", re.S | re.I), r"***\1***"), + (re.compile(r"\{ \{\{(.*?)\}\} \}", re.S | re.I), r"***\1***"), + (re.compile(r"\{\{(.*?)\}\}", re.S | re.I), r"**\1**"), + (re.compile(r"\{(.*?)\}", re.S | re.I), r"*\1*"), + ) + def __init__(self, content): self.spip = content def get_markdown(self): markdown = self.spip + for spip, md in self._mappings: + markdown = spip.sub(md, markdown) + return markdown # Parses the body & display parse tree try: print(f" parse tree :\n") @@ -24,14 +36,18 @@ class content: # Parses a file & display its parse tree def test(filename): raw = open(path.dirname(__file__) + "/" + filename).read() - print(f"--- Parse tree of {filename} ---\n\n") - print(larkParser.parse(raw)) + + print(f"--- Conversion of {filename} ---\n\n") + c = content(raw) + print(c.get_markdown()) + # print(f"--- Parse tree of {filename} ---\n\n") + # print(larkParser.parse(raw)) if __name__ == "__main__": # Test test("../test/0.spip") - test("../test/1.spip") - test("../test/2.spip") - test("../test/3.spip") - test("../test/4.spip") + # test("../test/1.spip") + # test("../test/2.spip") + # test("../test/3.spip") + # test("../test/4.spip")