|
31 | 31 | import configparser
|
32 | 32 | import io
|
33 | 33 | import os
|
| 34 | +import re |
34 | 35 | import pygments
|
35 | 36 | from nikola import utils
|
36 | 37 | from nikola.plugin_categories import PageCompiler
|
@@ -176,8 +177,35 @@ def parse_theme_info(post, pkg_dir, config):
|
176 | 177 | c.read(ini)
|
177 | 178 | data['parent'] = c.get('Theme', 'parent', fallback=None)
|
178 | 179 | data['engine'] = c.get('Theme', 'engine', fallback='mako')
|
| 180 | + data['family'] = c.get('Family', 'family', fallback=theme) |
| 181 | + data['family_head'] = data['family'] == theme |
| 182 | + if data['engine'] == 'mako': |
| 183 | + data['family_mako_variant'] = theme |
| 184 | + data['family_jinja_variant'] = c.get('Family', 'jinja_variant', fallback=None) |
| 185 | + else: |
| 186 | + data['family_mako_variant'] = c.get('Family', 'mako_variant', fallback=None) |
| 187 | + data['family_jinja_variant'] = theme |
| 188 | + data['family_variants'] = [i.strip() for i in c.get('Family', 'variants', fallback='').split(',')] |
179 | 189 | data['bootswatch'] = c.getboolean('Nikola', 'bootswatch', fallback=False)
|
180 | 190 | data['tags'] = 'theme,' + data['engine']
|
| 191 | + data['license'] = c.get('Theme', 'license', fallback=None) |
| 192 | + data['author'] = c.get('Theme', 'author', fallback=None) |
| 193 | + data['author_url'] = c.get('Theme', 'author_url', fallback=None) |
| 194 | + data['author_url'] = c.get('Theme', 'author_url', fallback=None) |
| 195 | + based_on = c.get('Theme', 'based_on', fallback=None) |
| 196 | + based_on_list = [] |
| 197 | + if based_on: |
| 198 | + for i in based_on.split(','): |
| 199 | + i = i.strip() |
| 200 | + m = re.match("(.*?) ?<(.*?)>", i) |
| 201 | + if m: |
| 202 | + based_on_list.append('<a href="{0[1]}">{0[0]}</a>'.format( |
| 203 | + m.groups())) |
| 204 | + else: |
| 205 | + based_on_list.append(i) |
| 206 | + |
| 207 | + data['based_on'] = ', '.join(based_on_list) |
| 208 | + |
181 | 209 | theme_tags = c.get('Theme', 'tags', fallback='')
|
182 | 210 | if theme_tags:
|
183 | 211 | data['tags'] += ',' + theme_tags
|
|
0 commit comments