epkg#
Location: epkg_role
.
In conf.py:
extensions = [ ...
'sphinx_runpython.epkg.sphinx_epkg_extension']
epkg_dictionary = {
'pandoc': 'http://johnmacfarlane.net/pandoc/', # 1
'pandas': ('http://pandas.pydata.org/pandas-docs/stable/', # 2
('http://pandas.pydata.org/pandas-docs/stable/generated/pandas.{0}.html', 1)), # 3
}
The variable epkg_dictionary
stores the list of url to display. It can be a simple
string or a list of possibililies with multiple parameters. The three options above can
used like this. The last one allows one parameter separated by :
.
Option 1: pandoc
Option 2: pandas,
Option 3: pandas.DataFrame
The last link is broken before the current file is not python file but a rst. The file extension must be specified. For some websites, url and functions do not follow the same rule. A function must be used in this case to handle the mapping.
def weird_mapping(input):
# The function receives whatever is between `...`.
...
return anchor, url
This function must be placed at the end or be the only available option.
epkg_dictionary = { 'weird_site': weird_mapping }
However, because it is impossible to use a function as a value
in the configuration because pickle does not handle
this scenario (see PicklingError on environment when config option
value is a callable),
my_custom_links
needs to be replaced by:
("module_where_it_is_defined.my_custom_links", None)
.
The role epkg will import it based on its name.