Documentación técnica multi‑idioma (ES/EN) basada en MkDocs Material, con despliegue continuo. Las entradas de blog se publican en frikiteam.es vía wordpress_sync.py.
docs/
index.md # Página de inicio (ES)
about.md # Acerca de (ES)
doc/ # Documentación técnica (ES)
ansible/...
ceph/...
docker/...
kubernetes/...
openstack/...
terraform/...
docs/en/
index.md # Home (EN)
about.md # About (EN)
doc/ # Technical docs (EN)
ansible/...
ceph/...
...
mkdocs.yml # Configuración del sitio
macros.py # Macros (metadatos, badges de sincronización)
Notas clave:
- Idioma por defecto: Español en la raíz
docs/. Inglés bajodocs/en/. - Rutas internas consistentes: usa
doc/...en ambos idiomas para facilitar enlaces.
- Python 3.10+
- mkdocs-material, mkdocs-static-i18n, mkdocs-macros-plugin, mkdocs-minify-plugin
- Multi-idioma: Soporte completo para español e inglés
- Diagramas Mermaid: Soporte completo para diagramas técnicos
- Tema responsive: Adaptado para dispositivos móviles y escritorio
- Navegación avanzada: Tabs, búsqueda y navegación instantánea
Instalación en local (opcional pero recomendado con venv):
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txtServir en local:
source venv/bin/activate
mkdocs serve- Español: archivos bajo
docs/. - Inglés: archivos equivalentes bajo
docs/en/. - Añade contenidos de EN espejando la misma ruta que ES. Ej.:
- ES:
docs/doc/docker/docker_base.md - EN:
docs/en/doc/docker/docker_base.md
- ES:
La documentación incluye soporte completo para diagramas Mermaid, permitiendo crear diagramas técnicos directamente en Markdown.
- Flowcharts: Diagramas de flujo
- Sequence Diagrams: Diagramas de secuencia
- Class Diagrams: Diagramas de clases
- State Diagrams: Diagramas de estado
- Entity-Relationship: Diagramas entidad-relación
- Git Graphs: Diagramas de Git
- Gantt Charts: Diagramas de Gantt
- Pie Charts: Gráficos de tarta
Usa el script incluido para verificar la sintaxis de todos los diagramas:
python3 internal/mermaid/tools/check_diagrams.pyConsulta la Guía de Diagramas Mermaid para más información sobre sintaxis y mejores prácticas.
- Crea una rama desde
main:feat/...,fix/...odocs/.... - Edítalo en local y verifica con
mkdocs serve. - Para diagramas, verifica la sintaxis con
python3 internal/mermaid/tools/check_diagrams.py. - Sube la rama y abre un Pull Request.
- Al aprobarse, se fusiona en
mainpara desplegar.
Convenciones:
- Enlaces relativos consistentes (no usar rutas absolutas del sitio).
- Mantén el mismo árbol en ES y EN cuando apliquen traducciones.
- Verifica la sintaxis de diagramas Mermaid antes de hacer commit.
El sitio está preparado para una publicación automática (p. ej. GitHub Pages con dominio personalizado docs.frikiteam.es y docs/CNAME).
Archivo de ejemplo .github/workflows/deploy.yml:
name: deploy
on:
push:
branches: [ main ]
workflow_dispatch: {}
jobs:
build-deploy:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install deps
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
- name: Build
run: mkdocs build --strict
- name: Deploy to GitHub Pages
uses: peaceiris/actions-gh-pages@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./site
cname: docs.frikiteam.esNotas CI/CD:
--strictayuda a detectar enlaces rotos en CI.- Para previsualización en PRs, añade un job que suba
site/como artifact. - Si usas otra plataforma (Cloudflare Pages, Netlify), configura el build command
mkdocs buildy outputsite/.
Para sincronizar artículos de la documentación a WordPress:
-
Configura las variables de entorno (copia
.env.examplea.envy edita):export WP_SITE_URL=https://frikiteam.es export WP_USERNAME=tu_usuario export WP_APP_PASSWORD=tu_app_password
-
Ejecuta el script:
- Modo interactivo:
python wordpress_sync.py --interactive(permite buscar por título o nombre de archivo) - Archivo específico:
python wordpress_sync.py --file docs/doc/docker/docker_base.md --status draft
- Modo interactivo:
El script actualizará automáticamente done.md con el progreso de publicación.