Actualmente estoy documentando una API de descanso escrita en Python. Toda la documentación del proyecto se crea utilizando Sphinx, y para la API REST me gustaría crear algunas directivas especiales. Por ejemplo, digamos que tengo este recurso definido:Cómo crear directivas personalizadas en 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
Así es básicamente como se ve la documentación actualmente. Me gustaría poder crear una directiva para Sphinx que formatee uno o más de esos :query_param ...:
como lo hace con el :param:
normal.
He encontrado cómo hacer papeles, pero solo funcionan en línea, no para bloques de datos.
¿Cómo debo proceder para hacer esto?
Es posible que desee preguntarle a esto en el [grupo de Google Sphinx] (https://groups.google.com/forum/?fromgroups#!forum/sphinx-dev). Alguien podría ser más capaz de responder la pregunta. Off-hand, no estoy seguro de cómo se tratan los bloques de documentación. Ciertamente puede [crear extensiones en Sphinx/docutils] (http://sphinx.pocoo.org/extensions.html), pero no estoy seguro de cómo el análisis de docstring encaja en el modelo Sphinx/docutils. – jszakmeister
La respuesta probablemente implique usar un [GroupedField] (https://bitbucket.org/birkenfeld/sphinx/src/1f3a2749df39/sphinx/util/docfields.py#cl-74) en su extensión. – jszakmeister