OLD | NEW |
1 # This file is part of the Adblock Plus web scripts, | 1 # This file is part of the Adblock Plus web scripts, |
2 # Copyright (C) 2006-2017 eyeo GmbH | 2 # Copyright (C) 2006-2017 eyeo GmbH |
3 # | 3 # |
4 # Adblock Plus is free software: you can redistribute it and/or modify | 4 # Adblock Plus is free software: you can redistribute it and/or modify |
5 # it under the terms of the GNU General Public License version 3 as | 5 # it under the terms of the GNU General Public License version 3 as |
6 # published by the Free Software Foundation. | 6 # published by the Free Software Foundation. |
7 # | 7 # |
8 # Adblock Plus is distributed in the hope that it will be useful, | 8 # Adblock Plus is distributed in the hope that it will be useful, |
9 # but WITHOUT ANY WARRANTY; without even the implied warranty of | 9 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | 10 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
115 | 115 |
116 def handle_charref(self, name): | 116 def handle_charref(self, name): |
117 self._append_text(self.unescape('&#{};'.format(name))) | 117 self._append_text(self.unescape('&#{};'.format(name))) |
118 | 118 |
119 | 119 |
120 def parse_page_content(page, data): | 120 def parse_page_content(page, data): |
121 """Separate page content into metadata (dict) and body text (str)""" | 121 """Separate page content into metadata (dict) and body text (str)""" |
122 page_data = {'page': page} | 122 page_data = {'page': page} |
123 lines = data.splitlines(True) | 123 lines = data.splitlines(True) |
124 for i, line in enumerate(lines): | 124 for i, line in enumerate(lines): |
| 125 if line.strip() in {'<!--', '-->'}: |
| 126 lines[i] = '' |
| 127 continue |
125 if not re.search(r'^\s*[\w\-]+\s*=', line): | 128 if not re.search(r'^\s*[\w\-]+\s*=', line): |
126 break | 129 break |
127 name, value = line.split('=', 1) | 130 name, value = line.split('=', 1) |
128 value = value.strip() | 131 value = value.strip() |
129 if value.startswith('[') and value.endswith(']'): | 132 if value.startswith('[') and value.endswith(']'): |
130 value = [element.strip() for element in value[1:-1].split(',')] | 133 value = [element.strip() for element in value[1:-1].split(',')] |
131 lines[i] = '\n' | 134 lines[i] = '\n' |
132 page_data[name.strip()] = value | 135 page_data[name.strip()] = value |
133 return page_data, ''.join(lines) | 136 return page_data, ''.join(lines) |
134 | 137 |
(...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
553 stack.pop() | 556 stack.pop() |
554 stack[-1]['subitems'].append(item) | 557 stack[-1]['subitems'].append(item) |
555 stack.append(item) | 558 stack.append(item) |
556 return structured | 559 return structured |
557 | 560 |
558 converters = { | 561 converters = { |
559 'html': RawConverter, | 562 'html': RawConverter, |
560 'md': MarkdownConverter, | 563 'md': MarkdownConverter, |
561 'tmpl': TemplateConverter, | 564 'tmpl': TemplateConverter, |
562 } | 565 } |
OLD | NEW |