.eleventy.js 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. const pluginSyntaxHighlight = require("@11ty/eleventy-plugin-syntaxhighlight");
  2. const codeClipboard = require("eleventy-plugin-code-clipboard");
  3. const inclusiveLangPlugin = require("@11ty/eleventy-plugin-inclusive-language");
  4. const navigationPlugin = require("@11ty/eleventy-navigation");
  5. module.exports = function(eleventyConfig) {
  6. eleventyConfig.addPlugin(pluginSyntaxHighlight);
  7. eleventyConfig.addPlugin(inclusiveLangPlugin);
  8. eleventyConfig.addPlugin(navigationPlugin);
  9. eleventyConfig.addPlugin(codeClipboard);
  10. let markdownIt = require("markdown-it");
  11. let markdownItAnchor = require("markdown-it-anchor");
  12. let markdownItReplaceLink = require("markdown-it-replace-link");
  13. let markdownItOptions = {
  14. html: true,
  15. breaks: false,
  16. linkify: true,
  17. replaceLink: function (link, env) {
  18. if (process.env.NODE_ENV == "production") {
  19. return link;
  20. }
  21. return link.replace('https://torsion.org/borgmatic/', 'http://localhost:8080/');
  22. }
  23. };
  24. let markdownItAnchorOptions = {
  25. permalink: markdownItAnchor.permalink.headerLink()
  26. };
  27. eleventyConfig.setLibrary(
  28. "md",
  29. markdownIt(markdownItOptions)
  30. .use(markdownItAnchor, markdownItAnchorOptions)
  31. .use(markdownItReplaceLink)
  32. .use(codeClipboard.markdownItCopyButton)
  33. );
  34. eleventyConfig.addPassthroughCopy({"docs/static": "static"});
  35. eleventyConfig.setLiquidOptions({dynamicPartials: false});
  36. return {
  37. templateFormats: [
  38. "md",
  39. "txt"
  40. ]
  41. }
  42. };