A blog with Eleventy on Codebergmeta eleventy codeberg
I was looking for a quick way to write down some project notes. This inevitably led me to Static Site Generators and I especially looked at Netlify CMS and Jekyll. But I didn't want to rely on 3rd party services and CDNs to serve some simple pages with occasional images.
In the end I picked a very simple Eleventy configuration based on https://github.com/11ty/eleventy-base-blog which doesn't include any resources from 3rd parties at all.
Codeberg Caveats #
Codeberg's Terms of Service are quite restrictive compared to Github or Gitlab in allowing only free software licensed projects and excluding "stale mirrors" and reserving the right to remove inactive repositories. (Completely understandable if you don't have unlimited resources like Microsoft/Github.) But they explicitly allow "really small & personal stuff like your journal, config files, ideas or notes" even for private repositories so I think this site is covered by that policy.
Using the base template the output files are generated in the
// These are all optional (defaults are shown):
According to codeberg.pages the files are expected to be either in the root directory of the
pages repository or in a
pages branch of any other repository.
I didn't like the idea of polluting my source repository with generated data so I came up with this solution using a Git submodule:
rm -rf _site
git submodule add firstname.lastname@example.org:spezifisch/pages.git _site
Now all the generated data is located inside another repository which I can purge as I like if it gets too big.
To use this repository conveniently I added a custom script to my
/* ... */
"publish": "eleventy && git submodule foreach 'git add . && git commit -am deploy && git push origin main'",
pnpm run publish I can now rebuild my site, commit whatever changed and push it to my
pages repository so it is immediately publicly accessible.
Update: The command has since gotten a bit more complicated. It would be nice to have a cleaner solution than this.