¿por qué este cms?

en esta página documentamos nuestros requerimientos de publicación para gemini y la web y discutimos diferentes herramientas existentes, la que usamos actualmente, y el por qué sí o no las otras funcionarían (o qué les faltaría) para cumplirlos.

la discusión se centra en los sitios personales o islas, que cada una puede editar con Lichen.

Notas sobre uso de Lichen

esta página queda bien acompañada por la de flujos de publicación alternativos.

Flujos de publicación alternativos

requerimientos

en Archipiélago I tenemos una combinación curiosa de necesidades respecto a varios niveles de involucramiento técnico que queremos permitir, protocolos donde servir, y ligereza de las herramientas.

específicamente, queremos:

nuestra herramienta actual: lichen (php)

qué es lichen

Lichen is the simplest possible CMS for the web that is friendly enough for non-technical users
(Lichen es el CMS para la web más simple posible que es suficientemente amigable para usuari@s no técnic@s)

versiones de lichen

históricamente (?), Lichen ha tenido tres grandes versiones: la original (y la que usamos), escrita en PHP. Luego una versión en gForth, y finalmente un "fork" de esta llamado Lichen-Markdown.

Lichen PHP (unmaintained)
Lichen (Forth)
Lichen-Markdown

las tres versiones presentan una interfaz web minimalista que permite editar, crear y subir archivos, y ver la representación del archivo fuente al instante. Las tres versiones convierten los archivos de texto fuente a una versión html.

las tres versiones están pensadas como CMS para web únicamente, es decir que las páginas se editan via web y el resultado de esa edición se ve por la web. En su diseño no contemplan realmente la edición por otros medios ni el servirlos por otros protocolos.

diferencias entre versiones

las primeras dos versiones utilizan gemtext como el formato de texto fuente, y la tercera usa markdown. La justificación para usar gemtext es por su minimalismo / simplicidad y no necesariamente porque se promueva el uso del protocolo gemini (aunque winduptoy, quien creó lichen originalmente, sí lo usa).

una diferencia crucial entre la primera versión en PHP y las siguientes en Forth (además del lenguaje en el que están programadas), es que la primera convierte los archivos fuente ("renderea") a html cada vez que alguien visita una página, mientras que las otras dos hacen la conversión ya sea cuando una página es guardada desde la interfaz web, o ejecutando un script desde el servidor para re-convertir todas las páginas.

técnicamente, la segunda forma es más eficiente en recursos, pero para nosotres, pone en conflicto algunas de nuestras otras necesidades. esto lo discutimos abajo.

por qué usamos Lichen (PHP)

retomando nuestra lista de requerimientos, el usar Lichen PHP nos ha permitido:

ahora, esto es lo crucial. Lichen-php nos permite:

gracias a esto, podemos:

básicamente, sin importar el método de edición que utilicemos, nuestra preocupación es únicamente editar y guardar los archivos. La conversión a html es realizada automáticamente cada vez que alguien visita una página, y la conversión a gemtext no es necesaria porque los archivos ya están en ese formato.

ahora comparemos con otras versiones de Lichen y otras posibilidades más.

otras opciones (y por qué no las usamos)

Lichen (Forth)

en principio, Lichen Forth funciona igual que el otro EXCEPTO porque este realiza la conversión a html cuando el archivo se guarda desde la interfaz web.

es decir, Lichen Forth genera y guarda un archivo html al momento de presionar el botón de guardar. Esto en principio es más eficiente porque solo se hace la conversión una vez.

con este Lichen, editar los archivos gemtext via SSH y SFTP sigue siendo posible, y estos pueden ser servidos igualmente desde gemini.

ahora, el inconveniente es que esos archivos no serían convertidos a html automáticamente.

Lichen incluye un "build script" para realizar la conversión a html de todas las páginas.

como sea, esto implicaría posibles cambios en el flujo de trabajo:

en su momento, el involucrar ese script ya sea manual (via SSH y no SFTP) o automáticamente resultó más inconveniente que seguir usando la versión PHP, que ya estaba instalada.

si quisiéramos migrar a esta versión de Lichen tendríamos que tomar en cuenta cómo ejecutar dicho script, e implementarlo.

Lichen-Markdown

esta versión de Lichen nos presentaría el mismo inconveniente que el anterior, AGREGANDO uno más: los archivos fuente son en markdown, no en gemtext. Si bien existen programas que convierten de markdown a gemtext, utilizar esta versión de Lichen implicaría lo siguiente, ADEMÁS de lo descrito arriba para Lichen Forth:

otros CMS basados en markdown

cualquier otro CMS basado en archivos de texto en markdown (sin soporte para gemini/gemtext) nos presentaría los mismos inconvenientes que Lichen-Markdown:

Flounder

Flounder es una comunidad y un software que hace algo parecido a nosotres: es un cms web donde se escribe en gemtext y que permite tener una página replicada en la web y gemini automáticamente. Además, soporta manejar archivos via SFTP (pero no SSH).

flounder

en su momento nos pareció una opción interesante para utilizar, pero:

generadores de sitios estáticos

en principio este tipo de generadores no están en contraposición con nuestro acercamiento actual y de hecho son discutidos abajo como un "flujo de publicación alternativo".

solo cabe mencionar aquí que no usamos este acercamiento como forma de publicación principal, justo por no ser "CMS": no tienen una interfaz web y por lo tanto no permitirían la edición de esa forma, que es algo que apreciamos de nuestra solución actual.

si algún generador sí tuviera una interfaz web, entonces muy probablemente aplicaría lo que mencionamos arriba sobre "otros CMS basados en markdown".

como sea, vale la pena rescatar que algunos de estos generadores suelen ofrecer opciones de conversión (a html y gemtext) que pueden ser interesantes para islas que deseen probar flujos de publicaciń alternativos:

Flujos de publicación alternativos

conclusión (por ahora)

nuestro cms actual, Lichen PHP, cubre nuestras peculiares necesidades grupales a la vez que nos permite cierta flexibilidad para editar y publicar simultáneamente en la web y en gemini.

utilizar otros sistemas y/o involucrar Markdown en el flujo de trabajo implica agregar desarrollo y complejidad extra en los que por ahora no hemos podido invertir.

como sea, las islas son invitadas a probar (y hackear!) otras posibilidades tanto para su uso personal como para cubrir las necesidades de todas las islas, tomando en cuenta los requerimientos discutidos arriba.