Profe Lamaita — profe.lemeit.ar¶
Sitio personal del Prof. Ing. Luciano Lamaita, docente de Física en Saladillo, Buenos Aires. Reúne la traducción y adaptación al español de las notas de Jeff Bigler, apuntes de clase de las 4 instituciones donde dicta materias, y los proyectos técnicos (EMA, Eureka AI, DVBA GIS).
- Sitio principal: profe.lemeit.ar
- Mapa de conceptos: profe.lemeit.ar/conceptos — grafo de notas estilo Obsidian
- Repositorio: github.com/lemeit/aboutme
Arquitectura — dos generadores en un solo repo¶
aboutme/ (repo único)
├── content/ → Hugo (portal, incluye /notes)
├── quartz/ → Quartz v5 independiente (mapa de conceptos)
└── Cloudflare Pages → un solo deploy, ambos sirven bajo profe.lemeit.ar
El portal principal usa Hugo con el tema PaperMod; el mapa de conceptos (/conceptos) es un sitio Quartz v5 aparte que vive en el subdirectorio quartz/ del mismo repo, pensado para notas estilo Obsidian con grafo de enlaces. Ambos comparten paleta de colores (sincronizada manualmente en el CSS de cada uno) para que la transición entre /notes y /conceptos se sienta como un solo sitio y no dos productos pegados con cinta.
Deploy: cada push a main dispara un build automático en Cloudflare Pages (~1-2 min) — sin pasos manuales, a diferencia de lemeit-emas (que necesita wrangler pages deploy).
Stack¶
| Componente | Tecnología |
|---|---|
| Generador estático (portal) | Hugo v0.163+ con tema PaperMod |
| Mapa de conceptos | Quartz v5 (formato Obsidian) |
| Deploy | Cloudflare Pages — auto-deploy en push a main |
| Locale | es-AR (Hugo) / es-ES (Quartz), fechas DD/MM/YYYY |
Contenido del portal (content/)¶
| Sección | Qué es |
|---|---|
notes/notas-fisica/ |
Traducción y adaptación de Physics 1: Mechanics in Plain English de Jeff Bigler (Lynn English High School), organizada por capítulo |
notes/herramientas/ |
Guías de herramientas digitales — hoy cubre Tracker (análisis de video para MRU, MRUV, tiro oblicuo) |
notes/fisica-4to/, fisica-5to/, fisica-6to/ |
Apuntes de cátedra por año, Instituto Niño Jesús y Colegio Madre Teresa |
notes/lab-industrias-7mo/ |
Laboratorio de Industrias, 7° Año Técnico Químico, EEST N°1 "Gral. Savio" — la materia de origen de toda la Red Ambiental |
projects/ |
Proyectos técnicos: EMA Saladillo, Eureka AI, DVBA GIS |
propuestas/ |
Proyectos pedagógicos institucionales |
Avance de la traducción de Bigler (notas-fisica/)¶
| Capítulo | Estado |
|---|---|
| 01 · Laboratorio | ✅ completo (9 notas) |
| 02 · Matemáticas | ✅ completo (6 notas) |
| 03 · Cinemática 1D | ✅ completo (10 notas) |
| 04 · Cinemática 2D | 🔄 en progreso |
| 05 · Fuerzas 1D | ⬜ en preparación |
| 06 · Fuerzas 2D | ⬜ pendiente |
Traducción, adaptación pedagógica e integración con actividades de campo por Luciano Lamaita, con autorización del autor original (licencia CC BY-NC-SA 4.0).
Guías en PDF (formato paper)¶
Cualquier nota del portal puede convertirse en un PDF con formato de paper académico (dos columnas, tipografía Georgia, estilo APA), con las fórmulas KaTeX ya renderizadas. Los PDF viven en static/files/pdf/ y se linkean desde la propia nota.
Piezas del mecanismo:
assets/css/extended/print-paper.css: CSS que solo se activa en@media print. Define página A4 con márgenes 20mm×14mm, Georgia 9,8pt, dos columnas de texto, tablas en formato APA (3 líneas horizontales, sin grilla vertical), encabezados h2/h3 con filetes finos y pie de página con número de página. No afecta la vista en pantalla — de eso se ocupacustom.css.scripts/generate-pdf.mjs: script Node.js con Playwright (Chromium headless). Busca los.mdconpdf = trueen el frontmatter, levanta un servidor HTTP local sobre./public/(Hugo genera rutas absolutas de CSS/JS que no resuelven porfile://) y, para cada nota, abre la página, activa@media print, espera a que KaTeX termine de renderizar, inyecta el byline (Luciano Lamaita · profe.lemeit.ar · fecha), expande acolumn-span: alllas tablas que desbordan el ancho de columna, y llama apage.pdf()(A4, con número/total de página) guardando el resultado enstatic/files/pdf/<slug>.pdf.layouts/partials/extend_head.html: carga KaTeX desde CDN solo si la nota tienemath = true. Es el mismo KaTeX que se ve en pantalla el que Playwright renderiza antes de imprimir, así que las fórmulas del PDF salen idénticas a las de la web.resource-boxen el.md: bloque HTML con claseno-print(no aparece en el PDF) con el link de descarga:
<div class="resource-box no-print">
Recursos
📄 <a href="/files/pdf/nombre-nota.pdf">Descargar en PDF (formato paper)</a>
</div>
Agregar el PDF a una nota nueva¶
1. Frontmatter
2. resource-box al inicio del contenido
<div class="resource-box no-print">
Recursos
📄 <a href="https://profe.lemeit.ar/files/pdf/nombre-nota.pdf" target="_blank" rel="noopener">Descargar en PDF (formato paper)</a>
</div>
El slug del PDF es el path de la nota relativo a content/, sin .md. Por ejemplo, content/notes/notas-fisica/cap03-cinematica-1d/mruv.md genera static/files/pdf/notes/notas-fisica/cap03-cinematica-1d/mruv.pdf.
3. Generar el PDF
cd C:\GitHub\aboutme
hugo # genera ./public/
node scripts/generate-pdf.mjs # genera los PDFs en static/files/pdf/
Requiere Node.js y Playwright instalados:
4. Commitear todo junto
git add content/notes/ruta/nota.md
git add static/files/pdf/ruta/nota.pdf
git commit -m "nota: agrega PDF de <título>"
git push
Fórmulas que no entran en una columna¶
Si una fórmula es más ancha que la columna de impresión (~83mm), no se achica automáticamente — hay que partirla en el .md usando \begin{aligned}...\end{aligned}:
$$
\begin{aligned}
w_{real} &= \frac{w_{ideal}}{\eta} \\
&= \frac{0{,}100}{0{,}72} = 0{,}139\ \tfrac{\text{kJ}}{\text{kg}}
\end{aligned}
$$
Las tablas anchas sí se expanden automáticamente a las dos columnas — el script detecta overflow y aplica column-span: all.
El mapa de conceptos (/conceptos)¶
Un sitio Quartz v5 aparte, con notas en formato Obsidian, organizadas en 7 áreas temáticas: Mecánica, Gravitación, Materia, Termodinámica, Ondas, Electricidad y Magnetismo, Física Moderna. El index.md raíz tiene wikilinks explícitos a las 7 áreas para que el grafo muestre la red de conexiones ya desde la home, y el Explorer lateral respeta ese mismo orden temático (no alfabético) vía un sortFn propio en quartz.ts. Grafo local con depth: 2 (desde una nota se ven sus vecinos directos y los de sus vecinos); grafo global disponible con un toggle.
Diseño — paleta "X-Wing Poe Dameron"¶
Colores cálidos (crema + naranja quemado) compartidos entre Hugo y Quartz, con dark mode sincronizado manualmente entre ambos generadores:
| Variable | Valor (modo claro) | Uso |
|---|---|---|
--primary |
#9B3D00 |
Links, headings |
--secondary |
#5C2200 |
Texto secundario, hover |
--theme / --entry |
#FAF7F2 |
Fondo crema cálido |
En dark mode, el selector crítico es :root[data-theme="dark"] (no .dark) para igualar la especificidad de PaperMod v8+; los links necesitan color: #B84800 !important para ganarle a los selectores propios del tema.
Instituciones donde se dictan las materias¶
| Materia | Institución |
|---|---|
| Introducción a la Física — 4° año | Colegio Madre Teresa + Instituto Niño Jesús (INJ) |
| Física — 5° año | Instituto Niño Jesús (INJ) |
| Física Clásica y Moderna — 6° año | Instituto Niño Jesús (INJ) |
| Laboratorio de Industrias — 7° TQ | EEST N°1 "Gral. Savio" |
Notas de implementación¶
- Dos generadores, un repo: mantener sincronizada la paleta manualmente entre
assets/css/extended/custom.css(Hugo) yquartz/quartz.config.yaml(Quartz) es la principal fuente de trabajo manual de este proyecto — no hay un design system compartido comodesign.lemeit.aren la Red Ambiental, porque Hugo y Quartz no comparten runtime. - Orden determinístico de secciones: cada
_index.mddenotes/tiene unweightúnico (1–6); sin eso, Hugo ordena las secciones de forma indeterminada. public/no se commitea: la carpeta de salida de Hugo está en.gitignore— la genera Cloudflare Pages en cada deploy, igual quesite/en esta wiki.
Relación con Lemeit¶
La portada Lemeit enlaza a los materiales y conceptos de este sitio, pero se mantiene en el repositorio Eureka. Su favicon Encuentro es distinto de la L caligráfica personal de Luciano. Esta actualización no altera Hugo, Quartz ni sus rutas de contenido. Registro de identidad y portadas.