Documentos dinâmicos

Markdown & Pandoc

Prof. Walmes Zeviani

2018-04-03

Objetivo e justificativa

Justificativa

Objetivos

Markdown

O que é Markdown?

Markdown is a text-to-HTML conversion tool for web writers. Markdown allows you to write using an easy-to-read, easy-to-write plain text format, then convert it to structurally valid XHTML (or HTML).

– John Gruber

O que é Markdown?

Informação Markdown
Autor John Gruber
Criado em Março de 2004
Extensão .md, .markdown
Compilador em Haskell (Pandoc)
Licensa GPL
Website daringfireball.net

Sintaxe do Markdown

Guias compactos

A sintaxe do Markdown é muito simples. Ela está resumida em vários tutoriais na internet. A lista abaixo contém alguns.

  1. Markdown Syntax Cheat Sheet;
  2. MARKDOWN for HTML;
  3. Markdown Syntax and GitHub Flavored Markdown;
  4. Markdown essential;
  5. Markdown Cheat Sheet;
  6. Markdown Quick Reference;
  7. Markdown Syntax Cheatsheet;
  8. Markdown Cheatsheet;
  9. markdown Cheat Sheet Sample;

As principais marcações

Cabeçalhos

# Título
## Sub-título
### Sub-sub-título

Itálico

*Este texto aparecerá em itálico.*

Este texto aparecerá em itálico.

Negrito

**Este texto aparecerá em negrito.**

Este texto aparecerá em negrito.

Sobrescrito e subescrito

A gravidade na Terra é aproximadamente 10 m s^-1^.  A fórmula da glicose
é C~6~H~12~O~6~.

A gravidade na Terra é aproximadamente 10 m s-1. A fórmula da glicose é C6H12O6.

Listas não-ordenadas

- Primeiro item
- Segundo item
- Terceiro item

Listas ordenadas

1. Primeiro item
2. Segundo item
3. Terceiro item
  1. Primeiro item
  2. Segundo item
  3. Terceiro item

Sub-listas

Utilize 4 espaços para criar uma sub-lista:

1. Primeiro item
    - Um sub-item
    - Outro sub-item
2. Segundo item
3. Terceiro item
  1. Primeiro item
    • Um sub-item
    • Outro sub-item
  2. Segundo item
  3. Terceiro item

Listas de definição

R
: R is a language and environment for statistical computing and
  graphics.

Python
: Python is an interpreted high-level programming language for
  general-purpose programming.
R
R is a language and environment for statistical computing and graphics.
Python
Python is an interpreted high-level programming language for general-purpose programming.

Links para endereços Web podem ser inseridos com [texto](link).

O criador do conceito de "literate programming" foi
[Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth).

O criador do conceito de “literate programming” foi Donald Knuth.

Devemos instalar o pacote [knitr](http://yihui.name/knitr) para poder
usar o R Markdown.

Devemos instalar o pacote knitr para poder usar o R Markdown.

Nota de rodapé

Notas de rodapé são feitas com a marcação tópico[^1]. E no final do documento incluí-se a explicação correspondente.

Os dados foram submetidos ao ajuste do modelo linear e o efeito dos
tratamentos foi avaliado utilizando o teste F do quadro de ANOVA[^1].

...

[^1]: ANOVA é a abreviação de *analysis of variance* ou análise de
  variância.

Os dados foram submetidos ao ajuste do modelo linear e o efeito dos tratamentos foi avaliado utilizando o teste F do quadro de ANOVA1.

Imagens

Para inserir uma imagem, a sintaxe é a mesma de inserir um link, mas com uma exclamação (!) na frente: ![texto](imagem).

O link para a imagem pode ser um enderço Web.

![Logo do R](http://developer.r-project.org/Logo/Rlogo-5.png)

![Logo do Markdown](img/markdown.png)
Logo do R

Logo do R

Parágrafo

Para criar parágrafos basta pular uma linha.

O criador do conceito de "literate programming" foi
[Donald Knuth](https://en.wikipedia.org/wiki/Donald_Knuth).

Devemos instalar o pacote [knitr](http://yihui.name/knitr) para poder
usar o R Markdown.

O criador do conceito de “literate programming” foi Donald Knuth.

Devemos instalar o pacote knitr para poder usar o R Markdown.

Códigos

Para apresentar códigos na própria linha, colocamos o texto entre duas crases (`).

Para gerar números aleatórios de uma distribuição normal no R, use a
função `rnorm()`.

Para gerar números aleatórios de uma distribuição normal no R, use a função rnorm().

Para apresentar blocos de código, coloque o texto entre três crases seguidas (```) no início e no final. O bloco

```
x <- rnorm(n = 10, mean = 100, sd = 5)
hist(x, main = "")
```

irá gerar

x <- rnorm(n = 10, mean = 100, sd = 5)
hist(x, main = "")

Note que esse código não será interpretado, ele apenas será mostrado no texto. Esse será o papel do R aqui mais adiante.

Tabelas

Tabelas podem ser escritas da seguinte forma:

| Caracter | Significado | Permissão    |
|---------:|:-----------:|:-------------|
| `r`      | *r*ead      | de leitura   |
| `w`      | *w*rite     | de escrita   |
| `x`      | e*x*excute  | de execução  |
| `-`      |             | desabilitada |

Para gerar o seguinte resultado:

Caracter Significado Permissão
r read de leitura
w write de escrita
x exexcute de execução
- desabilitada

Equações

Equações matemáticas podem ser escritas em formato LaTeX. A página HTML resultante irá renderizar as equações através do MathJax.

Equações na própria linha podem ser inseridas entre $.

Um modelo de regressão linear simples:  $Y = \beta_0 + \beta_1 x + \epsilon$.

Um modelo de regressão linear simples: \(Y = \beta_0 + \beta_1 x + \epsilon\).

Equações podem ser exibidas entre $$ para ficarem centralizadas em uma linha própria.

$$
  f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}}
    e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 }
$$

\[ f(x;\mu,\sigma^2) = \frac{1}{\sigma\sqrt{2\pi}} e^{ -\frac{1}{2}\left(\frac{x-\mu}{\sigma}\right)^2 } \]

Citações

> A imaginação é mais importante que a ciência, porque a ciência é
> limitada, ao passo que a imaginação abrange o mundo inteiro.
>
> -- Albert Einstein

A imaginação é mais importante que a ciência, porque a ciência é limitada, ao passo que a imaginação abrange o mundo inteiro.

– Albert Einstein

Edição de Markdown

Escrevendo um documento em Markdown

Um documento Markdown possui a extensão .md (embora não seja a única possível).

Para converter um documento Markdown em HTML (ou outro formato) é necessário um conversor. O conversor padrão do Markdown é escrito em Perl, e pode ser integrado em diversas ferramentas, mas não é apropriado para usuários comuns. Para testar a conversão do documento, copie e cole na página do Dingus.

Pandoc

O Pandoc é um conversor extremamente versátil, capaz de converter diversos formatos, incluindo Markdown para HTML.

Se o Pandoc estiver instalado no seu sistema (Unix) é possível converter o documento na linha de comando (shell) com

pandoc -f markdown -t html arquivo.md -o arquivo.html

O pacote knitr possui a função pandoc() que é um wrapper para executar o programa pandoc no sistema.

pandoc(input = "arquivo.md", format = "html")

Em ambos os casos, o resultado pode ser visualizado ao abrir o arquivo arquivo.html no navegador.

Próxima aula


  1. ANOVA é a abreviação de analysis of variance ou análise de variância.