web-dev-qa-db-ja.com

ReST取り消し線

Restructured Textでテキストをストライクすることは可能ですか?

たとえば、HTMLに変換すると<strike>タグとしてレンダリングされるもの: ReSTructuredText

47
gozzilli

VilleSäävuoriの提案に従って、ドキュメントをよりよくチェックし、次のように取り消し線を追加することにしました。

.. role:: strike
    :class: strike

ドキュメントでは、これは次のように適用できます。

:strike:`This text is crossed out`

次に、私のcssファイルにエントリがあります。

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

それを行うには、少なくとも3つの方法があります。

.. 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ディレクティブだけです。

Gozzilliが提案するように、strikeという名前のディレクティブにクラスstrikeを追加するのは冗長です。これは、ディレクティブ名がhtml出力のデフォルトクラスであるためです。

これらの構文をrest2htmlSphinxの両方でチェックしました。しかし、すべてがrest2htmlで期待どおりに機能する一方で、classディレクティブはSphinxで失敗します。あなたはそれを置き換える必要があります

.. rst-class:: strike

This paragraph too is is striked through.

これはonly小さな Sphinx reSt Primerの脚注 で述べられています。

13
marcz

公式仕様による ReSTには取り消し線マークアップのディレクティブはありません。

ただし、環境で:raw:ロールが許可されている場合、または独自のロールを作成できる場合は、そのためのカスタムプラグインを作成できます。

12

他の回答はとても役に立ちました。私はSphinxにあまり詳しくありませんが、プロジェクトに使用しています。私も取り消し線能力を望んでおり、以前の回答に基づいてそれを機能させました。明確にするために、gozzilliが述べたように取り消し線の役割を追加しましたが、スタックオーバーフロースレッドで説明されているように、rst_prolog変数を使用してconf.py内に保存しました ここ 。これは、この役割がすべての残りのファイルで使用できることを意味します。

次に、ソースディレクトリ内にlayout.html内に_templatesを作成して、上記のようにベースhtmlテンプレートを拡張しました。このファイルの内容は次のとおりです。

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

これには基本的に、ビルドされたすべてのデフォルトのhtmlドキュメントへのカスタムcssファイルが含まれます。

最後に、ソースディレクトリ内の_staticディレクトリに、以下を含むmyStyle.cssファイルを含めました。

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

他の答えはすでに提供しています。

どのファイルを編集するかが限られたSphinxの経験ではわからなかったので、私は単にこの答えを書いています。

4
Gregory Kuhn