2011-12-12 5 views
14

Tengo algunos ejemplos de código y datos que copia a _static directorio y me gustaría vincular a esos archivos en la documentación, algo así como:En Python esfinge, cómo enlazar a un archivo en el directorio _static

.. _pca-run.py: _static/example.data 

Pero el problema es que sphinx no crea un enlace relativo adecuado a este archivo, sino que simplemente copia los valores tal como están. Por lo tanto, para los archivos anidados donde _static no está en el mismo directorio, los enlaces no funcionan.

+3

Parece que hay una función '': descargar: '': http://stackoverflow.com/questions/2921724/include-a-text-file-as-is-in-python-sphinx-docs – Mitar

Respuesta

9

Lo que quiere es la función de texto :download:. (como mencionó Mitar en su comentario).

http://sphinx.pocoo.org/markup/inline.html#role-download

El uso de este le dirá Sphinx para copiar el archivo dado en el directorio "_downloads" y crear un hipervínculo a la misma. Originalmente, se pretendía que se utilizara para archivos descargables, como archivos PDF (en formato html) o tarballs, o lo que sea. Sin embargo, funciona bien para cualquier otro archivo que no sea ReST.

Si realmente quería, podría escribir una extensión para hacer esto, pero nunca he visto la necesidad de hacerlo, ya que :download: hace exactamente lo que yo quiero.

+0

Pero ' ': descargar:' 'es muy detallado. Si desea usarlo varias veces, se vuelve tedioso. – Mitar

+0

¿Conoce algún rol que funcione como ': download:' pero acepte comodines (o patrones 'glob')? – Unode

+0

@Unode: no estoy seguro de entender por qué querrías hacer eso, pero probablemente tendrías que crear tu propia extensión. Aunque no es tan difícil. Ver [sphinx-contrib] (https://bitbucket.org/birkenfeld/sphinx-contrib/) para ver un montón de ejemplos. –

5

Acaba de encontrar la respuesta correcta a esto para imágenes: preprend la ruta del archivo de destino con /. Para las imágenes referenciadas desde un automodule

.. image:: some_file.png 

se referirá al archivo some_file.png relativa al archivo de pitón que está siendo procesado, mientras que

.. image:: /some_file.png 

se referirá al archivo some_file.png con respecto a la ubicación de la conf.py. De esta manera, no hay necesidad de contaminar la jerarquía de origen con imágenes.

+1

Sí, funcionó para mí: '.. image ::/_static/foo.png' – FraggaMuffin

Cuestiones relacionadas