hexo部署github和gitment操作簡單介紹

来源:https://www.cnblogs.com/xcg-yg/archive/2018/01/31/8394022.html
-Advertisement-
Play Games

優點: 快速高效 支持markdown 佈局自定義簡單,無廣告 部署簡單 因為想開始寫博客,但又找不到好的博客平臺,平時都看博客園和開源中國看博客文章,但博客園的那個皮膚是真有點難受,所以就想自己打個博客平臺用著,然後blog的話還是發表到博客園,博客園叫 姚剛,有興趣的關註一下,以後會出一些關於運 ...


優點:

  • 快速高效
  • 支持markdown
  • 佈局自定義簡單,無廣告
  • 部署簡單

因為想開始寫博客,但又找不到好的博客平臺,平時都看博客園和開源中國看博客文章,但博客園的那個皮膚是真有點難受,所以就想自己打個博客平臺用著,然後blog的話還是發表到博客園,博客園叫 姚剛,有興趣的關註一下,以後會出一些關於運維和oracle的文章


本次環境:
個人筆記本+centos6.9 + node.js v8.9.4 + theme(NexT.Mist v5.1.4)+ githup + gitment

因為第一次開始搭建,主要記錄一下操作步驟,可能對原理和其他分析不太全面,請原諒,有不當的或錯誤的見解希望指正。反正博客剛開始也沒有訪問量,所以就不打算購買功能變數名稱,將個人博客部署到githup就好。

正文

安裝git

先安裝git 或者node.js都行

#直接yum進行安裝、
yum -y install git-core
#初始化
git config --global user.name "yao gang"
git config --global user.email "[email protected]"

安裝node.js

#下載適合自己平臺的進行解壓:https://nodejs.org/zh-cn/download/
#我裝了minimal版,下載node.js源碼進行編譯安裝,開始報錯,沒有gcc g++
yum -y install gcc gcc-c++    #註意是 gcc-c++ 而不是 g++
#開始編譯
./configure --prefix=/usr/local/node.js.8.9.4
#報警告  WARNING: C++ compiler too old, need g++ 4.9.2 or clang++ 3.4 (CXX=g++)
#升級c++編譯器gcc
#下載源碼包進行編譯安裝 https://ftp.gnu.org/gnu/gcc/
#我下載 4.9.2,因為我怕版本太高其他依賴又可能出問題

wget http://gcc.skazkaforyou.com/releases/gcc-4.9.2/gcc-4.9.2.tar.gz;
tar -zxvf gcc-4.9.2.tar.gz
cd gcc-4.9.2
mkdir build
cd build
yum install gmp-devel mpfr-devel libmpc-devel
../configure --prefix=/usr
make && make install     # 如果期間還出現問題,小的可以忽略,但需要安裝成功,否則自行百度解決

#返回node.js.8.9.4目錄下
./configure --prefix=/usr/local/node8.9.4
make && make install       #直到安裝成功

安裝hexo

# 編輯 /etc/profile (使用vim)
vim /etc/profile
# 在底部添加 PATH 變數
export PATH=$PATH:/usr/local/node8.9.4/bin
# 保存退出,先按exit鍵,再按shift+:
wq
# 最後保存並使其生效即可
source /etc/profile
# 執行命令有輸出即代表安裝和環境配置成功
node --version  #  v8.9.4

配置hexo

# 創建目錄
mkdir blog
# 切換目錄
cd blog
# 安裝 Hexo
npm install -g hexo-cli
# 查看
執行命令:  hexo version # 有輸出:
hexo-cli: 1.0.4
os: Linux 2.6.32-696.el6.x86_64 linux x64
http_parser: 2.7.0
node: 8.9.4
v8: 6.1.534.50
uv: 1.15.0
zlib: 1.2.11
ares: 1.10.1-DEV
modules: 57
nghttp2: 1.25.0
openssl: 1.0.2n
icu: 59.1
unicode: 9.0
cldr: 31.0.1
tz: 2017b

#安裝hexo 插件
npm install hexo-generator-index --save
npm install hexo-generator-archive --save
npm install hexo-generator-category --save
npm install hexo-generator-tag --save
npm install hexo-server --save
npm install hexo-deployer-git --save
npm install hexo-deployer-heroku --save
npm install hexo-deployer-rsync --save
npm install hexo-deployer-openshift --save
npm install hexo-renderer-marked --save
npm install hexo-renderer-stylus --save
npm install hexo-generator-feed --save
npm install hexo-generator-sitemap --save
後面部署會用到 hexo-deployer-git --save,其他的好像不安裝也行,我當時使用簡單,並沒有用到。


# 初始化 Hexo
hexo init
ls  # 生成hexo工程: _config.yml  db.json  node_modules  package.json  package-lock.json  public  scaffolds  source  themes

# _config.yml  hexo的主要配置文件 
# db.json         hexo的文件存儲,以後的博客文章文件應該就是存儲在這裡
# node_modules   node的模塊
# package.json      hexo的插件
# package-lock.json  node的相關依賴
# public                  後面部署就是部署這裡的文件
# scaffolds             模板文件,可以編譯下麵的模板供後續使用,post、page 和 draft,預設是post
# source          使用hexo命令寫作的博客頁面都是在這下麵,可以手動拷貝到此路勁下指定位置
# themes         hexo的主題配置文件

這裡介紹幾個hexo命令

hexo init   # 在當前路勁初始化hexo博客框架工程
hexo generate/hexo g  # 後面是簡寫,講hexo的 .md 博客文件通過 node.js 渲染生成靜態頁面
 hexo deploy/hexo d # 將生成到public下麵的靜態文件部署到xx/blog/_config.yml 指定的地方,待會我會配置為githup的一個用戶名倉庫,省的購買功能變數名稱,需要安裝git部署插件
hexo server/hexo s # 啟動hexo伺服器,訪問入口http://localhost:4000(註意防火牆)
hexo clean # 刪除上面的db.json數據存儲文件
hexo d -g # 先生成,接著部署到制定位置
hexo s -g # 先生成,接著在本地啟動伺服器
hexo new "我的hexo博客文章1"  # 這就是博客的文章內容
hexo new page "測試頁面1" # hexo new page "categories" hexo new page "categories"(主要用到這2個頁面,當然你可以在豐富一些,這兩個頁面主要是用來做博客菜單按鈕的跳轉頁面使用的)

這部分有點雜亂,但也是為了給新手說明一下配置文件,也可以看官網文檔 https://hexo.io/zh-cn/docs/

上面我們初始化以後,執行 hexo s -g 會在public裡面按預設的post佈局生成靜態的html、css、js等文件,訪問 localhost:4000,即可看到原生最簡單的hexo主頁了。ctrol + c關閉伺服器。

到這裡,我們的hexo伺服器已經基本完成,是不是很簡單呢?如果你購買了功能變數名稱的話,再設置一下喜歡的主題,就完成了。

配置githup

由於我的博客沒有人氣,所以捨不得買功能變數名稱,就把它部署到github,使用它的用戶功能變數名稱吧,雖然在國外,其實速度也還好啦。你可以點擊我的博客試試,可能你要FQ才能訪問

# 首先,需要註冊github,然後創建倉庫,倉庫名需要 重點 註意一下: 用戶名 + .github.io
# 例子:我的倉庫名為: hd-yaogang.github.io 我的用戶名是 :hd-yaogang
# 以後你的博客功能變數名稱就是 xxx.github.io,我的就是 hd-yaogang.github.io

#設置hexo所在伺服器可以使用git免密ssh部署到 github
#在hexo伺服器生成rsa免密私鑰和公鑰
ssh-keygen  -t  rsa # 一直回車即可,然後執行命令
cat /root/.ssh/id_rsa.pub # 將輸出的ssh-rsa到結束的一段內容,將這段內容保存到github

點進進入github倉庫,再依次點擊 settings-->Deploy keys-->add deploy key,然後隨意設置key名字,將 /root/.ssh/id_rsa.pub 的內容粘貼到裡面,點擊保存完成即可。

部署hexo

# 首先測試一下git,執行命令
mkdir git_test
cd  git_test
git clone git@[email protected]:hd-yaogang/hd-yaogang.github.io.git
預設會克隆主分支master,雖然是空的目錄,但是也能驗證git是否免密登錄了

# 編輯hexo主要配置文件
[root@yg blog]# vim _config.yml  # 註意你所在位置
# 找到下麵,模仿著修改一下,註意type是git,註意:後面 有空格,註意配置文件的屬性顏色能提示你對不對

deploy:
  type: git
  repo: [email protected]:hd-yaogang/hd-yaogang.github.io.git
  branch: master
  message: 'yg-blog 站點更新:{{now("YYYY-MM-DD HH/mm/ss")}}'

# 執行命令
hexo new “我的hexo 測試博客1”
hexo s -g # 訪問http://localhost:4000
# 然後部署到git
hexo d -g # 訪問 https://hd-yaogang.github.io ,已經顯示博客了

配置hexo theme

[root@yg blog]# git clone --branch v5.1.2 https://github.com/iissnan/hexo-theme-next themes/next
# 下載next主題,也可以自己下載其他喜歡的,放到theme下麵即可,這主題不錯,後續根據自己需要再改一些
# 啟用next主題
[root@yg blog]# vim _config.yml  # 找到theme編輯為:      theme: next
# 重新部署
hexo d -g # 刷新git的博客功能變數名稱,多刷幾次,可能有點慢,主題已經改變的很簡潔。

主題的細節設置參考,很詳細了:
http://theme-next.iissnan.com/theme-settings.html
http://www.jeyzhang.com/next-theme-personal-settings.html
http://shenzekun.cn/hexo%E7%9A%84next%E4%B8%BB%E9%A2%98%E4%B8%AA%E6%80%A7%E5%8C%96%E9%85%8D%E7%BD%AE%E6%95%99%E7%A8%8B.html
http://michael728.github.io/2015/11/30/hexo-next-optimize/

配置gitment

hexo有很多評論插件,當時也沒多研究,就直接上了gitment,可能看的教程簡單吧,哈哈哈,但是他評論時候需要登錄githup,而且剛開始部署時,這個插件時有時無,有時你刷一下博客評論就不見了。樣式的話還不錯,可以看我博客評論的樣子 https://hd-yaogang.github.io
首先到github登錄,然後依次點擊-->賬戶-->settings-->Developer settings-->New Aouth App,名字叫 Gitment ,homeURL和AuthorizationURL都填寫你的功能變數名稱:https://hd-yaogang.github.io,後面會生成 client ID和 Client Secret,需要配置到hexo的主題配置文件中

然後創建一個空的倉庫,名字是:gitment-comments
然後編輯主題配置文件:# 修改相應的,其餘的和空著的不用管

gitment:
  enable: true
  mint: true 
  count: true 
  lazy: false
  cleanly: false
  language: zh-Hans # 這是指定插件為中文
  github_user: hd-yaogang  # 這是github用戶名
  github_repo: gitment-comments  # 這是空的倉庫名,用來存儲評論內容
  client_id: cc592528b859ff59a848  # 這是創建app時的id
  client_secret: 80fe54cd8f5f7d58997cc268e376e1552c7020c7 # 這是創建app時的秘鑰
  proxy_gateway: 
  redirect_protocol: 

# 再次部署
hexo  d  -g

結語

由於每個人能力與想法、環境各都不同,所以可能嫌我寫的差,寫的啰嗦,寫的不好
但是慢慢來,希望有錯誤的話幫忙指出,謝謝!


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 原因就是C#中使用多線程使用HttpWebRequest時,預設的連接數只有2。 然後有時候因為對方伺服器的原因導致訪問超時,如果沒有做超時處理的話,request對象就不會被釋放,後面便導致一系列的問題。 解決方法之一就是在調用HttpWebRequest對象之前將連接數改大。 在一般處理程式中添 ...
  • Options 選項 OptionsBehavior 視圖的行為選項 AllowAddRows 允許添加新數據行 AllowDeleteRows 允許刪除數據行 AllowIncrementalSearch 允許用戶通過輸入想得到的列值來定位行 AllowPartialRedrawOnScrolli ...
  • WebApi系列文章 【01】淺談HTTP在WebApi開發中的運用 【02】聊聊WebApi體繫結構 【03】詳解WebApi參數的傳遞 【04】詳解WebApi測試和PostMan 【05】淺談WebApi Cores 【06】詳解WebApi 異常處理 【07】用WebAPI寫個基於EF的CU ...
  • 前段時間接觸了EntityFramework,對ORM框架也是有了初步的認識,現在對其進行一點小總結。 一、ORM簡介 對象關係映射(Object Relational Mapping,簡稱ORM)模式是一種為瞭解決面向對象與關係資料庫存在的互不匹配的現象的技術。簡單的說,ORM是通過使用描述對象和 ...
  • 人的記憶有時候跟魚一樣,只有七秒鐘,短暫的時間! .NET Web窗體實現忘記密碼,使用QQ郵箱驗證修改 一、首先設置一下發送個人或企業發送的郵箱 二、登錄郵箱進行設置,如圖: 三、關閉郵箱 四、開始寫代碼。。。 1.前端就簡單的設計下 2.後臺首先引用命名空間 using System.Net;u ...
  • 關於C#里的取整問題,有向上和向下兩種取整方式[1]向上取整a=1.2345string res = Math.Ceiling(Convert.ToDecimal(a)).ToString();string res = Math.Ceiling(Convert.ToDouble(a)).ToStri ...
  • 最近的工作需要在程式界面上顯示實時的系統時間,網上查了查大部分都是用Timer或者線程來實現。 個人非常不喜歡用Timer,感覺這東西有點太耗資源,然後思考了下覺得更好的方法應該是使用非同步的方法在委托中更新時間,比線程簡單,效率和性能上又要比Timer好很多。 實現方法很簡單啦,先定義一個DateT ...
  • ![](http://images2017.cnblogs.com/blog/1319058/201801/1319058-20180131234834359-411435394.png) ![](http://images2017.cnblogs.com/blog/1319058/201801/1... ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...