Ferramentas e documentação técnica de classe mundial construída com MyST Markdown.
O Caderno Parahyba é um projeto de documentação moderna que utiliza MyST Markdown para criar livros e documentação técnica interativa. O projeto demonstra as capacidades completas do MyST, incluindo:
- 📚 Documentação Organizada: Livros estruturados semanticamente em
books/ - 🔬 Conteúdo Científico: Equações matemáticas, citações, referências cruzadas e figuras
- 🎨 Componentes Visuais: Cards, grids, tabs, diagramas Mermaid e layouts responsivos
- 🚀 Notebooks Interativos: Integração completa com Jupyter, execução in-page (Thebe/Pyodide)
- 📤 Exportação Flexível: HTML estático, JATS XML
- ⚡ Gestão Moderna:
uvpara gerenciamento rápido de dependências Python - 🛠️ CLI Integrada: Ferramenta de linha de comando para build, dev server e qualidade de código
caderno/
├── .github/
│ └── instructions/ # Instruções para AI agents
│ ├── uv.instructions.md # Uso do UV
│ └── ___.instructions.md # Regras gerais
├── books/ # Diretório raiz do MyST
│ ├── myst.yml # Configuração do projeto MyST
│ ├── index.md # Landing page principal
│ └── guia-myst/ # Guia MyST Moderno
│ ├── index.md # Introdução do guia
│ ├── 01-fundamentos.md # Sintaxe básica
│ ├── 02-notebooks-intro.ipynb
│ ├── 03-notebooks-build.ipynb
│ ├── 03-notebooks-client.ipynb
│ ├── 04-visualizacao.md # Gráficos e diagramas
│ ├── 05-componentes-ui.md # Cards, grids, tabs
│ ├── 06-cientifico.md # Teoremas, provas
│ ├── 07-referencias.md # Bibliografia
│ ├── 08-plugins.md # Extensões
│ ├── qrcode.mjs # Plugin JS customizado
│ └── references.bib # BibTeX
├── _build/ # Diretório de build (auto-gerado)
├── cli.py # CLI customizada (Typer)
├── pyproject.toml # Dependências Python (uv)
└── README.md # Este arquivo
- Python 3.12+: Download
- uv: Gerenciador de pacotes Python rápido
# Windows pip install uv # Ou com pipx pipx install uv
# Clonar repositório
git clone <repository-url>
cd caderno
# Instalar todas as dependências (prod + dev)
uv sync# Iniciar servidor de desenvolvimento (hot-reload)
uv run python cli.py start
# Build completo
uv run python cli.py build
# Build HTML estático
uv run python cli.py build --html
# Build com execução de notebooks
uv run python cli.py build --execute
# Verificar qualidade do código
uv run python cli.py check
# Formatar código
uv run python cli.py format
# Limpar builds
uv run python cli.py clean
# Ver informações do ambiente
uv run python cli.py info# Entrar no diretório books
cd books
# Iniciar servidor
uv run myst start
# Build
uv run myst build --htmlAcesse:
- Site principal: http://localhost:3000
- Guia MyST: http://localhost:3000/guia-myst
O servidor suporta hot-reload - edições são refletidas automaticamente no navegador.
Página inicial moderna com cards, grids e navegação para os livros do projeto.
Um guia completo e prático sobre MyST Markdown:
- 01-fundamentos.md - Diretivas, matemática, código, admonições
- 02-notebooks-intro.ipynb - Introdução a notebooks executáveis
- 03-notebooks-build.ipynb - Notebooks com build-time execution
- 03-notebooks-client.ipynb - Notebooks com client-side execution (Thebe)
- 04-visualizacao.md - Matplotlib, Plotly, Altair, Mermaid
- 05-componentes-ui.md - Cards, grids, tabs, dropdowns
- 06-cientifico.md - Teoremas, provas, algoritmos
- 07-referencias.md - Bibliografia e citações (BibTeX)
- 08-plugins.md - JavaScript plugins, executable plugins
Recursos incluídos:
- Plugin JavaScript customizado (
qrcode.mjs) - Bibliografia gerenciada (
references.bib) - Exemplos de visualização com múltiplas bibliotecas
- Demonstrações de componentes UI modernos
| Ferramenta | Versão | Propósito |
|---|---|---|
| MyST Markdown | ≥1.6.6 | Sistema de autoria científica extensível |
| Python | ≥3.12 | Ambiente de execução |
| uv | Latest | Gerenciador de pacotes Python ultra-rápido |
| Jupyter | ≥1.0.0 | Notebooks interativos |
| Ruff | ≥0.14.6 | Linter e formatter Python |
| Pyrefly | ≥0.42.2 | Type checker Python |
| Typer | ≥0.20.0 | Framework para CLI |
| Rich | ≥14.2.0 | Output colorido no terminal |
- Matplotlib ≥3.8.0 - Gráficos científicos clássicos
- Plotly ≥5.18.0 - Gráficos interativos
- Altair ≥5.0.0 - Gramática de gráficos declarativa
- NumPy ≥1.26.0 - Computação numérica
- Pandas ≥2.2.0 - Análise de dados
- SciPy ≥1.12.0 - Computação científica
# Desenvolvimento
uv run python cli.py start # Servidor com hot-reload
uv run python cli.py build # Build padrão
uv run python cli.py build --html # Build HTML estático
uv run python cli.py build --execute # Build com execução de notebooks
uv run python cli.py clean # Limpar builds
# Qualidade de Código
uv run python cli.py check # Verificar com Ruff + Pyrefly
uv run python cli.py check --fix # Verificar e corrigir
uv run python cli.py format # Formatar código
uv run python cli.py format --check # Apenas verificar formatação
# Informações
uv run python cli.py info # Versões do ambiente
uv run python cli.py --help # Ajuda completacd books # Entrar no diretório MyST
# Desenvolvimento
uv run myst start # Servidor com hot-reload
uv run myst build --html # Build HTML
uv run myst build --all # Build todos exports
uv run myst clean # Limpar builds
# Validação
uv run myst build --check-links # Verificar links quebrados
uv run myst build --strict # Build com erro em warnings# Instalação
uv sync # Instalar todas dependências
uv sync --group dev # Instalar apenas dev
uv sync --no-dev # Instalar apenas produção
# Atualização
uv sync --upgrade # Atualizar todas
uv add mystmd --upgrade # Atualizar MyST
uv add numpy --upgrade # Atualizar pacote específico
# Adição de pacotes
uv add matplotlib # Adicionar produção
uv add --group dev pytest # Adicionar dev-
Criar estrutura do livro:
mkdir books/meu-livro cd books/meu-livro
-
Criar
index.md:--- title: Meu Livro --- # Conteúdo do Livro
-
Adicionar ao
books/myst.yml:project: toc: - file: index.md - file: meu-livro/index.md title: "Meu Livro" children: - file: meu-livro/capitulo1.md
No frontmatter de qualquer documento ou no books/myst.yml:
project:
exports:
- format: html
output: exports/documento.html
- format: jats
output: exports/documento.jats.xmlNo books/myst.yml:
site:
template: book-theme # ou article-theme
options:
logo: ./logo.png
logo_text: "Meu Projeto"
hide_toc: false
hide_outline: false# Limpar builds e cache
uv run python cli.py clean
# Verificar se a porta 3000 está livre
# Se estiver em uso, o MyST usará outra porta automaticamente- Use paths relativos:
./capitulo.md - Ou use cross-references com labels:
[texto](#label) - Verifique com:
cd books; uv run myst build --check-links
# Limpar cache completo
cd books
uv run myst clean --all
# Build incremental sem execução
uv run python cli.py build --html# Verificar kernel instalado
uv run jupyter kernelspec list
# Instalar/reinstalar kernel
uv sync
# Executar notebooks explicitamente
uv run python cli.py build --execute# Verificar ambiente
uv run python cli.py info
# Reinstalar dependências
uv sync --reinstall- Verifique o path em
myst.yml:plugins: ["./plugin.mjs"] - Plugin deve exportar:
export const plugin = { name: "...", ... } - Console do navegador mostra erros de plugins
┌─────────────────┐
│ Markdown (.md) │
│ Notebooks (.ipynb) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ MyST Parser │ ← books/myst.yml (config)
└────────┬────────┘
│
▼
┌─────────────────┐
│ AST + Plugins │ ← qrcode.mjs (custom plugin)
└────────┬────────┘
│
▼
┌─────────────────┐
│ Render Engine │
└────────┬────────┘
│
├─→ HTML (books/_build/html/)
├─→ JATS XML
└─→ PDF (via LaTeX)
books/- Raiz do projeto MyST (executar comandos aqui)books/_build/- Output compilado (não versionar)books/guia-myst/- Conteúdo do guia.github/instructions/- Regras para AI agentscli.py- CLI customizada com Typer
- Global:
books/myst.yml- Configuração do projeto inteiro - Frontmatter: Metadados por documento (YAML no topo do arquivo)
- CLI: Flags de build e execução
- MyST Guide: https://mystmd.org/guide
- MyST Sandbox: https://mystmd.org/sandbox (teste online)
- uv Docs: https://docs.astral.sh/uv/
- Jupyter Book: https://jupyterbook.org/
- MyST Templates: https://github.com/myst-templates
- Made with MyST: https://mystmd.org/made-with-myst
- Executable Books Gallery: https://executablebooks.org/en/latest/gallery/
- Discord MyST: https://discord.mystmd.org
- GitHub Discussions: https://github.com/jupyter-book/mystmd/discussions
Contribuições são bem-vindas! Para contribuir:
- Fork o projeto
- Crie uma branch:
git checkout -b feature/nova-feature - Commit suas mudanças:
git commit -am 'Adiciona nova feature' - Push para a branch:
git push origin feature/nova-feature - Abra um Pull Request
- Siga as instruções em
.github/instructions/ - Use
uv run python cli.py checkantes de commitar - Formate código com
uv run python cli.py format - Teste localmente com
uv run python cli.py start
- Conteúdo: CC-BY-4.0
- Código: MIT
- MyST Guide: https://mystmd.org/guide
- uv Docs: https://docs.astral.sh/uv/
- MyST Sandbox: https://mystmd.org/sandbox
- Thebe Docs: https://thebe.readthedocs.io/
Criado com ❤️ usando MyST Markdown | Documentação | GitHub