Остальные зачеркивания


Можно ли вычеркнуть текст в Реструктурированном тексте?

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

4 40

4 ответа:

Я лучше проверил документы, как предложил вилле Севуори, и решил добавить зачеркнутый текст следующим образом:

.. role:: strike
    :class: strike

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

:strike:`This text is crossed out`

Тогда в моем файле css есть запись:

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

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

.. 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:, вполне подойдет.

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

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

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

.. rst-class:: strike

This paragraph too is is striked through.

Это только указано в небольшом сноска Сфинкс праймер остальные.

Согласно официальной спецификации нет директивы для зачеркивания разметки в ReST.

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

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

Затем я расширил базовый 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;
}

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

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