From 622936c951fea3d64a0a1b269e00369eac52beda Mon Sep 17 00:00:00 2001 From: jultty Date: Fri, 23 Feb 2024 21:22:53 -0300 Subject: [PATCH] Add generated HTML to version control --- .gitignore | 1 - posts/html/.gitattributes | 1 + posts/html/scripts-em-ocaml.md.html | 123 ++++++++++++++++++++++++++++ 3 files changed, 124 insertions(+), 1 deletion(-) create mode 100644 posts/html/.gitattributes create mode 100644 posts/html/scripts-em-ocaml.md.html diff --git a/.gitignore b/.gitignore index 8c74b0d..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -posts/html/* diff --git a/posts/html/.gitattributes b/posts/html/.gitattributes new file mode 100644 index 0000000..7d60752 --- /dev/null +++ b/posts/html/.gitattributes @@ -0,0 +1 @@ +*.html linguist-generated diff --git a/posts/html/scripts-em-ocaml.md.html b/posts/html/scripts-em-ocaml.md.html new file mode 100644 index 0000000..08f6aaa --- /dev/null +++ b/posts/html/scripts-em-ocaml.md.html @@ -0,0 +1,123 @@ + + + + + + + basename + + + + +

Scripts em OCaml

+

Este blog gera suas postagens com o Pandoc, mas quem faz o trabalho +lógico de identificar os arquivos e montar os comandos é um pequeno +script em OCaml.

+

Descobri essa linguagem quando comecei a investigar como poderia +substituir o Bash como uma linguagem para scripts. Eu acho que o Bash é +excelente para cumprir essa função, apesar de bastante inseguro e +propenso a erros. O que me incomodava mesmo era ver que todo aquele +tempo escrevendo scripts com Bash poderia ser tempo aprendendo uma +linguagem cujo conhecimento se transferisse para muitas outras +aplicações.

+

O script consiste nestas nove linhas apenas:

+
let pandoc_params = "--css ../../assets/style.css -s --to html5 --metadata pagetitle='basename' "
+
+let vert md = begin
+  if md <> "gen.ml" && md <> "html" then
+    ignore( Sys.command ("pandoc " ^ pandoc_params ^ md ^ " -o html/" ^ md ^ ".html ") )
+end ;;
+
+let contents = Array.to_list (Sys.readdir ".") in
+List.map vert contents ;;
+

Primeiro, armazeno em pandoc_params os parâmetros comuns +que serão passados ao Pandoc para gerar os arquivos HTML a partir dos +arquivos em Markdown.

+

Em seguida, defino a função vert, que, caso o arquivo +não se chame “gen.ml” (o próprio script) nem “html” (o diretório onde os +arquivos gerados ficam), o comando do Pandoc é chamado com os nomes dos +arquivos de entrada e saída.

+

Essa função então é aplicada com List.map vert contents +a cada arquivo do diretório atual.

+

Referências

+ + +