pnpm install
pnpm start
Minified production build
pnpm buildYou can generate custom A4 PDFs by putting markdown files under the src/a4docs directy, see example. Run the server and open http://localhost:8080/a4docs/example to see the result.
pnpm playwright testin case screenshots changes intentionally (https://playwright.dev/docs/test-snapshots)
pnpm playwright test --update-snapshots
If you are not on the same operating system as your CI system, you can use Docker to generate/update the screenshots:
docker build -t my-playwright-ci .
docker run --rm --network host --user "$(id -u):$(id -g)" -v "$(pwd)":/work -v /work/node_modules -w /work my-playwright-ci bash ./scripts/create_ci_snapshots.shThe extra -v /work/node_modules is required: it shadows the bind-mounted host
node_modules with an anonymous volume, so the container installs its own Linux
packages instead of rewriting (and breaking) the macOS ones. Without it,
pnpm install fails with EPERM: operation not permitted — and your host
node_modules may end up damaged; recreate it with rm -rf node_modules && pnpm install.
This starter includes a small js script to which can add a hash to your assets when building for production builds.
The script will look for files to include a hash (based on the md5 of the built file content) eg: styles.734a7607648afdb.css instead of styles.css.
The entry point for matching regular file path to versionned path is generated as an 11ty global data object in _data/hash.json with the simple structure
{
'path/to/resource.css': 'path/to/resource.hash.css'
}In your 11ty template, you can then simply retrieve the versioned path from the array {{ hash['path/to/resource.css'] }}
If you want to add other assets to this generated data array, simply include the path in the assets const in the hash.js file in the root directory (files listed below are already included).
const assets = ["css/styles.css", "js/scripts.js"];