如何在asciidoc中添加删除线(strikethrough/line-through)?

37

我该如何在adoc文件中渲染删除线(或者过线)?

假设我想要写下 "那项技术是 -垃圾- 不完美"。

4个回答

44
That technology is [line-through]#crap# not perfect.

16

根据Ascii Doc手册[line-through]已被弃用。你可以在这里进行测试。

Dan Allen评论

重要的是要理解,line-through只是CSS角色。因此,它需要样式表的支持才能显示出它正在工作。

如果我通过Asciidoctor(或Asciidoctor.js)运行以下内容:

[.line-through]#strike#

我得到:

<span class="line-through">strike</span>

默认样式表有一个规则:

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

你需要做同样的事情。

可以使用自定义模板(Asciidoctor.js支持Jade模板)来自定义生成的HTML。在这种情况下,你将覆盖inline_quoted的模板,检查line-through角色,并产生一个<s>或者更好的,一个<del>而不是span。


7

如果您仅针对HTML后端进行目标定位,则可以通过“透传上下文”直接插入HTML代码。这可以通过将部分内容包装在 +++ 中来实现:

That technology is +++<del>+++crap+++</del>+++ not perfect.

然而,这对于 PDF、DocBook XML 或其他输出格式并没有帮助。


5
如果您编辑问题并提供一些上下文和解释,说明这段代码如何回答问题,将非常有帮助。 - Dragonthoughts
@Dragonthoughts:我添加了一些解释。 - Joey

2
如果输出是用于 HTML 的话,你可以传递 HTML。

HTML 元素 <s> 会渲染带有删除线或穿过的文本。使用该元素表示那些不再相关或不再准确的事物。

https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/s

要呈现为:

示例 文本

使用:

1. 传递内联:

Example +++<s>text</s>+++.

2. 透传宏:

Example pass:[<s>text</s>].

3. Pass block:

++++
Example <s>text</s>.
++++

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接