-
Notifications
You must be signed in to change notification settings - Fork 1
/
preprocessors.py
33 lines (28 loc) · 1.25 KB
/
preprocessors.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
import re
RE1 = r"terminal:(?P<line>.*)endterminal"
def preprocess(text):
text = preprocess_terminal(text)
return text
def preprocess_terminal(text):
try:
# Search for terminal blocks.
m = re.search(RE1, text, re.DOTALL)
c = [filter(None, match.split(" ")) for match in m.groups('line')]
t_lines = str() # The lines or input of the terminal representation.
for line in c[0]:
if line[0] == '$':
t_lines += "<div class='terminal-line'><b>%s</b></div>" % line
else:
t_lines += "<div class='terminal-line'>%s</div>" % line
# Build the final terminal block.
terminal = """<div class="terminal-container"><div class="terminal-top">
<div class="terminal-top-text">/bin/bash</div><div class="mock-buttons">
<div class="terminal-but terminal-but-mini"></div>
<div class="terminal-but terminal-but-max"></div>
<div class="terminal-but"></div></div></div><div class="terminal-box">
%s</div><div class="terminal-bottom"></div></div>""" % t_lines
# Swap out the markup with the generated code.
result = text.replace(m.group(), terminal)
return result
except AttributeError:
return text