Che cos'è il "Markdown"?
Markdown è un linguaggio di markup, ovvero un insieme di regole che descrivono i meccanismi di rappresentazione o d'impaginazione di un testo facendo uso di convenzioni rese standard, che stabiliscono regole per la formattazione.
In Markdown possiamo per esempio definire dei titoli in questo modo, semplicemente scrivendo uno o più cancelletti prima del titolo. Possiamo tenere conto della gerarchia dei titoli grazie al numero di cancelletti usati:
# Titolo 1
## Sottotitolo
### Eccetera...
Possiamo definire la formattazione in stile grassetto o in corsivo:
*Testo corsivo*
**Testo grassetto**
***Testo grassetto e corsivo***
Oppure possiamo definire elenchi, numerati o non, semplicemente aggiungendo numeri o trattini davanti agli elementi di una lista:
1. Primo elemento di una lista numerata
2. Secondo elemento di una lista numerata
3. Terzo elemento di una lista numerata
- Primo elemento di una lista non numerata
- Secondo elemento di una lista non numerata
- Terzo elemento di una lista non numerata
Del testo scritto senza simboli davanti viene interpretato come un normale paragrafo.
Si possono inoltre inserire immagini, collegamenti ipertestuali e altri elementi semplicemente digitando i giusti caratteri per designare la formattazione dell'elemento nel documento finale.
Esistono dei software che impaginano documenti scritti in Markdown, rimuovendo i simboli che definiscono il ruolo degli elementi e restituendo documenti formattati e pronti da usare in altri contesti.
Per esempio, se scriviamo questo documento Markdown (notare l'uso di simboli nel testo):
# Ricetta per la pizza **fantasiosa**
## Ingredienti
Il bello della pizza è che possiamo decorarla con ***qualsiasi***
ingrediente! In questa versione *fantasiosa* useremo questi
ingredienti:
- Funghi
- Prosciutto
- Cipolle
## Procedimento
Eccetera...
Una volta formattato il testo otterremo:
Ricetta per la pizza fantasiosa
Ingredienti:
Il bello della pizza è che possiamo decorarla con qualsiasi ingrediente! In questa versione fantasiosa useremo questi ingredienti:
- Funghi
- Prosciutto
- Cipolle
Procedimento
Eccetera...
Se volete provare Markdown subito potete provare Dillinger, un editor di Markdown che si può usare direttamente dal browser.
Perchè usare Markdown?
Perchè è "astratto".
Quando scriviamo in Word, per esempio, possiamo definire dei titoli e formattare il testo come tale, ma il testo viene formattato subito. Diventa già un titolo, e magari non ci piace lo stile che Word ha scelto per noi, allora ci distraiamo e ci perdiamo tra i titoli di Word, cercando di scegliere un font e un colore che ci piacciano.
Adesso tutti i miei titoli sono verdi e ho scelto un font che mi piace, ma che cosa dovevo scrivere?
Markdown può rimuovere questo genere di distrazioni. Sappiamo che un titolo è un titolo perchè viene preceduto da un cancelletto, ma possiamo formattarlo dopo.
È in questo modo che ho implementato Dark Mode (e altri stili, belli ma forse non molti pratici da usare) nelle pagine degli appunti!
Come hai creato questo server?
L'ho scritto utilizzando HTML, CSS e Javascript, linguaggi essenziali da sapere per il web development.
Ad un certo punto ho avuto l'esigenza di elencare tutti gli appunti che avevo scritto in un singolo posto per poi impaginarli per la stampa.
La prima feature a cui ho lavorato è stato appunto renderizzare (cioè rendere visibile) una pagina web a partire dal file Markdown, poi aggiungendo man mano altre funzionalità mi sono ritrovata con MD Study Notes fra le mani.
Il processo di web development su NodeJs è abbastanza divertente, visto che può essere paragonato alle costruzioni Lego: se si trova un certo strumento che fa al caso nostro che vogliamo usare, allora si cerca di "incastrarlo" nel progetto da qualche parte. È ciò che ho fatto con il framework che converte il Markdown in HTML "crudo".
Ecco la stack completa per i più smanettoni:
- Node.js + ExpressJs per il back-end
- Ejs + CSS scritto da me per il front-end
- markdown-it per la conversione del file md in html