Merge pull request #2711 from galaxy4public/summary-end-marker

Add custom summary end marker
This commit is contained in:
Justin Mayer 2020-04-12 06:55:45 +02:00 committed by GitHub
commit 0fabbb6a60
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 22 additions and 1 deletions

View file

@ -271,6 +271,11 @@ Basic settings
does not otherwise specify a summary. Setting to ``None`` will cause the
summary to be a copy of the original content.
.. data:: SUMMARY_END_MARKER = '…'
When creating a short summary of an article and the result was truncated to
match the required word length, this will be used as the truncation marker.
.. data:: WITH_FUTURE_DATES = True
If disabled, content with dates in the future will get a default status of

View file

@ -390,7 +390,8 @@ class Content(object):
return self.content
return truncate_html_words(self.content,
self.settings['SUMMARY_MAX_LENGTH'])
self.settings['SUMMARY_MAX_LENGTH'],
self.settings['SUMMARY_END_MARKER'])
@property
def summary(self):

View file

@ -136,6 +136,7 @@ DEFAULT_CONFIG = {
'ARTICLE_PERMALINK_STRUCTURE': '',
'TYPOGRIFY': False,
'TYPOGRIFY_IGNORE_TAGS': [],
'SUMMARY_END_MARKER': '',
'SUMMARY_MAX_LENGTH': 50,
'PLUGIN_PATHS': [],
'PLUGINS': None,

View file

@ -98,6 +98,20 @@ class TestPage(LoggedTestCase):
page = Page(**page_kwargs)
self.assertEqual(page.summary, '')
def test_summary_end_marker(self):
# If a :SUMMARY_END_MARKER: is set, and there is no other summary,
# generated summary should contain the specified marker at the end.
page_kwargs = self._copy_page_kwargs()
settings = get_settings()
page_kwargs['settings'] = settings
del page_kwargs['metadata']['summary']
settings['SUMMARY_END_MARKER'] = 'test_marker'
settings['SUMMARY_MAX_LENGTH'] = 10
page = Page(**page_kwargs)
self.assertEqual(page.summary, truncate_html_words(TEST_CONTENT, 10,
'test_marker'))
self.assertIn('test_marker', page.summary)
def test_summary_get_summary_warning(self):
"""calling ._get_summary() should issue a warning"""
page_kwargs = self._copy_page_kwargs()