其实搭建在 github 上的博客都是天然的多人博客,跟贡献代码一样,每个人都可以往某个博客里贡献文章! 所以,我们的目标就是 显示每篇文章的作者 而已!
我们这里需要是用 jekyll 搭建在 github 的博客。
首先我们需要使用了 github 的 Commits API:
GET /repos/:owner/:repo/commits
使用以下参数可以根据文件的路径查询与某文件相关的 commit 信息:
path: Only commits containing this file path will be returned.
返回的信息中就包括了 author
信息:
...
"commit": {
"author": {
"name": "Monalisa Octocat",
"email": "[email protected]",
"date": "2011-04-14T16:00:49Z"
},
},
...
具体信息查看该 API 文档
总得来说,以我的 blog 为例,整个 API 类似于:
https://api.github.com/repos/ichord/ichord.github.com/commits?path=#{path}
然后,我们要获得某篇文章的文件路径,也就是上面的 path
. 这时候就可以用 jekyll 的 Page Variables: path
了,这个 path
就是该文件的完整路径了 (包括后缀名,如 .markdown
):
_posts/2012-02-27-difference-between-economics-and-finance.markdown
最终结果就是:
wala! 如此你就可以用过 Ajax 请求获得每篇文章的作者信息了!! 这里要注意 github 对 API 请求次数的限制,有必要的时候可以自己缓存作者信息。
最后就是,显示作者信息了,这个请随意。附上我实现的效果。
如果大家想显示更多关于作者的信息的话,可以使用 @lepture 的
https://github.com/lepture/github-cards
我在自己 blog 的实现这个效果的时候,抄了 @lepture 不少代码,谢谢。XD.
因为只实现这个效果的话,我不想使用整个 jQuery
. 然后发现 github-cards 的实现方法太 cool 了,所以...就...谢谢。
我已经在我的 blog 实验成功了,欢迎参观。 PS.不好意思,暂时都是流水账。接着会更新一些关于远程工作的文章。XD