Feat: activate always_modified plugin

This commit is contained in:
2020-06-26 10:25:33 +02:00
parent c7ecf06733
commit ba64771efb
5 changed files with 39 additions and 1 deletions

1
plugins/__init__.py Normal file
View File

@@ -0,0 +1 @@
from .always_modified import *

View File

@@ -0,0 +1,20 @@
"""
If "modified" date/time is not defined in article metadata, fall back to the "created" date.
"""
from pelican import signals
from pelican.contents import Content, Article
def add_modified(content):
if not isinstance(content, Article):
return
if not content.settings.get('ALWAYS_MODIFIED', False):
return
if hasattr(content, 'date') and not hasattr(content, 'modified'):
content.modified = content.date
content.locale_modified = content.locale_date
def register():
signals.content_object_init.connect(add_modified)

View File

@@ -0,0 +1,14 @@
# Always Modified
Say you want to sort by modified date/time in a theme template, but not all
your articles have modified date/timestamps explicitly defined in article
metadata. This plugin facilitates that sorting by assuming the modified date
(if undefined) is equal to the created date.
## Usage
1. Add `ALWAYS_MODIFIED = True` to your settings file.
2. Now you can sort by modified date in your templates:
{% for article in articles|sort(reverse=True,attribute='modified') %}