2012-03-21 16 views
6

Cuando ejecuto rst2html.py contra mi fuente de ReStructured Text, con su directiva code-block, agrega todos los tramos y clases a los bits de código en el HTML, pero falta el CSS para colorear esos tramos. ¿Es posible hacer que RST agregue un enlace CSS o incruste el CSS en el archivo HTML?¿Cómo puedo obtener rst2html.py para incluir CSS para resaltar la sintaxis?

+0

No estoy exactamente seguro de lo que estás preguntando: ¿Quieres conseguir resaltado de sintaxis en su salida HTML, o tiene el CSS para aplicar este resaltado de sintaxis, pero no saben cómo incorporar el estilo CSS personalizado en el proceso de construcción? – Chris

+0

Quiero resaltar la sintaxis en el resultado HTML. Los atributos de clase están todos allí (por ejemplo, ), pero el proceso de compilación no agrega CSS. –

Respuesta

7

A partir de Docutils 0.9 puede usar el code directive. Del ejemplo en esta página:

.. code:: python 

def my_function(): 
    "just a test" 
    print 8/2 

Alternativamente, puede usar Pygments para resaltar la sintaxis. Ver Using Pygments in ReST documents y this SO respuesta.

Finalmente, también puede usar el código en this o this blogpost.

actualización Como se ha discutido en los comentarios, para obtener el archivo de estilo utilizado por Pygments utilice el comando

pygmentize -S default -f html -a .highlight > style.css 

que generará el archivo de estilo CSS Pygments style.css.

+0

Sí, pero no hay estilos CSS para todas las clases de tramo que se agregan. ¿Cómo obtengo el CSS? –

+0

Todavía no estoy seguro de entender exactamente la pregunta. ¿Estás usando Pygments o la directiva 'code'? Si es así, el comando 'pygmentize -S default -f html -a .highlight> style.css' generará el archivo de estilo CSS de Pygments' style.css', que luego usarás en tu proceso de construcción usando ''stylesheet' comando (o similar) o 'rst2html.py'. – Chris

+0

Fue ese comando pygramize que estaba buscando, gracias. –

5

En docutils 0.9 y 0.10 no importa si usa código, bloque de código o código fuente. Todas las directivas se consideran code role.

Este comando generará css que puede incrustarse en html mediante rst2html.py.

pygmentize -S default -f html -a .code > syntax.css 

Este comando va a generar el html:

rst2html.py --stylesheet=syntax.css in.txt > out.html 

Por defecto, se extiende por rst2html.py salidas con los nombres de clases como comment, number, integer y operator. Si usted tiene un docutils.conf ya sea en el mismo directorio que la fuente o /etc, o en ~/.docutils con

[parsers] 
[restructuredtext parser] 
syntax_highlight=short 

... entonces los nombres de las clases serán c, m, mi, y que coincide con osyntax.css generados por pygmentize.

See syntax-highlight in docutils documentation

Cuestiones relacionadas