Подтвердить что ты не робот

Замысел REST

Можно ли удалять текст через реструктурированный текст?

Что-то, что, например, отображается как тег <strike> при преобразовании в HTML, например: <Удаp > ReStructuredTextудаp >

4b9b3361

Ответ 1

Я проверил документы лучше, как было предложено Ville Säävuori, и я решил добавить зачеркивание следующим образом:

.. role:: strike
    :class: strike

В документе это можно применить следующим образом:

:strike:`This text is crossed out`

Затем в моем файле css у меня есть запись:

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

Ответ 2

Существует как минимум три способа сделать это:

.. 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.

После применения rst2html вы получите:

<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>

Вы используете их со стилем

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

Здесь я привел директиву admonition в качестве примера, но любой которая позволяет использовать параметр :class:.

Поскольку он генерирует a span, директива role является единственной, которая позволяют применить свой стиль к части абзаца.

Неверно добавить класс strike в директиву, также называемую strike, как подсказывает Gozzilli, поскольку имя директивы является значением по умолчанию класс для вывода html.

Я проверил эти синтаксисы как с rest2html, так и Sphinx. Но в то время как все работает так, как ожидалось, с rest2html class сбой Sphinx. Вы должны заменить его на

.. rst-class:: strike

This paragraph too is is striked through.

Это указано только в небольшом сноска Sphinx reSt Primer.

Ответ 3

В соответствии с официальной спецификацией в ReST существует директива для зачеркивания.

Однако, если среда разрешает: raw: role или вы можете писать свои собственные роли, тогда вы можете написать для нее настраиваемый плагин.

Ответ 4

Я нашел другие ответы очень полезными. Я не очень хорошо знаком с Sphinx, но я использую его для проекта. Я тоже хотел использовать пробивные способности и получил работу, основанную на предыдущих ответах. Чтобы быть ясным, я добавил свою занудную роль, как сказал gozzilli, но я сохранил ее внутри моей conf.py, используя переменную rst_prolog, как описано в потоке здесь. Это означает, что эта роль доступна для всех ваших файлов отдыха.

Затем я расширил базовый html-шаблон, как описано выше, создав layout.html внутри _templates внутри моего исходного каталога. Содержимое этого файла:

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

Это в основном включает пользовательский файл css для всех встроенных по умолчанию html-документов.

Наконец, в моем каталоге _static в моем исходном каталоге я включил файл myStyle.css, который содержит:

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

Какие другие ответы уже предоставлены.

Я просто пишу этот ответ, поскольку это не было очевидно для меня с моим ограниченным опытом Sphinx, который файлы для редактирования.