是否有任何开源项目或 jQuery 插件可以用来重新创建 GitHub Network Graph?
我想创建具有类似功能的东西。
最佳答案
Github WebView 一开始似乎很难进行逆向工程。然而,在使用 http://jsbeautifier.org/ 缩小代码后,代码变得非常容易理解。 。因此,运行 bundle_github.js
和 bundle_common.js
并获取 jQuery 1.4.2 源代码。然后您就可以开始阅读源代码/调试页面了。
在 Github 网络页面中,如果 Canvas 正常工作,则只需通过以下方式即可生成网络:
var ng = new Network("#ng", 920, 600)
它继续使用由defineNetwork(window.jQuery)
生成的对象,其中(还有很多其他东西)
- 从 the Github Network API 获取数据
- 创建
d.KeyDriver
和d.MouseDriver
实例来处理输入 - 使用
d.Chrome
绘制时间线、页眉和页脚 - 使用
d.Graph
编写网络图
(每个d.ClassName
都是Network对象的内部类,因此它们的源代码可以在defineNetwork
源代码中找到)
我没有花时间真正深入研究代码并找到有关其工作原理的所有细节,但它是可读的。现在,根据您想要做什么,您可以例如
- (可能) 变得非常小 修改以获取代码 将 Github 数据渲染到外部 github.com
- 在 the Github Network API 中提供您自己的数据格式化并可视化
- 仅调整
d.Graph
类以处理您自己的数据 - 只需阅读代码即可学习
注意:您可能无法按原样合法使用或修改代码,因此我建议仅出于学习目的这样做(尽管 IANAL)。
关于jquery - 如何重新创建 GitHub 网络图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4759492/