Criando documentações incríveis⚓︎
Eu não sei você, mas eu gosto bastante da ideia de criar documentos compartilhados. Já tentei utilizar várias ferramentas, como as oferecidas no pacote Office e nunca me senti completamente satisfeito com o resultado. Sempre pensei que a criação e o compartilhamento de informações deveriam ocorrer de maneira simplificada, mas somente após conhecer a filosofia Docs as Code entendi como1. Mas vamos direto para o mão na massa para deixar a coisa mais interessante.
Pré-requisitos⚓︎
- Como pré-requisitos temos:
- Conta no GitHub.
- Editor de texto (atualmente uso o VsCode).
- Git.
- Python.
101 Comandos⚓︎
Os comandos demonstrados abaixo não são necessários caso você opte por utilizar ferramentas de interface gráfica, como o VsCode online disponível no GitHub2.
- Terminal:
$ pwd # Mostra o diretório atual.
$ ls # Lista arquivos e pastas do diretório atual.
$ cd # Muda de diretorio. cd .. volta um diretório e cd pasta entra em alguma pasta.
$ mkdir # Cria uma pasta.
$ touch # Cria um arquivo.
$ cat # Visualiza conteúdo de um arquivo.
$ rm # Remove um arquivo. rm -rf remove uma pasta.
- Git:
$ init # Inicia trabalho git.
$ status # Informa se algo foi modificado.
$ log # Mostra commits realizados.
$ add # Adiciona um arquivo para ser commitado (salvo).
$ commit # Salva o arquivo adicionado (versionamento).
$ checkout # Muda a branch.
$ clone # Copia um repositório do GitHub localmente.
$ pull # Atualiza repositório local com informações GitHub.
$ push # Atualizada repositório GitHub com informações locais.
Markdown⚓︎
- Comandos gerais3:
- Cabeçalho:
#
(Vai de 1 a 6). - Negrito:
**
. - Itálico:
*
. - Citação:
>
. - Lista ordenada:
1. Primeiro
. - Lista não ordenada:
- Item
. - Código em linha:
` `
. - Links:
[]()
. - Imagens:
![]()
(imgur).
- Cabeçalho:
Markdown extendido:
- Tabelas: Table Generator
- Lista de Tarefas:
- [ ] Tarefa 1
(Funciona comentário GitHub). - Bloco de Código:
``` ```
- Emoji:
- Tachado:
~~tachado~~
- Realçado:
==realçado==
- Mermaid.
Site estático⚓︎
Misturando Markdown com ferramentas de geração de site estático conseguimos criar documentações incríveis. A ferramentas de geração de site estático que vou demonstrar é o Mkdocs, em conjunto com seu tema mais famoso material.
Os comandos mkdocs
são:
$ mkdocs new . # Para iniciar um projeto.
$ mkdocs build # Conversão md para html (prefiro comando serve).
$ mkdocs serve # Iniciar um servidor.
$ mkdocs gh-deploy # Fazer deploy.
$ mkdocs --help # Para pedir ajuda.
Para criarmos nosso primeiro site estático basta:
$ mkdir meu-primeiro-site-estatico
$ cd meu-primeiro-site-estatico
$ touch .gitignore # https://www.toptal.com/developers/gitignore/
$ touch requirements.txt # mkdocs on pypi
$ python -m venv venv # python3 -m venv venv no Linux
$ source venv/Scripts/activate # source venv/bin/activate
$ pip install -r requirements.txt
$ mkdocs new . # docs/ e mkdocs.yml
$ mkdocs serve # Testa mudanças ao vivo
# Inclua markdown no arquivo docs/index.md
# Incluindo Git
$ git init
$ git branch -M main # Pode ser configurado
$ git add .
$ git commit -m "Commit Inicial"
Customizações⚓︎
Conseguimos customizar o site com:
# Extensões para Markdown
$ pip install pymdown-extensions
# mkdocs.yml
markdown_extensions:
- pymdownx.tasklist
- pymdownx.emoji
- pymdownx.mark # Realçado
- pymdownx.tilde # Tachado
- pymdownx.highlight # Códigos
# Mermaid - não precisa instalar nada via pip
# mkdocs.yml
markdown_extensions:
- pymdownx.superfences:
custom_fences:
- name: mermaid
class: mermaid
format: !!python/name:pymdownx.superfences.fence_div_format
extra_css:
- https://unpkg.com/mermaid@10.4.0/dist/mermaid.css
extra_javascript:
- https://unpkg.com/mermaid@10.4.0/dist/mermaid.min.js
# Tema material
$ pip install mkdocs-material
# mkdocs.yml
theme:
name: material
palette:
- scheme: default
toggle:
icon: material/weather-night
name: Modo noturno
- scheme: slate
toggle:
icon: material/weather-sunny
name: Modo claro
Publicação⚓︎
Basta criar um repositório no GitHub e:
# Criar repositório GitHub
git remote add origin <repo-path>.git # camg utilizar https
git add .
git commit -m "Finaliza primeira versão"
git push origin main
mkdocs gh-deploy # Verifica página publicada.
Pronto. Agora para deixar seu documento bonito basta seguir a documentação material. Compartilhe seu trabalho com o maior número de colegas e porque não convidar todo mundo para colaborar3.
-
Alguns exemplos de documentações feitas utilizando todas as ferramentas demonstradas no texto são este Handbook e estas apresentações ↩
-
Para ter acesso basta apertar o ponto (
.
) na página inicial de qualquer repositóiro GitHub. ↩ -
Consulte também esta apresentação! ↩↩