feat: updated date parsing logic

This commit is contained in:
Leyla Becker 2026-02-10 15:56:01 -06:00
parent d354c2ca37
commit 68addeb938
5 changed files with 40 additions and 30 deletions

View file

@ -4,6 +4,7 @@ const markdownItFootnote = require("markdown-it-footnote");
const markdownItMermaid = require('markdown-it-mermaid').default
const syntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
const fs = require("fs");
const { DateTime } = require("luxon");
const tagPattern = /(?<=^|\s)#([a-zA-Z][a-zA-Z0-9_]*)(?![a-zA-Z0-9_-])/g;
@ -111,18 +112,30 @@ module.exports = (eleventyConfig) => {
eleventyConfig.setLibrary("md", md);
eleventyConfig.addFilter("dateFormat", (date) => {
const d = new Date(date);
return d.toLocaleDateString('en-US', {
year: 'numeric',
month: 'long',
day: 'numeric',
timeZone: 'UTC'
});
const dt = date instanceof Date
? DateTime.fromJSDate(date)
: DateTime.fromISO(date);
return dt.toFormat('MMMM d, yyyy');
});
eleventyConfig.addFilter("isoDate", (date) => {
const d = new Date(date);
return d.toISOString().split('T')[0];
const dt = date instanceof Date
? DateTime.fromJSDate(date)
: DateTime.fromISO(date);
return dt.toISODate();
});
eleventyConfig.addFilter("isMoreThanHourAfter", (date1, date2) => {
if (!date1 || !date2) return false;
const toDateTime = (d) => {
if (DateTime.isDateTime(d)) return d;
if (d instanceof Date) return DateTime.fromJSDate(d);
return DateTime.fromISO(d);
};
const dt1 = toDateTime(date1);
const dt2 = toDateTime(date2);
const diff = dt1.diff(dt2, 'hours').hours;
return Math.abs(diff) > 1;
});
eleventyConfig.addCollection("posts", (collectionApi) => {