Sort articles and advisories by date (newest first)

This commit is contained in:
Daniele Linguaglossa 2026-01-21 21:36:00 +01:00
parent 2eab602ac4
commit feeb6a9aba

View File

@ -7,6 +7,15 @@ import glob
import yaml
import sys
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:
return os.path.exists(directory)
@ -27,6 +36,8 @@ def find_articles(resources) -> list:
# append link to the article
article_data['link'] = f"/articles/{os.path.basename(article).replace('.md', '.html')}"
articles.append(article_data)
# Sort by date, newest first
articles.sort(key=lambda x: parse_date(x.get('date')), reverse=True)
return articles
def find_advisories(resources) -> list:
@ -44,6 +55,8 @@ def find_advisories(resources) -> list:
# append link to the advisory
advisory_data['link'] = f"/advisory/{os.path.basename(advisory)}"
advisories.append(advisory_data)
# Sort by date, newest first
advisories.sort(key=lambda x: parse_date(x.get('date')), reverse=True)
return advisories
def find_projects(resources) -> list: