goz*_*lli 45 restructuredtext strikethrough docutils
是否可以在重组文本中查看文本?
例如,<strike>在转换为HTML时呈现为标记的内容,例如:
ReSTructuredText
goz*_*lli 42
我按照VilleSäävuori的建议更好地检查了文档,我决定添加这样的删除线:
.. role:: strike
:class: strike
Run Code Online (Sandbox Code Playgroud)
在文档中,这可以应用如下:
:strike:`This text is crossed out`
Run Code Online (Sandbox Code Playgroud)
然后在我的css文件中我有一个条目:
.strike {
text-decoration: line-through;
}
Run Code Online (Sandbox Code Playgroud)
mar*_*rcz 15
至少有三种方法:
.. 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.
Run Code Online (Sandbox Code Playgroud)
申请后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>
Run Code Online (Sandbox Code Playgroud)
你使用它们的风格
.strike {
text-decoration: line-through;
}
Run Code Online (Sandbox Code Playgroud)
这里我以admonition指令为例,但任何允许该:class:选项的指令都可以.
在生成指令时,唯一允许将您的样式应用于段落的一部分span的role指令.
将类添加strike到名为
strikeGozzilli的指令中是多余的,因为指令名是html输出的默认类.
我用rest2html和Sphinx检查了这些语法.但是,当一切正常按预计 rest2html的class
指令失败,狮身人面像.你必须用它替换它
.. rst-class:: strike
This paragraph too is is striked through.
Run Code Online (Sandbox Code Playgroud)
这只是在Sphinx reSt Primer的一个小 脚注中说明的.
我发现其他答案非常有帮助。我对 Sphinx 不是很熟悉,但我正在将它用于一个项目。我也想要删除线功能,并根据之前的答案让它发挥作用。需要明确的是,我添加了 gozzilli 提到的删除线角色,但我使用 rst_prolog 变量将其保存在我的 conf.py 中,如堆栈溢出线程中所述。这意味着该角色可用于您的所有其余文件。
然后,我通过在源目录中layout.html创建来扩展如上所述的基本 html 模板。_templates该文件的内容是:
{% extends "!layout.html" %}
{% set css_files = css_files + ["_static/myStyle.css"] %}
Run Code Online (Sandbox Code Playgroud)
这基本上包括所有构建的默认 html 文档的自定义 css 文件。
最后,在源目录中的 _static 目录中,我包含了包含myStyle.css以下内容的文件:
.strike {
text-decoration: line-through;
}
Run Code Online (Sandbox Code Playgroud)
其他答案已经提供了。
我只是写这个答案,因为以我有限的 Sphinx 经验,要编辑哪些文件对我来说并不明显。
这是一个del角色的 Python 定义,如果您想在 Pelican 博客或 Sphinx 文档项目的多个页面中使用该角色,它比接受的答案更有效:
from docutils import nodes
from docutils.parsers.rst import roles
def deleted_role(_role, rawtext, text, _lineno, _inliner, options={}, _content=[]):
roles.set_classes(options)
options.setdefault('classes', []).append("del")
return [nodes.inline(rawtext, text, **options)], []
roles.register_canonical_role('del', deleted_role)
Run Code Online (Sandbox Code Playgroud)
更好的是扩展 HTML 编写器以生成适当的<del>标签,如下所示:
from docutils import nodes
from docutils.parsers.rst import roles
from docutils.writers._html_base import HTMLTranslator
class delnode(nodes.inline):
pass
def visit_delnode(self, node):
self.body.append(self.starttag(node, 'del', ''))
def depart_delnode(self, node):
self.body.append('</del>')
HTMLTranslator.visit_delnode = visit_delnode
HTMLTranslator.depart_delnode = depart_delnode
def deleted_role(_role, rawtext, text, _lineno, _inliner, options={}, _content=[]):
roles.set_classes(options)
return [delnode(rawtext, text, **options)], []
roles.register_canonical_role('del', deleted_role)
Run Code Online (Sandbox Code Playgroud)
当然,您可以简单地调整它以生成一个<s>。
| 归档时间: |
|
| 查看次数: |
11356 次 |
| 最近记录: |