查看gist的渲染输出?

44
9个回答

54

rawgit.com 提供此服务。要使用 rawgit.com,只需将您想查看的 gist 或 github 文件的原始视图的域替换为 rawgit.com 即可。例如:

https://gist.githubusercontent.com/mbostock/844752/raw/index.html

https://rawgit.com/mbostock/844752/raw/index.html
或者
https://raw.githubusercontent.com/caffinatedmonkey/Hello-World-PSP/master/main.cpp

https://rawgit.com/caffinatedmonkey/Hello-World-PSP/master/main.cpp

我宁愿不使用第三方服务。他们有API-我们没有理由不能从中获取实际输出。哦,好吧。 - SeanMC
1
@SeanKPS Rawgit使用Github的gist API获取数据并将其呈现为HTML。 - 0xcaff
@@0xcaff API的哪个结果属性包含数据? - SeanMC
1
@SeanKPS 你可以通过访问原始URL(https://developer.github.com/v3/gists/#get-a-single-gist)(`files.[file_name].raw`)获取gist的内容。 rawgit 可能会代理请求到github,重写响应头以添加 Content-Type: text/html - 0xcaff
@@0xcaff 有没有办法获取非原始输出? - SeanMC
9
RawGit即将关闭,不再为新的存储库提供服务。请访问https://rawgit.com了解更多详情。 - Daniel Walter

9
我有一个印象,即渲染gist的方法最近发生了变化。以下是我找到的解决方案:
  • 访问http://rawgit.com/,将您的gist地址粘贴到输入框中,获取指向原始HTML代码的地址 - 或者在Github上单击raw按钮
  • 在URL前加入:http://htmlpreview.github.io/?

示例


5
"RawGit即将关闭" - Benny Schmidt
@Benny 但是 htmlpreview 仍然可以使用 https://htmlpreview.github.io/?https://gist.githubusercontent.com/jpluimers/9a50d0ba14fe975906ea8788a352e269/raw/cde35d4a6b55050206d70daa597d04590585a419/PostScriptBooks.html 和 https://htmlpreview.github.io/?https://gist.githubusercontent.com/jpluimers/9a50d0ba14fe975906ea8788a352e269/raw/。 - Jeroen Wiert Pluimers

9

2020更新:RawGit关闭。备选方案和测试:

以下是预览您的gist作为渲染HTML的服务之一:

所有这些都经过了在GitHub上使用HTML gist的测试,并且截至2020年7月仍在正常工作。

测试

使用此gist的示例:

检查它是否仍然有效以及URL的外观:

rawgit.com(截至2020年7月不再有效)

https://rawgit.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

gist.githack.com

https://gist.githack.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

警告:它向您的页面注入JavaScript!请参见:

curl https://gist.githack.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

输出:

<!-- Valid HTML Test -->
<!doctype html>
<html lang=en>
<meta charset=utf-8> 
<title>Valid HTML Test</title>
<script>
alert('It works');
</script>
<script async src='/cdn-cgi/bm/cv/2172558837/api.js'></script><script type="text/javascript">(function(){window['__CF$cv$params']={r:'5b1aaf571d8bf2c0',m:'65442fcb36a12a3fd4d99294f0ae0a2c6c071945-1594556076-1800-AdUTDXjrrqS1ZqgeCevOb/vrvZSZaBf8uXiIHtYhab+Pu1AhAHEnvoPv7d6apyJwU+p7FNPWY8VQAjdSpjC5/5JRJKo5Og1S5Qod6jctf3ECBmhA7mctVQJOrzVBXkf2fZrHHOVjSD5cezyUp1zDZeSLAYtov29CfJKdbN7/gstPjgYcF/FbgiA5tm4WJ/ToqDwoSGljZwlHIrqr9EdLCecSgQO1D+ASFBtWOduqNIx9',s:[0x603d28608f,0x9fc0e2444b],}})();</script>

最后两个script标签不是我的!我注意到这一点是因为HTML验证器对一个完全有效的HTML给出了警告(所以不仅注入了代码,而且是无效的...)

gitcdn.xyz

https://gitcdn.xyz/cdn/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

似乎没有改变HTML:

curl -v https://gitcdn.xyz/cdn/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

gistcdn.rawgit.org

https://gistcdn.rawgit.org/rsp/dd2481a75c1668846a752e24099ce020/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

注意:该网址与所有其他网址不同,没有包含/raw/,如果您手动构建URL,则很容易拼写错误。

htmlpreview.github.io

https://htmlpreview.github.io/?https://gist.githubusercontent.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

警告:

它们似乎在以下方面存在差异:

  • 一些是代理,一些在前端使用AJAX
  • 更改实际的HTML像注入脚本,参见我上面的警告

文件完整性

我编写了此脚本以检查提供的HTML的SHA1摘要:

#!/bin/bash
for i in \
'https://gist.githubusercontent.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html' \
'https://gist.githack.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html' \
'https://gitcdn.xyz/cdn/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html' \
'https://gistcdn.rawgit.org/rsp/dd2481a75c1668846a752e24099ce020/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html' \
'https://htmlpreview.github.io/?https://gist.githubusercontent.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html' \
;do
n=`echo $i | sed 's|^[a-z:]*//||; s|/.*||'`
s=`curl -s $i | shasum`
echo $s $n
done

如有需要,可以随意使用它来测试您自己的gist的完整性。

请记住,即使其中一个代理目前不会注入任何内容或干扰您的代码,也不意味着它永远不会这样做。

我的结果是:

7a785588d5806469a7a9256968f82257accd7183 - gist.githubusercontent.com
809819224097b5f116b63fd6019cb490005d1ff8 - gist.githack.com
7a785588d5806469a7a9256968f82257accd7183 - gitcdn.xyz
7a785588d5806469a7a9256968f82257accd7183 - gistcdn.gistcdn.rawgit.org
5069f27b01308f3cf71c9d7f3a5c924e3a91b243 - htmlpreview.github.io

第一条是原始的,所以看起来:

  • gitcdn.xyz和rawgit.org提供了原始的文件
  • githack.com向您的页面注入脚本!(确实是一个git黑客...)
  • htmlpreview.github.io在前端上工作,因此提供了一个不同的页面,使用前端逻辑加载和显示您的Gist(我想知道它是否适用于相对链接和图像-我稍后将进行测试)。

关于htmlpreview.github.io的说明

有趣的是,它使用另一个服务,即JSONP代理jsonp.afeld.me,并将您的Gist作为以下内容加载,而不是直接从GitHub加载: https://jsonp.afeld.me/?url=https://gist.githubusercontent.com/rsp/dd2481a75c1668846a752e24099ce020/raw/233e4d9d5388fc087785ff2d6f63ce232302d255/test.html

其他想法

我刚刚想到一个主意,看看是否可以通过gh-pages使gists以某种方式工作(因为gists可以作为repos进行checkout)。我会测试并更新。更新:我无法使其正常工作。也无法从gist部署到Netlify。


1
htmlpreview.github.io 对我来说很好用。 - ThomasW

8

1
更新:RawGit.com将关闭"RawGit现在处于逐渐结束的阶段,很快将关闭。这是五年来的有趣经历,但万物都有终结。" - David Karlsson

8

4
据我所知,gist并不提供执行环境,但您可以轻松地将其粘贴到jsfiddle中。

我最后还是在本地运行它了...比在jsfiddle上更容易。但是感谢你澄清gist不会呈现输出。 - flossfan
你可以尝试使用www.ideone.com。 - Nikhil Agrawal

0

Gist渲染输出(目前在更新Gist后,不是实时预览)。

这仅适用于正确的文件扩展名。

例如,如果您的文件格式为MediaWiki,则必须将文件名编辑为somefile.mediawiki


0

你可以直接在GitHub上完成。我只是使用评论部分,因为它已经有了自己的“预览”选项,当然,“Markdown样式也受支持”。


0

对于2022年来访者,对我有效的解决方案是https://bl.ocks.org/-/about

Bl.ocks(发音为“Blocks”)是一个简单的查看器,用于共享托管在GitHub Gist上的代码示例。例如,如果您的Gist URL为:

https://gist.github.com/mbostock/1353700

请在URL中将“gist.github.com”替换为“bl.ocks.org”以查看它:

https://bl.ocks.org/mbostock/1353700

您的示例的主要源在index.html中。此文件可以包含指向Gist中其他文件(如图像、脚本或样式表)的相对链接。当然,您也可以使用绝对链接,例如CDN托管的D3、jQuery或Leaflet。要解释您的示例,请添加一个用Markdown编写的README.md。(如果您只想编写,则可以省略index.html。)


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