2012-09-21 17 views
13

Ich dokumentiere derzeit eine Rest-API in Python geschrieben. Die gesamte Projektdokumentation wird mit Sphinx erstellt, und für die REST-API möchte ich einige spezielle Anweisungen erstellen. Nehmen wir zum Beispiel an, ich habe diese Ressource definiert:So erstellen Sie benutzerdefinierte Anweisungen in Sphinx

@resource("/user/<email>", method="GET") 
def user_details (email): 
    """ Returns detailed information about a user account. 

    :resource GET: /user/<email> 
    :query_param a_param: Some kind of query param. 
    """ 
    # Do stuff and return user details 

Das ist im Grunde, wie die Dokumentation derzeit aussieht. Ich würde gerne in der Lage sein, eine Direktive für Sphinx zu erstellen, die eines oder mehrere dieser :query_param ...: genauso formatiert wie es mit regulären :param:.

Ich habe gefunden, wie man Rollen macht, aber sie arbeiten nur inline, nicht für Datenblöcke.

Wie sollte ich darüber gehen, dies zu machen?

+1

Sie diese vielleicht fragen, auf der [Sphinx Google-Gruppe] (https://groups.google.com/forum/?fromgroups#!forum/sphinx-dev). Jemand könnte die Frage besser beantworten. Off-Hand, ich bin mir nicht sicher, wie Dokumentation Blöcke behandelt werden. Sie können sicherlich [Erweiterungen in Sphinx/Docutils erstellen] (http://sphinx.pocoo.org/extensions.html), aber ich bin mir nicht sicher, wie Docstring-Parsing in das Sphinx/Docutils-Modell passt. – jszakmeister

+0

Die Antwort bezieht sich wahrscheinlich auf die Verwendung eines [GroupedField] (https://bitbucket.org/birkenfeld/sphinx/src/1f3a2749df39/sphinx/util/docfields.py#cl-74) in Ihrer Erweiterung. – jszakmeister

Antwort

10

Sphinx kann mit benutzerdefinierten Anweisungen über "Sphinx Extensions" erweitert werden. Das heißt, Sie müssen eine Sphinx-Erweiterung mit der benutzerdefinierten Richtlinie query_param implementieren und diese Erweiterung zu Ihrem Sphinx-Projekt hinzufügen.

Sphinx-Dokumentation bietet a tutorial bei der Implementierung von Erweiterungen, in denen sie tatsächlich eine benutzerdefinierte Richtlinie implementieren.

Referenz:

http://sphinx.pocoo.org/extensions.html

http://sphinx-doc.org/extdev/index.html#dev-extensions

Verwandte Themen