feat: add table of contents to posts

This commit is contained in:
Sebin Nyshkim 2024-10-15 17:08:44 +02:00
parent 7b2e1b14b3
commit 318795ef5d
6 changed files with 218 additions and 42 deletions

View file

@ -2,7 +2,6 @@ import fs from 'node:fs';
import { env } from 'node:process';
import { eleventyImageTransformPlugin } from '@11ty/eleventy-img';
import { feedPlugin } from '@11ty/eleventy-plugin-rss';
import { IdAttributePlugin } from '@11ty/eleventy';
import eleventyPluginCiu from '@alexcarpenter/eleventy-plugin-caniuse';
import eleventyPluginEmbedEverything from 'eleventy-plugin-embed-everything';
import eleventyPluginLucideIcons from '@grimlink/eleventy-plugin-lucide-icons';
@ -12,7 +11,9 @@ import eleventyPluginOgImage from 'eleventy-plugin-og-image';
import eleventyPluginReadingTime from '@myxotod/eleventy-plugin-readingtime';
import eleventyPluginRobotsTxt from 'eleventy-plugin-robotstxt';
import eleventyPluginSyntaxHighlight from '@11ty/eleventy-plugin-syntaxhighlight';
import eleventyPluginTOC from '@thedigitalman/eleventy-plugin-toc-a11y';
import markdownItAbbr from 'markdown-it-abbr';
import markdownItAnchor from 'markdown-it-anchor'
import markdownItCallouts from 'markdown-it-obsidian-callouts';
import markdownItCollapsible from 'markdown-it-collapsible';
import markdownItFootnote from 'markdown-it-footnote';
@ -31,13 +32,13 @@ export default async function (eleventyConfig) {
return collection.getFilteredByGlob('./src/posts/*.md');
});
eleventyConfig.addPlugin(IdAttributePlugin);
eleventyConfig.addPlugin(eleventyPluginCiu);
eleventyConfig.addPlugin(eleventyPluginEmbedEverything);
eleventyConfig.addPlugin(eleventyPluginLucideIcons);
eleventyConfig.addPlugin(eleventyPluginMetagen);
eleventyConfig.addPlugin(eleventyPluginNavigation);
eleventyConfig.addPlugin(eleventyPluginReadingTime);
eleventyConfig.addPlugin(eleventyPluginTOC);
eleventyConfig.addPlugin(eleventyPluginRobotsTxt, {
sitemapURL: 'https://blog.sebin-nyshkim.net/sitemap.xml',
shouldBlockAIRobots: true,
@ -94,6 +95,7 @@ export default async function (eleventyConfig) {
eleventyConfig.amendLibrary('md', (mdLib) => mdLib.use(markdownItCollapsible));
eleventyConfig.amendLibrary('md', (mdLib) => mdLib.use(markdownItCallouts));
eleventyConfig.amendLibrary('md', (mdLib) => mdLib.use(markdownItFootnote));
eleventyConfig.amendLibrary('md', (mdLib) => mdLib.use(markdownItAnchor));
eleventyConfig.addShortcode('year', () => `${new Date().getFullYear()}`);