titles rst restructuredtext strikethrough docutils

restructuredtext - titles - rst file



ReST tachado (4)

¿Es posible tachar texto en texto reestructurado?

Algo que, por ejemplo, se representa como una etiqueta <strike> cuando se convierte a HTML, como: ReSTructuredText


Encontré las otras respuestas muy útiles. No estoy muy familiarizado con Sphinx pero lo estoy usando para un proyecto. Yo también quería la habilidad de penetración y la tengo funcionando en base a las respuestas anteriores. Para ser claros, agregué mi función de tachado como mencioné el gozzilli, pero lo guardé dentro de mi conf.py utilizando la variable rst_prolog como se explica en el hilo de desbordamiento de pila here . Esto significa que esta función está disponible para todos sus archivos de descanso.

Luego extendí la plantilla html base como se describe arriba creando layout.html dentro de _templates dentro de mi directorio de origen. Los contenidos de este archivo son:

{% extends "!layout.html" %} {% set css_files = css_files + ["_static/myStyle.css"] %}

Básicamente, esto incluye un archivo css personalizado para todos sus documentos html predeterminados construidos.

Finalmente, en mi directorio _static dentro de mi directorio de origen, myStyle.css el archivo myStyle.css que contiene:

.strike { text-decoration: line-through; }

Que las otras respuestas ya han proporcionado.

Simplemente escribo esta respuesta, ya que no era obvio para mí con mi experiencia limitada con Sphinx qué archivos editar.


Hay al menos tres formas de hacerlo:

.. role:: strike An example of :strike:`strike through text`. .. container:: strike Here the full block of test is striked through. An undecorated paragraph. .. class:: strike This paragraph too is is striked through. .. admonition:: cancelled :class: strike I strike through cancelled text.

Después de aplicar rst2html obtienes:

<p>An example of <span class="strike">strike through text</span>.</p> <div class="strike container"> Here the full block of test is striked through.</div> <p>An undecorated paragraph.</p> <p class="strike">This paragraph too is is striked through.</p> <div class="strike admonition"> <p class="first admonition-title">cancelled</p> <p class="last">I strike through cancelled text.</p>

Los usas con un estilo.

.strike { text-decoration: line-through; }

Aquí he tomado la directiva de admonition como ejemplo, pero cualquier directiva que permita la opción :class: haría.

Como genera un span la directiva de role es la única que permite aplicar su estilo a una parte de un párrafo.

Es redundante agregar una strike clase a una directiva también llamada strike , como sugiere Gozzilli, porque el nombre de la directiva es la clase predeterminada para la salida html.

He comprobado estas sintaxis con rest2html y Sphinx . Pero mientras todo funciona como se espera con rest2html la directiva de class falla con Sphinx . Tienes que reemplazarlo con

.. rst-class:: strike This paragraph too is is striked through.

Esto solo se indica en una pequeña nota al pie de Sphinx reSt Primer .


Revisé los documentos mejor, como lo sugirió Ville Säävuori, y decidí agregar el tachado de esta manera:

.. role:: strike :class: strike

En el documento, esto se puede aplicar de la siguiente manera:

:strike:`This text is crossed out`

Entonces en mi archivo css tengo una entrada:

.strike { text-decoration: line-through; }


De acuerdo con la especificación oficial, no hay ninguna directiva para el marcado tachado en ReST.

Sin embargo, si el entorno permite: raw: role o si puede escribir sus propios roles, puede escribir un complemento personalizado para él.