Número 80
17 de xaneiro de 2024

Os comentarios están preparados

Para cando vexades esta Folla, o sistema de comentarios vai estar en funcionamento. Poñelo en marcha foi unha pequena aventura.

O Barón Munchausen cruza o río Támesis voando polos aires.

Como teimaba eu no principio, os artigos da Folla continúan a ser ficheiros HTML estáticos, e para os comentarios fixen unha aplicación feita en JavaScript con chamadas AJAX para recoller os datos. Obviamente, as chamadas AJAX van a un servidor que escribín adrede para iso, pero (isto é o importante) se o servidor deixa de funcionar, aínda podedes ler a Folla; só os comentarios fican afectados.

Outra teima que tiña eu era que se puidesen incluír os patróns para os comentarios nos mesmos ficheiros que definen os patróns para os artigos.

Cando eu escribo un número da Folla, non edito o HTML directamente, senón que o escribo en Markdown, e despois o meu programa convérteo a HTML aplicando certos patróns e modelos que teño definidos nun ficheiro. O sistema de comentarios tamén precisa de patróns que lle indiquen como convertelos a HTML, e a maneira “habitual” de facelo implicaría elaborar un conxunto de patróns específico.

Porén, conseguín poñelo todo no mesmo ficheiro empregando etiquetas <template>. Estas etiquetas de HTML definen un contido que o navegador non vai debuxar; no seu lugar, o código JavaScript cólleas e, facendo as modificacións oportunas, utiliza o seu contido para “debuxar” os comentarios. Con isto podo poñer todo (o HTML normal e os <template>s para os comentarios) no mesmo ficheiro patrón.

A miña terceira teima era o spam. Eu tiven e administrei moitos blogs e páxinas web, e o problema que sempre acababa tendo era o dos papamerdas que viñan encherme o blog coas súas caralladas. Para evitalo, fixen unha interface de administración que me permite aprobar e rexeitar comentarios, e incluso abrilos e pechalos para cada historia. Ademais, cando alguén envía un comentario non vai publicado directamente, senón que queda en borrador e eu recibo un email co texto do comentario e con ligazóns para aprobalo ou rexeitalo.

Unha cousa que penso que me quedou ben é o do formato e a previsualización. Podedes usar Markdown para escribir os comentarios, e xusto debaixo da caixa de edición hai unha caixa de previsualización que se actualiza automaticamente. Desta maneira podedes ver como queda antes de premer o botón de “Enviar”.

O que non podedes facer é modificalo despois de envialo, porque o meu sistema de comentarios non garda cookies nin ningún tipo de información que permita saber quen escribiu cada comentario. Obviamente garda o que lle poñades, así que non veñades poñer datos persoais de ninguén.

Como dixen, escribín un pequeno servidor web para que o JS poida facer peticións AJAX. Este servidor está escrito en Go (igual que o programa que xera o HTML da Folla) e téñoo andando en Docker. Esta foi a parte máis accidentada do proceso porque o programa non podía acceder ao localhost e tiven que configuralo para que accedera ao MySQL mediante un socket Unix.

Todo o código está no GitHub para que lle poidades botar unha ollada se tedes curiosidade (ou morbo). Se tedes preguntas podédesme escribir podedes deixar un comentario abaixo se ledes isto na web, ou en folla.gal/08/0-os-comentarios-estan-preparados.html se estades a ler isto no voso email.

(Espero que non haxa un problema de último minuto que faga que non funcionen os comentarios. Sería o típico).

A ilustración desta Folla é un debuxo de Thomas Rowlandson para as Sorprendentes Aventuras do Famoso Barón Munchausen.