ReST зачеркнутый - PullRequest
       23

ReST зачеркнутый

43 голосов
/ 29 июня 2011

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

То, что, например, отображается как тег <strike> при преобразовании в HTML, например: ReStructuredText

Ответы [ 4 ]

41 голосов
/ 11 июля 2011

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

.. role:: strike
    :class: strike

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

:strike:`This text is crossed out`

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

.strike {
  text-decoration: line-through;
}
13 голосов
/ 12 января 2013

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

.. 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, как подсказывают Гоззилли, потому что имя директивы по умолчанию класс для вывода html.

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

.. rst-class:: strike

This paragraph too is is striked through.

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

12 голосов
/ 08 июля 2011

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

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

4 голосов
/ 22 февраля 2013

Я нашел другие ответы очень полезными.Я не очень знаком со Сфинксом, но использую его для проекта.Я тоже хотел зачеркнуть способность и заставил ее работать на основе предыдущих ответов.Чтобы было ясно, я добавил свою зачеркнутую роль, о которой упоминал гоззилли, но сохранил ее в своем файле 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;
}

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

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

...