Sort articles and advisories by date (newest first)
This commit is contained in:
parent
2eab602ac4
commit
feeb6a9aba
@ -7,6 +7,15 @@ import glob
|
|||||||
import yaml
|
import yaml
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
|
from dateutil import parser as dateparser
|
||||||
|
|
||||||
|
def parse_date(date_value):
|
||||||
|
"""Parse date from string or return date object as-is."""
|
||||||
|
if isinstance(date_value, (datetime.date, datetime.datetime)):
|
||||||
|
return date_value
|
||||||
|
if isinstance(date_value, str) and date_value:
|
||||||
|
return dateparser.parse(date_value)
|
||||||
|
return datetime.datetime.min
|
||||||
|
|
||||||
def directory_exists(directory) -> bool:
|
def directory_exists(directory) -> bool:
|
||||||
return os.path.exists(directory)
|
return os.path.exists(directory)
|
||||||
@ -27,6 +36,8 @@ def find_articles(resources) -> list:
|
|||||||
# append link to the article
|
# append link to the article
|
||||||
article_data['link'] = f"/articles/{os.path.basename(article).replace('.md', '.html')}"
|
article_data['link'] = f"/articles/{os.path.basename(article).replace('.md', '.html')}"
|
||||||
articles.append(article_data)
|
articles.append(article_data)
|
||||||
|
# Sort by date, newest first
|
||||||
|
articles.sort(key=lambda x: parse_date(x.get('date')), reverse=True)
|
||||||
return articles
|
return articles
|
||||||
|
|
||||||
def find_advisories(resources) -> list:
|
def find_advisories(resources) -> list:
|
||||||
@ -44,6 +55,8 @@ def find_advisories(resources) -> list:
|
|||||||
# append link to the advisory
|
# append link to the advisory
|
||||||
advisory_data['link'] = f"/advisory/{os.path.basename(advisory)}"
|
advisory_data['link'] = f"/advisory/{os.path.basename(advisory)}"
|
||||||
advisories.append(advisory_data)
|
advisories.append(advisory_data)
|
||||||
|
# Sort by date, newest first
|
||||||
|
advisories.sort(key=lambda x: parse_date(x.get('date')), reverse=True)
|
||||||
return advisories
|
return advisories
|
||||||
|
|
||||||
def find_projects(resources) -> list:
|
def find_projects(resources) -> list:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user