Files
git.taskfile.build/prompt.md
T
Janik von Rotz 323f81a45f refactor: migrate documentation from 11ty to Zensical and restructure project layout
- 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
2026-10-05 16:53:23 +02:00

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-docs
  • bin/build-11ty-docs
  • bin/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-docs
  • bin/dev-zensical-docs
  • bin/build-zensical-docs
  • bin/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-docs
  • dev-vuespress -> dev-vuepress-docs
  • install-vuespress -> init-vuepress-docs
  • serve-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.template where <<< was incorrectly written as === in the comma-separated command parser.
  • Removed legacy package.json (containing 11ty dependencies) from the project root.
  • Updated .gitignore to replace _site/node_modules with site/.venv.
  • Fixed zensical.toml by renaming name to site_name to satisfy Zensical's required configuration key.
  • Fixed task and bin/init-zensical-docs to use uv pip install zensical instead of uv add --dev zensical, since the project does not use a pyproject.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.md and zensical.toml.
  • Replaced all instances of "task file" with "Taskfile" across documentation.
  • Fixed zensical.toml nav config to use [[project.nav]] array-of-tables syntax for correct tab labels.
  • Fixed zensical.toml copyright key placement to render properly in footer.
  • Added Material theme dark/light mode toggle with palette.toggle config.
  • Added logo/favicon to zensical.toml theme config and CSS filter for dark mode logo inversion.
  • Styled the "Generate Function Names" button in docs/stylesheets/style.css.
  • Created docs/image.md from image/README.md and added "Image" nav tab.
  • Created README.md with project overview and development commands.
  • Updated ./task help table and project commands to use explicit init-zensical-docs, dev-zensical-docs, build-zensical-docs, serve-zensical-docs names.

The website builds and serves correctly with Zensical.