shuguang's blog

环境决定基础,选择决定价值,努力决定方向。

Hexo 常用操作

  • 本文主要介绍了关于Hexo基础知识常用命令

  • 更多相关内容参考:Hexo文档


#Hexo 简介

  • Hexo文档https://hexo.io/zh-cn/docs/

  • Hexo目录结构

    • _config.yml
      • 网站的配置信息。
    • package.json
      • 应用程序的信息(依赖)。
    • scaffolds
      • 模版文件夹,Hexo 会根据 scaffold 来建立文章。
    • source
      • 资源文件夹是存放用户资源的地方。
      • 除_posts文件夹之外,开头命名为_(下划线)的文件 | 文件夹和隐藏的文件将会被忽略。
      • Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。
    • themes
      • 主题文件夹。Hexo 会根据主题来生成静态页面。

  • Hexo基础知识

    • Hexo 支持以任何格式书写文章,只要安装了相应的渲染插件。(如默认可渲染mark down和ejs格式文章:hexo-renderer-marked 和 hexo-renderer-ejs)

    • Hexo相关配置:https://hexo.io/zh-cn/docs/configuration

    • Hexo 有三种默认布局:post、page 和 draft。

      • page将储存到source,draft将储存到source/_drafts;而自定义的其他布局和 post 相同(默认)储存到 source/_posts 文件夹。

    • Front-matter 是文件最上方以 — 分隔的区域,用于指定个别文件的变量。(这也是Hexo文章于普通Markdown文章的区别)

    • 分类和标签

      • 分类具有顺序性和层次性,而标签没有顺序和层次。(不允许指定多个同级分类)
      • 为文章添加多个分类,可以尝试使用list,每个列表是该文章一个分类,list中除第一个元素外其余元素都是该list的子分类。

    • 标签插件

      • 用于在文章中快速插入特定内容的插件。
      • 标签插件不应包含在Markdown语法中。

    • 关于相对路径中引用的标签插件

      • 使用相对路径的常规 markdown语法资源不会出现在首页上。(但是它会在文章中按你期待的方式工作)
      • 但使用标签插件后资源会同时出现在文章和主页以及归档页中。

    • 数据文件

      • 有时可能需要在主题中使用某些资料,而这些资料并不在文章内,并且是需要重复使用的。此功能会载入 source/_data 内的 YAML 或 JSON 文件,如此一来您便能在网站中复用这些文件了。
      • 如:next主题配置文件中存在相关配置,只需要在source/_data下创建对应的YAML 或 JSON 文件即可。

  • Hexo自定义

    • 永久链接

      • _config.yml 配置中或者在每篇文章的 Front-matter 中,均可调整网站的永久链接(permalink)。
      • permalink参数变量
        • :title文件名称 (relative to “source/_posts/“ folder)
        • :name文件名称
        • :post_title文章标题

    • 多语种支持

      • 修改 new_post_name 和 permalink 参数
      • 在新建文章时指定--lang language

      1
      2
      new_post_name: :lang/:title.md
      permalink: :lang/:title/

#Hexo常用命令

  • 部署

    • hexo init [folder]

      • 新建一个网站(git远程克隆hexo-starter 和 hexo-theme-landscape主题,并使用包管理器下载依赖)

    • hexo clean

      • 清除缓存文件 db.json 和已生成的静态文件 public。

    • hexo generate | hexo g

      • 生成静态文件到public(默认)文件夹。
        • -w, --watch 监视文件变动
        • -b, --bail 生成过程中如果发生任何未处理的异常则抛出异常
        • -f, --force 强制重新生成文件,Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。使用该参数的效果接近 hexo clean && hexo generate
        • 如果使用自动部署(使用插件hexo-deployer-git),不需要先执行该命令。

    • hexo server

      • 启动本地服务器,用于预览主题
        • -p, --port 重设端口
        • -s, --static 只使用静态文件
          • 在静态模式下,服务器只处理 public 文件夹内的文件,而不会处理文件变动(通常用于生产环境(production mode)下。)
        • -l, --log 启动日记记录,使用覆盖记录格式

    • hexo deploy | hexo d

      • 部署网站。

    • hexo clean && hexo g && hexo s

      • 建议使用。
      • 不建议使用 hexo g -d 或者 hexo d -g 这类组合命令
  • 写作

    • hexo new [layout] <title>

      • Hexo 有三种默认布局:postpagedraft。在创建这三种不同类型的文件时,它们将会被保存到不同的路径;而您自定义的其他布局和 post 相同,都将储存到 source/_posts 文件夹。
      • 新建一篇文章(布局默认使用default_layout参数代替)
      • 若标题包含空格,需使用引号括起来。默认情况下,Hexo 会使用文章的标题来决定文章文件的路径。(title/index.md)。
      • -p, --path <path> <title> 自定义新文章的路径,指定路径后(默认会在source/_posts下创建),Hexo 会使用路径下当前文件夹作为文件名称。(path/current_dir.md)
      • -r, --replace 如果存在同名文章,将其替换
      • --lang <language> 创建指定语言文件夹下的文章,文章的标题将不再决定文章的路径(language/title.md)

    • hexo render <file1> [file2] ...

      • 渲染文件。
      • -o, --output 设置输出路径

    • hexo publish [layout] <filename>

      • 通过 publish 命令将草稿移动到 source/_posts 文件夹。
      • 草稿默认不会显示在页面中,可在执行时加上 --draft 参数,或是把 render_drafts 参数设为 true 来预览草稿。

#Hexo标签插件

  • Hexo 使用内建 Nunjucks 模板引擎。

  • 标签插件和 Front-matter 中的标签不同,它们是用于在文章中快速插入特定内容的插件。

  • 虽然可以使用任何格式书写你的文章,但是标签插件永远可用,且语法也都是一致的。

  • 完整的标签列表参考:https://hexo.io/docs/tag-plugins.html