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