diff --git a/pelican/contents.py b/pelican/contents.py
index 615a7fd8..b43b7258 100644
--- a/pelican/contents.py
+++ b/pelican/contents.py
@@ -278,7 +278,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 3c0f8d75..ec554d4c 100644
--- a/pelican/tests/test_contents.py
+++ b/pelican/tests/test_contents.py
@@ -287,6 +287,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: