banner
My Posts

Hexo-3

Scroll down

关于Hexo搭建博客(三)

这篇文章主要是关于博客文章的创作方面。

  • 有了前面两节的基础,现在应该可以正常使用博客并发布文章了,在Blog目录下执行:

    1
    $ hexo new post "test"

    即可生成一篇test.md文章,在Blog/source/_posts可以找到它。

  • Hexo创建的每一个.md文件,在头部会有一个Front-matter区域:
    2
    Hexo可以创建三种类型的文件:文章(post),页面(page),草稿(draft)。它们的模版文件在第二节提到的scaffolds文件夹下。通过配置对应类型的模版文件,在以后新建对应类型文件的时候,文件的Front-matter区域会自动进行填充预设好的内容,比较方便。
    markdown语法推荐使用软件Typora进行编写,因为Mac版本是需要收费的,所以只能通过魔法才能永久使用。

  • 这里简单介绍下markdown的常用语法:

    • 分级标题:

      1
      2
      3
      4
      5
      6
      # 一级标题
      ## 二级标题
      ### 三级标题
      #### 四级标题
      ##### 五级标题
      ###### 六级标题
    • 字体:

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      *斜体文字*

      _斜体文字_

      **粗体文字**

      __粗体文字__

      ***粗斜体文字***

      ___粗斜体文字___
    • 下划线、删除线:

      1
      2
      <u>带下划线文本</u>
      ~~带删除线文本~~
    • 有序列表:

      1
      2
      3
      1. 有序列表文字
      2. 有序列表文字
      3. 有序列表文字
    • 无序列表:

      1
      2
      3
      * 无序列表文字
      * 无序列表文字
      * 无序列表文字
    • 代码:

      1
      `代码`
    • 代码块:

      1
      2
      3
      4
      ```
      代码块

      ```
    • 超链接:

      1
      [链接名称](链接网址)
    • 图片:

      1
      ![](图片路径)
  • 作为一个合格的博客,也出于博客的可读性考虑,必须要对文章设置分类,当然这里建议按大类进行划分,而具体的文章系列可以通过给文章命名来实现,这样在展示的时候也比较简洁。
    安装Hexo分类插件:

    1
    npm install hexo-generator-category

    新建分类页面(page):

    1
    hexo new page categories

    修改 source/categories/index.mdFront-matter区域:

    1
    2
    3
    title: categories
    date: 2022-05-09 10:11:45
    layout: category

    _config.yml配置文件下修改分类属性:
    3
    以后在文章的Front-matter区域只需要填写对应分类名即可对文章分类。

  • 关于文章的封面(cover)以及文章内的图片有必要说一下,因为之前也是踩了不少的坑。

  1. 文章的封面图是直接在文章的Front-matter区域设置的,注意图片路径默认是主题文件夹下的source/img文件夹,且为相对路径,所以为了方便使用,我在img文件夹下建立cover文件夹,使用的时候只需要:/img/cover/xxx.jpg即可。注意一定是主题文件夹,不要搞到Hexo的source里面去,因为在网页上显示博客用的是博客主题里面的文件.ejs,ejs引擎把数据渲染生成HTML,这些文件里面的数据路径一定是自己的source文件夹下的资源。

  2. 文章里面用到的图片,也是大费周折,之前经常会显示不出来,看网上好多小伙伴都有类似的问题,仔细想了一下这个问题与Typora和Hexo两部分有关。
    更改Hexo配置文件***_config.yml***文件里的post_asset_folder属性:

    1
    post_asset_folder: true

    这样当我们创建一个post时,在与它同级的目录下会自动创建一个与post同名的资源文件夹,用于存放该post用到的图片。
    然后安装Hexo插件:

    1
    $ npm install hexo-asset-image --save

    这里要注意,插件要更改一个地方才能使用,因为插件版本比Hexo版本老,会有bug。在博客根目录按以下路径找到index.js文件:
    node_modules –> hexo-asset-image –> index.js
    在第58行找到:

    1
    $(this).attr('src', config.root + link + src);

    更改为:

    1
    $(this).attr('src',src);

    因为我是用Typora进行编辑的,所以还需要对Typora进行设置才能更方便地直接插入图片。找到Typora的偏好设置,按下面进行配置:

4

这样当我们插入图片时,Typora会让我们选择插入的图片,选择后会自动把该图片复制到post的资源文件夹下,不需要自己进行操作,同时不开源代码模式进行编辑的话还可以显示图片预览,避免部署以后才发现图片显示不出来。

  • OK,至此基本上已经大功告成了,总的来说Hexo真的是有很多细节比较麻烦,毕竟博客这种主观性比较强的东西每个人的想法都不太一样,很多问题并没有一个普适的方法解决,需要自己探索。另外前端的玩法五花八门,专业的朋友做起来会比较得心应手,不过作为一个记录学习过程和心得的地方,it’s enough,Hexo系列到这里就结束了,后续遇到问题再进行补充~