diff --git a/README.es.md b/README.es.md new file mode 100644 index 0000000..b37841b --- /dev/null +++ b/README.es.md @@ -0,0 +1,959 @@ +
+
+# lablog
+
+**Bitácora de laboratorio LaTeX en vivo para científicos en activo**
+
+*Proyecto Pharos · José Labarca Baeza · Universidad Técnica Federico Santa María · Valparaíso*
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
| 1. Acerca de | +2. Galería | +3. Funcionalidades | +4. Arquitectura | +
| 5. Stack | +6. Instalación | +7. Inicio rápido | +8. Tutoriales | +
| 9. CLI | +10. API HTTP | +11. Diagramas | +12. Atajos | +
| 13. Laboratorio | +14. PDF | +15. Bóveda | +16. Exportar | +
| 17. Config | +18. Datos | +19. Seguridad | +20. Pruebas | +
| 21. Pages | +22. Roadmap | +23. Citar | +24. Licencia | +
+
+Figure 1. Shell principal: grupos de proyecto, editor LaTeX estructural, vista previa (\section, equation, % lablog-param).
+
+
+
+Figure 2. Banco de diagramas: presets de circuitos / control / óptica con Insertar, +Sim y SPICE.
+
+
+
+Figure 3. Panel de parámetros: valores, resaltado dual, reaplicar diagrama / reaplicar + sim.
+
+
+
+Figure 4. Modo laboratorio: layout denso de celdas, fuente Python, controles de ejecución.
+
+
+
+Figure 5. Preferencias: fuente del editor, paletas, color de acento y chords globales editables (mod+…).
+
+
+
+Figure 6. Superficie completa de preferencias (densidad, movimiento, layout laboratorio, import/export JSON).
+
+
+
+Figure 7. Documento con \begin{python} y parámetros abiertos para reaplicar.
+
+
+
+
+
+Figure 8. Kit de identidad e ilustración de arquitectura por capas.
+
+| Módulo | +Capacidad | +
|---|---|
| Render LaTeX estructural | +Secciones, énfasis, listas, hipervínculos y matemática inline en la prosa. KaTeX para entornos de display (align, equation, gather, cases, pmatrix) con numeración automática de ecuaciones. |
+
| Editor | +Gutter de líneas, overlay de parámetros, auto-guardado con OCC, buscar y reemplazar, undo/redo que sobrevive a inserts programáticos, wrap inteligente de delimitadores, snippets y símbolos en el cursor. | +
| Dictado por voz | +SpeechRecognition del navegador con parseo de intent, más Whisper local opcional (extra [voice]). Timeout de sesión para evitar reconocedores colgados. |
+
| Celdas ejecutables | +\begin{python}...\end{python} (y celdas de lab mode) corren en un kernel Jupyter real. Stdout, resultados y figuras vuelven al documento; el kernel se interrumpe con timeout. |
+
| Bóveda | +Adjunta imágenes, CSV, PDF, DOCX, audio y scripts; preview in situ. Meta atómica; solo basename; techo de 100 MB; borrado diferido. | +
| Historial event-sourced | +Cada edición, ejecución y adjunto es JSONL append-only. El UI de time-travel recorre y restaura cualquier índice de evento con OCC consciente de versión en el cliente. | +
| Banco de diagramas | +Doce presets parametrizados (circuitos, control, mecánica, óptica, Feynman). Reaplicar sin {{placeholders}} vía % lablog-param. Highlight dual (línea del editor + color Circuitikz). Celdas PySpice opcionales con fallback numpy. |
+
| Personalización | +Density, editor font, Nord palette, reduced motion, profiles (Laboratory / Paper / Teaching), exportable preferences JSON, configurable keyboard shortcuts. | +
| Exportación | +.tex, texto plano, HTML, PDF, DOCX (pandoc), Jupyter .ipynb, sitio estático para GitHub Pages, HTML listo para Canva. Títulos escapados para LaTeX. |
+
| Escritorio | +Ventana nativa vía pywebview ([desktop]); bundle portable PyInstaller para distribución offline. |
+
+
+
+
+
+
+
+# lablog
+
+**A live LaTeX laboratory notebook for working scientists**
+
+*Part of the Pharos Project · José Labarca Baeza · Universidad Técnica Federico Santa María · Valparaíso*
-A live LaTeX laboratory notebook for working scientists.
+
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
| About | -Features | -Architecture | -Installation | -Quick start | -Configuration | +1. About | +2. Gallery | +3. Features | +4. Architecture | +
| 5. Stack | +6. Installation | +7. Quick start | +8. Tutorials | ||||||
| Editor | -Security | -Testing | -Publishing | -Roadmap | -License | +9. CLI | +10. HTTP API | +11. Diagrams | +12. Shortcuts | +
| 13. Lab mode | +14. PDF | +15. Vault | +16. Export | +||||||
| 17. Config | +18. Data layout | +19. Security | +20. Testing | +||||||
| 21. Pages | +22. Roadmap | +23. Citing | +24. License |
| Tool | When you use it |
|---|---|
| Overleaf | After the experiment, when the manuscript is being prepared. |
| TeXstudio / TeXmacs | For traditional LaTeX editing on a desktop. |
| lablog | During the experiment: to dictate, execute and preserve as it happens. |
+
+Figure 1. Main shell: project groups, structural LaTeX editor, live preview (\section, equation, % lablog-param).
+
+
+
+Figure 2. Diagram workbench: circuit / control / optics presets with Insert, +Sim, and SPICE badges.
+
+
+
+Figure 3. Parameter panel: dial values, dual highlight targets, re-apply diagram / re-apply + sim.
+
+
+
+Figure 4. Laboratory mode: dense cell layout, Python source, run / reorder / delete controls.
+
+
+
+Figure 5. Preferencias: editor font, palettes, accent colour, and editable global chords (mod+…).
+
+
+
+Figure 6. Full preferences surface (density, motion, laboratory layout, import / export JSON).
+
+
+
+Figure 7. Document with embedded \begin{python} cell and parameters open for re-apply.
+
+
+
+
+
+Figure 8. Identity kit and layered architecture illustration.
+
+align, equation, gather, cases, pmatrix) with automatic equation numbering.align, equation, gather, cases, pmatrix) with automatic equation numbering.SpeechRecognition with an intent detector and local Whisper pipeline. A session safety timeout prevents the recogniser from hanging if the API stalls.SpeechRecognition with intent parsing, plus optional local Whisper ([voice] extra). Session timeout prevents hung recognisers.\begin{python}...\end{python} and run real Jupyter kernels in place. Stdout, results and figures are captured back into the document; the kernel is interrupted on timeout to prevent runaway code.\begin{python}...\end{python} (and lab-mode cells) run on a real Jupyter kernel. Stdout, results, and figures return into the document; kernels are interrupted on timeout.{{placeholders}} via % lablog-param. Dual highlight (editor line + Circuitikz colour). Optional PySpice cells with numpy fallback..tex), plain text, HTML, PDF and DOCX via pandoc; Jupyter notebook (.ipynb); static site for GitHub Pages; Canva-ready HTML. Titles are escaped to prevent LaTeX injection.circuitikz nodes)..tex, plain text, HTML, PDF, DOCX (pandoc), Jupyter .ipynb, static site for GitHub Pages, Canva-ready HTML. Titles LaTeX-escaped.pywebview ([desktop]); portable PyInstaller bundle for offline distribution.
+| Layer | -Stack | -
|---|---|
| Engine | Python 3.11+, FastAPI, Pydantic, Jupyter Client, faster-whisper. |
| Persistence | JSONL event log; atomic metadata writes; deterministic projection. |
| Interface | React 19, TypeScript, Vite 8, Tailwind CSS v4, Zustand, shadcn/ui, Radix. |
| Mathematics | KaTeX with automatic numbering for display environments. |
| Tooling | uv (Python), npm (Node), Ruff, Mypy (strict), oxlint, pytest, GitHub Actions. |
+| Milestone | Status |
|---|---|
| Event-sourced engine with deterministic projection | Done |
| Voice → intent → LaTeX pipeline | Done |
| Structural LaTeX renderer (sections, lists, environments) | Done |
| Executable cells with kernel timeout | Done |
| Vault with previews and time-locked deletion | Done |
| Editor: find & replace, undo / redo, cursor-aware insertion | Done |
| Static export & GitHub Pages deployment | Done |
| Native desktop app (offline, pywebview) | Done |
| Time-travel: scrub and restore any point of a page's history | Done |
| Full LaTeX mode: raw compilation, templates menu, error-to-line jump | Done |
| Version diff inside the time-travel panel | Done |
| Portable PyInstaller bundle | Beta |
| In-app PDF compilation with line-aware error reporting | Done |
LaTeX autocomplete + physics templates + lablog new --template | Done |
Multi-file includes (\input{page:…}) at compile time | Done (minimal) |
| Diagram presets + Jupyter / optional PySpice | Done (0.3.0) |
| Re-apply params, dual highlight, .ipynb export | Done (0.3.0) |
| UI profiles + configurable shortcuts | Done (0.3.0) |
| BibTeX / full citeproc | Planned |
| Section and equation cross-references | Planned |
| P2P collaboration and device sync | Exploratory |
+
+