超詳細Hexo+Github博客搭建小白教程

来源:https://www.cnblogs.com/godweiyang/archive/2018/08/02/9408623.html
-Advertisement-
Play Games

原文鏈接: "超詳細Hexo+Github博客搭建小白教程" 去年9月的時候開始搭建了第一個自己的獨立博客,到現在也稍微像模像樣了。很多小伙伴應該也想過搭建一個自己的博客,網上也有一堆詳細教程。我在此稍稍總結一下具體的搭建步驟,另外網上很少有修改博客源碼的個性化教程,我就稍稍分享一下我的一些修改經驗 ...


原文鏈接:超詳細Hexo+Github博客搭建小白教程
去年9月的時候開始搭建了第一個自己的獨立博客,到現在也稍微像模像樣了。很多小伙伴應該也想過搭建一個自己的博客,網上也有一堆詳細教程。我在此稍稍總結一下具體的搭建步驟,另外網上很少有修改博客源碼的個性化教程,我就稍稍分享一下我的一些修改經驗,更多的個性化操作需要你自己以後去摸索。

具體效果可以參觀我的博客:godweiyang.com,歡迎大家支持。

我不是一個前端程式員,有些東西不是很瞭解,說的不好大家見諒。

首先要瞭解一下我們搭建博客要用到的框架。Hexo是高效的靜態站點生成框架,它基於Node.js。通過Hexo,你可以直接使用Markdown語法來撰寫博客。相信很多小伙伴寫工程都寫過README.md文件吧,對,就是這個格式的!寫完後只需兩三條命令即可將生成的網頁上傳到你的github上,然後別人就可以看到你的網頁啦。是不是很簡單?你無需關心網頁源代碼的具體細節,你只需要用心寫好你的博客內容就行。

安裝Node.js

首先下載最新版Node.js,我這裡給的是64位的。

安裝選項全部預設,一路點擊Next

最後安裝好之後,按Win+R打開命令提示符,輸入node -vnpm -v,如果出現版本號,那麼就安裝成功了。

安裝Git

為了把本地的網頁文件上傳到github上面去,我們需要用到分散式版本控制工具————Git[下載地址]

安裝選項還是全部預設,只不過最後一步添加路徑時選擇Use Git from the Windows Command Prompt,這樣我們就可以直接在命令提示符里打開git了。

安裝完成後在命令提示符中輸入git --version驗證是否安裝成功。

註冊Github賬號

接下來就去註冊一個github賬號,用來存放我們的網站。大多數小伙伴應該都有了吧,作為一個合格的程式猿(媛)還是要有一個的。

打開https://github.com/,新建一個項目,如下所示:

然後如下圖所示,輸入自己的項目名字,後面一定要加.github.io尾碼,README初始化也要勾上。

然後項目就建成了,點擊Settings,向下拉到最後有個GitHub Pages,點擊Choose a theme選擇一個主題。然後等一會兒,再回到GitHub Pages,會變成下麵這樣:

點擊那個鏈接,就會出現自己的網頁啦,效果如下:

安裝Hexo

在合適的地方新建一個文件夾,用來存放自己的博客文件,比如我的博客文件都存放在D:\study\program\blog目錄下。

在該目錄下右鍵點擊Git Bash Here,打開git的控制台視窗,以後我們所有的操作都在git控制台進行,就不要用Windows自帶的控制台了。

定位到該目錄下,輸入npm install hexo-cli -g安裝Hexo。會有幾個報錯,無視它就行。

然後輸入npm install hexo --save繼續安裝。

安裝完後輸入hexo -v驗證是否安裝成功。

然後就要初始化我們的網站,輸入hexo init初始化文件夾,接著輸入npm install安裝必備的組件。

這樣本地的網站配置也弄好啦,輸入hexo g生成靜態網頁,然後輸入hexo s打開本地伺服器,然後瀏覽器打開http://localhost:4000/,就可以看到我們的博客啦,效果如下:

ctrl+c關閉本地伺服器。

連接Github與本地

首先右鍵打開git bash,然後輸入下麵命令:

git config --global user.name "godweiyang"
git config --global user.email "[email protected]"

用戶名和郵箱根據你註冊github的信息自行修改。

然後生成密鑰SSH key:

ssh-keygen -t rsa -C "[email protected]"

輸入eval "$(ssh-agent -s)",添加密鑰到ssh-agent。

再輸入ssh-add ~/.ssh/id_rsa,添加生成的SSH key到ssh-agent。

打開github,在頭像下麵點擊settings,再點擊SSH and GPG keys,新建一個SSH,名字隨便。

打開C:\Users\Administrator\.ssh\id_rsa.pub,註意是隱藏文件夾,將其中的內容複製到新建的SSH中。

輸入ssh -T [email protected],如果如下圖所示,出現你的用戶名,那就成功了。

打開博客根目錄下的_config.yml文件,這是博客的配置文件,在這裡你可以修改與博客相關的各種信息。

修改最後一行的配置:

deploy:
  type: git
  repository: https://github.com/godweiyang/godweiyang.github.io
  branch: master

repository修改為你自己的github項目地址。不過你這裡看到的可能與我有點不一樣,因為我已經修改過主題了,所以這一步先不用管,換完主題之後記得回來修改!

寫文章、發佈文章

首先在博客根目錄下右鍵打開git,安裝一個擴展npm install hexo-deployer-git --save

然後輸入hexo new post "article title",新建一篇文章。

然後打開D:\study\program\blog\source\_posts的目錄,可以發現下麵多了一個文件夾和一個.md文件,一個用來存放你的圖片等數據,另一個就是你的文章文件啦。

編寫完markdown文件後,根目錄下輸入hexo g生成靜態網頁,然後輸入hexo s可以本地預覽效果,最後輸入hexo d上傳到github上。這時打開你的github.io主頁就能看到發佈的文章啦。

綁定功能變數名稱

現在預設的功能變數名稱還是xxx.github.io,是不是很沒有牌面?想不想也像我一樣弄一個專屬功能變數名稱呢,首先你得購買一個功能變數名稱,xx雲都能買,看你個人喜好了。

以我的百度雲為例,如下圖所示,添加兩條解析記錄:

然後打開你的github博客項目,點擊settings,拉到下麵Custom domain處,填上你自己的功能變數名稱,保存:

這時候你的項目根目錄應該會出現一個名為CNAME的文件了。如果沒有的話,打開你本地博客/source目錄,我的是D:\study\program\blog\source,新建CNAME文件,註意沒有尾碼。然後在裡面寫上你的功能變數名稱,保存。最後運行hexo ghexo d上傳到github。

更換主題

網上大多數主題都是github排名第一的Next主題,但是我個人不是很喜歡,我更喜歡beantech主題,地址在傳送門

首先要註意的是,這個github項目不僅包含了主題文件,還包含了hexo的各種文件

所以首先下載下來這個項目,然後推薦將下圖所有文件全部替換你原本博客根目錄下的文件:

然後運行hexo clean清空所有生成的網頁緩存,hexo ghexo d。這時候新的主題網頁就生成好了,博客根目錄的情況應該大致如下:

博客目錄構成介紹

從上圖可以看出,博客的目錄結構如下:

- node_modules
- public
- scaffolds
- source
    - _posts
    - about
    - archive
    - img
    - tags
- themes

node_modules是node.js各種庫的目錄,public是生成的網頁文件目錄,scaffolds裡面就三個文件,存儲著新文章和新頁面的初始設置,source是我們最常用到的一個目錄,裡面存放著文章、各類頁面、圖像等文件,themes存放著主題文件,一般也用不到。

我們平時寫文章只需要關註source/_posts這個文件夾就行了。

個性化設置及bug處理

首先打開_config.yml,根據自己需求配置,具體不說了,有註釋。

修複文檔分類bug

這個主題文檔分類功能有個bug,一直沒有得到解決,直到最近,我才發現是源文件的單詞拼錯了。。。

打開D:\study\program\blog\scaffolds\post.md,單詞catagories改為categories

添加暢言評論插件

主題自帶了多說評論插件,但是多說已經關閉了,所以我換成了暢言評論插件。

首先你得註冊一個暢言賬號,地址
然後打開如下頁面,複製該段代碼:

打開D:\study\program\blog\themes\beantech\layout\post.ejs,將代碼粘貼到如下位置:

然後重新生成一下網頁,可以看到效果圖如下:

更多插件例如熱評話題之類的,可以自行在暢言後臺找到代碼添加。

添加圖片放大功能

首先下載zooming.js文件地址,保存在D:\study\program\blog\themes\beantech\source\js目錄下。

打開D:\study\program\blog\themes\beantech\layout\post.ejs,在最下方粘貼如下代碼:

<script type="text/javascript" src="/js/zooming.js"></script>

然後文章里的圖片就可以單擊全屏啦。

添加數學公式顯示

打開D:\study\program\blog\themes\beantech\layout\post.ejs,在最下方粘貼如下代碼:

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

由於markdown語法與mathjax語法存在衝突,所以還需要修改源文件。

打開D:\study\program\blog\node_modules\marked\lib\marked.js
escape:處替換成:

escape: /^\\([`*\[\]()#$+\-.!_>])/

em:處替換成:

em: /^\*((?:\*\*|[\s\S])+?)\*(?!\*)/

這時在文章里寫數學公式基本沒有問題了,但是要註意:
數學公式中如果出現了連續兩個{,中間一定要加空格!

舉個例子:
行內公式:\(y = f(x)\)
代碼:

\\(y = f(x)\\)

行間公式:
\[y = {f_{ {g_1}}}(x)\]
代碼:

\\[y = {f_{ {g_1}}}(x)\\]

註意上面花括弧之間有空格!

添加留言板

D:\study\program\blog\themes\beantech\layout中新建bbs.ejs,文件內容如下:

---
layout: page
---
<style type="text/css">
    header.intro-header{
        background-position: right; 
    }
</style>
<!-- Chinese Version -->
<div class="zh post-container">
    <%- page.content %>
</div>

然後在D:\study\program\blog\source中新建\bbs文件夾,裡面在新建index.md文件,內容如下:

---
layout: "bbs"
title: "BBS"
date: 2017-09-19 12:48:33
description: "歡迎交換友鏈,一起交流學習!"
header-img: "img/header_img/home-bg-2-dark.png"
comments: true
---
此處替換為你的暢言評論代碼~~~

添加置頂功能

運行如下兩條命令安裝置頂插件:

npm uninstall hexo-generator-index --save
npm install hexo-generator-index-pin-top --save

然後打開D:\study\program\blog\themes\beantech\layout\index.ejs,在如下位置添加代碼:

<% if (post.top) {%>
    <i class="fa fa-thumb-tack"></i>
    <font color=7D26CD>置頂</font>
    <span class="post-meta-divider">|</span>
<%}%>

然後在你想置頂的文章md文件里,添加如下配置選項:

top: true

添加網易雲音樂BGM

寫文章的時候,想插入一段BGM怎麼辦?

首先打開網易雲網頁版,找到想聽的歌曲,然後點擊生成外鏈:

複製如下代碼:

粘貼到文章里就行了,為了美觀,設置一下居中,具體代碼如下:

<div align="middle">這裡粘貼剛剛複製的代碼</div>

添加訪客人數統計和字數統計

我們使用一個國外的流量統計網站:gostats.com,首先註冊一下。

然後自己添加網站地址,過程就不詳細說了,然後點擊Get counter code,選擇一個自己喜歡的風格。
如下圖所示,選擇一個樣式,選擇HTML,生成代碼:

複製這段代碼到D:\study\program\blog\themes\beantech\layout\_partial\footer.ejs,具體位置如下:

預設的代碼和我圖中不一樣,因為我不想點擊圖片跳轉到它統計網站的鏈接,可以模仿我的自行修改。

字數統計首先安裝插件

npm i --save hexo-wordcount

然後打開D:\study\program\blog\themes\beantech\layout\_partial\footer.ejs,添加如下代碼:

<span class="post-count"><%= totalcount(site) %> words altogether</span>

具體位置見上圖。
一些註意事項
---
首先解釋一下文章開頭的配置,如下圖所示:

title: 文章標題
catalog: 是否顯示段落目錄
date: 文章日期
subtitle: 子標題
header-img: 頂部背景圖片
top: 是否置頂
tags: 標簽
categories: 分類

網站圖片都保存在D:\study\program\blog\source\img目錄下,可以修改成自己的圖片。

如果換一臺電腦想遷移博客的話,最簡單的方法就是把博客整個目錄拷貝過去,就是這麼暴力。

其他還有什麼問題的話等我想起來了再繼續添加,如果遇到問題歡迎聯繫我。


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

-Advertisement-
Play Games
更多相關文章
  • 來自:http://www.dabaoku.com/texiao/caidan/201007156435.shtml# 大寶庫 css已經改動,但是js似懂非懂,明白大概原理但是實際操作為啥這麼寫還要仔細研究,先拿過來留作自己日常參考(如果有侵權請告知刪除) ...
  • 一、問題 近日,寫了一個ASP.Net項目,但是bootstrap-table在別人的電腦上顯示不出來,在自己的電腦上能顯示,有些瀏覽器也是能顯示,但部分瀏覽器就是顯示不出來。找了很多原因,最後有個老師和我說是內核版本的問題。 核心:雙核瀏覽器雙核主要是谷歌和IE,但如果某些瀏覽器其中有個內核的版本 ...
  • 開發者的javascript造詣取決於對【動態】和【非同步】這兩個詞的理解水平。 [TOC] 一.this是什麼 是javascript關鍵字之一,是javascript能夠實現 面向對象編程 的核心概念。用得好能讓代碼優雅高端,風騷飄逸,用不好也絕對是坑人坑己利器。我們常常會在一些資料中看到對 的描 ...
  • 因為項目的原因,最近經常使用node.js搭RESTful介面。 性能還是很不錯啦,感覺比Spring Boot之類的要快。而且在不錯的性能之外,只要程式結構組織好,別讓太多的回調把程式結構搞亂,整體開發效率比Java快的就太多了。 如果想進一步提高效率,使用c++來優化部分模塊是不錯的選擇。尤其可 ...
  • 1、 DOM:Document Object Model(文檔對象模型): DOM操作: ●DOM是Document Object Model的縮寫,即文檔對象模型,是基於文檔編程的一套API介面, ●1988年,W3C發佈了第一級的DOM規範,這個規範允許和操作HTML頁面中的每個單獨的元素,如網 ...
  • AngularJS參數綁定有三種方式。第一種插值表達式“{{}}”表示,第二種在標簽中使用ng-bind屬性表示,第三種針對input框(標簽)的ng-module屬性表示。針對三種參數綁定方式,設定了以下三個小案例。 1、插值表達式 案例核心代碼: demo01.html: 案例效果: 2、ng- ...
  • 第一:css的四種引入方式 1.行內樣式 最直接最簡單的一種,直接對HTML標簽使用style="",例如: <p style="color:#F00; "></p> 缺點:HTML頁面不純凈,文件體積大,不利於蜘蛛爬行,後期維護不方便。 2.內嵌樣式 內嵌樣式就是將CSS代碼寫在<head></h ...
  • HTML: JavaScript: 除此之外,還能控制文件的大小或是文件格式等。 ...
一周排行
    -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.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...