Extensões¶
Diversos projetos necessitam funcionalidades especiais em sua documentação, O Sphinx permite adicionar “extensões” ao processo de construção da documentação e cada qual pode modificar aspectos individualizados no processamento.
Este capítulo descreve as extensões incluídas no Sphinx. Para a documentação da API sobre como escrever sua própria extensão, consulte o API do Sphinx.
Extensões embutidas¶
Essas extensões são construidas e pode ser ativadas através das respectivas entradas e valores na configuração extensions :
sphinx.ext.apidoc– Generate API documentation from Python packagessphinx.ext.autodoc- Inclui documentação das docstringssphinx.ext.autosectionlabel– Permite referenciar seções por seu títulosphinx.ext.autosummary– Gera resumos autodocsphinx.ext.coverage– Coleta estatísticas de cobertura da documentaçãosphinx.ext.doctest– Trechos de teste na documentaçãosphinx.ext.duration– Mede durações de processamento do Sphinxsphinx.ext.extlinks– Marcação para encurtar links externossphinx.ext.githubpages– Publicar docs HTML em páginas GitHubsphinx.ext.graphviz– Adiciona gráficos Graphvizsphinx.ext.ifconfig– Inclui conteúdo baseado em configuraçãosphinx.ext.imgconverter– Um conversor de imagem de referência usando o Imagemagicksphinx.ext.inheritance_diagram– Inclui diagramas de herançasphinx.ext.intersphinx– Link para documentação outros projetossphinx.ext.linkcode- Adiciona links externos ao código-fonte- Suporte matemático para saídas HTML no Sphinx
sphinx.ext.napoleon– Suporte para doctrings de estilo NumPy e Googlesphinx.ext.todo– Suporta itens todosphinx.ext.viewcode– Adiciona links ao código destacado
Extensões de terceiros¶
Você pode encontrar várias extensões fornecidas por usuários na organização sphinx-contrib. Se você deseja incluir sua extensão nesta organização, simplesmente siga as instruções fornecidas no projeto github-administration. Isso é opcional e existem várias extensões hospedadas em outro lugar. Os projetos awesome-sphinxdoc e sphinx-extensions contêm lista com curadoria de pacotes Sphinx, e muitos pacotes usam os classificadores Framework :: Sphinx :: Extension e Framework :: Sphinx :: Theme para extensões e temas Sphinx, respectivamente.
Onde colocar suas próprias extensões?¶
Extensões locais para um projeto devem ser colocadas dentro da estrutura de diretório do projeto. Defina o path de pesquisa do módulo do Python, sys.path, de forma que o Sphinx possa localizá-los. Por exemplo, se sua extensão foo.py estiver no subdiretório exts da raiz do projeto, coloque em conf.py:
import sys
from pathlib import Path
sys.path.append(str(Path('exts').resolve()))
extensions = ['foo']
Também pode instalar extensões em qualquer outro lugar do sys.path, ex.. diretórios site-packages.