nezzontli-ctl
TUI (Textual) para crear/editar contenido de nezzontli.xyz
https://nezzontli.xyz sin depender de un CMS externo ninguno soporta
git-lfs, que es como se versionan las fotos de los lbumes. Esta
herramienta usa git real (el mismo git lfs install de siempre), as que no
tiene ese problema.
Es un proyecto separado del repo del sitio: opera sobre ~/projects/website
(u otra ruta, ver NEZZONTLI_REPO_PATH abajo), no vive adentro de l.
Desarrollo
----------
nix develop # crea/activa .venv y hace pip install -e . automticamente
ctl # o: python3 -m nezzontli_ctl
NEZZONTLI_REPO_PATH (variable de entorno, opcional) apunta al clone del
sitio sobre el que trabaja. Default: ~/projects/website. Tambin se puede
fijar de forma persistente en ~/.config/nezzontli-ctl/config.json (repo_path)
o cambiarla desde la pantalla de Configuracin.
Instalacin (comando ctl global, sin nix develop a mano)
-------------------------------------------------------
ln -s ~/projects/nezzontli-ctl/bin/ctl ~/.local/bin/ctl
ctl # ya disponible en cualquier terminal
bin/ctl es un wrapper (nix develop . --command ctl parado en el directorio
del repo) no un pipx install. La app necesita libstdc++.so.6 (lo pide
numpy, dependencia de matplotlib para el renderizado de LaTeX del preview),
y en NixOS esa lib solo est en el LD_LIBRARY_PATH que arma el shellHook
del flake; un pipx install plano no lo lleva y crasheara al primer $...$
en el preview. El wrapper sortea eso reusando siempre el flake real.
Estado
------
Men de dos niveles: Crear nuevo (post / pgina en un proyecto /
lbum) y Editar existente (post / pgina extra de un proyecto / lbum
/ agregar fotos a un lbum), ms Configuracin. Cada flujo de edicin
tiene botn Eliminar (confirmacin simple, borra del disco y
pushea). Validado contra un clone local descartable (bare repo como origin)
para los tres borrados: se confirma qu se borra del disco, el commit y el
push al origin.
El preview del editor, adems de Markdown, renderiza frmulas en bloque ($$...$$)
como imagen (subset mathtext de matplotlib, fondo transparente) y aproxima
el LaTeX inline ($...$) a texto Unicode en el lugar (no rompe el prrafo).
Muestra imgenes referenciadas locales del repo (![](), shortcodes
photo()/gallery() de Zola) o remotas por URL (shortcode image()) usando
el protocolo de grficos de la terminal (Kitty, Sixel o half-cell segn
deteccin; si no hay terminal real, cae a texto). El scroll del editor y
el preview estn sincronizados por lnea de origen.
Probado contra el repo real de nezzontli.xyz en uso diario. Queda a
decisin de Ale cundo retirar website/scripts/ctl.py (el script viejo,
todava intacto) y si integrar esta herramienta a su config de NixOS.