【发布时间】:2012-08-04 17:41:36
【问题描述】:
首先,感谢您的阅读。
我在 GitHub 上托管我当前的项目。使用 GitHub Pages,我]托管我的个人博客,you can reach the blog here。
在博客上,我有一个专门介绍我目前从事的所有项目的页面。基本上,我想通过查询 GitHub 自动显示我所有正在进行的项目的列表。
虽然谷歌搜索了很多,我发现this can be achieved using JavaScript。 我试过了,但没有按预期工作。加载页面时,我只收到短信“查询 GitHub 以获取存储库”。似乎什么也没有发生。
我联系了 GitHub 维护人员,他们友好地回答说,这种技术使用了过时版本的 GitHub API。
由于我在 JavaScript 方面没有经验,任何人都可以帮我解决它吗?
问候,
罗兰。
这是我在HTML page中使用的代码
<div id="opensource-projects"></div>
<!-- JavaScript to load and display repos from GitHub -->
<script src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="/javascripts/git.js" type="text/javascript"></script>
<script type="text/javascript">
$(function() {
$("#opensource-projects").loadRepositories("Yonaba");
});
</script>
然后,在文件git.js 中,我有以下内容:
// http://aboutcode.net/2010/11/11/list-github-projects-using-javascript.html
jQuery.githubUser = function(username, callback) {
jQuery.getJSON("http://github.com/api/v1/json/" + username + "?callback=?", callback);
}
jQuery.fn.loadRepositories = function(username) {
this.html("<span>Querying GitHub for " + username +"'s repositories...</span>");
var target = this;
$.githubUser(username, function(data) {
var repos = data.user.repositories;
sortByNumberOfWatchers(repos);
var list = $('<dl/>');
target.empty().append(list);
$(repos).each(function() {
list.append('<dt><a href="'+ this.url +'">' + this.name + '</a></dt>');
list.append('<dd>' + this.description + '</dd>');
});
});
function sortByNumberOfWatchers(repos) {
repos.sort(function(a,b) {
return b.watchers - a.watchers;
});
}
};
@jcolebrand:感谢您的帮助,但我并没有真正理解您的意思。我也尝试向 Chrome 的控制台发送一些命令。我猜$ 是 jQuery 的别名,不是吗?好吧,发送相同的东西控制台只输出多个对象,描述我的回购。太棒了!
我认为现在的问题是正确解析它们并显示它们。哎呀,我需要为此学习 JavaScipt 语法...
【问题讨论】:
-
如果可能,请显示您尝试使用的代码来查询 github。
标签: javascript api github repository