-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmd_parser.py
66 lines (43 loc) · 1.2 KB
/
md_parser.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import os
import sys
import re
import string
import datetime
print(sys.version)
#Testcases
test_text ="Hello this is a md test\nThis is __bold__ and \nthis is **bold**\n\nThis is _italic_ and this is *italic*"
samples=[
"__bold__",
"**bold**",
"*emphazized*",
"_emphazized_",
"~striked~",
"___both___"
]
from tokenizer.tokenizer import *
from parse_md.parser import *
from generate_md.generator import *
def parse_md(raw_md_text):
token_checker = cTokenizer()
md_parser = cParser()
md_generator =cGenerator()
token_checker.setMdText(raw_md_text)
token_checker.start()
#token_checker.tokens.print_list()
tree = md_parser.parse(token_checker.tokens)
html =md_generator.generate(tree)
print(html)
return(html)
if __name__ == "_main_":
f=open("test_file.md","r")
g=open("test_file.html","w")
g.write(parse_md(f.read()))
f.close()
g.close()
#parse_md(test_text)
#for sample in samples:
# parse_md(sample)
#info websites
#https://spec.commonmark.org/0.26/
##tutorial
#https://blog.beezwax.net/2017/07/07/writing-a-markdown-compiler/