How this documentation is built¶
The documentation is Markdown under docs/, built with MkDocs Material
and published to GitHub Pages with GitHub Actions.
Layout¶
mkdocs.yml site configuration, navigation and languages
requirements-docs.txt Python dependencies
docs/ pages (each as .es.md and .en.md)
docs/assets/img/ generated screenshots
docs-tools/docker/ clean FacturaScripts install + synthetic data
docs-tools/screenshots/ Playwright script that takes the screenshots
.github/workflows/docs.yml builds and publishes to GitHub Pages
Writing or editing pages¶
Every page has two files: page.es.md (default language) and page.en.md. If a translation is missing, the site
shows the Spanish version.
python3 -m venv .venv && . .venv/bin/activate
pip install -r requirements-docs.txt
mkdocs serve # http://127.0.0.1:8000
mkdocs build --strict # same as CI: fails on broken links
To add a page, create it in docs/ and add it to nav: in mkdocs.yml. If the title needs translating, add an
entry under nav_translations for the en language.
Regenerating screenshots¶
Screenshots must never come from an installation with real data. Use the clean environment:
# 1. Clean install (FacturaScripts v2026.65 + MariaDB, no persistent volumes)
docker compose -f docs-tools/docker/docker-compose.yml up -d --build
# 2. Installer wizard and plugin activation
cd docs-tools/screenshots
npm install && npm run setup
npm run all # install.mjs → setup.mjs (wizard) → enable.mjs (plugin)
# 3. Synthetic data (NCF ranges, customers, invoices, notes)
cd ../..
docker compose -f docs-tools/docker/docker-compose.yml exec -T web \
php Plugins/fsRepublicaDominicana/docs-tools/docker/seed.php
# 4. Take the screenshots into docs/assets/img
cd docs-tools/screenshots && npm run capture
The container mounts the repository read only, and the database lives in memory: when the environment is
brought down (docker compose ... down) nothing remains.
Screenshot data
Company Empresa Demo SRL, RNC 101000000, customer Comercial Demo SRL and everything else is made up.
The admin/admin user only exists inside the local container.
Publishing¶
The .github/workflows/docs.yml workflow builds with mkdocs build --strict and publishes with
actions/deploy-pages on every push to master that touches docs/, mkdocs.yml or the requirements.
One-time GitHub setup: Settings → Pages → Build and deployment → Source: GitHub Actions.