日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用Hexo搭建个人博客的终极资料

發(fā)布時間:2025/3/11 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用Hexo搭建个人博客的终极资料 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

# 一、前言

Hexo 是一個基于 NodeJs 博客框架,可以快速的幫我們搭建一個博客系統(tǒng),Hexo使用的是Markdown(下文簡稱MD)解析文章的,在幾秒內(nèi)即可利用靚麗的主體生成靜態(tài)網(wǎng)頁。

推薦使用 Hexo 有三大理由:

  • 有大量的主題可供人們選擇
  • 使用MD解析文章,MD是現(xiàn)在主流的文章格式
  • 可以快速的生成靜態(tài)網(wǎng)頁,對于系統(tǒng)性能要求低

本文將包含的內(nèi)容:

  • Hexo安裝
  • 后臺模式啟動Hexo
  • Hexo主題更換
  • 構(gòu)建Hexo分類列表頁
  • 添加評論功能
  • 使用Hexo-Admin插件更方便的發(fā)布文章

本文實踐環(huán)境:

  • Ubuntu 16.04

二、Hexo安裝

Setp1:安裝NodeJs環(huán)境

  • 下載對應(yīng)平臺的安裝包

輸入網(wǎng)址:https://nodejs.org/en/download/ 找到對應(yīng)的平臺進行下載,如果是Windows平臺可以直接使用xxx.msi進行傻瓜式的安裝即可,如果是Linux系統(tǒng),需要下載安裝包,然后上傳到對應(yīng)的服務(wù)器,等待后續(xù)的操作。

  • 解壓

tar -xvf node-v8.11.4-linux-x64.tar.xz

  • 設(shè)置全局變量

sudo ln /用戶Node解壓包地址/bin/node /usr/local/bin/node

sudo ln /用戶Node解壓包地址/bin/node /usr/local/bin/npm

進行如上配置之后,nodejs環(huán)境已經(jīng)安裝好了,使用命令查看nodejs版本

node -v

Setp2:安裝Hexo腳手架

npm install hexo-cli -g

所謂的“腳手架”也就是安裝對應(yīng)的客戶端,使它具備操作自己的能力。這樣說可能有點繞,比如說Hexo腳手架的作用就可以創(chuàng)建Hexo框架的項目,新建頁面,編譯Hexo項目,發(fā)布運行Hexo項目對,腳手架是讓其擁有操作自身的能力。

Setp3:初始化Hexo

使用命令:

hexo init blog

cd blog

npm install

Setp4:啟動Hexo

hexo s

hexo s是hexo server的縮寫,正常啟動之后,在瀏覽器輸入:http://localhost:4000/

這時候就能看到我們已經(jīng)搭好的Hexo博客了,是不是很方便。

三、后臺模式啟動Hexo

上面我們已經(jīng)博客搭好了,但是退出控制臺之后發(fā)現(xiàn)訪問不了了,這是因為啟動Hexo訪問的命令終止了,這個時候我們需要使用后臺模式來啟動Hexo了。

和后臺啟動NodeJs一樣,我們有兩種方式可以實現(xiàn)后臺模式啟動:

  • 使用Linux本身自帶的nohup命令啟動;
  • 使用第三方守護線程的方式啟動,比如PM2;
  • 下來我們分別來實現(xiàn)以上兩種方式。

    3.1 使用nohup模式啟動

    • nohup啟動命令:

    nohup hexo s -p 80 &

    exit

    其中“-p 80”是指定端口號。

    • 停止命令:

    killall hexo

    3.2 使用PM2啟動

    Setp1:安裝PM2

    npm i pm2 -g

    Setp2:編寫啟動腳本

    創(chuàng)建app.js,放在博客根目錄,代碼如下:

    //run const { exec } = require('child_process') exec('hexo server -p 80',(error, stdout, stderr) => {if(error){console.log('exec error: ${error}')return}console.log('stdout: ${stdout}');console.log('stderr: ${stderr}'); })

    Setp3:啟動項目

    進入博客根目錄,輸入命令:

    pm2 start app.js

    更多pm2命令

    pm2 stop all #停止所有應(yīng)用 pm2 restart all #重啟所有應(yīng)用 pm2 delete all #刪除所有應(yīng)用 pm2 list #查看所有應(yīng)用

    3.3 總結(jié)

    nohup和pm2的區(qū)別:

    • nohup比pm2使用更簡單
    • pm2功能比nohup更強大,有完善的日志信息,可以查看詳細的運行情況
    • pm2有相應(yīng)的管理視圖,可以方便多應(yīng)用的管理和運行
    • pm2可以設(shè)置多實例運行nodejs程序,可以充分利用系統(tǒng)資源

    四、主題更換

    Hexo另一個強大之處,在于它有很多的主題可以使用,方法地址:https://hexo.io/themes/

    選擇你喜歡的主題,以“MaterialFlow”為例,更換步驟如下:

    Setp1:下載主題

    訪問:https://github.com/stkevintan/hexo-theme-material-flow 點擊Clone or download => Download ZIP 下載文件到本地。

    Setp2:復(fù)制主題到服務(wù)器

    把下載好的文件進行解壓之后,拷貝到Hexo\themes目錄下。

    Setp3:修改配置文件

    找到Hexo根目錄的_config.yml修改:

    theme: landscape

    theme: material-flow

    繼續(xù)更改根目錄的_config.yml文件為自己的信息,比如title,author等,可以參照這個配置文件:

    https://github.com/stkevintan/hexo/blob/master/_config.yml

    而主題material-flow下也有一個_config.yml文件,這個文件是配置使用的過程的,比如分類,標簽的名稱順序等,查找配置文件:

    https://github.com/stkevintan/hexo/blob/master/themes/material-flow/_config.yml

    Setp4:重啟項目

    到目前為止已經(jīng)完成了主題的更換,如果你是使用的nohup就是用“killall hexo”停止,在啟動項目即可,如果使用pm2就是用“pm2 restart all”,查看新?lián)Q的主題吧。

    五、構(gòu)建Hexo分類列表頁

    使用Hexo是沒有分類集合頁面的,需要用戶自己創(chuàng)建,步驟如下:

    Setp1:創(chuàng)建分類頁面

    hexo new page “categories”

    Setp2:配置分類導(dǎo)航

    打開主題內(nèi)的_config.yml,注意不是根目錄的_config.yml,配置如下:

    menu:- name: 首頁slug: homeurl: /- name: 分類slug: categoriesurl: /categories

    把分類顯示到導(dǎo)航的第二個,如下圖:

    Setp3:修改模板

    打開文件layout/_partial/article.ejs,找到

    <div class="article-entry" itemprop="articleBody">替換div的所有內(nèi)容為下面這段代碼:

    <div class="article-entry" itemprop="articleBody"><% if (page.type === "tags") { %><div class="tag-cloud"><div class="tag-cloud-title"><%- _p('counter.tag_cloud', site.tags.length) %></div><div class="tag-cloud-tags"><%- tagcloud({min_font: 12,max_font: 30,amount: 200,color: true,start_color: '#ccc',end_color: '#111'}) %></div></div><% } else if (page.type === 'categories') { %><div class="category-all-page"><div class="category-all-title"><%- _p('全部分類', site.categories.length) %></div><div class="category-all"><%- list_categories() %></div></div><% } else { %><% if (post.excerpt && index){ %><%- post.excerpt %><% } else { %><%- post.content %><% } %><% } %> </div>

    Setp4:修改樣式

    以“material-flow”主題為例,打開文件“themes/material-flow/source/less/_article.less”添加下面樣式,到文件最底部:

    /*tag-cloud*/ .tag-cloud {text-align: center;margin-top: 50px; } .tag-cloud a {display: inline-block;margin: 10px; } .tag-cloud-title {font-weight: 700;font-size: 24px; } .tag-cloud-tags {margin-top: 15px;a {display: inline-block;text-decoration: none;font-weight: normal;font-size: 10px;color: #fff;line-height: normal;padding: 5px 5px 5px 10px;position: relative;border-radius: 0 5px 5px 0;font-family: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace;&:hover {opacity: 0.8;}&:before {content: " ";width: 0;height: 0;position: absolute;top: 0;left: -18px;border: 9px solid transparent;}&:after {content: " ";width: 4px;height: 4px;background-color: #fff;border-radius: 4px;box-shadow: 0 0 0 1px rgba(0, 0, 0, .3);position: absolute;top: 7px;left: 2px;}}a.color1 {background: #FF945C;&:before {border-right-color: #FF945C;}}a.color2 {background: #F5C7B7;&:before {border-right-color: #F5C7B7;}}a.color3 {background: #BA8F6C;&:before {border-right-color: #BA8F6C;}}a.color4 {background: #CFB7C4;&:before {border-right-color: #CFB7C4;}}a.color5 {background: #7B5D5F;&:before {border-right-color: #7B5D5F;}} }/*category-all-page*/ .category-all-page {margin-top: 50px;.category-all-title {font-weight: 700;font-size: 24px;text-align: center;}.category-list-item:after {content: '';clear: both;display: table;}.category-list-count {float: right;margin-left: 5px;}.category-list-count:before {content: '一共 ';}.category-list-count:after {content: ' 篇文章';} }

    效果如下圖:

    如上的配置設(shè)置完之后,還差一步給文章設(shè)置了分類之后,才會顯示出來。

    Setp5:設(shè)置文章屬性

    添加如下屬性在MD的開頭:

    --- title: RabbitMQ在Ubuntu上的環(huán)境搭建 date: 2018-06-02 tag: "rabbitmq" categories:- [Java] - [MQ] ---

    其中:

    • title 文章標題
    • date 文章發(fā)布日期
    • tag 文章標簽
    • categories 文章分類,多個獨立的分類使用上面代碼的格式

    設(shè)置了文章分類之后,所有文章的分類就會自動顯示出來了。

    六、添加評論功能

    本文對接的評論為暢言,暢言微微SOHU出品的,在行業(yè)里面使用的很廣泛,比如17173,人民網(wǎng),中國新聞網(wǎng)等調(diào)用的暢言,優(yōu)點是對接簡單,國內(nèi)的速度快,不需要FQ,缺點是嵌套的域名需要備案。

    Setp1:注冊暢言賬號

    訪問:https://changyan.kuaizhan.com/ 注冊賬號,安裝暢言的引導(dǎo)注冊應(yīng)用,獲取評論安裝代碼,每個應(yīng)用的都不一樣,其中appid和conf是獨立的,復(fù)制暢言評論安裝代碼。

    Setp2:修改主題配置

    找到主題下的_config.yml在底部添加:

    changyan:on: true

    Setp3:修改代碼

    打開文件“material-flow\layout_partial\article.ejs”替換代碼:

    <% if (post.comments && config.disqus_shortname){ %><section id="comments"><div id="disqus_thread"></div></section><% } %>

    為:

    <% if (post.comments && theme.changyan.on){ %><%- partial('comments/changyan', {}) %> <% } %>

    修改完之后,重啟項目。

    評論效果如下:

    七、使用Hexo-Admin更方便的發(fā)布文章

    使用Hexo快是快,但是有一個問題,就是每次發(fā)布文章都要手動發(fā)布到服務(wù)器上,并且還要進行服務(wù)器重啟,是一件很麻煩的事情,那么有沒有簡單的方法,可以直接通過后臺進行文章錄入和發(fā)布呢?

    這就是Hexo-Admin插件的作用,讓你可以直接通過后臺管理和新增文章,真是太爽了,下來一起來看看實現(xiàn)步驟吧。

    Setp1:安裝Hexo-Admin插件

    npm install –save hexo-admin

    Setp2:啟動插件

    經(jīng)過上面安裝已經(jīng)挖完成了hexo-admin的安裝了,這個時候只需要重啟項目,訪問http://localhost/admin/ 就可以看到管理后臺了,如下圖:

    Setp3:設(shè)置密碼

    我們發(fā)現(xiàn)第一次登錄是沒有密碼的,這可不行,接下來我們要設(shè)置一個密碼,點擊管理后臺的Settings,如下圖:

    進入頁面之后,輸入用戶名、密碼,保存生成的賬號信息復(fù)制到根目錄下的_config.yml文件最底下,配置賬號信息,如下圖:

    重啟服務(wù),這個時候,我們重新訪問http://localhost/admin/ 發(fā)現(xiàn)生效了,我們只有輸入正常的用戶名或者密碼才能進入系統(tǒng)。

    文章的添加和修改和簡書很像,這里就不過多描述了,更多使用的細節(jié)用戶自己慢慢研究吧。

    八、總結(jié)

    到目前為止,我們已經(jīng)把整個博客系統(tǒng)搭建起來了,包括和用戶的互動留言,如果需要打賞功能的話,在article.ejs文章下面貼上自己的微信或支付寶的二維碼即可,當(dāng)然還有很贊的博客搜索功能,也是Hexo也是直接支持的,不用用戶過多的配置,就這樣這個博客系統(tǒng)已經(jīng)搭建完畢了。

    總結(jié)

    以上是生活随笔為你收集整理的使用Hexo搭建个人博客的终极资料的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。