hexo搭建及备份记录

博客搭建

在Github创建仓库,本地安装node.js,git和hexo等步骤网上内容非常详尽,就不互相复制了(在此记录多个自用网址)。

  • 基本操作(较为详尽)
  • matery主题设置参考(经验证,源代码下载后生成网站有错误,但步骤及设置可以参考)
  • markdown语法相关

    主题配置

    hexo有很多主题可以设置,较流行的是Next主题,我选了一款比较符合我审美的主题matery,关于主题配置的相关设置,在matery的github文档里有较详细的说明,不在重复叙述。

    博客备份

    由于上传到Github的文件仅仅是生成后的网页文件,在更换电脑或者硬盘损坏(惨痛教训,一度耽误科研进度)导致源文件丢失时并不能通过此文件恢复原始博客文件夹。经过上网搜索,采用github分支备份的方法备份源文件夹。

    1.新建文件夹存放工作目录

    mkdir hexo

    2.新建Github分支hexo(起名自定,已有master分支)

    3.将Github远程仓库克隆至新建hexo文件夹

    git clone https://github.com/yourusername/yourusername.github.io hexo

也可用ssh链接,在GitHub仓库页面上即可找到。

4.删除除了版本管理的 .git之外的所有文件和文件夹

cd hexo
rm -r *

5.把要备份的文件复制到hexo目录

scaffolds/
source/
themes/
.git/
.gitignore
_config.yml
package.json

这几步是为了得到远程仓库分支后的 .git文件(个人理解)。

6.提交备份

git add .        #保存所有文件到暂存区
git commit -m "创建hexo分支"    #提交变更,此次变更名称为“”里的东西
git push --set-upstream origin hexo
#推送到GitHub,并用'--set-upstream'与origin创建关联
#将hexo设置为默认分区
#后续使用可省去'--set-upstream'

参考(未验证详细步骤,但大体如此)

博客编辑

插入图片

1.在站点配置文件 _config.yml中找到如下代码段并更改(注意和主题配置文件区分)

post_asset_folder: true        #默认为false,改为true

2.在博客根目录下执行命令安装插件

npm install hexo-asset-image --save

3.生成博文

利用hexo n "博文名"生成markdown博文时,/source/_posts文件夹里面除了生成一个markdown文件以外还有一个同名文件夹,将要用的图片存放于此即可。博文中插入图片的语法类似于相对路径的表述。
![pic_alt替代文字](rin.jpg或博文名/图片名.jpg)


在实际操作过程中发现插入图片显示,原因是此插件有可能会有错误,在生成的html文件中看到图片<img>标签链接位置为 .io/文件夹下,正确路径应位于2020/2/6/xxx文件夹下,解决办法如下:
在/yourblogpath/node_modules/hexo-asset-images文件夹下,index.js为其主要代码,对index.js文件中代码进行一些修改。

    var link = data.permalink;
    var beginPos = getPosition(link, '/', 3) + 1;
    var appendLink = '';
    // In hexo 3.1.1, the permalink of "about" page is like ".../about/index.html".
    // if not with index.html endpos = link.lastIndexOf('.') + 1 support hexo-abbrlink
    if(/.*\/index\.html$/.test(link)) {
      // when permalink is end with index.html, for example 2019/02/20/xxtitle/index.html
      // image in xxtitle/ will go to xxtitle/index/
      appendLink = 'index/';
      var endPos = link.lastIndexOf('/');                #将此处“/“改为”.“
    }
    else {
      var endPos = link.lastIndexOf('.');                #将此处”.“改为”/“
    }
    link = link.substring(beginPos, endPos) + '/' + appendLink;

具体原理参照此处博文
修改以后便可成功插入图片并显示,示例如下:
fsn第三章


   Reprint policy


《hexo搭建及备份记录》 by Excalibur Mogan is licensed under a Creative Commons Attribution 4.0 International License