From 3f7540d91e69424fecdd4466c7c834a8525d22b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles=20Fl=C3=A8che?= Date: Sun, 15 Oct 2017 12:14:41 +0700 Subject: [PATCH] Extract Content.refresh_metadata_intersite_links Allows to refresh the metadata intrasite links not only in the __init__, but also later when the Content has a better view of the available static files. --- pelican/contents.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/pelican/contents.py b/pelican/contents.py index 725bc039..0bfffb15 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -140,15 +140,7 @@ 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) - + self.refresh_metadata_intersite_links() signals.content_object_init.send(self) def __str__(self): @@ -418,6 +410,16 @@ class Content(object): os.path.abspath(self.source_path), os.path.abspath(self.settings['PATH'])))) + def refresh_metadata_intersite_links(self): + 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) + class Page(Content): mandatory_properties = ('title',)