diff --git a/pelican/contents.py b/pelican/contents.py
index 15770fc8..2494edbb 100644
--- a/pelican/contents.py
+++ b/pelican/contents.py
@@ -140,6 +140,16 @@ class Content(object):
if not hasattr(self, 'status'):
self.status = getattr(self, 'default_status', None)
+ for key in self.settings['FORMATTED_FIELDS']:
+ if key in self.metadata:
+ value = self._update_content(
+ self.metadata[key],
+ self.get_siteurl()
+ )
+ self.metadata[key] = value
+ setattr(self, key.lower(), value)
+
+
# store the summary metadata if it is set
if 'summary' in metadata:
self._summary = metadata['summary']
diff --git a/pelican/tests/test_contents.py b/pelican/tests/test_contents.py
index d028c7a1..edd91fb6 100644
--- a/pelican/tests/test_contents.py
+++ b/pelican/tests/test_contents.py
@@ -319,17 +319,21 @@ class TestPage(LoggedTestCase):
)
# also test for summary in metadata
- args['metadata']['summary'] = (
+ parsed = (
'A simple summary test, with a '
'link'
)
- args['context']['localsiteurl'] = 'http://notmyidea.org'
- p = Page(**args)
- self.assertEqual(
- p.summary,
+ linked = (
'A simple summary test, with a '
'link'
)
+ args['settings']['FORMATTED_FIELDS'] = ['summary', 'custom']
+ args['metadata']['summary'] = parsed
+ args['metadata']['custom'] = parsed
+ args['context']['localsiteurl'] = 'http://notmyidea.org'
+ p = Page(**args)
+ self.assertEqual(p.summary, linked)
+ self.assertEqual(p.custom, linked)
def test_intrasite_link_more(self):
# type does not take unicode in PY2 and bytes in PY3, which in