diff options
Diffstat (limited to 'nikola/plugins/template/mako.py')
| -rw-r--r-- | nikola/plugins/template/mako.py | 28 |
1 files changed, 14 insertions, 14 deletions
diff --git a/nikola/plugins/template/mako.py b/nikola/plugins/template/mako.py index e5545f6..aed6596 100644 --- a/nikola/plugins/template/mako.py +++ b/nikola/plugins/template/mako.py @@ -24,14 +24,15 @@ # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -"""Mako template handlers""" +"""Mako template handler.""" + from __future__ import unicode_literals, print_function, absolute_import import os import shutil import sys import tempfile -from mako import util, lexer +from mako import util, lexer, parsetree from mako.lookup import TemplateLookup from mako.template import Template from markupsafe import Markup # It's ok, Mako requires it @@ -43,7 +44,8 @@ LOGGER = get_logger('mako', STDERR_HANDLER) class MakoTemplates(TemplateSystem): - """Wrapper for Mako templates.""" + + """Support for Mako templates.""" name = "mako" @@ -54,6 +56,7 @@ class MakoTemplates(TemplateSystem): cache_dir = None def get_deps(self, filename): + """Get dependencies for a template (internal function).""" text = util.read_file(filename) lex = lexer.Lexer(text=text, filename=filename) lex.parse() @@ -61,13 +64,12 @@ class MakoTemplates(TemplateSystem): deps = [] for n in lex.template.nodes: keyword = getattr(n, 'keyword', None) - if keyword in ["inherit", "namespace"]: + if keyword in ["inherit", "namespace"] or isinstance(n, parsetree.IncludeTag): deps.append(n.attributes['file']) - # TODO: include tags are not handled return deps def set_directories(self, directories, cache_folder): - """Set directories and create a template lookup.""" + """Create a new template lookup with set directories.""" cache_dir = os.path.join(cache_folder, '.mako.tmp') # Workaround for a Mako bug, Issue #825 if sys.version_info[0] == 2: @@ -83,21 +85,20 @@ class MakoTemplates(TemplateSystem): self.create_lookup() def inject_directory(self, directory): - """if it's not there, add the directory to the lookup with lowest priority, and - recreate the lookup.""" + """Add a directory to the lookup and recreate it if it's not there yet.""" if directory not in self.directories: self.directories.append(directory) self.create_lookup() def create_lookup(self): - """Create a template lookup object.""" + """Create a template lookup.""" self.lookup = TemplateLookup( directories=self.directories, module_directory=self.cache_dir, output_encoding='utf-8') def set_site(self, site): - """Sets the site.""" + """Set the Nikola site.""" self.site = site self.filters.update(self.site.config['TEMPLATE_FILTERS']) @@ -113,14 +114,12 @@ class MakoTemplates(TemplateSystem): return data def render_template_to_string(self, template, context): - """ Render template to a string using context. """ - + """Render template to a string using context.""" context.update(self.filters) - return Template(template).render(**context) def template_deps(self, template_name): - """Returns filenames which are dependencies for a template.""" + """Generate list of dependencies for a template.""" # We can cache here because dependencies should # not change between runs if self.cache.get(template_name, None) is None: @@ -134,4 +133,5 @@ class MakoTemplates(TemplateSystem): def striphtml(text): + """Strip HTML tags from text.""" return Markup(text).striptags() |
