下午更新了 http://cirru.org , 整個頁面的文檔都是經過抓 GitHub README 生成的,git
抓 READMD 原來是有個簡單的思路, 經過 HTTP 請求直接拿 raw 的文件,
好比 cirru.org 項目的 README 文件, 原來的網址是這樣的:
https://github.com/Cirru/cirru.org/blob/master/README.md
頁面上代碼右上角又個 raw 的連接, 能夠獲取純文本的內容:
https://raw.githubusercontent.com/Cirru/cirru.org/master/README.md
不過這個連接作了跨域限制, 不能直接用...github
我記得早先的網址, 其實更短一些, 是這樣的:
https://raw.github.com/Cirru/cirru.org/master/README.md
這個網址的特別之處在於, 經過去掉兩個字母能夠得到容許直接調用的網址:
http://rawgithub.com/Cirru/cirru.org/master/README.md
不知什麼緣故, 這個網址如今是個重定向, 內容有拿不到了segmentfault
經過查文檔, 確認 GitHub 是有獲取 README 的 API 的:
http://developer.github.com/v3/repos/contents/#get-the-readmeapi
GET /repos/:owner/:repo/readme
不過網址沒明確寫, 搜索加猜想找到網站是這樣的:
https://api.github.com/repos/Cirru/cirru.org/readme跨域
從返回結果看, 裏邊沒有 README 的文本內容, 而是包含一段 base64 字符,
搜索能夠知道 JS 裏能夠經過 atob
函數進行解碼:
https://developer.mozilla.org/en-US/docs/Web/API/Window.atob
因而, 就可以經過獲取 README 真實的文本內容了.app
GitHub API 單個 IP 的訪問數量存在限制, 須要經過註冊應用來解決:
https://github.com/settings/applications/
具體作法是在請求的 url 後面加上註冊好的 key
http://developer.github.com/v3/#oauth2-keysecretcurl
$ curl 'https://api.github.com/users/whatever?client_id=xxxx&client_secret=yyyy'
(我圖方便直接在網頁上使用了, 可能存在問題...)函數
另外一個是我使用中發現非 ASCII 的字符, 好比國際音標, 顯示爲亂碼
估計是 base64 編碼過程的問題, 我沒想到好的辦法..
中文沒有測試, 估計也會出現問題...
我發了對應的問題,: http://segmentfault.com/q/1010000000451621測試