From 65daa9e537052342ef44d75c3fda65ec637a0554 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Charles=20Fl=C3=A8che?= Date: Fri, 9 Feb 2018 10:39:11 +0100 Subject: [PATCH] Extract refresh_metadata_intersite_links methods --- pelican/contents.py | 10 ++++++++++ pelican/generators.py | 15 +++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/pelican/contents.py b/pelican/contents.py index 15770fc8..852bb49d 100644 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -413,6 +413,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',) diff --git a/pelican/generators.py b/pelican/generators.py index eb97c115..8a0180f7 100644 --- a/pelican/generators.py +++ b/pelican/generators.py @@ -581,6 +581,14 @@ class ArticlesGenerator(CachingGenerator): self.generate_pages(writer) signals.article_writer_finalized.send(self, writer=writer) + def refresh_metadata_intersite_links(self): + for e in chain(self.articles, + self.translations, + self.drafts, + self.drafts_translations): + if hasattr(e, 'refresh_metadata_intersite_links'): + e.refresh_metadata_intersite_links() + class PagesGenerator(CachingGenerator): """Generate pages""" @@ -649,6 +657,13 @@ class PagesGenerator(CachingGenerator): override_output=hasattr(page, 'override_save_as')) signals.page_writer_finalized.send(self, writer=writer) + def refresh_metadata_intersite_links(self): + for e in chain(self.pages, + self.hidden_pages, + self.hidden_translations): + if hasattr(e, 'refresh_metadata_intersite_links'): + e.refresh_metadata_intersite_links() + class StaticGenerator(Generator): """copy static paths (what you want to copy, like images, medias etc.