最早的博客以我喜爱的星际战士命名

本文介绍使用Hexo框架快速搭建个人博客网站的方法,它通过NodeJS作为依赖,依靠简单的配置文件、提前配置好的目录结构,就能根据更新的文章,来自动生成博客网站的各个页面和超链接,并最终部署到远程服务器上供用户访问。一句话概括,就是几条指令创建自己的博客。

标题:基于Hexo搭建自己的博客

安装NodeJS与必要的Module

NodeJS是一个开源的javascript运行环境,它一般运行于服务器端,拥有跨平台等优点,Hexo框架想要正常运行也离不开它。

NodeJS安装

  1. NodeJS官网下载符合系统的NodeJS的安装包

  2. 我使用的是ubuntu系统,下载后发现是.tar.xz格式,国际惯例解压它

    tar -xvf [filename] -C [decompressdir]
    

    相比常用的-gxvf参数,这里的压缩包格式不是.tar.gz,也就是并非通过gzip压缩得到,因此-g参数去掉

    对于win10系统,也可以下载可直接运行的压缩包,然后手动配置PATH

  3. linux系统下NodeJS是已经安装完毕的压缩包,因此可以在bin目录下找到nodenpm程序直接使用

    要想全局启用,可以修改~/.bashrc加入export语句来在终端召唤,但为了后面不直接通过shell来加载依赖的程序也可以使用它们,设置软链接,到系统默认的PATH之一:/usr/local/bin下面(安装到/usr/bin等目录同理)

    ln -s /usr/[decompressdir]/bin/npm   /usr/local/bin/ 
    ln -s /usr/[decompressdir]/bin/node   /usr/local/bin/
    

    一开始犯的错误是直接cp [sourcefile] [destinationdir]将可执行文件拷贝过去,相比软链接最大的问题是无从加载在解压目录下的动态链接库,出现类似 Cannot find module '../lib/cli.js'的报错

    win10系统下,将node.exenpm这两个可执行文件所在的目录加入PATH即可,方法有两种:

    1. “控制面板”中搜索PATH,编辑系统环境变量,找到环境变量Path点击“编辑”,在打开的窗口中点击”新建“然后添加对应目录即可
    2. cmd中通过setsetx命令来修改或添加环境变量,不常用

npm安装hexo

npmNodeJS默认的包管理工具,但这里使用大陆访问更加稳定的cnpm,它用的是淘宝的开源镜像,通过的命令安装,win10linux通用:

  1. 使用npm来安装cnpm

    npm install -g cnpm --registry=https://registry.npm.taobao.org
    
  2. 通过cnpm安装hexo这一module

    cnpm install hexo
    

如果在大陆使用npm,这里可能会遇到很多费解的报错

这里安装的过程建议在nodejs的目录下开启终端(linux)或gitbash(win10)来执行,会自动安装到目录下的node_modules

如果是win10,可执行程序hexo并不会直接添加到上一节node所在的目录,需要在node_modules找到并手动添加到环境变量中

框架打造博客

hexo使用

接下来就可以创建hexo的文件夹,作为博客项目的本地目录

以下使用的指令同样是跨平台的:

  1. 进入博客文件夹,初始化hexo

    hexo init
    

    通过这一条指令,框架就将搭建,框架中经常用到的有以下这些文件:

    • themes/:用来存放自定义的主题,hexo的默认主题叫landscape
    • _config.yml:用来快速配置框架必须的参数
    • source/:实际存放博客文章的目录
    • public/:博客生成后html页面和有关组建的存放目录,实质上的博客根目录
  2. _config.yml进行初步配置

    • titlesubtitleauthor:网站题目、副标题、作者等基本显示信息

    • #Deployment:用来配置向远程仓库部署的信息

      • type:部署到远程仓库的工具,写'git'
      • repo:远程仓库的URL,如https://gitee.com/wang-jiaxuan/hhhhhh.git
      • branch:远程仓库部署的分支,如master
    • #URL:用来配置远程发布页面的具体URL

      • url:实际远程访问博客的URL,根据远程仓库的提示填写
      • root:这一条需要加上,是URL下根目录的地址
      • 例如:发布到gitee上,用户名为wang-jiaxuan,仓库名为hhhh,使用Gitee Pages服务来部署博客,则
      url: https://wang-jiaxuan.gitee.io/hhhh
      root: /hhhh
      

      注意采用httpsgitee默认的http会显示错误,页面的超链接也会指向404

      (后记:自己由于没采用https时,点击home后前往的http://wang-jiaxuan.gitee.io/总是404,将仓库重命名为wang-jiaxuan.gitee.io,导致点击home后前往的http://wang-jiaxuan.gitee.io/也指向了博客发布的地址,但其他超链接指向依然错误;仓库名再次重命名之后,点击home似乎离奇的能正常显示,但其实显示的是gitee没来的及删除的页面,最后还是要用https,哈哈)

  3. 清理本地环境

    hexo c
    

    cclean的简写,首次编译没有必要,它会直接清除整个public/目录以及其他几个目录

  4. 编译博客网页项目

    hexo g
    

    ggenerate的简写,会更新式地进行生成

    如果对同一个hexo目录挂载到不同的系统下,用不同的hexo可执行文件来编辑,可能会重复生成helloworld博文并覆盖,但无伤大雅

  5. 运行本地的hexo server来预览网页,实质上是开启博客网站的服务器

    hexo s
    

    sserver的简写,根据控制台提示点击即可本地预览,或者通过提示的端口在其他设备访问

    如果在有域名/公网IP的服务器上运行,到这里博客服务器就正式启动了

博客创作

博文书写

基于hexo框架构建的博客,博文都放在source/_posts/目录下,只需要按照特定的格式书写markdown格式的文档,就会在博客的Archive中自动归档并有序提供访问

这里用一个例子来说明,加#的文字内容为说明:

---
title: Hello World    #在博客里显示的标题
date: 2020-01-01    #按照时间归档的Archive导航栏依据
tags: lab    #按照tag归档的导航栏依据
---
#这里书写的摘要内容可以在主页预览到
<!--more-->
#这里书写的详细内容在主页需要点开才能看到

需要注意的是,这个模板适用于默认的landscape主题,其他的主题可能有自己自定义的模板,需要参考文档说明,或是找到scaffolds/post.md这一模板文件

据说hexo new "title"也可以根据上面提到的模板创建新的博文,但在ubuntu上不常用,ubuntu可以考虑在~/Templates里面书写博文的模板,以后就可以右键直接New找到模板使用

参考教程

Node.js 安装配置

使用Gitee+Hexo搭建个人博客

Hexo系列(五) 撰写文章(这个文章系列还有对hexo更详细的说明)

Windows环境搭建hexo博客部署到GitHub上