aboutsummaryrefslogtreecommitdiff
path: root/eleventy.config.js
diff options
context:
space:
mode:
Diffstat (limited to 'eleventy.config.js')
-rw-r--r--eleventy.config.js84
1 files changed, 84 insertions, 0 deletions
diff --git a/eleventy.config.js b/eleventy.config.js
new file mode 100644
index 0000000..fd9d653
--- /dev/null
+++ b/eleventy.config.js
@@ -0,0 +1,84 @@
+import { EleventyRenderPlugin, InputPathToUrlTransformPlugin } from "@11ty/eleventy";
+import pluginRss from "@11ty/eleventy-plugin-rss";
+import syntaxHighlight from "@11ty/eleventy-plugin-syntaxhighlight";
+import pluginWebc from "@11ty/eleventy-plugin-webc";
+import anchor from "markdown-it-anchor";
+
+export default function (eleventyConfig) {
+ eleventyConfig.addPlugin(EleventyRenderPlugin);
+ eleventyConfig.addPlugin(InputPathToUrlTransformPlugin);
+ eleventyConfig.addPlugin(pluginWebc);
+ eleventyConfig.addPlugin(syntaxHighlight, {
+ errorOnInvalidLanguage: true,
+
+ init({ Prism }) {
+ // Conveniently, I only have to highlight a known and fairly small amount of syntax, so I can cheat.
+ Prism.languages.crowbar = {
+ number: /\d+/,
+ keyword: /\b(char|function|int|float|void|const)\b/,
+ function: /signal/,
+ operator: /\*/,
+ punctuation: /[()\[\];,]/,
+ };
+ Prism.languages.duckscript = {
+ builtin: /if|else|end|eq|echo/,
+ string: /"[^"]+"/,
+ function: /print_fancy/,
+ operator: /\$\{|}|\./,
+ };
+ Prism.languages.dyon = {
+ keyword: /fn|if|else/,
+ function: /handle_event|print_fancy/,
+ builtin: /println|typeof|str/,
+ string: /"[^"]+"/,
+ operator: /==|\+/,
+ punctuation: /[(){};]/,
+ };
+ Prism.languages.ketos = {
+ builtin: /do|define|type-of|println/,
+ function: /handle-event|print-fancy/,
+ punctuation: /[()]/,
+ string: /"[^"]+"/,
+ };
+ Prism.languages.peg = {
+ string: /'[^']+'/,
+ "class-name": /BasicType|Type|Expression/,
+ operator: /[←\/*]/,
+ punctuation: /[()]/,
+ };
+ Prism.languages.rhai = {
+ keyword: /fn|if|else/,
+ function: /handle_event|print_fancy/,
+ builtin: /print|type_of/,
+ string: /"[^"]+"/,
+ operator: /==|\+/,
+ punctuation: /[(){};]/,
+ };
+ Prism.languages.rune = {
+ keyword: /fn|match|if|is/,
+ function: /handle_event|print_fancy/,
+ builtin: /println|int/,
+ string: /"[^"]+"|`[^`]+`/,
+ operator: /=>/,
+ punctuation: /[(){},]/,
+ };
+ // This may take some actual work, though.
+ Prism.languages.slint = {
+ keyword: /component|export|inherits|property|root/,
+ "class-name": /AppWindow|VerticalBox|LineEdit/,
+ builtin: /Text|\bWindow|string/,
+ string: /"[^"]+"/,
+ operator: /:|<=>|\./,
+ punctuation: /[{}<>;]/,
+ property: /label|text/,
+ }
+ Prism.languages.text = {};
+ },
+ });
+ eleventyConfig.addPlugin(pluginRss);
+
+ eleventyConfig.amendLibrary("md", (mdLib) => mdLib.use(anchor));
+
+ eleventyConfig.addPassthroughCopy("assets");
+ eleventyConfig.ignores.add("README.md");
+}