除了 Gists,我可以在我的网页上嵌入来自 GitHub 的源文件吗?

Can I embed source files from GitHub on my web page other than Gists?

上下文

您可以创建 Gist on GitHub and embed it on your web page: embedding Gists

这是随机选择的 Gist 的示例:tap.groovy

问题

是否也可以嵌入来自 GitHub 的其他代码文件,例如使用这个随机选择的 C# 文件 ICommand.cs,它不是 Gist?

您可以使用 https://gist-it.appspot.com/:

<script src="http://gist-it.appspot.com/https://github.com/dotnet/corefx/blob/master/src/System.ObjectModel/src/System/Windows/Input/ICommand.cs"></script>

另一个可能的服务是 https://github.com/finom/github-embed. It seems to be unmainted by now for about 2 years, but gist-it 似乎甚至 6 年都没有维护。不过我都没试过。

通过 URL 将一个网站的内容嵌入另一个网站的标准称为 oEmbed。不幸的是,GitHub 不是 oEmbed 提供商,即它的 URL 不支持 oEmbed。

我找到了代理服务,Oembed Proxy for GitHub, 它增加了对 GitHub 代码 URL 的 oEmbed 支持。您将 GitHub URL 作为参数传递给代理的 URL 并且生成的 URL 可以粘贴到另一个网站,假设该网站支持嵌入 oEmbed 链接。

另一个障碍是并非每个网站都支持嵌入 oEmbed URLs。根据代理的文档,notion is one website that supports them. I did some research and looks like it should be possible to add oEmbed support to e.g. wordpress or jekyll.

由于 oEmbed 的采用率较低,此答案提供的解决方案非常有限。尽管如此,我认为传播这个词还是值得的。

您可以尝试 https://emgithub.com,它完全符合您的要求。

要在您的问题中嵌入示例文件 ICommand.cs,您只需在地址栏中的“github.com”之前添加“em”,然后按 Enter。

更新(2020 年 4 月 1 日): 我发现问题中的文件 ICommand.cs 不再可用,所以我使用文件 https://github.com/pytorch/pytorch/blob/master/torch/nn/cpp.py 代替。

打开linkhttps://github.com/pytorch/pytorch/blob/master/torch/nn/cpp.py,您只需在地址栏的“github.com”前加上“em”,然后回车即可。

使用默认设置,您将获得以下脚本标记:

<script src="https://emgithub.com/embed.js?target=https%3A%2F%2Fgithub.com%2Fpytorch%2Fpytorch%2Fblob%2Fmaster%2Ftorch%2Fnn%2Fcpp.py&style=github&showBorder=on&showLineNumbers=on&showFileMeta=on&showCopy=on"></script>

您还可以更改其突出显示样式,并且可以使用“行号”、“文件元数据”等选项。

与从事类似工作的其他网站不同,EmGithub.com 是托管在 Github 页面上的静态网站。获取目标文件和突出显示在您的浏览器上完成。

您可以使用gistYard

<iframe src="https://gistyard.piyushdev.xyz/emd.html?lang=&from=0&to=&code=https://raw.githubusercontent.com/dotnet/corefx/master/src/System.ObjectModel/src/System/Windows/Input/ICommand.cs&edit=true&dm=off" width="100%" height="330" frameborder="0"></iframe>

它提供更改主题直接从 raw 剪切代码编辑模式等功能、自定义样式 和其他。