From e3052fe1cca6d7c1040ae6bb9dc29346b4cb3c39 Mon Sep 17 00:00:00 2001 From: Jerry Asher Date: Thu, 26 Oct 2017 17:08:55 -0700 Subject: [PATCH] Add a per post max-summary-length metadata (#2209) --- pelican/contents.py | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) mode change 100644 => 100755 pelican/contents.py diff --git a/pelican/contents.py b/pelican/contents.py old mode 100644 new mode 100755 index 15770fc8..bed31864 --- a/pelican/contents.py +++ b/pelican/contents.py @@ -340,11 +340,24 @@ class Content(object): if hasattr(self, '_summary'): return self._update_content(self._summary, siteurl) - if self.settings['SUMMARY_MAX_LENGTH'] is None: + # a page specific max summary length was found + if hasattr(self, 'summary_max_length'): + summary_max_length = getattr(self, 'summary_max_length') + if summary_max_length.upper() == 'NONE': + return self.content + else: + summary_max_length = int(summary_max_length) + return truncate_html_words(self.content, summary_max_length) + + if 'SUMMARY_MAX_LENGTH' in self.settings: + summary_max_length = self.settings['SUMMARY_MAX_LENGTH'] + else: + summary_max_length = None + + if summary_max_length is None: return self.content - return truncate_html_words(self.content, - self.settings['SUMMARY_MAX_LENGTH']) + return truncate_html_words(self.content, summary_max_length) @property def summary(self):