diff --git a/bun.lockb b/bun.lockb index 323630e..2b54452 100755 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/config/template.html b/config/template.html index 021f6cc..414a0fa 100644 --- a/config/template.html +++ b/config/template.html @@ -27,7 +27,7 @@
  • {{ item.title }} - +
  • {% endfor %} diff --git a/package.json b/package.json index 594f39c..88ac0b2 100644 --- a/package.json +++ b/package.json @@ -26,6 +26,7 @@ "license": "MIT", "dependencies": { "chalk": "^5.2.0", + "javascript-time-ago": "^2.5.10", "node-fetch": "^3.3.1", "nunjucks": "^3.2.4", "rss-parser": "^3.13.0" diff --git a/src/renderer.ts b/src/renderer.ts index 59eb97c..1dbda63 100644 --- a/src/renderer.ts +++ b/src/renderer.ts @@ -8,13 +8,17 @@ import nunjucks from "nunjucks"; const env: nunjucks.Environment = nunjucks.configure({ autoescape: true }); import { readFile } from "node:fs/promises"; import type { Feeds, JSONValue } from "./@types/bubo"; +import TimeAgo from "javascript-time-ago"; +import en from "javascript-time-ago/locale/en"; +TimeAgo.addDefaultLocale(en); +const timeFormatter = new TimeAgo("en-US"); /** * Global filters for my Nunjucks templates */ -env.addFilter("formatDate", (dateString): string => { +env.addFilter("relative", (dateString): string => { const date: Date = new Date(Number.parseInt(dateString)); - return !Number.isNaN(date.getTime()) ? date.toLocaleDateString() : dateString; + return !Number.isNaN(date.getTime()) ? timeFormatter.format(date) : dateString; }); env.addFilter("formatTime", (dateString): string => {