diff --git a/pelican/contents.py b/pelican/contents.py
index 433d1ac7..104c5e41 100644
--- a/pelican/contents.py
+++ b/pelican/contents.py
@@ -279,7 +279,8 @@ class Content(object):
content.
"""
if hasattr(self, '_summary'):
- return self._summary
+ return self._update_content(self._summary,
+ self._context.get('localsiteurl', ''))
if self.settings['SUMMARY_MAX_LENGTH'] is None:
return self.content
diff --git a/pelican/tests/test_contents.py b/pelican/tests/test_contents.py
index e64b3804..c0f8c2b6 100644
--- a/pelican/tests/test_contents.py
+++ b/pelican/tests/test_contents.py
@@ -286,6 +286,19 @@ class TestPage(unittest.TestCase):
'?utm_whatever=234&highlight=word#section-2">link'
)
+ # also test for summary in metadata
+ args['metadata']['summary'] = (
+ 'A simple summary test, with a '
+ 'link'
+ )
+ args['context']['localsiteurl'] = 'http://notmyidea.org'
+ p = Page(**args)
+ self.assertEqual(
+ p.summary,
+ 'A simple summary test, with a '
+ 'link'
+ )
+
def test_intrasite_link_more(self):
# type does not take unicode in PY2 and bytes in PY3, which in
# combination with unicode literals leads to following insane line: