From 9be6c151a3f35901ff03ab943562ad203b92c770 Mon Sep 17 00:00:00 2001 From: Sahand Date: Fri, 21 Feb 2014 13:16:35 -0800 Subject: [PATCH] Added TYPPOGRIFY_SETTINGs setting. --- docs/settings.rst | 4 ++++ pelican/readers.py | 8 +++++--- pelican/settings.py | 1 + 3 files changed, 10 insertions(+), 3 deletions(-) diff --git a/docs/settings.rst b/docs/settings.rst index a8e96d71..07b00674 100644 --- a/docs/settings.rst +++ b/docs/settings.rst @@ -138,6 +138,10 @@ Setting name (default value) incorporated into the generated HTML via the `Typogrify `_ library, which can be installed via: ``pip install typogrify`` +`TYPOGRIFY_FILTERS` (``['typogrify']``) List of Typogrify filterst to apply if ``TYPOGRIFY`` is set to ``True``. + Default is ``['typogrify']`` which applies all the filters. For example, + to disable the ``caps`` filter, you can set ``TYPOGRIFY_FILTERS = ['amp', + 'initial_quotes', 'smartypants', 'titlecase', 'widont']``. `DIRECT_TEMPLATES` (``('index', 'tags', 'categories', 'authors', 'archives')``) List of templates that are used directly to render content. Typically direct templates are used to generate index pages for collections of content (e.g., tags and diff --git a/pelican/readers.py b/pelican/readers.py index 1e00aefa..91e41b4a 100644 --- a/pelican/readers.py +++ b/pelican/readers.py @@ -463,9 +463,11 @@ class Readers(object): # eventually filter the content with typogrify if asked so if content and self.settings['TYPOGRIFY']: - from typogrify.filters import typogrify - content = typogrify(content) - metadata['title'] = typogrify(metadata['title']) + import typogrify.filters + for filter_name in self.settings['TYPOGRIFY_FILTERS']: + filter = getattr(typogrify.filters, filter_name) + content = filter(content) + metadata['title'] = filter(metadata['title']) if context_signal: logger.debug('signal {}.send({}, )'.format( diff --git a/pelican/settings.py b/pelican/settings.py index 225a1e9d..3319a893 100644 --- a/pelican/settings.py +++ b/pelican/settings.py @@ -108,6 +108,7 @@ DEFAULT_CONFIG = { 'DEFAULT_STATUS': 'published', 'ARTICLE_PERMALINK_STRUCTURE': '', 'TYPOGRIFY': False, + 'TYPOGRIFY_FILTERS': ['typogrify'], 'SUMMARY_MAX_LENGTH': 50, 'PLUGIN_PATH': '', 'PLUGINS': [],