diff --git a/acl.cool/soupault.toml.frag b/acl.cool/soupault.toml.frag
new file mode 100644
index 0000000..f10f925
--- /dev/null
+++ b/acl.cool/soupault.toml.frag
@@ -0,0 +1,27 @@
+[index]
+index = true
+# sort_descending = true
+# sort_type = "calendar"
+# date_formats = ["%F"]
+# strict_sort = true
+
+[index.fields]
+
+[index.fields.title]
+selector = ["h1"]
+
+# [index.fields.date]
+# selector = ["time"]
+# extract_attribute = "datetime"
+# fallback_to_content = true
+
+[index.fields.abstract]
+selector = ["p"]
+
+[index.views.writings-index]
+index_selector = "#writings"
+section = "writings"
+index_item_template = """
+
{{title}}
+
{{abstract}}
+ """
\ No newline at end of file
diff --git a/acl.cool/soupault.toml.patch b/acl.cool/soupault.toml.patch
deleted file mode 100644
index fd2b3f2..0000000
--- a/acl.cool/soupault.toml.patch
+++ /dev/null
@@ -1,34 +0,0 @@
---- soupault.toml 2025-06-13 19:27:38.166061625 -0400
-+++ acl.cool/soupault.toml 2025-06-13 19:34:23.112853727 -0400
-@@ -134,3 +134,31 @@
- # By default this widget deletes all elements matching the selector,
- # but you can set this option to false to delete just the first one
- delete_all = true
-+
-+[index]
-+index = true
-+# sort_descending = true
-+# sort_type = "calendar"
-+# date_formats = ["%F"]
-+# strict_sort = true
-+
-+[index.fields]
-+
-+[index.fields.title]
-+selector = ["h1"]
-+
-+# [index.fields.date]
-+# selector = ["time"]
-+# extract_attribute = "datetime"
-+# fallback_to_content = true
-+
-+[index.fields.abstract]
-+selector = ["p"]
-+
-+[index.views.writings-index]
-+index_selector = "#writings"
-+section = "writings"
-+index_item_template = """
-+ {{title}}
-+
{{abstract}}
-+ """
diff --git a/build.sh b/build.sh
index b7d9b5c..e96102d 100755
--- a/build.sh
+++ b/build.sh
@@ -1,10 +1,17 @@
#!/bin/sh
+function soup_config {
+ cat ../soupault.toml > soupault.toml
+ cat soupault.toml.frag* >> soupault.toml
+}
+
builtin pushd acl.cool
rm -rf serve/
+soup_config
soupault
popd
builtin pushd ytheleus.org
rm -rf serve/
+soup_config
soupault
popd
diff --git a/soupault.toml b/soupault.toml
index b083f35..8227127 100644
--- a/soupault.toml
+++ b/soupault.toml
@@ -104,7 +104,8 @@ page_character_encoding = "utf-8"
# that converts it to HTML and writes it to standard output.
# Example:
[preprocessors]
-dj = "pandoc -r djot -w html"
+# dj = "pandoc -r djot -w html"
+dj = "jotdown"
# Pages can be further processed with "widgets"
@@ -134,3 +135,9 @@ selector = "blink"
# By default this widget deletes all elements matching the selector,
# but you can set this option to false to delete just the first one
delete_all = true
+
+[widgets.syntax]
+widget = "preprocess_element"
+selector = 'pre code'
+# command = "echo \"$(awk -F \\- '{print $NF}' <<< $ATTR_CLASS)
\""
+command = 'highlight -O html -f --inline-css --syntax=ocaml --style=zellner'
diff --git a/ytheleus.org/soupault.toml.patch b/ytheleus.org/soupault.toml.frag
similarity index 100%
rename from ytheleus.org/soupault.toml.patch
rename to ytheleus.org/soupault.toml.frag