feat: updated date parsing logic
This commit is contained in:
parent
d354c2ca37
commit
68addeb938
5 changed files with 40 additions and 30 deletions
|
|
@ -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) => {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue