github上markdown中的删除线代码
Posted
技术标签:
【中文标题】github上markdown中的删除线代码【英文标题】:strikethrough code in markdown on github 【发布时间】:2017-05-14 16:21:48 【问题描述】:我在这里谈论的是 github markdown,对于像 README.md
这样的文件。
问题: github上的markdown中是否可以删除完整的代码块?
我知道如何将文本标记为代码块
this is
multiline code
and
this
this
also
缩进 4 个空格或使用 `` 或 `...
我也知道如何使用
临时解决方案:
它们独立地工作正常,但协同工作不如预期或期望的那样。我尝试了上述几种组合。
现在,我使用这个:
striked
through
对每一行使用 ~~ 和 `。
要求:
我想要一个代码格式的文本,其中代码块是连续的:
unfortunately, this is
not striked through
或者至少中间只有一小段:
unfortunately, also not
striked through
这可能吗?
我发现了一些关于使用 jekyll 的旧帖子和提示,但我正在寻找一种简单的方法,最好是在 markdown 中。
【问题讨论】:
【参考方案1】:这只有在 GitHub 不允许的原始 html 中才有可能。但您也许可以改用 diff。
Code blocks 仅用于“预格式化”文本。您可以在代码块中获得的唯一格式是可以用纯文本表示的格式(缩进、大写等)。没有机制来标记代码块的内容(如粗体、斜体、划线、下划线等)。这是一个有意的设计决定。否则,您将如何在代码块中显示 Markdown 文本?如果你想要格式化文本,那么你需要使用代码块以外的东西。
作为rules 状态:
HTML 是一种发布 格式; Markdown 是一种写作 格式。因此,Markdown 的格式化语法只解决了可以用纯文本表达的问题。
对于 Markdown 语法未涵盖的任何标记,您只需使用 HTML 本身。
因此,您需要格式化您自己的自定义 HTML 代码块,并正确标记各种位:
<pre><code><del>some stricken code</del>
<del>A second line of stricken code</del>
</pre></code>
但是,出于安全原因,GitHub 会在您的 Markdown 中删除任何此类原始 HTML。因此,虽然这适用于您可以完全控制整个堆栈的情况,但在托管服务上这很可能是不可能的。
但是,我假设您想展示对代码块所做的一些更改。事实证明,已经存在一种特定的格式,即diff。只需使用 diff
作为语言的隔离代码块,GitHub 就会正确格式化:
```diff
Unchanged Line
- Removed Line
+ Added Line
```
您可以看到 GitHub 如何显示上述代码块 live(您也可以在 raw 中看到),但为方便起见,我在下面附上了屏幕截图。
我知道该格式不使用删除线,但它确实使用了一种常用且易于理解的格式。对于更复杂的块,您可能应该使用diff
实用程序为您生成差异。
【讨论】:
你猜对了,我打算展示差异。因此,尽管如此,这很好地回答了这个问题。谢谢! 不错的差异块,不知道它。【参考方案2】:扩展至Waylan's answer:
这对其他人来说可能很明显,但它抓住了我。当您有缩进的行时,请确保 +
或 -
是该行的第一个字符,否则它不会突出显示。
```diff
<div>
Unchanged Line
<ul>
- <li>This won't work</li>
- <li>This will</li>
+ <li>1st character, then indent</li>
</ul>
</div>
```
【讨论】:
【参考方案3】:关于标记代码块内容的主题,将斜体字符串附加到“代码”行的末尾,请尝试以下操作:
<code>id\_pn\_aside\_subscriber\_form\__form\_id_</code>
(您可以在 https://github.com/devonostendorf/post-notif#how-do-you-use-the-stylesheet_filename-attribute-with-the-shortcode 上看到这一点)
我很难找到与这个精确用例匹配的示例,所以我希望这对尝试实现类似效果的其他人有用。
【讨论】:
有一个reason we require 50 rep points before allowing comments,为什么滥用答案权限的人可能会删除他们的“cmets”。但不要绝望 - 检查我在其他评论中所做的编辑,使其成为答案。您的评论也可能是一个答案 - 如果是这样,edit 它。如果是对上一个答案的反驳,那么它不属于一个答案,应该被删除。以上是关于github上markdown中的删除线代码的主要内容,如果未能解决你的问题,请参考以下文章
markdown GitHub - 使用git命令删除提交历史记录