Github Markdown 中的 Diff 语法高亮

253

我正在使用Markdown编写解释C#代码的文档。

我使用```csharp来实现C#代码高亮。

有时我想要用粗体或其他方式突出显示代码中的特定部分。

我知道有<pre>等方法,但这会导致我失去C#代码高亮效果。

最好的情况是-在```csharp部分中突出显示代码的某些部分。

次优之选-我可以将代码编写为diff格式-使用+和-来突出显示内容,但如何告诉Github使用红色和绿色背景突出显示差异语法?

是否有一种同时使用diff和csharp语法高亮的方法?


1
如果有人在这里寻找SE中的diff高亮支持,答案是没有 - Scrooge McDuck
我在这个问题上开了一个讨论。链接 - Nino Filiu
3个回答

432
Github的markdown支持在格式化代码时显示差异。例如:
```diff
public class Hello1
{
   public static void Main()
   {
-      System.Console.WriteLine("Hello, World!");
+      System.Console.WriteLine("Rock all night long!");
   }
}
```

输出:

在此输入图片描述

然后它应该给你所需的差异视图,红色表示已删除的内容,绿色表示已添加的内容。


3
我在这个代码片段中尝试了一下。希望能有所帮助。 https://gist.github.com/salmedina/ad8bea4f46de97ea132f71b0bca73663#file-markdowndiffexample-md - Salvador Medina
136
你知道如何同时获取正确的语法高亮和差异高亮显示吗? - math2001
2
目前似乎不支持。这是一个支持的小抄清单。https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet#code。希望这能有所帮助。 - Salvador Medina
8
提示:为了轻松生成这些差异,您可以执行“git diff filename_with_diffs.txt > diffs.md”,然后只需在“diffs.md”文件中添加“```diff”开头和“```”结尾即可。 - Roald
2
这是一个热门提示。唯一缺少的就是如何避免所有额外的垃圾并只获取差异。 - CodeFinity
显示剩余3条评论

29
Salvador的回答是正确的,不过我发现你应该在代码片段中添加diff头部以突出显示它。
```diff
diff --git a/filea.extension b/fileb.extension
index d28nd309d..b3nu834uj 111111
--- a/filea.extension
+++ b/fileb.extension
@@ -1,6 +1,6 @@
-oldLine
+newLine
```

希望这能帮到你!

如果有人只是寻找不带颜色的 Git 格式... https://dev59.com/3W445IYBdhLWcg3wcJ6O#4857407 - tresf
4
我真的无法让它工作。你知道我可以在哪里阅读更多相关信息吗? - rmobis
我也无法让这个工作起来。也许是我做错了?diff --git a/filea.js b/fileb.js index d28nd309d..b3nu834uj 111111 --- a/filea.js +++ b/fileb.js @@ -1,6 +1,6 @@ -export let tada = "hello world" +export const tada = "Hello World" - undefined

3

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