Apuntes personales de matemáticas y ciencias de la computación, por Carlos Nexans. El proyecto usa Next.js para la web y Pandoc + XeLaTeX para el PDF.
.
├── content/ # Contenido en MDX
│ ├── 01-logica/
│ ├── 02-analisis/
│ └── 03-complejos/
├── src/ # Código Next.js (app, componentes, lib)
├── filters/ # Lua filters y headers para Pandoc/LaTeX
├── scripts/ # Scripts auxiliares (MDX→Pandoc, generación de imágenes)
├── public/ # Assets estáticos (imágenes, CNAME)
└── Makefile
- Node.js ≥ 20 y npm
- Para PDF:
pandoc,xelatex(texlive),librsvg2-bin
| Comando | Descripción |
|---|---|
make dev |
Servidor de desarrollo con hot reload |
make build |
Build estático del sitio (genera out/) |
make pdf |
Genera el PDF del libro en release/pdf/codex.pdf |
make images |
Regenera las imágenes SVG |
make clean |
Elimina todos los archivos generados |
- Crear un archivo
.mdxdentro del directorio correspondiente encontent/. - Agregar frontmatter con
title. - Usar componentes JSX para teoremas, definiciones, etc.:
import { Axiom, Definition, Theorem, Proof } from '@/components/callout'
<Theorem title="Bolzano">
Sea $f$ continua en $[a,b]$ con $f(a) < 0$ y $f(b) > 0$.
Existe $c \in (a,b)$ tal que $f(c) = 0$.
</Theorem>
<Proof>
Sea $c = \sup\{x \in [a,b] : f(x) < 0\}$...
</Proof>En cada push a master, GitHub Actions construye el sitio con Next.js y lo despliega en GitHub Pages. El PDF queda disponible como artefacto del workflow.