1
0
Fork 0
forked from github/pelican

Merge pull request #864 from saimn/docutils_options

Add `DOCUTILS_SETTINGS` to allow to customize the docutils Publisher.
This commit is contained in:
Alexis Metaireau 2013-05-13 00:21:12 -07:00
commit 86d4aac918
2 changed files with 12 additions and 4 deletions

View file

@ -102,6 +102,9 @@ class RstReader(Reader):
enabled = bool(docutils)
file_extensions = ['rst']
def __init__(self, *args, **kwargs):
super(RstReader, self).__init__(*args, **kwargs)
def _parse_metadata(self, document):
"""Return the dict containing document metadata"""
output = {}
@ -126,6 +129,10 @@ class RstReader(Reader):
extra_params = {'initial_header_level': '2',
'syntax_highlight': 'short',
'input_encoding': 'utf-8'}
user_params = self.settings.get('DOCUTILS_SETTINGS')
if user_params:
extra_params.update(user_params)
pub = docutils.core.Publisher(
destination_class=docutils.io.StringOutput)
pub.set_components('standalone', 'restructuredtext', 'html')
@ -335,6 +342,9 @@ def read_file(path, fmt=None, settings=None):
if fmt not in EXTENSIONS:
raise TypeError('Pelican does not know how to parse {}'.format(path))
if settings is None:
settings = {}
reader = EXTENSIONS[fmt](settings)
settings_key = '%s_EXTENSIONS' % fmt.upper()

View file

@ -37,8 +37,7 @@ class RstReaderTest(unittest.TestCase):
def test_article_with_filename_metadata(self):
content, metadata = readers.read_file(
_path('2012-11-29_rst_w_filename_meta#foo-bar.rst'),
settings={})
_path('2012-11-29_rst_w_filename_meta#foo-bar.rst'))
expected = {
'category': 'yeah',
'author': 'Alexis Métaireau',
@ -204,8 +203,7 @@ class MdReaderTest(unittest.TestCase):
@unittest.skipUnless(readers.Markdown, "markdown isn't installed")
def test_article_with_filename_metadata(self):
content, metadata = readers.read_file(
_path('2012-11-30_md_w_filename_meta#foo-bar.md'),
settings={})
_path('2012-11-30_md_w_filename_meta#foo-bar.md'))
expected = {
'category': 'yeah',
'author': 'Alexis Métaireau',