CoAlTI, Hotel Premier Maceió, 28 Outubro 2017
pandoc
: conversor entre linguagens de marcaçãoUma linguagem de marcação é uma linguagem para formatar o texto e as imagens de uma página. Por exemplo, para formatar uma página visualizada pelo navegador, tal como o Firefox
,
HTML
e a sua sintaxe, por exemplo: "É <strong>Importante!<\strong>"
Markdown
compila a HTML
e usa uma sintaxe mais intuitiva, por exemplo: "É **Importante!**"
O resultado da formatação ⤳ “É Importante!”
pandoc
?pandoc
é um programa (de linha de comando) que converte um arquivo de uma linguagem de marcação a outra: De (entre outras)
markdown
, HTML
, LaTeX
, Microsoft Word docx
, reStructuredText
, textile
, OPML
, Emacs Org-Mode
, Txt2Tags
, DocBook
, EPUB
ou Haddock markup
a (entre outras)
XHTML
, HTML5
, e eslaides por Slidy
, reveal.js
, S5
…Microsoft Word docx
, LibreOffice
e OpenOffice ODT
, OpenDocument XML
PDF
via LaTeX
EPUB
version 2 or 3, FictionBook2
DocBook
, GNU TexInfo
, Groff man
LaTeX
, ConTeXt
, eslaides LaTeX Beamer
pandoc
para mim ?Converte arquivos do formato
markdown
ao formato
HTML5
Microsoft Word docx
, LibreOffice ODT
, OpenDocument XML
LaTeX Beamer
eslaidesPDF
via LaTeX
Pandoc
versus Programas Especializados: O bem.Código markdown
é texto de fácil leitura.
markdown
é mais simples do que a sintaxe (La)TeX
(O inventor de TeX
, Donald Knuth, espanta-se por quê demorou tanto para substituir LaTeX
por outra linguagem de marcação leve que se compila a TeX
).Markdown
é muito mais simples do que a sintaxe de LaTeX Beamer
.Markdown
que em Microsft Word
ou LibreOffice
,HTML
, como postagens de blog.Pandoc
versus Programas Especializados: O mal.pandoc
,
markdown
é tão reduzida quanto a base comum entre as linguagens de marcação.) pandoc
, tais como editores, é ainda incompleto: Por exemplo, comparando a TeX
:
TeX
à posição correspondente no arquivo pdf
compilado , e vice-versa. Não há para pandoc:
markdown
compila a TeX
e depois a pdf
.Vim
para markdown
é recente e básico em comparação àquele para LaTeX
que é estável e potente.markdown:
documentação = cola# Itens alistados enfatizados:
- *peso*
- *altura*
# Itens enumerados negritos:
1. **mãe**
0. **pai**
# Tabela
| | mãe | pai |
|--------|--------|--------|
| peso | 100 kg | 200 kg |
| altura | 1,20 m | 2,10 m |
mãe | pai | |
---|---|---|
peso | 100 kg | 200 kg |
altura | 1,20 m | 2,10 m |
pandoc:
Makefile e MainfilePandoc
General options:
--from=FORMAT
Specify input FORMAT such as markdown, rst, ..
--to=FORMAT
Specify output FORMAT such as html, LaTeX, ..
--output=FILE
Write output to FILE instead of stdout.
General writer options:
--standalone
Produce output with header and footer.
--table-of-contents
Include a generated table of contents in output.
--self-contained
Produce standalone HTML file without external dep.
O Makefile
serve para:
make pdf
gera o documento pdf
,make docx
gera o documento docx
,make html
gera o documento HTML
.make run_pdf
mostra o documento pdf
, e.g. em Zathura
,make run_docx
mostra o documento docx
, e.g. em LibreOffice
,make run_html
mostra o documento HTML
, e.g. em Firefox
.NAME=palestra
FILES=$(NAME).pandoc intro.md conteudo.md resumo.md
PANDOC_OPTIONS=--stand-alone --filter pandoc-citeproc
PANDOC_LATEX_OPTIONS=--include-in-header header.tex
all: latex pdf
latex: $(FILES)
pandoc $(PANDOC_OPTIONS) $(PANDOC_LATEX_OPTIONS) \
--from markdown --to latex \
$(NAME).pandoc $(FILES) --output $(NAME).tex
pdf: latex
latexrun $(NAME).tex
run: run_pdf
run_pdf: pdf
$(PDFVIEWER) $(NAME).pdf >/dev/null 2>&1 &
O main file, o arquivo principal, estabelece
Além disso,
lang
que controla por exemplo o nome do résumo e das referências, evarias opções de TeX
, tal como:
% Pandoc é bem massa!
% [Enno Nagel](mailto:epn@fsfe.org)
% CoAlTI, Hotel Premier Maceió, 28 Outubro 2017
---
lang: pt
# latex:
documentclass: scrartcl
classoption: final,DIV=calc,bibliography=totoc
fontsize: 12pt
bibliography: pandoc.bib
...
Para o editor Vim compilar após guardar o arquivo, acrescente ao arquivo ~/.vim/after/ftplugin/markdown.vim
a linha:
autocmd BufWrite <buffer> silent make!
Por exemplo, se o output é
pdf
(via TeX), então o amostrador zathura
automaticamente recarrega o arquivo modificado,html
, então a extensão autoreload
do navegador Firefox
automaticamente recarrega o arquivo modificado.Estão disponíveis
em https://konfekt.bitbucket.io/talks/pandoc
,
e
Makefile
eno repositório https://www.bitbucket.org/konfekt/talks/pandoc