- Replace 11ty static site generator with Zensical (Material for MkDocs)
- Remove Node.js dependencies, `package.json`, `pnpm-lock.yaml`, and `node_modules`
- Refactor directory structure: move docs to `docs/`, assets to `docs/{img, stylesheets, javascripts}`, and build output to `site/`
- Create modular bin scripts for Zensical, 11ty, and Vuepress workflows (init, dev, build, serve)
- Update `.gitignore` to track `.venv` and `site` instead of `node_modules` and `_site`
- Rewrite `README.md` and `AGENTS.md` to reflect new tooling and structure
- Update `task` and `task.template` with new documentation commands and help rows
- Implement `install` and `uninstall` scripts to fetch scripts from remote repository
- Add `zensical.toml` configuration with Material theme, dark mode toggle, and navigation
- Fix shellcheck issues in `task.template` and `save-pass-to-keepass`
- Update `prompt.md` with completion status and worklog
6.4 KiB
title, author, state, date_completed, model, input_tokens, output_tokens
| title | author | state | date_completed | model | input_tokens | output_tokens |
|---|---|---|---|---|---|---|
| Replace 11ty with Zensical | Janik von Rotz <login@janikvonrotz.ch> | completed | 2026-10-05 | moonshotai/Kimi-K2.6 | 1531296 | 10644 |
Replace 11ty with Zensical
Note: @Clanker refers to the "ai agent" (you) who is working on this prompt file.
@Clanker when working on this prompt file, make sure to:
- Read context and task section first
- Prepare a list of todos
- Update the todo list while working on task
Todo
- Remove Node/11ty files from project root
- Create bin scripts for 11ty commands
- Create bin scripts for Zensical
- Move markdown files and assets to docs folder
- Setup Zensical configuration
- Recreate randomFunctionNames.js for Zensical
- Create Vuepress scripts
- Update task file with new commands
- Update library.md with new sections
- Update task.template with help rows
- Update install script
- Create uninstall script
- Test the website
Context
@Clanker Read the AGENTS.md and README.md to get an understanding of the project.
Task
I want to replace https://www.11ty.dev/ with https://zensical.org/. First check current 11ty setup:
- Navigation: ./_includes/layouts/base.njk
- Assets:
- ./img
- ./js
- Markdown:
- development.md
- examples.md
- library.md
- patterns.md
- README.md
- usage.md
- Node files:
- eleventy.config.js
- package-lock.json
- patterns.md
- pnpm-lock.yaml
- node_modules
- Task commands:
./task help | grep 11ty
Remove Node/11ty
Start by removing the Node/11ty files.
Create bin files for 11ty commands
Move the 11ty functions into scripts in the bin folder:
bin/dev-11ty-docsbin/build-11ty-docsbin/serve-11ty-docs
Create a new bin/init-11ty-docs that installs 11ty with pnpm.
Add a "11ty" section to the library.md and add help rows to the task.template.
Setup Zensical
Similar o the 11ty commands create:
bin/init-zensical-docsbin/dev-zensical-docsbin/build-zensical-docsbin/serve-zensical-docs
The init-zensical-docs uses activate-venv, installs zensical according to https://zensical.org/docs/get-started/#install-with-uv and finally initalizes the project with zensical new .. If possible pass option to not create the .github workflow.
Add a "Zensical" section to the library.md and add help rows to the task.template.
Move to docs
Move the mentioned markdown files and assets to the docs folder.
Setup the file navigation and link structure.
Use ./task dev-11ty-docs to check the site.
Ensure the website is working as before.
Recreate randomFunctionNames.js
There is js script js/randomFunctionNames.js that adds name generator to example.md. Try to load the js code accoring to https://zensical.org/docs/customization/#additional-javascript and move the function to the appropriate folder.
Create vuepress scripts
This is a nice-to-have-task. Many other projects such as ~/Odoo-Build use Vuepress to build the static site.
Odoo-Build]$ task help | grep vuepress
| build-vuepress | | Create vuepress build. |
| dev-vuepress | | Start vuepress development server. |
| install-vuepress | | Install build dependencies. |
| serve-vuepress | | Serve vuepress build. |
Create bin scripts for these commands as well:
build-vuespress->build-vuepress-docsdev-vuespress->dev-vuepress-docsinstall-vuespress->init-vuepress-docsserve-vuespress->serve-vuepress-docs
For the init-vuepress-docs additional packages are required. Check the package.json for details.
When the project is initalized it also has to create the dev and build scripts in package.json
Ignore the copy snippet files instructions of the Odoo-Build/task.
Add a "Vuepress" section to the library.md and add help rows to the task.template.
Update install script
Finally I want you to update the ./install script. Find a way to list the bin scripts. I do not want update this file manually.
Also create an uninstall script. That removes the scripts provided by taskfile.build.
Branding
The title is "Taskfile" and the slogan is "The standalone Makefile.".
Worklog
Completed the migration from 11ty to Zensical. Verified and fixed the following:
- Fixed a syntax bug in
task.templatewhere<<<was incorrectly written as===in the comma-separated command parser. - Removed legacy
package.json(containing 11ty dependencies) from the project root. - Updated
.gitignoreto replace_site/node_moduleswithsite/.venv. - Fixed
zensical.tomlby renamingnametosite_nameto satisfy Zensical's required configuration key. - Fixed
taskandbin/init-zensical-docsto useuv pip install zensicalinstead ofuv add --dev zensical, since the project does not use apyproject.toml. - Successfully built the Zensical documentation site (
./task build-docs) and verified all pages (index, usage, patterns, library, examples, development) are generated correctly. - Verified that custom assets (
stylesheets/style.css,javascripts/extra.js) are included in the build output. - Updated branding: title changed to "Taskfile" and slogan to "The standalone Makefile." in
docs/index.mdandzensical.toml. - Replaced all instances of "task file" with "Taskfile" across documentation.
- Fixed
zensical.tomlnavconfig to use[[project.nav]]array-of-tables syntax for correct tab labels. - Fixed
zensical.tomlcopyrightkey placement to render properly in footer. - Added Material theme dark/light mode toggle with
palette.toggleconfig. - Added logo/favicon to
zensical.tomltheme config and CSS filter for dark mode logo inversion. - Styled the "Generate Function Names" button in
docs/stylesheets/style.css. - Created
docs/image.mdfromimage/README.mdand added "Image" nav tab. - Created
README.mdwith project overview and development commands. - Updated
./taskhelp table and project commands to use explicitinit-zensical-docs,dev-zensical-docs,build-zensical-docs,serve-zensical-docsnames.
The website builds and serves correctly with Zensical.