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 @@ + + +
+ + + +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.