diff --git a/eleventy.config.js b/eleventy.config.js index 9589e97..333536b 100644 --- a/eleventy.config.js +++ b/eleventy.config.js @@ -3,6 +3,7 @@ import markdownIt from "markdown-it"; import markdownItAnchor from "markdown-it-anchor"; import { filters } from "./src/_filters/index.js"; import { postComparator, isPostPublic } from "./src/_utils/sort-posts.js"; +import { validateLinkedArticles } from "./src/_utils/linked-articles.js"; export default function (eleventyConfig) { // Build ignored local post fixtures without making them Git-tracked. @@ -44,8 +45,10 @@ export default function (eleventyConfig) { // 5. Custom Collections // Pinned / featured prioritized, chronological blog posts collection (excludes drafts and hidden posts) eleventyConfig.addCollection("posts", (collectionApi) => { - return collectionApi - .getFilteredByGlob("src/posts/*.md") + const allPosts = collectionApi.getFilteredByGlob("src/posts/*.md"); + validateLinkedArticles(allPosts); + + return allPosts .filter((post) => isPostPublic(post)) .sort(postComparator); }); diff --git a/src/_filters/index.js b/src/_filters/index.js index 6d3f006..5f0a867 100644 --- a/src/_filters/index.js +++ b/src/_filters/index.js @@ -1,5 +1,6 @@ import { DateTime } from "luxon"; import markdownIt from "markdown-it"; +import { resolveLinkedArticles } from "../_utils/linked-articles.js"; /** * Custom Eleventy Filters for River Rooks Blog @@ -108,7 +109,8 @@ export const filters = { readingTime, extractHeadings, extractTerminalPreview, - removeTerminalPreview + removeTerminalPreview, + resolveLinkedArticles }; export default filters; diff --git a/src/_includes/layouts/post.njk b/src/_includes/layouts/post.njk index 5366f0e..b3b4a75 100644 --- a/src/_includes/layouts/post.njk +++ b/src/_includes/layouts/post.njk @@ -31,6 +31,17 @@