Skip to content

Commit 2b19136

Browse files
committedJul 4, 2015
Unifying different compiler extension pluing initializations and providing simple accessing functions for compiler extensions for a given page compiler.
1 parent e8ce9bb commit 2b19136

File tree

4 files changed

+16
-21
lines changed

4 files changed

+16
-21
lines changed
 

Diff for: ‎nikola/nikola.py

+9-4
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,6 @@
6161
LateTask,
6262
PageCompiler,
6363
CompilerExtension,
64-
RestExtension,
65-
MarkdownExtension,
6664
Task,
6765
TaskMultiplier,
6866
TemplateSystem,
@@ -670,8 +668,6 @@ def __init__(self, **config):
670668
"PageCompiler": PageCompiler,
671669
"TaskMultiplier": TaskMultiplier,
672670
"CompilerExtension": CompilerExtension,
673-
"RestExtension": RestExtension,
674-
"MarkdownExtension": MarkdownExtension,
675671
"SignalHandler": SignalHandler,
676672
"ConfigPlugin": ConfigPlugin,
677673
"PostScanner": PostScanner,
@@ -730,6 +726,7 @@ def __init__(self, **config):
730726
self.config['COMPILERS'][k] = sorted(list(v))
731727

732728
# Activate all required compiler plugins
729+
self.compiler_extensions = self._activate_plugins_of_category("CompilerExtension")
733730
for plugin_info in self.plugin_manager.getPluginsOfCategory("PageCompiler"):
734731
if plugin_info.name in self.config["COMPILERS"].keys():
735732
self.plugin_manager.activatePluginByName(plugin_info.name)
@@ -840,6 +837,14 @@ def _activate_plugins_of_category(self, category):
840837
plugins.append(plugin_info)
841838
return plugins
842839

840+
def activate_compiler_extensions(self, compiler_name):
841+
"""Activate all the compiler extension plugins for a given compiler and return them."""
842+
plugins = []
843+
for plugin_info in self.compiler_extensions:
844+
if plugin_info.plugin_object.compiler_name == compiler_name:
845+
plugins.append(plugin_info)
846+
return plugins
847+
843848
def _get_themes(self):
844849
if self._THEMES is None:
845850
try:

Diff for: ‎nikola/plugins/compile/markdown/__init__.py

+1-6
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,8 @@ class CompileMarkdown(PageCompiler):
5454

5555
def set_site(self, site):
5656
self.config_dependencies = []
57-
for plugin_info in site.plugin_manager.getPluginsOfCategory("MarkdownExtension"):
58-
if plugin_info.name in site.config['DISABLED_PLUGINS']:
59-
site.plugin_manager.removePluginFromCategory(plugin_info, "MarkdownExtension")
60-
continue
57+
for plugin_info in site.activate_compiler_extensions('markdown'):
6158
self.config_dependencies.append(plugin_info.name)
62-
site.plugin_manager.activatePluginByName(plugin_info.name)
63-
plugin_info.plugin_object.set_site(site)
6459
self.extensions.append(plugin_info.plugin_object)
6560
plugin_info.plugin_object.short_help = plugin_info.description
6661

Diff for: ‎nikola/plugins/compile/rest/__init__.py

+1-7
Original file line numberDiff line numberDiff line change
@@ -128,14 +128,8 @@ def create_post(self, path, **kw):
128128

129129
def set_site(self, site):
130130
self.config_dependencies = []
131-
for plugin_info in site.plugin_manager.getPluginsOfCategory("RestExtension"):
132-
if plugin_info.name in site.config['DISABLED_PLUGINS']:
133-
site.plugin_manager.removePluginFromCategory(plugin_info, "RestExtension")
134-
continue
135-
136-
site.plugin_manager.activatePluginByName(plugin_info.name)
131+
for plugin_info in site.activate_compiler_extensions('rest'):
137132
self.config_dependencies.append(plugin_info.name)
138-
plugin_info.plugin_object.set_site(site)
139133
plugin_info.plugin_object.short_help = plugin_info.description
140134

141135
self.logger = get_logger('compile_rest', site.loghandlers)

Diff for: ‎tests/base.py

+5-4
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@
3030
TemplateSystem,
3131
PageCompiler,
3232
TaskMultiplier,
33-
RestExtension,
34-
MarkdownExtension
33+
CompilerExtension
3534
)
3635

3736

@@ -213,8 +212,7 @@ def __init__(self):
213212
"TemplateSystem": TemplateSystem,
214213
"PageCompiler": PageCompiler,
215214
"TaskMultiplier": TaskMultiplier,
216-
"RestExtension": RestExtension,
217-
"MarkdownExtension": MarkdownExtension,
215+
"CompilerExtension": CompilerExtension
218216
})
219217
self.loghandlers = [nikola.utils.STDERR_HANDLER]
220218
self.plugin_manager.setPluginInfoExtension('plugin')
@@ -239,5 +237,8 @@ def __init__(self):
239237
self.template_system = self
240238
self.name = 'mako'
241239

240+
def activate_compiler_extensions(self, compiler_name):
241+
return []
242+
242243
def render_template(self, name, _, context):
243244
return('<img src="IMG.jpg">')

0 commit comments

Comments
 (0)