Hexo最新實戰:(一)Hexo7.0+GitHub Pages博客搭建

前言

很多平臺都能寫博客還有創作激勵,為什么我又要搭一個?為什么這次要選擇用Hexo框架?

對應的原因是流量自由和省錢,第一個,很多平臺能寫但不是都有收益,而且平臺有自身的規則,比如會屏蔽一些推廣類信息。如果我哪天做了一產品,是沒辦法直接用平臺博客的方式硬推的,至少放碼和鏈接不行。第二個用Hexo搭到GitHub上,我可以不用買服務器,畢竟現在也還沒有想法要做一個什么樣的東西。

總之,有個獨立博客,相比平臺博客在內容約束上更自由。有想法了就發出來,做了游戲什么的就放出來,md的文章以后要存儲備份可以轉word,更方便在副業的路上輕裝探索。

Hexo介紹

Hexo是一款基于Node.js的開源靜態博客框架,用于快速、簡單且高效地搭建個人或團隊的靜態博客網站。說白了他是一個靜態網站生成器,我們新增文章只需要編輯md文件,通過運行命令再生成像html的靜態文件。其實我挺早聽過Hexo,但一直沒用,直到我cms搭的博客別人掛馬后。我關閉網站全面使用平臺博客,但經種種原因,我又萌生了建獨立博客的想法,并且這次打算走長期路線,第一步先記錄上次Hexo搭建過程僅供參考。

流程

  • 本地構建Hexo

  • 配置 GitHub

  • 代碼上傳與備份

  • 個性化域名綁定

環境搭建

Hexo的博客,不管是頁面的添加還是構建都是通過npm命令,所以最基本要把Node安裝了。項目部署和部署的地方又在GitHub,所以Git也要提前裝好。這里強調一下,運行Hexo命令最好在Git的GUI窗口里,不要用Windows的cmd,坑多,關于Node和Git環境安裝就跳過了。

構建Hexo

安裝Hexo

npm install -g hexo

檢驗Hexo是否安裝

hexo -v

項目構建

# 創建一blog項目
hexo init blog
?
# 進入項目
cd blog
?
# 安裝依賴包
npm install

其他操作

#右鍵 Git Bush,用戶項目自動化部署
npm install hexo-deployer-git --save
?
hexo _config.yml中文亂碼問題
用Notepad++等編輯器打開,選擇 “編碼” -> “轉為UTF-8編碼”

安裝項目開發者操作包.jpg

項目預覽

# 清理舊的靜態文件
hexo clean
?
# 生成靜態文件
hexo g
?
# 運行預覽項目
hexo s

Snipaste_2024-05-23_19-55-21.jpg

Snipaste_2024-05-23_19-57-44.jpg

配置 GitHub

這里雖然只是寫的配置GitHub,其實包含了本地用Git生成SSH密鑰對,和GitHub上公鑰添加,提交Token的獲取,以及Pages服務的開啟。還有倉庫名的建立也有講究,下面就從這些點開始逐一展開。

建立倉庫

倉庫名是個什么講究法呢?就是格式要保持 “github賬號名.github.io”, 比如我的賬戶名是“z11r00”,那么倉庫就要建成 “z11r00.github.io”。如果不這樣,最后等用Hexo部署完畢后,初始的域名可能就是 “github賬號名.github.io/倉庫名”,會在后面多了一個路徑,而且hexo的config沒有設置好連css都加載不出來。

image.png

設置SSH

GitHub 的 SSH(Secure Shell)主要用于安全地連接到 GitHub 服務器,其實就是平時Git常用的克隆、拉取、提交、推送等操作。而好處除了安全外,就是提交代碼不用每次都要輸入賬號密碼。如果安裝了hexo-deployer-git的話,只需一個命令就可以完成項目從靜態構建到自動部署。

生成SSH密鑰對

打開Git面板,輸入 “ssh-keygen -t rsa -C GitHub賬戶”, 這里的GitHUb賬戶是你登陸GitHub的郵箱等方式。生成后找到目錄下的id_rsa.pub(公鑰),用編輯器打開并復制。

實際生成id_rsa文件.jpg

GitHub中添加SSH公鑰

登陸GitHub網站,點擊個人頭像,找到 “Settings”->"SSH and GPG keys"后,點擊 “New SSH keys”,最后將前面復制的很長的公鑰字符串粘貼到Key文本框中。

github添加ssh.jpg

github添加ssh key.jpg

github粘貼ssh.jpg

驗證設備是否可連接

通過 “ssh -T git@github.com” 命令,驗證當前的設備是否可以連接。

校驗ssh是否綁定.jpg

獲取提交的token

雖然說SSH連接不用一直登陸,但是初次還要要的。而且不光要輸入賬號密碼還需要一個提交用的Token,沒有這個,運行hexo d一直提示Logon failed, 這個后面會集中列出報錯事故的。

獲取token,還是進入“Settins”,找到 “Developer settings”->“Personal access tokens”->“Tokens(classic)”, 然后設置備注和過期時間。最主要的權限要勾選 “workflow”、“gist”、“user”,點擊 “Generate”按鈕,生成的"ghp_"為前綴的就是token了,復制并保存下來。

提交倉庫失敗1.jpg

提交倉庫失敗3.jpg

提交倉庫失敗4.jpg

提交倉庫失敗5.jpg

項目部署

項目部署的其實是將Hexo生成的靜態文件提交到github上,后期添加文章也就是markdown文件,繼續重新生成,重新部署。而項目的代碼卻在本地,雖然代碼量不多,但是里面的package.json和_config.yml,以及用到的主題包,還是有必要保存一下。所以我這里的方法是,靜態部署項目放在一個公有倉庫,而項目源代碼單獨提交到一私有倉庫下。

修改配置

打開項目根目錄下的_config.yml,主要添加倉庫的地址,其他的配置下篇再介紹。因為hexo很多玩法更多的是配置和各種依賴,比如可以添加統計、留言、修改主題、站內搜索、甚至廣告位等等。

image.png

靜態文件生成

通過 “hexo clean” 先清理,然后執行 “hexo g” 重新生成。

將博客編譯為靜態文件項目.jpg

開始部署

通過命令 “hexo d”,開始部署項目,如果第一次運行,就需要前面提到的輸入github賬號密碼。確認Login后會再次彈一個窗口就是輸入Token了,最后完成部署。這里需要注意一下的是,最好用Git面板運行命令,如果是cmd很有可能第二次的窗無法彈出,親測坑點。

頁面上傳.jpg

image.png

訪問測試

部署完成就進入倉庫下,除了查看提交的代碼外,打開倉庫下的 “Settings”,找到 “Pages”。

提交倉庫失敗6.jpg

個性化域名綁定

有一個git域名其實也不錯,為什么還要買一個去綁定呢?一個是我本身這域名就空在這里,第二個是可以給博客增加一點IP點,第三個是更利于某度的爬取。我看其他博主說國內一些搜索引擎屏蔽了github的pages博客,當然我沒有驗證過,下次也要做SEO相關的時候可以測試一下。

獲取IP地址

要想知道當前項目部署的獨立IP地址,只需要ping一下github分配的域名,比如我直接 “ping z11r00.github.io”就可以看到了。

IP獲取.jpg

域名解析

進入購買的域名控制臺,給自己的域名添加兩個解析,一個指向舊域名,一個解析到前面獲取到的IP地址。

域名解析.jpg

項目綁定域名

進入倉庫的“Settings”下,點擊 “Pages”,找到 “Custom domain”,將自己的域名粘貼進文本框保存。然后在項目的“source” 新建CNAME(沒有后綴), 打開文件粘貼域名,比如我的zerofc.cn,最后再重新部署項目訪問。

image.png

報錯匯總

1.extends includes/layout.pug block content include ./includes/mixins/post-ui.pug #recent-posts.recent-posts +postUI include includes/pagination.pug 項目啟動后報的這個,是因為缺失了一些依賴包,上面的是沒有 pug 以及 stylus 的渲染器,解決方法就是安裝對應的依賴。

npm install hexo-renderer-pug hexo-renderer-stylus --save

2.運行后打開hexo博客上的中文亂碼 解決方法是用Notepad++等編輯器打開,選擇 “編碼” -> “轉為UTF-8編碼”。

3.unable to access ''xxxxxx": Empty reply from server 出現這個報錯的是項目初次部署時,原因就是沒有設置Token,解決方法就是前面“配置 GitHub”的“提交Token獲取”部分。

4.unable to access 'xxxxxxxxxx': The requested URL returned error: 403 出現這個一般就是間接性打開GitHub網站,畢竟是國外網站,多刷新幾下,多請求幾下就可以了。

寫在后面

既然博客已經搭起來了,后面還有分兩步走,湊成三部曲。第一個是Hexo的各種配置和插件的玩法,第二個是Hexo博客SEO相關的內容,如果我那個小游戲軟著下來了,可能博客的事情就會延后一點。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18663.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18663.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18663.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【區塊鏈】外部應用程序與區塊鏈進行交互

一,外部應用程序與區塊鏈進行交互案例目標與流程 1.1案例目標 掌握FISCO BCOS應用環境的搭建 與使用(FISCO BCOSWeBASE)掌握基于Java SpringBoot的應 用程序后端項目搭建與開發。掌握應用程序后端與FISCO BCOS 鏈的交互。掌握應用程序前端…

『大模型筆記』量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡!

量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡! 文章目錄 一. 量化 vs 剪枝 vs 蒸餾:為推理優化神經網絡!1.1. 量化(Quantization)1.2. 剪枝(purning)1.3. 知識蒸餾(Knowledge Distillation,也稱為模型蒸餾)1.4. 工程優化(Engineering Optimizations)1.5. 總結二. 參考…

【旅行商問題的優化】

#include<bits/stdc.h> // 包含標準庫的頭文件using namespace std; // 使用標準命名空間template <class Type> // 模板聲明&#xff0c;Type為類型參數 class Traveling{ // 定義Traveling類friend Type Tsp(int **, int[],int, Type); // 聲明友元函數Tsp publi…

WPF hc:PropertyGrid 嵌套顯示

重點&#xff1a; 編寫Edit特性即可&#xff1a; public class ParameterEditor : PropertyEditorBase{public override FrameworkElement CreateElement(PropertyItem propertyItem){var pg new PropertyGrid();return pg;}public override DependencyProperty GetDependen…

2024/5/22 ARMday7

按鍵控制LED燈亮和滅 do_irq.c #include "key_it.h" //#include "led.h" extern void printf(const char *fmt, ...); unsigned int i 0; void do_irq(void) {//獲取中斷號unsigned int irqno(GICC->IAR & (0x3FF));switch (irqno){case 99://處…

Playwright 元素定位

一、get_by_XXXXX 1. get_by_role&#xff1a;根據元素角色進行定位, 常用的參數有兩個&#xff0c;第一個是角色名稱 role&#xff0c;第二個是元素的文本 name。其他參數的解釋大家可以參考源碼注釋。 # 獲取頁面名稱為確定的按鈕 page.get_bt_role(button, name確定) pl…

cfa三級大神復習經驗分享系列(一)

教材還是Notes? 對于愚鈍如我之流&#xff0c;建議大家三級一定要看教材。Note很精華很濃縮&#xff0c;我覺得看過教材再看note感覺總結的很精辟&#xff0c;但是Note是以考點列的&#xff0c;而教材像小說一樣娓娓道來&#xff0c;有邏輯有情節&#xff0c;如果不follow很難…

Android MIPI屏配置

參考資料&#xff1a;RockChip發布的DRM Display Driver Development Guide手冊&#xff0c;以及網上大量相關博客資料 首先要拿到《屏幕硬件規格書》和《DataSheet》&#xff0c;軟件配置主要依靠DataSheet提供數據支持。 查閱DataSheet里面on sequence和off sequence說明&a…

機器學習之爬山算法(Hill Climbing Algorithm)

爬山算法(Hill Climbing Algorithm)是一種簡單而常見的啟發式搜索算法,通常用于解決優化問題。它的基本思想類似于登山過程中爬升到山頂的過程,即從一個起始點開始,不斷嘗試向鄰近的點移動,直到找到一個局部最優解。 下面是爬山算法的基本工作流程: 初始化:選擇一個初…

關于同一個地址用作兩個不同頁面時,列表操作欄按鈕混淆狀態

同一個地址用作兩個不同頁面時&#xff0c;列表頁的操作欄中有好多個按鈕&#xff0c;如果用了v-if&#xff0c;可能會導致按鈕混淆狀態如disabled等屬性混亂 解決方法1&#xff1a; 將v-if換成v-show&#xff0c;用了v-show之后意味著所有按鈕都在只是在頁面上隱藏了 解決方…

【python深度學習】——torch.min()

【python深度學習】——torch.min 1. torch.min()1.1 計算整個張量的最小值1.2 沿特定維度計算最小值1.3 比較兩個張量 1. torch.min() torch.min()接受的參數如下: input: 輸入的張量。dim: 沿指定維度尋找最小值。如果指定了該參數&#xff0c;返回一個元組&#xff0c;其中…

基于Vue+SpirngBoot的博客管理平臺的設計與實現(論文+源碼)_kaic

摘 要 隨著當下社會的發展&#xff0c;互聯網已經成為時代的主流&#xff0c;從此進入了互聯網時代&#xff0c;對大部分人來說&#xff0c;互聯網在日常生活中的應用是越來越頻繁&#xff0c;大家都在互聯網當中互相交流、學習、娛樂。博客正是扮演這樣一個角色。博客已成為當…

[Nodejs]使用adm-zip和fs-extra壓縮打包后的文件

在此之前&#xff0c;操作目錄、壓縮文件是通過scripts來實現的&#xff0c;在windows機器上多有不便&#xff0c;需要通過linux命令行來實現cp、rm命令&#xff1a; "cpdist": "cp -r ./dist/* ../../qw-portal/assetAllocation/", "rmdist": …

實驗八 單區域OSPF路由協議配置

一、實驗目的 掌握 OSPF 動態路由協議的配置、診斷方法。 二、實驗步驟 1、 運行Cisco Packet Tracer軟件&#xff0c;在邏輯工作區放入三臺路由器、兩臺工作站PC及一臺筆記本&#xff0c;分別點擊各路由器&#xff0c;打開其配置窗口&#xff0c;關閉電源&#xff0c;分別加…

如何選擇云服務器

云服務器選擇概述 在選擇合適的云服務器時&#xff0c;需要綜合考慮多個方面的因素&#xff0c;包括但不限于云服務器的類型、配置、價格、性能、安全性、可靠性、擴展性以及服務商的品牌信譽等。以下是根據搜索結果得出的詳細分析和建議。 云服務器選擇詳解 云服務器類型選…

Python裝飾器的應用

Python 中的裝飾器是一種語法糖&#xff0c;可以在運行時&#xff0c;動態的給函數或類添加功能。裝飾器本質上是一個函數&#xff0c;使用 函數名就是可實現綁定給函數的第二個功能 。它的作用就是在不修改被裝飾對象源代碼和調用方式的前提下為被裝飾對象添加額外的功能。 …

策略模式代碼

import java.util.*; enum TYPE { NORMAL,CASH_DISCOUNT,CASH_RETURN}; interface Cashsuper { public double acceptCash(double money); } class CashNormal implements CashSuper{// 正常收費子類 public double accptCash(double money){ return money; …

微信小程序如何在公共組件中改變某一個頁面的屬性值

需求 公共組件A改變頁面B的屬性isShow的值。 思路 首先目前我不了解可以直接在組件中改變頁面的值的方法&#xff0c;所以我通過監聽的方式在B頁面監聽app.js的某一屬性值的改變從而改變B頁面的值&#xff0c;眾所周知app.js的某一屬性值是很容易就能更改的。 app.js globa…

Ownips+Coze海外社媒數據分析實戰指南

目錄 一、引言二、ISP代理簡介三、應用實踐——基于Ownips和coze的社媒智能分析助手3.1、Twitter趨勢數據采集3.1.1、Twitter趨勢數據接口分析3.1.2、Ownips原生住宅ISP選取與配置3.1.3、數據采集 3.2、基于Ownips和Coze的社媒智能助手3.2.1、Ownips數據采集插件集成3.2.2、創建…

解鎖未標記圖像的力量:深入探索計算機視覺中無監督卷積神經網絡

引言 近年來&#xff0c;計算機視覺領域取得了顯著進步&#xff0c;這在很大程度上得益于深度學習&#xff0c;尤其是卷積神經網絡&#xff08;CNN&#xff09;的發展。這些強大的模型在圖像分類、目標檢測和分割等任務上表現出色&#xff0c;主要依靠大規模標記數據集進行監督…