Ritorno a Hugo
Table of Contents
Sollecitato su un canale Slack devo spiegare perché da Quarto sono tornato a Hugo. La risposta più semplice è nella sovrabbondanza di Quarto rispetto alle mie esigenze. Non sento la necessità di inserire presentazioni nei miei post, non scrivo post con tanto codice R -o Python o Julia- da dover mostrare i risultati in modo dinamico. Le mie pagine sono semplici e comunque posso inserire una presentazione o del codice. Non devo dedicarmi a creare report con tanto codice risultati e commenti, non produco studi che devono essere replicabili e riproducibili. Scrivo solo appunti per me che, forse, potrebbero essere utili anche a altri.
##
Quarto
I vecchi post su Quarto ci sono ancora, anche se hanno bisogno di una revisione che forse farò.
Anche ora potrebbe essere necessario, con probabilità scarsissima, di dover completare un post con qualcosa di più complesso e cercherò di illustrare come non sia un problema.
##
Presentazioni
Per le presentazioni negli utimi anni ho preferito usare reveal.js che consente di scrivere in markdown e attraverso pandoc ottenere un file html.
Purtroppo i file html non sono supportati da Hugo come una risorsa di page bundle, così come da tempo sono strutturati i miei post, ma altri tipi di file si.
###
Usare uno shortcode
Per chi volesse cimentarsi con Hugo lascio questo link agli shortcodes.
Io ho seguito queste indicazioni.
Lo shortcode che potremmo chiamare slideshow.html
va salvato in /layouts/shortcodes
.
<iframe
src="{{.Get 0}}"
width="100%"
height="400"
frameborder="0"
scrolling="auto"
allowfullscreen="allowfullscreen"
></iframe>
Il link punta a una cartella static/slides in cui raccogliere tutte le presentazioni. I file presenti in static sono disponibili per tutte le pagine del blog ovvero possono essere usate da più pagine.
{{< slideshow "/slides/slides.html" >}}
La presentazione risponde a tutti i comandi di reveal.js.
Ma potrebbe anche essere un collegamento a una presentazione Beamer oppure potete visualizzarla direttamente nel post sempre con uno shortcode1
##
Codice
Il codice viene ben rappresentato in Hugo. Per esempio, partendo da un semplice script di R e digitando nella console knitr::spin(“nomefile.R”) si ottiene un file markdown pronto per essere inserito nel post.
# semplice addizione
1 + 1
## [1] 2
# una sequenza di numeri
a <- seq(1, 10, 2)
a
## [1] 1 3 5 7 9
# una tabella
tab <- matrix(c(7, 5, 14, 19, 3, 2, 17, 6, 12), ncol = 3, byrow = TRUE)
colnames(tab) <- c("colName1", "colName2", "colName3")
rownames(tab) <- c("rowName1", "rowName2", "rowName3")
tab <- as.table(tab)
knitr::kable(tab)
colName1 | colName2 | colName3 | |
---|---|---|---|
rowName1 | 7 | 5 | 14 |
rowName2 | 19 | 3 | 2 |
rowName3 | 17 | 6 | 12 |
Ma se vogliamo rendere meno confuso il post che stiamo editando possiamo usare uno shortcode
{{- (.Page.Resources.GetMatch (.Get 0)).Content | safeHTML -}}
da usare così, dopo averlo copiato in una posizione idonea.
{{<include-md “some.md”>}}
per ottenere lo stesso risultato di cui sopra sulla pagina web, ma con un file del post molto più pulito.
# semplice addizione
1 + 1
## [1] 2
# una sequenza di numeri
a <- seq(1, 10, 2)
a
## [1] 1 3 5 7 9
# una tabella
tab <- matrix(c(7, 5, 14, 19, 3, 2, 17, 6, 12), ncol = 3, byrow = TRUE)
colnames(tab) <- c("colName1", "colName2", "colName3")
rownames(tab) <- c("rowName1", "rowName2", "rowName3")
tab <- as.table(tab)
knitr::kable(tab)
colName1 | colName2 | colName3 | |
---|---|---|---|
rowName1 | 7 | 5 | 14 |
rowName2 | 19 | 3 | 2 |
rowName3 | 17 | 6 | 12 |
Ancora una diversa soluzione la trovate qui.
Credo che per ora il mulo abbia scritto abbastanza, ma lascio ancora qualcosa.
lascio ai lettori trovare come scrivere lo shortcode. La soluzione è annegata nel testo. ↩︎