intershinx links

15/03/2012 - 22:00 von Thomas Guettler | Report spam
Hallo,

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),
}
 

Lesen sie die antworten

#1 Markus Zapke-Gründemann
19/03/2012 - 00:46 | Warnen spam
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

Ähnliche fragen