摘要:為什么不選擇其他方案在文章的開頭我有提到,我曾經嘗試過用,,自行搭建服務等途徑去嘗試維護博客。但這些嘗試的結果均不合我意,最后無疾而終。我們使用作為博客平臺,也就是相當于管理后端。
對于愛寫東西的人來說,挑一個合適的博客平臺是非常重要的。而作為一個 Web 開發者,我們肯定都希望能夠擁有一個高度定制化的博客平臺,用以展示我們獨一無二的個性以及記錄長久以來的學習工作等。與此同時,我們也希望這個平臺可以讓我們方便地發布內容,提供完整的點贊、留言等操作。在經歷過 Hexo,Wordpress,自行搭建服務等一系列嘗試以后,我最后選擇了以 Github issues 來作為我的博客平臺。
博客的基本能力對于一個合格的博客平臺來說,它主要提供了下列幾種能力:
個人介紹 對于個人博客來說,它首先要支持展示博主的個人介紹。這個個人介紹里面可能包括了頭像、昵稱、聯系方式等基本內容,能夠讓讀者能夠對這個博客的主人有一個基本的認識。
文章的撰寫與展示 對一個博客來說,最重要的就是它的內容,也就是里面的文章。一個好用的博客平臺應該具備方便的撰寫文章的能力,讓夠讓用戶毫無負擔地撰寫、編輯自己的文章。此外,還必須能夠文章的信息,比如展示標題、節選、封面,創建/修改時間,評論點贊數等等。
歸檔能力 一篇文章的撰寫時間、內容標簽/分類等都是不同的,如何按照不同的要求對這些文章進行歸檔整理,也是考驗博客平臺的能力之一。再者,當文章數量較多的時候,添加一個搜索的功能也能大大方便讀者對博客的瀏覽。
博主與讀者互動的能力 僅僅只有博主一個人自嗨可能難以激發寫作的動力,如果博客能夠提供博主與讀者互動的能力,將能有效激勵博主持續創作,更能提升文章的傳播度——點贊和評論功能則是互動能力中最重要的功能之一。
經過上面的幾個點,基本可以知道一個博客平臺,其主要功能就是“展示自己,溝通外界”。在滿足這個基礎的前提下,它也應該具備方便操作,高度定制化的特點。
為什么不選擇其他方案
在文章的開頭我有提到,我曾經嘗試過用 Wordpress,Hexo,自行搭建服務等途徑去嘗試維護博客。但這些嘗試的結果均不合我意,最后無疾而終。歸根結底,就是不夠自由和方便。
舉個例子,Wordpress 和 Hexo 都具備搭建一個主題漂亮、功能齊全的博客的能力,但是這些都必須要在它們所制定的規則下進行。如果我想 DIY 一個主題,或者加入任何我想要的新能力,都必須仔細翻閱它們的文檔,找到對應的規則再嘗試去實現,可謂是戴著鐐銬跳舞。除此之外,要發布新的文章,動輒就要在本地跑命令行,實在是非常不優雅。更有甚者,如果希望為文章添加評論功能,還要費一大番周折,想必體驗過的人都懂。
至于自行搭建服務,可謂是既自由又方便,想要任何功能都可以自己實現。但這種方案最大的缺點是成本較高。對于人力成本來說,服務器數據庫配置、域名、備案等一系列操作非常煩人,甚至還要考慮告警、負載、宕機等一堆的運維問題。折騰多了,也沒什么心思往里面寫文章。對于金錢成本來說,買域名,買服務器也是一筆花銷,尤其是當我們某段時間文章產出特別少的時候,總覺得白養了一臺服務器……
選擇 Github issues首先是 Github,然后才是 issues。
作為全球最大的代碼托管平臺,又剛剛被微軟收入麾下,其可靠程度是非常高的,基本不用擔心存放在里面的數據會丟失(想想看國內說沒就沒的網易博客,百度貼吧等)。
在 Github 上我們可以精心編輯自己的賬戶信息,包括頭像、昵稱、郵箱、工作單位等等。
Github issues 提供了非常方便快捷的編輯能力,尤其是貼圖。它支持通過拖拽、粘貼、選擇的方式上傳圖片,圖片會存放在 user-images.githubusercontent.com 這個地方,且支持外鏈——這也意味著我們可以很方便地把 issue 的內容轉載到其他的平臺。
在 Github issues 里面,可以為某條 issue 添加點贊、愛心等互動標簽(Reactions),也可以設置分類標簽(Labels),更可以給 issue 添加評論(Comment)。
最為重要的是 Github 提供了一套滿足了絕大部分需求的 API,囊括了 REST 和 GraphQL 的調用方式,這才是 Github 能夠成為我們博客平臺的大殺器,這個接下來會詳細說明。
不難看出,Github issues 擁有著前文提及的一個博客平臺所應具備的各種能力。接下來我們將以 Github issues 作為博客平臺的管理后端,以 API 來實現和客戶端的數據交互。
天生的前后端分離關于 Github API 的授權和調試,可以查閱我的另一篇文章《基于 Github API 的圖床 Chrome 插件開發全紀錄》。
我們使用 Github issues 作為博客平臺,也就是相當于管理后端。我們在管理后端里面撰寫文章,設置標簽,回復評論,然后通過 API 調用把數據傳送給客戶端。
幾個比較常用的 v3 API 如下:
獲取登錄用戶信息(GET) api.github.com/user
獲取倉庫的 issues 列表(GET) api.github.com/repos/:owne…
獲取某條 issue 的評論列表(GET) api.github.com/repos/:owne…
獲取某條 issue 的點贊和紅心等 reactions (GET) api.github.com/repos/:owne…
為某條 issue 提交一條評論(POST) api.github.com/repos/:owne…
Name | Type | Description |
---|---|---|
body | string | Required. The contents of the comment. |
為某條 issue 添加一條 reaction(POST) api.github.com/repos/:owne…
Name | Type | Description |
---|---|---|
content | string | Required. The?reaction type?to add to the issue. |
當然你也可以使用 v4 的 GraphQL 接口,也是非常的方便,感興趣的可以自行研究。
管理后端直接用現成的 Github issues 頁面,那么客戶端則使用 Github 為開發者免費提供的靜態頁面部署服務 Github pages。要使用這個服務,只需要開通一個倉庫,然后在倉庫的 Settings 里面找到 Github pages 并打開即可,默認會以 Master 分支的根目錄作為靜態資源目錄,我們只需要把客戶端的靜態資源直接放置在這里就好。
開通了 Github pages 以后,便可以通過其提供的 URL 直接在瀏覽器里訪問到博客了,而博客的數據則完全加載自 Github API。
通過已授權的接口,還允許提交評論等功能:
結語
總結一下,Github issues 提供了一個博客平臺所需的的各項基本能力,與 Github 的可靠性, API 的全面性,Github pages 的便捷性結合在一起,都非常適合作為一個博客平臺來使用。我基于 Github issues 的個人博客也已經上線,歡迎前來體驗:
jrainlau.github.io/#/
如果你也覺得不錯的話,趕快給自己也搭一個基于 Github issues 的博客吧,期待與你的交流!
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/6959.html
摘要:為什么不選擇其他方案在文章的開頭我有提到,我曾經嘗試過用,,自行搭建服務等途徑去嘗試維護博客。但這些嘗試的結果均不合我意,最后無疾而終。我們使用作為博客平臺,也就是相當于管理后端。 showImg(https://segmentfault.com/img/remote/1460000019265125?w=700&h=420); 對于愛寫東西的人來說,挑一個合適的博客平臺是非常重要的。...
摘要:官方文檔中文文檔基本使用注意一定要在根目錄的中聲明,要不然點擊任何鏈接都無法跳轉。官方文檔中文文檔簡單的來說,每一次的修改狀態都需要觸發,然而其實項目中我現在還沒用到修改數據。。。 學習 React 的過程中實現了一個個人主頁,沒有復雜的實現和操作,適合入門 ~ 原文地址:https://github.com/axuebin/react-blog/issues/17 這個項目其實功能...
原文博客 閑扯 很久以前,自己擁有一個用hexo搭建的靜態博客網站:ox:,記得當時為了把它搞出來,廢了不少勁:anger:,然后后來又斷斷續續更改過一些配置和樣式,但是因為感覺各種麻煩,所以就放在github上積累和很多的塵土:cupid:,到現在也懶得在打掃了(其實是好久不用,有點忘了怎么用了:-1::poop:),前段時間在百度統計上看了看那個靜態網站的訪問人數,發現已經很久很久沒人訪問過了...
摘要:那么我們如何在博客中實現這個功能呢,其實很簡單,首先修改我們的文件介紹正在使用的構造函數附加到根實例的一些選項當前應用的路由實例站點元數據對的判斷是防止編譯的時候報錯然后新建一個的文件取消默認的復制事件作者靜水深流原文著作權歸作者所有。 原文博客 閑扯 很久以前,自己擁有一個用hexo搭建的靜態博客網站,記得當時為了把它搞出來,廢了不少勁,然后后來又斷斷續續更改過一些配置和樣式,但是因...
摘要:從到完美,寫一個庫庫前端組件庫之前講了很多關于項目工程化前端架構前端構建等方面的技術,這次說說怎么寫一個完美的第三方庫。使用導出模塊,就可以在使用這個庫的項目中構建時使用功能。 從 1 到完美,寫一個 js 庫、node 庫、前端組件庫 之前講了很多關于項目工程化、前端架構、前端構建等方面的技術,這次說說怎么寫一個完美的第三方庫。 1. 選擇合適的規范來寫代碼 js 模塊化的發展大致有...
閱讀 1240·2021-11-22 13:54
閱讀 1425·2021-11-22 09:34
閱讀 2698·2021-11-22 09:34
閱讀 4008·2021-10-13 09:39
閱讀 3342·2019-08-26 11:52
閱讀 3361·2019-08-26 11:50
閱讀 1529·2019-08-26 10:56
閱讀 1913·2019-08-26 10:44