使用hexo+github搭建免費個人博客詳細教程

来源:https://www.cnblogs.com/selier/archive/2018/09/01/9568165.html
-Advertisement-
Play Games

Windows環境下Git安裝、配置SSH key、安裝node.js npm、安裝Hexo及配置 ...


Windows環境下Git安裝、配置SSH key、安裝node.js npm、安裝Hexo及配置、發佈博客

前言

使用github pages服務搭建博客的好處有:

  1. 全是靜態文件,訪問速度快;
  2. 免費方便,不用花一分錢就可以搭建一個自由的個人博客,不需要伺服器不需要後臺;
  3. 可以隨意綁定自己的功能變數名稱,不仔細看的話根本看不出來你的網站是基於github的;
  4. 數據絕對安全,基於github的版本管理,想恢復到哪個歷史版本都行;
  5. 博客內容可以輕鬆打包、轉移、發佈到其它平臺;
    等等;

準備工作

在開始一切之前,你必須已經:

本文所使用的環境:

Windows 10
[email protected] x64
[email protected] x64
[email protected]

搭建github博客

創建倉庫

新建一個名為 你的用戶名.github.io 的倉庫,比如說,如果你的github用戶名是 test ,那麼你就新建 test.github.io 的倉庫( 必須是你的用戶名 ,其它名稱無效),將來你的網站訪問地址就是 http://test.github.io 了,是不是很方便?

由此可見,每一個github賬戶最多只能創建一個這樣可以直接使用功能變數名稱訪問的倉庫。

幾個註意的地方:

  1. 註冊的郵箱一定要驗證,否則不會成功;
  2. 倉庫名字必須是:username.github.io ,其中username是你的用戶名;
  3. 倉庫創建成功不會立即生效,需要過一段時間,大概10-30分鐘,或者更久;

創建成功後,預設會在你這個倉庫里生成一些示例頁面,以後你的網站所有代碼都是放在這個倉庫里啦。

具體步驟截圖如下:

新建倉庫

創建完成

過了一會後就可以訪問自己的網站啦!

安裝Git

下載安裝

打開Git 下載地址 ,我們點 windows

這裡我推薦使用便攜版,因為很多人不喜歡安裝軟體,何況又是一個不太經常使用的軟體,所以便攜版安裝卸載都很方便
如果下載的是安裝版,那麼你直接按預設值一直點下一步就可以了。如果實在不會安裝可以去網上找教程。

便攜版下載完只需要解壓,再配置環境變數

下載完後解壓的文件如下:

打開系統的環境變數,編輯Path環境變,新建路徑: git的存放目錄

至此,git算是安裝完成啦,我們可以打開控制台測試一下

win + r 輸入 cmd ,然後 輸入 git --version

配置SSH key

為什麼要配置這個呢?因為你提交代碼肯定要擁有你的github許可權才可以,但是直接使用用戶名和密碼太不安全了,所以我們使用ssh key來解決本地和伺服器的連接問題。

1、運行命令: ssh-keygen -t rsa -C "郵件地址" 。郵件地址可以登錄你的github - Setting - Emails 查看

2、然後連續3次回車,最終會生成一個文件在用戶目錄下

3、打開用戶目錄,找到 .ssh\id_rsa.pub 文件,記事本打開並複製裡面的內容

4、打開你的github主頁,進入 個人設置 - SSH and GPG keys - New SSH key

將剛複製的內容粘貼到key那裡,title隨便填,保存。

5、測試連接

運行命令: ssh -T [email protected]註意這條命令不用修改,直接運行

6、全局配置

git config --global user.name "selier"    // 你的github用戶名,非昵稱
git config --global user.email  "郵箱@qq.com"    // 填寫你的github註冊郵箱

至此,你的Git就配置好了

安裝 node.js

下載安裝 nodeJs ,隨便選一個即可,下載後安裝時一路預設next (安裝路徑可以自選)。

安裝完成後,測試是否安裝成功

在 控制臺中 輸入 node -vnpm -v

此處說明下:新版的Node.js已自帶npm,安裝Node.js時會一起安裝,npm的作用就是對Node.js依賴的包進行管理,也可以理解為用來安裝/卸載Node.js需要裝的東西

使用hexo寫博客

1、簡介

Hexo 是一個簡單、快速、強大的基於 Github Pages 的博客發佈工具,支持Markdown格式,有眾多優秀插件和主題。

2、原理

由於github pages存放的都是靜態文件,博客存放的不只是文章內容,還有文章列表、分類、標簽、翻頁等動態內容,假如每次寫完一篇文章都要手動更新博文目錄和相關鏈接信息,相信誰都會瘋掉,所以hexo所做的就是將這些md文件都放在本地,每次寫完文章後調用寫好的命令來批量完成相關頁面的生成,然後再將有改動的頁面提交到github。

3、註意事項

安裝之前先來說幾個註意事項:

  1. 很多命令既可以用Windows的 cmd 來完成,也可以使用 git bash / git cmd來完成,但是這裡因為我用的是便攜版 git ,所以我用的是git目錄下的 git-cmd
  2. git安裝版會集成滑鼠右鍵菜單 git-bash ,所以下麵很多步驟中需要通過git跳轉到某個目錄的,你可以直接打開這個目錄,在空白處右鍵 - git-bash
  3. hexo不同版本差別比較大,網上很多文章的配置信息都是基於2.x的,所以註意不要被誤導;
  4. hexo有2種 _config.yml 文件,一個是根目錄下的全局的 _config.yml ,一個是各個 theme 下的;

4、安裝

1、打開 git-cmd ,輸入 npm install hexo-cli -g 進行安裝。如果顯示報錯“ 沒有這個指令 ”,請點擊 這個網站 看第五點,配置nodeJs全局環境。

可能你的網路無法訪問網站並安裝,那麼你可以通過 淘寶NPM鏡像 來安裝: npm install -g cnpm --registry=https://registry.npm.taobao.org ,之後下麵的所有用到 npm 的命令,可以使用 cnpm 代替 ,如 npm install hexo-cli -g 改成 cnpm install hexo-cli -g

2、 再輸入 npm install hexo --save ,等待安裝完成。

3、初始化

3.1、在電腦的某個地方新建一個文件夾(名字可以隨便取),比如我的是 D:\我的文檔\selierlin.github.io ,由於這個文件夾將來就作為你存放代碼的地方,所以最好不要隨便放。

3.2、打開 git-cmd ,跳轉到剛剛創建的文件夾位置,運行命令 hexo init

然後會在你的文件夾中搭建好了環境

5、配置 __config.yml

1、修改一些你的博客名字、描述、作者等。同時大家可以修改自己的主題,更多主題 點擊這裡 。修改主題就修改 _config.yml 裡面的 theme更多關於其他配置信息修改請點擊這裡訪問hexo官方文檔

_config.yml 文檔修改所有信息都要註意, 冒號後面一定要有一個空格

2、hexo與github關聯配置

  • type改成git
  • repo的格式就是:[email protected]:你的用戶名/你的用戶名.github.io.git
  • branch為master

6、啟動本地服務

1、使用 git-cmd 跳轉到你的博客目錄,依次輸入以下命令

hexo g  # 生成
hexo s  # 啟動服務

2、然後可以通過瀏覽器訪問:http://127.0.0.1:4000 你就看到你的博客樣子啦。停止你的本地伺服器,你可以在Git命令頁面按住 Ctrl+C 來停止。

如果瀏覽器一直轉圈圈,載入不出來,一般情況下是因為埠占用的緣故,解決方法

7、上傳到Github

在上傳代碼到github之前,一定要記得先把你以前所有代碼下載下來(雖然github有版本管理,但備份一下總是好的),因為從hexo提交代碼時會把你以前的所有代碼都刪掉。

1、確認你的 _config.yml 文件已經配置了Deployment

2、git-cmd 跳轉到博客目錄,安裝Hexo部署的插件 : npm install hexo-deployer-git --save

3、使用 git-bash 跳轉到博客目錄 ,運行命令 hexo d

同時,在你的github上已經上傳了文件

如果出現 Deployer not found: git 說明Hexo部署的插件沒有安裝好

4、發佈完成,現在可以通過 你的用戶名.github.io 訪問自己的網站啦

其它

1、保留CNAME、README.md等文件

提交之後網頁上一看,發現以前其它代碼都沒了,此時不要慌,一些非md文件可以把他們放到source文件夾下,這裡的所有文件都會原樣複製(除了md文件)到public目錄的

由於hexo預設會把所有md文件都轉換成html,包括README.md,所有需要每次生成之後、上傳之前,手動將README.md複製到public目錄,並刪除README.html。

2、常用hexo命令

常見命令

hexo new "postName" #新建文章
hexo new page "pageName" #新建頁面
hexo generate #生成靜態頁面至public目錄
hexo server #開啟預覽訪問埠(預設埠4000,'ctrl + c'關閉server)
hexo deploy #部署到GitHub
hexo help  # 查看幫助
hexo version  #查看Hexo的版本

縮寫:

hexo n == hexo new
hexo g == hexo generate
hexo s == hexo server
hexo d == hexo deploy

組合命令:

hexo s -g #生成並本地預覽
hexo d -g #生成並上傳

3、_config.yml

這裡面都是一些全局配置,每個參數的意思都比較簡單明瞭,所以就不作詳細介紹了。更多關於其他配置信息修改請點擊這裡訪問hexo官方文檔

需要特別註意的地方是,冒號後面必須有 一個空格 ,否則可能會出問題。

4、寫博客

寫博客並上傳的過程如下:

  • 在hexo根目錄使用 hexo new '標題' 創建文章
  • 編寫文章後,使用 hexo g 生成靜態文件到public
  • 使用 hexo d 發佈到github

也可以使用組合命令 hexo d -g 生成並上傳


定位到我們的hexo根目錄,執行命令: hexo new 'my-first-blog'

hexo會幫我們在_posts下生成相關md文件

我們只需要打開這個文件就可以開始寫博客了,預設生成如下內容

當然你也可以直接自己新建md文件,用這個命令的好處是幫我們自動生成了時間。

一般完整格式如下:

---
title: postName #文章頁面上的顯示名稱,一般是中文
date: 2013-12-02 15:30:16 #文章生成時間,一般不改,當然也可以任意修改
categories: 預設分類 #分類
tags: [tag1,tag2,tag3] #文章標簽,可空,多標簽請用格式,註意:後面有個空格
description: 附加一段文章摘要,字數最好在140字以內,會出現在meta的description裡面
---

以下是正文

那麼 hexo new page 'postName' 命令和 hexo new 'postName' 有什麼區別呢?

hexo new page "my-second-blog" 生成如下:

最終部署時生成:博客目錄\public\my-second-blog\index.html ,但是它不會作為文章出現在博文目錄。

5、修改主題

既然預設主題很醜,那我們首先來替換一個好看點的主題。這是 官方主題

這裡我推薦幾款不錯的主題:

倉庫地址 演示地址
NexT https://notes.iissnan.com/
NexT6.0 https://theme-next.org/
yilia http://litten.me/
yelee http://moxfive.xyz/
material https://blog.nfz.moe/
indigo https://imys.net/
maupassant https://www.haomwei.com

安裝步驟:

  • 打開 git-cmd ,跳轉到你的博客目錄
  • 使用 git 拉取主題 git clone 倉庫主題地址.git themes/主題名稱 ,意思是下載主題並將其保存到themes目錄下

如:git clone https://github.com/iissnan/hexo-theme-next.git themes/next

  • 修改 主目錄下 _config.yml 中的 theme: landscape 改為 theme: next ,然後重新執行 hexo g 來重新生成。

如果出現一些莫名其妙的問題,可以先執行 hexo clean 來清理一下public的內容,然後再來重新生成和發佈 hexo d -g

  • 安裝完主題後,建議開啟標簽頁、分類頁

由於某些主題需要用到標簽、分類,但是它的安裝方法中又沒有描述清楚。基於我的個人經驗,建議都開啟

1、開啟標簽頁命令 :hexo new page tags ,在 博客目錄/source/tags/index.md 添加元數據:

layout: tags
comments: false

2、開啟分類頁命令 :hexo new page categories ,在 博客目錄/source/categories/index.md 添加元數據:

layout: categories
comments: false

6、如何讓博文列表不顯示全部內容

預設情況下,生成的博文目錄會顯示全部的文章內容,如何設置文章摘要的長度呢?

答案是在合適的位置加上 <!--more--> 即可,例如:

# 前言

使用github pages服務搭建博客的好處有:

1. 全是靜態文件,訪問速度快;
2. 免費方便,不用花一分錢就可以搭建一個自由的個人博客,不需要伺服器不需要後臺;
3. 可以隨意綁定自己的功能變數名稱,不仔細看的話根本看不出來你的網站是基於github的;

<!--more-->

4. 數據絕對安全,基於github的版本管理,想恢復到哪個歷史版本都行;
5. 博客內容可以輕鬆打包、轉移、發佈到其它平臺;
6. 等等;

最終效果:


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

-Advertisement-
Play Games
更多相關文章
  • 之前從來沒有使用過Dbvisualizer軟體,用起來之後發現比mysqlfront不是好一點。之前一直不知道sql語句的自動提示功能,只能一個個單詞輸入,而且不是預設設置。之後在網上找到了怎麼設置,現在找到了記錄一下。 設置自動提示方法: 點擊Tool->Tool Properties->SQL ...
  • MySQL: ERROR 1040: Too many connections”的異常情況,造成這種情況的一種原因是訪問量過高,MySQL伺服器抗不住,這個時候就要考慮增加從伺服器分散讀壓力;另一種原因就是MySQL配置文件中max_connections值過小。首先,我們來查看mysql的最大連接 ...
  • 碎片產生的原因 (1)表的存儲會出現碎片化,每當刪除了一行內容,該段空間就會變為空白、被留空,而在一段時間內的大量刪除操作,會使這種留空的空間變得比存儲列表內容所使用的空間更大; (2)當執行插入操作時,MySQL會嘗試使用空白空間,但如果某個空白空間一直沒有被大小合適的數據占用,仍然無法將其徹底占 ...
  • 大數據的領域非常廣泛,往往使想要開始學習大數據及相關技術的人望而生畏。大數據技術的種類眾多,這同樣使得初學者難以選擇從何處下手。本文將為你開始學習大數據的徵程以及在大數據產業領域找到工作指明道路,提供幫助。 大數據學習QQ群:119599574 如何開始學習大數據? 人們想開始學習大數據的時候,最常 ...
  • 貝塞爾曲線: 貝塞爾曲線於 1962,由法國工程師皮埃爾·貝塞爾所廣泛發表,他運用貝塞爾曲線來為汽車的主體進行設計。貝塞爾曲線最初由 Paul de Casteljau 於 1959 年運用 de Casteljau 演演算法開發,以穩定數值的方法求出貝茲曲線。貝塞爾曲線主要用於二維圖形應用程式中的數 ...
  • 今天在整一個項目,需要利用串口通訊在網上看了好多人的帖子才稍微整齣了一點頭緒。 首先串口代碼就是利用谷歌自己的api,將java代碼放在java/android_serialport_api目錄下,如果你想改變這個報名需要用jni重新生成so文件,在這裡我是直接使用這個包名來簡化工作。 androi ...
  • 碎碎念 今年七月份本科畢業後入職一家會議平板公司,經過一個一個多月的鹹魚培訓輪崗生活,接手了幾個小任務,本次記錄一下其中一個任務:修改安卓5.0系統瀏覽器UI。剛接到任務的時候,本以為是很簡單的一個任務,從我以往淺薄的開發經驗來看,僅僅是修改UI佈局那自然是輕鬆愉快的事情,但是現實很骨感,經歷重重磨 ...
  • 比較出名的資料庫框架 GreenDao使用步驟: 1、app目錄下的build.gradle文件 添加依賴 頂部添加插件 2、根目錄下的build.gradle文件 配置 3、app目錄下的build.gradle文件 對generator生成文件配置 4、創建實體類,生成dao文件 5、make ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...