1
0
Fork 0
forked from github/pelican

Lowercase metadata field name when comparing with FORMATTED_FIELDS in rST reader

This commit is contained in:
John T. Wodder II 2020-07-30 14:39:46 -04:00
commit 18b626aa8b
4 changed files with 37 additions and 1 deletions

View file

@ -227,7 +227,7 @@ class RstReader(BaseReader):
if element.tagname == 'field': # custom fields (e.g. summary)
name_elem, body_elem = element.children
name = name_elem.astext()
if name in formatted_fields:
if name.lower() in formatted_fields:
value = render_node_to_html(
document, body_elem,
self.field_body_translator_class)

View file

@ -0,0 +1,16 @@
This is a super article !
#########################
:TAGS: foo, bar, foobar
:DATE: 2010-12-02 10:14
:MODIFIED: 2010-12-02 10:20
:CATEGORY: yeah
:AUTHOR: Alexis Métaireau
:SUMMARY:
Multi-line metadata should be supported
as well as **inline markup** and stuff to "typogrify"...
:CUSTOM_FIELD: http://notmyidea.org
:CUSTOM_FORMATTED_FIELD:
Multi-line metadata should also be supported
as well as *inline markup* and stuff to "typogrify"...

View file

@ -260,6 +260,7 @@ class TestArticlesGenerator(unittest.TestCase):
['This is a super article !', 'published', 'yeah', 'article'],
['This is a super article !', 'published', 'yeah', 'article'],
['This is a super article !', 'published', 'yeah', 'article'],
['This is a super article !', 'published', 'yeah', 'article'],
['This is a super article !', 'published', 'Default', 'article'],
['Article with an inline SVG', 'published', 'Default', 'article'],
['This is an article with category !', 'published', 'yeah',
@ -576,6 +577,7 @@ class TestArticlesGenerator(unittest.TestCase):
'This is a super article !',
'This is a super article !',
'This is a super article !',
'This is a super article !',
'This is an article with category !',
('This is an article with multiple authors in lastname, '
'firstname format!'),

View file

@ -155,6 +155,24 @@ class RstReaderTest(ReaderTest):
self.assertDictHasSubset(page.metadata, expected)
def test_article_with_capitalized_metadata(self):
page = self.read_file(path='article_with_capitalized_metadata.rst')
expected = {
'category': 'yeah',
'author': 'Alexis Métaireau',
'title': 'This is a super article !',
'summary': '<p class="first last">Multi-line metadata should be'
' supported\nas well as <strong>inline'
' markup</strong> and stuff to &quot;typogrify'
'&quot;...</p>\n',
'date': SafeDatetime(2010, 12, 2, 10, 14),
'modified': SafeDatetime(2010, 12, 2, 10, 20),
'tags': ['foo', 'bar', 'foobar'],
'custom_field': 'http://notmyidea.org',
}
self.assertDictHasSubset(page.metadata, expected)
def test_article_with_filename_metadata(self):
page = self.read_file(
path='2012-11-29_rst_w_filename_meta#foo-bar.rst',