import slugify from "slugify"; import { markdownLibrary } from "./markdown-it.js"; export default function(eleventyConfig) { // tag eleventyConfig.addShortcode('cite', (str) => `${str}`); // Manual heading anchor eleventyConfig.addPairedShortcode('headingAnchor', (title, hLevel, id=slugify(title)) => { return `
${title}
`; }); // Custom container eleventyConfig.addPairedShortcode('container', (children, el, className) => { const classMarkup = className ? ` class="${className}"` : ""; const content = markdownLibrary.render(children); return `<${el}${classMarkup}>${content}`; }); // Image figure and figcaption eleventyConfig.addPairedShortcode('imgFigure', ( caption, img, alt=caption, className, enableLazyLoading=true ) => { const classMarkup = className ? ` class="${className}"` : ""; const figcaption = markdownLibrary.renderInline(caption); return ` ${alt}
${figcaption}
`; }); // Content disclosure eleventyConfig.addPairedShortcode('disclosure', (content, summary) => { const summaryMarkup = markdownLibrary.renderInline(summary); const contentMarkup = markdownLibrary.render(content); return `
${summaryMarkup}
${contentMarkup}
`; }); // Paired shorcode: Content warning disclosure eleventyConfig.addPairedShortcode('contentWarning', (content, warning) => { const warningMarkup = markdownLibrary.renderInline(warning); const contentMarkup = markdownLibrary.render(content); return `
Content Warning: ${warningMarkup}
${contentMarkup}
`; }); }