Hexo Guide 新手知识

具体怎么通过 Hexo 搭建个人博客,已经有很多很好的博文了。此文专注记录用 Hexo 写博文过程中遇到的问题和 tips。

Hexo 初解

Hexo 是一个快速、简洁且高效的博客框架。Hexo 使用 Markdown(或其他渲染引擎)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。

  • Markdown: 轻量级标记语言, 是方便作者写博文,仅仅是内容。Markdown 渲染引擎让它如静态网页一样呈现。(原材料)
  • Theme: 为了更好的互动,让博文更绚丽,有调理的呈现。(染料)
  • Hexo:让 Markown 穿上 Theme 的衣服(渲染引擎),更好组织和交互。(作坊,生产线)

Hexo 整套思路是借鉴 Jekyll,只是用 NodeJS 又实现了一次,个人感觉易用性更好了,性能也比 Ruby 实现的要好。

布局(Layout)

刚接触 Hexo 的时候很让我感觉迷惑的两个 layout。一个是 scaffolds 中的 draft、page and post 的 md 文档,该博文中命名为Scaffolds Layout(是生成不同文档的脚手架模板)。Theme 中的 layout,才是真正的我们理解的 layout。该博文中命名为Theme Layout

  • Scaffolds Layout: scaffolds 中的 draft、page and post 的 md 文档
  • Theme Layout: Theme 中的 layout, swig or ejs 文件

Scaffolds Layout

1
hexo new [layout] <title>
  • 如上命令中的 layout,是指Scaffolds Layout。 预定义了postpagedraft markdown 文件做为脚手架模板,为了快速生成文档,如下是默认生成路径。如果在 scaffolds 增加自己的Scaffolds Layout,会生成文件到source/_posts文件夹。

    Scaffolds Layout Path
    post source/_posts
    page source
    draft source/_drafts
  • 如上默认Scaffolds Layout分别代表三种类别,这是 Hexo 程序逻辑控制的。

    • post: 博文
    • page: 单独 HTML 页面, 如 Menu 菜单中的 tags, categories, about …
    • draft: 临时博文
  • 脚手架文档模板中Scaffolds Layout设置了什么?

    1
    2
    3
    4
    5
    6
    ---
    title: {{ title }}
    date: {{ date }}
    tags:
    categories:
    ---

    其实缺少了 layout 的设置,默认是 post,可以通过修改 _config.yml 中的 default_layout 参数来指定默认布局。这才是Theme Layout。这是两者的关系。

Theme Layout

  • themes 文件中,对应 theme 的 layout 文件夹下面的文件。
  • 可以通过修改 Site _config.yml 中的 default_layout 参数来指定默认Theme Layout
  • 如果改变页面样子,应该在这里修改。
  • 为了更好的重用,他们会 extends 或者嵌套另一个 layout,看看 page 和 tag layout 关系就知道了。
  • 为了足够动态控制,一定了标签和变量。

Categories and Tags

  • Mapping Categories and Tags with Hexo
    在 Hexo 默认配置文件中_config.yml, 有两个配置项 category_map 和 tag_map,主要是影响点击后的 url 路径。

  • 如何增加 Categories 和 Tags 页面,解决 404 error

    1
    2
    3
    4
    5
    6
    7
    $ hexo new page tags
    $ hexo new page categories
    # 会生成 source/tags/index.md
    # 会生成 source/categories/index.md
    # 然后分别增加如下行,如果你是用Theme Next,其他可能加入对一个的layout
    # add line: type: "tags"
    # add line: type: "categories"

Theme

Markdown

  • 表格(Table)不能正常展示
    发现 Hexo 默认采用插件 hexo-renderer-marked 做为 markdown 的渲染。我在表格前加个空格就不能正常渲染,去掉就可以了。

  • Markdown 代码块语言 Language names and aliases

Website Visiting Analyzes

网站访问统计:

Tips

感谢支持,让我安静的做蚂蚁梦!