feat: celebrate evergreen garden stage promotions
Adds a "Recently Evergreened" section to /garden/ showing posts that reached evergreen status within the last 90 days, with a dedicated green celebration card style. - New `recentEvergreens` Eleventy collection (evergreeSince within 90d) - garden.njk: conditional celebration section above the stage groups - tailwind.css: .garden-evergreen-celebration card (evergreen palette) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1288,6 +1288,26 @@ export default function (eleventyConfig) {
|
||||
.sort((a, b) => b.date - a.date);
|
||||
});
|
||||
|
||||
// Posts that recently reached evergreen status (within the last 90 days).
|
||||
// Requires evergreeSince frontmatter field, written by the Micropub plugin on first evergreen publish.
|
||||
eleventyConfig.addCollection("recentEvergreens", function (collectionApi) {
|
||||
const cutoff = new Date();
|
||||
cutoff.setDate(cutoff.getDate() - 90);
|
||||
return collectionApi
|
||||
.getFilteredByGlob("content/**/*.md")
|
||||
.filter(isPublished)
|
||||
.filter((item) => {
|
||||
if (item.data.gardenStage !== "evergreen") return false;
|
||||
if (!item.data.evergreeSince) return false;
|
||||
const d = new Date(item.data.evergreeSince);
|
||||
return !isNaN(d.getTime()) && d >= cutoff;
|
||||
})
|
||||
.sort(
|
||||
(a, b) =>
|
||||
new Date(b.data.evergreeSince) - new Date(a.data.evergreeSince),
|
||||
);
|
||||
});
|
||||
|
||||
// Weekly digests — posts grouped by ISO week for digest pages and RSS feed
|
||||
eleventyConfig.addCollection("weeklyDigests", function (collectionApi) {
|
||||
const allPosts = collectionApi
|
||||
|
||||
Reference in New Issue
Block a user