Esse material foi desenvolvido utilizando a ferramenta de geração de página estáticas MkDocs. Essa ferramenta utiliza arquivos fonte no formato Markdown (.md), mas existem extensões que possibilitam ler o formato Jupyter Notebook (.ipynb). A configuração dos plugins, páginas, menus entre outros é feita através de um arquivo YAML.
O Python e PIP já vem instalado em algumas distribuições Linux, então antes de proseguir, verifique se já possui no seu sistema.
$ python --version
Python 3.8.2$ pip --version
pip 20.0.2 from /usr/local/lib/python3.8/site-packages/pip (python 3.8)Observação: Como dito na própria documentação, o MkDocs tem suporte para as seguintes versões do Python: 3.5, 3.6, 3.7, 3.8 e PyPy3.
Para instalar em distribuições derivadas do debian, utilize o comando abaixo
sudo apt update
sudo apt install -y python3 python3-pipCaso você possua um sistema operacional diferente, os links abaixo possuem tutoriais para a maior parte dos sistemas operacionais.
- Python [Clique aqui]
- Pip [Clique aqui]
Vale ressaltar que em alguns sistemas operacionais é possível instalar o MkDocs diretamente pelo package manager. Nesse tutorial vamos utilizar o pip.
pip install mkdocsA seguir, verifique se o pacote foi instalado corretamente.
$ mkdocs --version
mkdocs, version 0.15.3Clone e entre no repositório do projeto.
git clone https://github.com/arma29/online-book.git
cd online-bookInstale as dependências do projeto.
pip install -r requirements.txtO MkDocs vem com um ambiente de desenvolvimento embutido, que permite visualizar a documentação a medida que você vai trabalhando nela. Inicie o servidor executando o comando abaixo.
mkdocs serveAgora, basta abrir a url http://127.0.0.1:8000 em seu browser.
A estrutura de menus pode ser configurada a partir do arquivo mkdocs.yml.
site_name: Online Book
nav:
- Home: index.md
- Notebook: notebooks/hello-world.ipynb
- Binder: https://mybinder.org/v2/gh/binder-examples/demo-julia/master?filepath=demo.ipynb
- Aulas:
- Selenium: aula.md
- Randoop: aula.md
...Com a configuração acima, nós temos 4 itens no top level: Home, Notebook, Binder e Aulas. Home é um link para a homepage do site. Sob a seção Aulas, duas páginas são listadas.
Observação: Os arquivos são lidos a partir do diretório docs na raiz do projeto, ou seja, para o arquivo docs/index.md basta especificar index.md.
O MkDocs aceita os formatos Markdown (.md) e Jupyter Notebook (.ipynb). Os arquivos de descrição estão dispostos no diretório docs/ e os notebooks dentro do subdiretório docs/notebooks. Com o uso de Markdown é possível adicionar videos, twetts, postagens do Medium, entre outros conteúdos.
Para realizar o deploy para o GitHub, basta executar o comando abaixo.
mkdocs gh-deploySe tudo der certo, a saída deve ser similar a essa.
$ mkdocs gh-deploy
INFO - Cleaning site directory
INFO - Building documentation to directory: /home/fmelo/Projects/university/online-book/site
INFO - Documentation built in 0.43 seconds
INFO - Copying '/home/fmelo/Projects/university/online-book/site' to 'gh-pages' branch and pushing to GitHub.
INFO - Your documentation should shortly be available at: https://arma29.github.io/online-book/ Por trás dos panos, o conteúdo estático do site é gerado para o diretório site/, em seguida é criada uma branch chamada gh-pages, contendo o diretório recém criado. Basta acessar o site https://arma29.github.io/online-book/.

