Skip to content

Commit cab1530

Browse files
committed
Finished refactoring the markdown challenge code, mistune was super helpful
1 parent da86f37 commit cab1530

File tree

3 files changed

+8
-66
lines changed

3 files changed

+8
-66
lines changed
456 Bytes
Binary file not shown.
Binary file not shown.

markdown/markdown.py

+8-66
Original file line numberDiff line numberDiff line change
@@ -1,71 +1,13 @@
1+
import mistune
12
import re
23

3-
44
def parse(markdown):
5-
lines = markdown.split('\n')
6-
res = ''
7-
in_list = False
8-
in_list_append = False
5+
lines = markdown.splitlines()
6+
output = ''
97
for i in lines:
10-
if re.match('###### (.*)', i) is not None:
11-
i = '<h6>' + i[7:] + '</h6>'
12-
elif re.match('## (.*)', i) is not None:
13-
i = '<h2>' + i[3:] + '</h2>'
14-
elif re.match('# (.*)', i) is not None:
15-
i = '<h1>' + i[2:] + '</h1>'
16-
m = re.match(r'\* (.*)', i)
17-
if m:
18-
if not in_list:
19-
in_list = True
20-
is_bold = False
21-
is_italic = False
22-
curr = m.group(1)
23-
m1 = re.match('(.*)__(.*)__(.*)', curr)
24-
if m1:
25-
curr = m1.group(1) + '<strong>' + \
26-
m1.group(2) + '</strong>' + m1.group(3)
27-
is_bold = True
28-
m1 = re.match('(.*)_(.*)_(.*)', curr)
29-
if m1:
30-
curr = m1.group(1) + '<em>' + m1.group(2) + \
31-
'</em>' + m1.group(3)
32-
is_italic = True
33-
i = '<ul><li>' + curr + '</li>'
34-
else:
35-
is_bold = False
36-
is_italic = False
37-
curr = m.group(1)
38-
m1 = re.match('(.*)__(.*)__(.*)', curr)
39-
if m1:
40-
is_bold = True
41-
m1 = re.match('(.*)_(.*)_(.*)', curr)
42-
if m1:
43-
is_italic = True
44-
if is_bold:
45-
curr = m1.group(1) + '<strong>' + \
46-
m1.group(2) + '</strong>' + m1.group(3)
47-
if is_italic:
48-
curr = m1.group(1) + '<em>' + m1.group(2) + \
49-
'</em>' + m1.group(3)
50-
i = '<li>' + curr + '</li>'
51-
else:
52-
if in_list:
53-
in_list_append = True
54-
in_list = False
8+
output += mistune.markdown(i)
559

56-
m = re.match('<h|<ul|<p|<li', i)
57-
if not m:
58-
i = '<p>' + i + '</p>'
59-
m = re.match('(.*)__(.*)__(.*)', i)
60-
if m:
61-
i = m.group(1) + '<strong>' + m.group(2) + '</strong>' + m.group(3)
62-
m = re.match('(.*)_(.*)_(.*)', i)
63-
if m:
64-
i = m.group(1) + '<em>' + m.group(2) + '</em>' + m.group(3)
65-
if in_list_append:
66-
i = '</ul>' + i
67-
in_list_append = False
68-
res += i
69-
if in_list:
70-
res += '</ul>'
71-
return res
10+
output = re.sub(r'\n', '', output)
11+
output = re.sub(r'</ul><ul>', '', output)
12+
output = re.sub(r'</ol><ol>', '', output)
13+
return output

0 commit comments

Comments
 (0)