sphinx.ext.linkcode
- Adiciona links externos ao código-fonte¶
Autor do módulo: Pauli Virtanen
Adicionado na versão 1.2.
Essa extensão examina as descrições de objetos (.. class::
, .. function::
etc.) e adiciona links externos ao código hospedado em algum lugar da web. A intenção é semelhante à extensão sphinx.ext.viewcode
, mas assume que o código-fonte pode ser encontrado em algum lugar na Internet.
Em sua configuração, você precisa especificar uma função linkcode_resolve
que retorna uma URL baseada no objeto.
Configuração¶
- linkcode_resolve¶
- Type:
Callable[[str, dict[str, str]], str | None] | None
- Default:
None
Esta é uma função
linkcode_resolve(domain, info)
, que deve retornar a URL para o código-fonte correspondente ao objeto em determinado domínio com informações dadas.A função deve retornar
None
se nenhum link for adicionado.O argumento
domain
especifica o domínio da linguagem em que o objeto está.info
é um dicionário com as seguintes chaves garantidas para estarem presentes (dependendo do domínio):py
:module
(nome do módulo),fullname
(nome do objeto)c
:names
(lista de nomes para o objeto)cpp
:names
(lista de nomes para o objeto)javascript
:object
(nome do objeto),fullname
(nome do item)
Exemplo:
def linkcode_resolve(domain, info): if domain != 'py': return None if not info['module']: return None filename = info['module'].replace('.', '/') return "https://somesite/sourcerepo/%s.py" % filename
Third-party domains¶
Support for other domains can be added by extensions with
add_linkcode_domain()
.
For example, a Sphinx extension that provides a php
domain
could use the following code to support linkcode
:
from sphinx.ext.linkcode import add_linkcode_domain
def setup(app):
add_linkcode_domain('php', ['namespace', 'class', 'fullname'])