summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjantwisted <janith@member.fsf.org>2015-11-29 00:34:32 +0530
committerjantwisted <janith@member.fsf.org>2015-11-29 00:34:32 +0530
commit85e437b962b4a22db1e4a87232624fc296622d3a (patch)
tree48c6a197288d57a8c5cc01da51ae7a4ce95aacd3
parent10a44e832ed22e0f09b945f9b5499b909807c602 (diff)
custom html render for mistune
-rw-r--r--lpschedule/htmlrender.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/lpschedule/htmlrender.py b/lpschedule/htmlrender.py
new file mode 100644
index 0000000..5375524
--- /dev/null
+++ b/lpschedule/htmlrender.py
@@ -0,0 +1,34 @@
+import mistune
+import re
+
+
+class HtmlRender(mistune.Renderer):
+ """
+ Subclassing Renderer classes to customize HTML content.
+
+ """
+ def header(self, text, level, raw=None):
+ if level == 2:
+ return '<header class="program-day-header">\n\t<hgroup>\n\t\t<h%d>%s\n\t\t</h%d>\n\t</hgroup>\n</header>\n' % (level, text+ \
+ '\n\t\t<a class="btn btn-default btn-xs" \n\t\trole="button" '+ \
+ 'data-toggle="collapse" \n\t\taria-expanded="false" '+ \
+ 'aria-controls="sat-timeslots" '+ \
+ '\n\t\thref="#sat-timeslots">&#x2193;</a>', level)
+ elif level == 3:
+ return '\n<article id="sat-ts-b0" class="program-timeslot-break">'+ \
+ '\n\t<header class="program-timeslot-break-header">'+ \
+ '\n\t\t<hgroup>\n\t\t\t<h%d>%s</h%d>\n\t\t</hgroup>\n\t</header>\n</article>\n' % (level, text, level)
+
+ return '<h%d>%s</h%d>\n' % (level, text, level)
+
+
+ def paragraph(self, text):
+ _get_room_ptr = re.compile(r'(Room\s[\d]*\-[\d]*)')
+ if _get_room_ptr.search(text.strip(' ')) is not None:
+ str = _get_room_ptr.findall(text.strip(' '))
+ return '<p><span class="label label-default">%s</span></p>\n<a href="#" class="program-session-speaker">%s</a>' \
+ % (''.join(str), _get_room_ptr.sub('',text.strip(' '))) + \
+ '\n<button class="btn btn-default btn-xs" data-toggle="collapse" \n\taria-expanded="false" aria-controls="sat-ts0-s0-collapse"'+ \
+ 'data-target="#sat-ts0-s0-collapse">\n\t\tDetails\n</button>\n'
+ else:
+ return '<p>%s</p>\n' % text.strip(' ') \ No newline at end of file