#howto - Glow: leggere file markdown dal terminale

Scritto da il
Redatto da
ubuntu
fedora
archlinux
windows
macos
android

Nel corso degli anni, il formato Markdown è diventato sempre più apprezzato e oggigiorno viene usato per scrivere di tutto, dalle documentazioni agli articoli (compreso questo).

Leggere un file Markdown (come ad esempio il README.md di un progetto) in un terminale via nano o vim, però, non sempre è un’esperienza piacevole.

Infatti, siccome è facile distrarsi per la presenza dei simboli di formattazione, la lettura può talvolta essere molto difficile.

Glow è uno strumento a riga di comando che risolve il problema formattando i testi in Markdown e mostrandoli sul terminale.

Installazione

Tutte le opzioni di installazione ufficialmente supportate sono elencate in questa pagina.

Di seguito sono riportate le istruzioni per i sistemi più comuni.

Ubuntu

Su Ubuntu e derivate l’installazione richiede prima di aggiungere una repository, siccome di base glow non è disponibile nei repository ufficiali.

Creare, se non esiste, la seguente directory /etc/apt/keyrings:

mkdir -p /etc/apt/keyrings

Quindi:

curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list

Aggiornare ed installare glow:

apt update
apt install glow

Fedora

Anche su Fedora il discorso è simile a quello fatto per Ubuntu: è necessario aggiungere il repository di Charm.

echo '[charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo

Quindi installare glow:

yum install glow

Arch Linux

pacman -S glow

Windows

Il pacchetto per Windows è disponibile via Chocolatey:

choco install glow

In alternativa, via Winget:

winget install charmbracelet.glow

O ancora, via Scoop:

scoop install glow

MacOS

Su MacOS, Glow è disponibile via Homebrew:

brew install glow

Android

Via Termux:

pkg install glow

Usando Go

L’installazione via Go è preferibile, in caso di distribuzioni non-rolling, siccome verrà installata la versione più recente disponibile su GitHub:

go install github.com/charmbracelet/glow@latest

CLI

Per formattare un file Markdown file.md, basta eseguire

glow file.md

In caso di file lunghi potrebbe essere più appropriato ricorrere al pager (in modo che il file sia leggibile a scorrimento).

Anziché usare less (che, se non opportunamente configurato, non preserverebbe la formattazione), è più opportuno ricorrere al pager nativo di glow:

glow -p file.md

Non solo su file locali: Glow funziona anche per risorse remote.

Ecco come leggere il README della repository GitHub di LinuxHub, via pager (-p) limitando la larghezza al massimo possibile dal terminale (-w).

glow -w ${COLUMNS:-80} -p https://github.com/linuxhubit/linuxhub.it

TUI

Avviare glow senza alcun parametro avvia un’interfaccia in cui sono mostrati tutti i file Markdown (.md) trovati nella cartella (e relative sottocartelle) in cui Glow è stato avviato.

Azione Descrizione
? Visualizza una descrizione di tutte le azioni disponibili
INVIO Apre il file in evidenza
e Modifica il file come testo (verrà avviato l’editor indicato da $EDITOR)
s Passa il file in evidenza alla sezione “Stash”
x Rimuove il file in evidenza dalla sezione “Stash”
q Chiude Glow
/ Cerca filtrando per nome del file Markdown
ESC Chiude il menu di ricerca
TAB Passa alla sezione a destra
SHIFT + TAB Passa alla sezione a sinistra
oppure k oppure CTRL + k Seleziona il precedente articolo in lista
oppure j oppure CTRL + j Seleziona il prossimo articolo in lista
oppure h Va indietro di una pagina
oppure l Va avanti di una pagina

Configurazione

Il file di configurazione di glow può essere aperto mediante Glow stesso:

glow config

Ciò consente di modificare alcune opzioni (come il supporto al mouse o la linea a capo automatica, fissata a 80 caratteri) e di abilitare alcune impostazioni di default, come il pager (così che Glow si comporti sempre come less),

Stash

Si può pensare alla modalità Stash come una sorta di “preferiti”.

Aggiungere un file allo stash consente di riaprirlo con più facilità, ed è perciò ottimo nel caso di file a cui si fa spesso riferimento.

Un file può essere aggiunto allo Stash sia via interfaccia interattiva (TUI, usando s) che via CLI (mediante il sottocomando stash):

glow stash --memo "Prossima pubblicazione" articolo.md

Per rimuovere un file dallo stash, è necessario entrare in modalità TUI (eseguendo glow o glow stash), selezionare il file e premere x.

Leggere LinuxHub da terminale

Come accennato nell’introduzione, tutti gli articoli pubblicati su LinuxHub sono dei file Markdown in origine (poi convertiti in pagine HTML e arricchiti nello stile per poter essere visualizzati dai browser).

Questo significa che è possibile leggere tutti gli articoli pubblicati su LinuxHub via terminale! Ecco come:

git clone https://github.com/linuxhubit/linuxhub.it.git

cd linuxhub.it/_posts

Dopodiché, basta digitare glow (per scegliere interattivamente il post da leggere) oppure glow -p *howto-glow*.md per leggere proprio quest’articolo nello specifico.

Maggiori informazioni

La repository dei sorgenti si trova su GitHub.

Glow è uno strumento creato e sviluppato da Charmbracelet, Inc.

Charmbracelet sviluppa anche altri strumenti, tra cui il ben più noto Gum.

history_edu Revisioni