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 个空格或使用 `` 或 `...

我也知道如何使用

删除文本 删除标签 s 标签 ~~

临时解决方案

它们独立地工作正常,但协同工作不如预期或期望的那样。我尝试了上述几种组合。

现在,我使用这个:

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】:

关于标记代码块内容的主题,将斜体字符串附加到“代码”行的末尾,请尝试以下操作:

&lt;code&gt;id\_pn\_aside\_subscriber\_form\__form\_id_&lt;/code&gt;

(您可以在 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 简明语法

markdown GitHub - 使用git命令删除提交历史记录

git 上传代码到GitHub 以及git删除github上文件和文件的命令

Markdown进阶

Markdown 语法手册 - 完整版(上)

Git 实用笔记删除Github中已有仓库或文件