git @ Cat's Eye Technologies Feedmark / 9a41eac
Introduce markdown_to_html5_deep(). Chris Pressey 6 years ago
3 changed file(s) with 26 addition(s) and 7 deletion(s). Raw diff Collapse all Expand all
00 History of Feedmark
11 ===================
2
3 0.8
4 ---
5
6 * Added `--htmlized-json` option which, when using `--output-json`,
7 converts Markdown to HTML5 every place it is present in the JSON.
28
39 0.7
410 ---
44 import re
55
66 from feedmark.formats.markdown import markdown_to_html5
7 from feedmark.utils import quote
8
9
10 def markdown_to_html5_properties(properties, **kwargs):
11 return dict((k, markdown_to_html5(v, **kwargs)) for k, v in properties.items())
7 from feedmark.utils import quote, unicode
8
9
10 def markdown_to_html5_deep(obj, **kwargs):
11 if obj is None:
12 return None
13 elif isinstance(obj, dict):
14 return dict((k, markdown_to_html5_deep(v, **kwargs)) for k, v in obj.items())
15 elif isinstance(obj, list):
16 return [markdown_to_html5_deep(subobj, **kwargs) for subobj in obj]
17 else:
18 return markdown_to_html5(unicode(obj), **kwargs)
1219
1320
1421 def rewrite_reference_links(refdex, reference_links):
6269 if 'reference_links' not in kwargs:
6370 kwargs['reference_links'] = self.global_reference_links()
6471 preamble = markdown_to_html5(self.preamble, reference_links=kwargs['reference_links'])
65 properties = markdown_to_html5_properties(self.properties, reference_links=kwargs['reference_links'])
72 properties = markdown_to_html5_deep(self.properties, reference_links=kwargs['reference_links'])
6673 else:
6774 preamble = self.preamble
6875 properties = self.properties
126133 htmlize = kwargs.get('htmlize', False)
127134 if htmlize:
128135 body = markdown_to_html5(self.body, reference_links=kwargs['reference_links'])
129 properties = markdown_to_html5_properties(self.properties, reference_links=kwargs['reference_links'])
136 properties = markdown_to_html5_deep(self.properties, reference_links=kwargs['reference_links'])
130137 else:
131138 body = self.body
132139 properties = self.properties
0 # Python 2/3
1 try:
2 unicode = unicode
3 except NameError:
4 unicode = str
5
06 try:
17 from StringIO import StringIO
28 except ImportError: