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.