[Python-de] intershinx links
Markus Zapke-Gründemann
markuszapke at gmx.net
Mo Mär 19 00:46:32 CET 2012
Hallo Thomas.
Thomas Guettler schrieb:
> ich möchte mit intersphinx Links zu Django's Middleware Doku verlinken.
>
> In der Django Sphinx Dateien wird das verwendet:
> (see :doc:`/topics/http/middleware`)
>
> Aber bei mir geht das leider nicht, habe alles mögliche ausprobiert.
>
> Der Link zum Modul funktioniert:
>
> :mod:`Middleware <django.middleware>`:
>
> Wie kann man zu /topics/http/middleware verweisen?
>
> Gruß,
> Thomas
>
> PS: Ein ganz großes Lob an Georg Brandl für Sphinx!
>
> # Teil aus conf.py
> extensions = ["sphinx.ext.intersphinx"]
> intersphinx_mapping = {
> 'python': ('http://docs.python.org/2.7', None),
> 'sphinx': ('http://sphinx.pocoo.org/', None),
> 'django': ('http://django.readthedocs.org/en/latest/', None),
> }
Das gesuchte Keyword muss in der Datei objects.inv enthalten sein. Um
herauszubekommen, ob dein Keyword existiert durchsuchst du am besten die Datei
objects.inv. Diese ist mit Hilfe von zlib komprimiert. Mit folgendem Code
kannst du sie aus gegeben:
import sys
import zlib
lines = ''
for line in open(sys.argv[1]):
if line.startswith('#'):
continue
lines += line
print zlib.decompress(lines)
Wenn du den Code nach print_objects.py speicherst wird er so aufgerufen:
$ python print_objects.py _build/html/objects.inv
Das Keyword middleware gibt es nicht. Aber dieser Link würde funktionieren:
:ref:`Django Middleware: process_response <django:response-middleware>`
Vielleicht möchtest du lieber sphinx.ext.extlinks[1] nutzen:
extlinks = {'djangodocs': ('http://docs.djangoproject.com/en/1.3/%s', None)}
Ein Link sieht dann so aus:
:djangodocs:`Middleware <topics/http/middleware/#topics-http-middleware>`
Viele Grüße
Markus
[1] http://sphinx.pocoo.org/ext/extlinks.html
Mehr Informationen über die Mailingliste python-de