技術團隊樂於技術分享,鼓勵內部成員通過博客文章分享技術心得。
無奈近來博客平臺廣告雲起,各類廣告商竭盡所能吸引眼球,大有喧賓奪主之勢。
衡量再三,F團隊決定另覓淨土。GitHub Pages能否成爲最後淨土,且聽下文分解。
本文在GitHub上同步更新《使用Github Pages管理團隊博客》
GitHub Pages簡介
首先得了解一下什麼是github,GitHub是一個共享虛擬主機服務,用於存放使用Git版本控制的軟件代碼和內容項目(引自維基百科)。也就程序員口中常說的“全球最大的同性交友平臺”,這個平臺會提供一個靜態頁面託管服務。GitHub Pages是這樣介紹自己,"You get one site per GitHub account and organization, and unlimited project sites. " 簡而言之,就是每個賬號都擁有個同名的username.github.io站點可供個性化展示。
以下是官方展示使用命令行創建GitHub Pages頁的樣例:
$ git clone https://github.com/username/username.github.io
$ cd username.github.io
$ echo "Hello World" > index.html
$ git add --all
$ git commit -m "Initial commit"
$ git push -u origin master
只需幾行命令就能擁有一個終身免費,免備案的靜態站點。當然如果使用每次發佈都要手寫html文件的話有點讓人受不了。好在GitHub對markdown格式極度友好,業界也對此開源了許多博客工具,如Hexo,Hugo,Jekyll等等。網上也有很多入門教程,如:《傻瓜都可以利用github pages建博客》。
工欲善其事必先利其器
F團隊決定入坑GitHub Pages後,關於如何管理博客。成員M安利了Hexo靜態博客框架。
官方簡紹如下:
看上去不難用,而且Hexo文檔相當完善,安裝hexo需要Nodejs環境,先去Nodejs官網下載裝好再進行下一步操作。
再看一下hexo的部署方式。
通過拜讀hexo-deployer-git插件的部署方式,我們可以認爲需要新建一個hexo項目對GitHub Pages進行發佈。
於是通過hexo init lesson-learned
初始化項目。
$ hexo init lesson-learned
INFO Cloning hexo-starter to E:\git\18riders\lesson-learned
......
added 421 packages in 50.302s
INFO Start blogging with Hexo!
至此,Github Pages的博客雛形算是搭好了。剩下的就是優化點了。
主要是追加hexo-deployer-git
和hexo-asset-image
兩個插件。
hexo-deployer-git
支持git deploy部署模式,自不用說。
hexo-asset-image
支持圖片相對路徑引用。
開始寫作
以本文爲例吧,建議使用命令行初始化文章,文章命名使用英文和橫杆連接,不要出現中文。
hexo new [post] build-team-blog-with-github-pages
上述命令會在source/_posts
目錄下生產同名文件和同名文件夾。
本文所引用的圖片和其他資源都可以通過相對路徑從文件夾中引入。寫作使用markdown語法,就不展開了。
建議使用<!-- more -->
標籤將摘要和正文隔開,會使得段落更錯落有致,如:
還有就是善用categories和tags標籤,使文章能更好的進行分類
寫作時可以一邊寫,一邊執行hexo s
命令,進行實時預覽,能對文章進行更好的調整。
$ hexo s
$ INFO Start processing
$ INFO Hexo is running at http://localhost:4000 . Press Ctrl+C to stop.
在瀏覽器中打開http://localhost:4000查看效果。
更多的實用寫作技巧可以查閱markdown詳細語法,如表格、圖表、數學公式之類的markdown有成熟的展示方案,還有的就是Hexo的寫作指南,本文所有提及的知識點都能在上面找到。
團隊協作
這塊其實日常開發一樣了,項目下加入成員。每個成員可以通過拉取分支再合併到主幹模式寫作,也可以自己直接推送到master分支上。推送完成,使用master分支執行hexo g
和hexo d
命令發佈到GitHub Pages上即可。
$ hexo g
$ hexo d
當然,強烈建議能形成一版操作規範。不然這種無審覈的自由式寫作很快會分化成一鍋粥。
總結
很高興團隊能進一步擁抱GitHub生態圈,其實GitHub Pages除了作爲博客平臺外,很多個人和團隊也將其作爲自己項目的API說明和項目說明使用。如《Kafka技術內幕》作者的Kafka技術內幕附錄;有贊團隊的前端組件的API文檔;當然還有很多開源翻譯團體也在使用這項功能。此外,首個版本使用的主題是偏向簡約型的Next
主題,如有更合適的主題或優化方案可以持續優化。