⚡️ Il blogging rapido con Standard Notes
Da OctoSpacc
È da direi parecchio tempo che uso Standard Notes come app di note personali.
Anni fa l’avevo scelta per il suo essere libera e open-source, ma allo stesso tempo molto pulita, curata, e funzionale. Capitava a pennello in un momento in cui cercavo qualcosa che supportasse una cifratura dei dati che funziona, senza inficiare sull’usabilità.
Senza dilungarmi su perché poi mi è piaciuto continuare ad usarla, poi ho smesso, e poi ho ripreso fino ad arrivare ad ora, bisogna approfondire su una in particolare delle sue funzioni integrate: Listed.
Si tratta di una piattaforma di blogging concepita dagli stessi sviluppatori di Standard Notes, e disponibile per il self-hosting oppure l’uso gratuito sull’istanza ufficiale. Per quanto io non l’abbia mai davvero usata prima, ho trovato fin dall’inizio interessante il concetto e la sua applicazione.
Un’esigenza veloce
Da qualche giorno fa, invece, ho iniziato a giochicchiare con ChatGPT. Questione totalmente diversa questa, si, ma centra perché mi sono posta una domanda: tutte queste conversazioni che sto facendo con l’intelligenza artificiale, dove posso metterle per tenerle integrali, organizzate, ritrovabili e accessibili a chiunque, e per me facili da caricare?
La scelta stava per ricadere sull’usare staticoso, il mio generatore di siti statici che già uso per il sitoctt, ma poi ci ho ripensato.
Ho pensato che, appunto, voglio rendere effettivamente la mia collezione di esperienze ritrovabile sul Web. Il problema qui, però, che ho potuto amaramente constatare in tutti questi mesi, è come il mio sito ad esempio sia, come dire… I motori di ricerca non se lo cagano. 😭
Oltre ad essere pure questo un argomento a parte, va precisato che la colpa della orrenda sorte del mio sito non dipende dal suo codice; è colpa del dominio e/o dell’host. Quindi, no, non abbandonerò mai il mio staticoso: il solo cambiare generatore (e i template di conseguenza) con uno magari fatto seriamente non risolverebbe alcun problema.
Ho dovuto insomma cestinare totalmente l’idea dell’hosting su GitHub e GitLab, e pensare ad altro.
- Blogger di Google? L’esperienza editoriale lascia a desiderare su mobile.
- WordPress? Sarebbe OK, ma sappiamo cosa potrebbe succedere tra tanti anni a dati inseriti in un sistema complesso; e WordPress è molto complesso. Ho a fatica trovato un programmino che converte un suo backup XML in file Markdown… che con buona probabilità si romperà tra qualche anno, essendo non ufficiale, dato che a quanto pare il team di WordPress ha il vizio di cambiare la struttura di quell’XML di tanto in tanto; altre soluzioni di conversione che avevo trovato un attimo prima erano vecchie di qualche annetto e non hanno funzionato, per dire.
- Magari WriteFreely? Ho già un account sull’istanza di Devol, ma il limite di blog per ogni account è 5 e non volevo potenzialmente sprecarne uno.
- Plume, forse? Sembrava carina quest’altra piattaforma di blogging, ospitata da molti e compatibile con ActivityPub (non una necessità per me, ma comunque un bel bonus), ma non permette di impostare del CSS personalizzato; mancanza grave per questo mio caso d’uso, dato che non c’è altra via per impaginare tutto nella maniera specifica di cui ho bisogno per rappresentare una chat senza boilerplate ad ogni paragrafo di HTML.
La scelta di Listed
Le mie idee erano finite e, dato che avevo fretta di mettere su questo sito ed iniziare a caricarci le esperienze avute con ChatGPT, considerando quanto mamma mia era comodo copiare ed incollare le cose direttamente in Standard Notes, questo era il momento buono di provare Listed.
A dirla tutta, mi preoccupa un po’ il prospetto che il file di backup settimanale delle note possa diventare grosso decine di MB, ma ormai il dado è tratto.
Potrei creare un secondo account da usare solo per le note di ChatGPT, esportandole dal primario ed importandole lì, per poi cancellarle dal primo account per alleggerire la raccolta, però ci sono dei problemi. Forse riesco a trasferire l’username, ma i link ai singoli post saranno rotti, perché includono degli ID automatici, e quindi via di redirect alla home per chi ne segue uno vecchio. Inoltre, i vecchi messaggi del guestbook non vengono ricopiati, e mi sa che nemmeno le iscrizioni via email sono trasferite.
Il pensiero del “che palle”
Tutto sommato comunque, per questo scopo limitato ho apprezzato quanto sia efficiente avere Standard Notes come parte finale del mio flusso di lavoro. Mi sembra riduca di molto l’effetto “mi scoccio”.
Considerato dunque il piacere della scoperta, ho per un attimo riflettuto su come il fattore “che palle” sia una delle cose che mi trattiene dall’aggiornare il sitoctt con migliore frequenza.
Lasciamo stare le pagine tematiche, che sono bestie a parte; lasciamo stare pure i post lunghi, che mi richiedono forte ispirazione e abbastanza tempo di stesura; però che cavolo, almeno qualcosa per il MicroBlog, che va per le corte, mi andrebbe di crearla più spesso! Però mi passa proprio la voglia, per qualche motivo, considerando tutta la trafila che devo fare.
A dire il vero, avevo preso già da subito l’abitudine di iniziare a scrivere un post in Standard Notes, così da poter più flessibilmente gestire il tutto, magari passando rapidamente da un dispositivo all’altro. Però, se dovevo mettermi a scrivere qualcosa di non lungo ed elaborato, da pubblicare prima possibile, non mi veniva proprio la voglia di agire.
“Ma perché non passo a Listed almeno per il mio microblog?”, penso dunque. Beh, c’è un motivo se addirittura sono arrivata a farmi il mio generatore di siti statici: mi serve!… E se anche non mi servisse più e potrei dunque smettere di usarlo, non ci vorrei onestamente nemmeno pensare a fare una cosa del genere, dopo tutto il lavoro! 😖
Limitazioni di Listed
Comunque, per dirla bene, Listed è parecchio scarno: permette appena di inserire CSS personalizzato, e di formattare i post in Markdown e un sottoinsieme ristretto di HTML. Di quest’ultimo propongo di seguito le mie analisi:
- Tutti gli elementi che sono di loro natura inline vengono automaticamente inseriti in un blocco
<p>
(ad esempio, non si può avere<body><span>Erre</span></body>
, sarà sempre<body><p><span>Erre</span></p></body>
); - Qualsiasi attributo di elemento che non sia
id
,class
, ostyle
, (edhref
osrc
, così come credo roba cometitle
,width
, oheight
, nei casi opportuni) viene buttato via: scordatevi quindi, per dire, di deviare dalla configurazione predefinita della piattaforma per quanto riguarda il comportamento dei link (ilrel
non si tocca); - Certi elementi proprio non vanno: quelli con tag non-standard (custom insomma, tipo
<pincopallino>
) sono eliminati, così come<script>
,<link>
, e a quanto pare pure roba come<video>
- però<iframe>
, per dire, funge, e per fortuna anche il mio adorato<details>
.
È chiarissimo che non può sostituire al 100% assolutamente nessuna sezione del sitoctt, nemmeno quella del MicroBlog, e anche se potesse andrebbe a creare frammentazione: il sito principale non conterrebbe più tutti tutti i post in modo centralizzato, e chi ne avesse interesse dovrebbe quindi seguire ben 2 siti diversi.
Il blogoctt con Standard Notes
Mi stavo quasi per rassegnare, ma per fortuna ho il lampo di genio: Ma posso scrivere su Standard Notes, ed avere le note che in automatico si sincronizzano come file sul sito? …No, non c’è verso. No, aspè, e chi lo ha detto? Io dico che c’è verso.
Ora, Standard Notes, come ho detto, usa un sistema di cifratura client-side dei dati, quindi per accedere alle note dal proprio account andrebbe usato un software un minimo specializzato.
C’è sn-cli, il client ufficiale a riga di comando, che potrebbe essere utile per creare script… però pare proprio sia stato abbandonato: niente da fare.
Soluzione “a modo mio”
E allora, anche qui io quindi parlo, e dico: Chi lo ha detto che devo fare le cose per bene e usare le API “vere”?
Io dico che, visto che per qualche motivo l’HTML di un blog su Listed (nello specifico, la pagina /all, l’unica che mi sembra includere davvero tutto, e non solo gli ultimi X post) include come stringa JSON i dati di tutti i post, allora io posso semplicemente pubblicare su Listed da Standard Notes ed avere un programma che fa lo sporco - ma in questo caso davvero semplice, visto che deve solo scaricare e parsare 1 file - lavoro dello scraping.
E script fu scripto. Lo lascio qui: gitlab.com/octtspacc/sitoctt/Scripts/ListedDownsync.js; attenzione però che non c’è niente di bello da leggere, anche perché non ho ancora implementato tutto quello che dovrebbe servirmi a lungo termine, ma per chi vuole usarlo sta là.
È tecnicamente indipendente dal sitoctt e da staticoso, in quanto salva semplici file Markdown su disco (anche se la sintassi delle righe di metadati in essi scritti è quella mia; per cui, in caso, andrebbe cambiata qualche stringa di testo nel programma per supportare il più classico formato dei metadati YAML).
Non voglio dire che ho pensato davvero a tutto, però ci sono andata vicina.
No non mi so ancora decidere - per colpa di mie paturnie - su che standard usare per indicare blocchi speciali (di metadati, o di HTML da non far interpretare al SSG di Listed).
No, non ho ancora fatto lo script da avviare come cronjob sul server, che ogni tanto dovrebbe scaricare i dati dal blog di Listed e aggiornare i file nella repository Git se ci sono aggiornamenti.
Però, ho pensato alle cose veramente inderogabili, tipo la possibilità per il programma di sincronizzazione di non sovrascrivere un file già nella repo se questo specifica la cosa nei metadati. Metti che succede un qualunque casino, e io devo modificare i dati del post per il sitoctt senza toccare quelli della nota su Standard Notes: impostando questa flag, lo script di sincronizzazione non lo sostituirà la prossima volta che gira.
Conclusioni
Come concludere, dunque.
Oggi ho già scritto troppo (è venuto fuori un articolo di blog e non microblog!), e la chiudo qui. Però spero vivamente che tutta questa nuova efficienza e comodità, l’avere ulteriore tecnologia che lavora per me, e non obbliga me a lavorare per lei (in teoria, tanto comunque i problemi devono uscire fuori, altrimenti io non sono io!), possa farmi scrivere di più e con più piacere. Che sia sul sitoctt, o sulle lastre di pietra.
Ah, si, questo qui è stato il primo post sul mio blog Listed, è giusto precisarlo per chi legge dal sitoctt… ma io spero che almeno la versione Listed del blog possa venire indicizzata per bene e scoperta da più persone, già che ci siamo.
È proprio nella speranza di raggiungere questo obiettivo che sto accettando alcuni compromessi quando scrivo qui, come il fare a meno delle macro (che con staticoso posso usare, mentre qui produrrebbero testi bucati e link rotti), per far si che gli articoli siano effettivamente consultabili anche dalle pagine di Listed.
🏷️ Note e Riferimenti
- Aggiornamenti del post:
- 2022-12-16: Ho aggiunto una foto di copertina per l’articolo, e ho precisato il dettaglio finale che avevo dimenticato.
- 2022-12-14: Ho aggiunto un po’ di formattazione extra, e ho corretto alcune espressioni.