10

我有一些包含 GitHub Gists 的 URL 的文本。我想查找这些 URL 并将 Gist 内联放在内容客户端。我尝试过的一些事情:

直接查找 GitHub 的 OEmbed API。

对于https://gist.github.com/733951,这意味着我对 进行 JSON-P 查找 https://github.com/api/oembed?format=json&url=https%3A%2F%2Fgist.github.com%2F733951,提取html对象的属性,然后将其添加到我的页面中。这里的问题是 GitHub 的 OEmbed API 只返回 Gist 的前三行。

使用jQuery-embedly 插件

打电话

jQuery('a.something').embedly({allowscripts: true})

有效,但 Embedly 从 Gist 中剥离了格式。将其包装在<pre>标签中无济于事,因为没有换行符。

使用 GitHub 的.jsgist 版本。

https://gist.github.com/733951.jsuses document.write,所以当我动态地需要它时,我无法控制页面中的位置。(如果我可以将它写入 HTML 源代码,它会显示在正确的位置,但这一切都是在客户端完成的。)

4

2 回答 2

6

我受到客户端 gist 嵌入的启发并为此构建了一个script.jshack 库(我还使用它来删除嵌入的链接样式并使用我自己的样式更适合我的页面)...

它比嵌入要点和馅饼更通用 - 实际上我正在使用它来动态加载一些第三方小部件/谷歌地图/推特帖子)......

https://github.com/kares/script.js

这是嵌入示例:

https://github.com/kares/script.js/blob/master/examples/gistsAndPasties.html

更新:从那时起,gist 的 API 支持JSONP、jQuery 示例:

var printGist = function(gist) {
    console.log(gist.repo, ' (' + gist.description + ') :');
    console.log(gist.div);
};
$.ajax({ 
    url: 'https://gist.github.com/1641153.json', 
    dataType: 'jsonp', success: printGist 
});
于 2011-01-20T07:17:25.097 回答
0

我刚刚开始了一个名为 UrlSpoiler 的项目(在 github 上)。它将帮助您动态嵌入要点。它托管在免费/共享平台上的 Heroku 上,因此您可以使用它,但我建议您将所需的代码复制到您自己的应用程序中以供生产使用。

于 2011-05-27T21:16:32.810 回答