本文旨在介绍hexo的文件、目录结构及其功能。

如果你想修改Hexo的布局、显示样式,或是为其增添RSS、评论等新模块却无从下手,那就先来了解一下Hexo的目录结构吧。知道各个文件、目录的作用之后,至少在看到别人写在XX中增加代码时,知道XX是个什么东西。

1 Hexo目录结构

我的Hexo目录结构:

.

├── _config.yml

├── package.json

├─.deploy_git

├─node_modules

├─public

├─scaffolds

├─source

│ ├─about

│ ├─audio

│ ├─img

│ ├─_drafts

│ └─_posts

└─themes

├─landscape

└─next

有些是初始化后,自动创建的,也有在使用过程中,手动或自动创建的。有些像先天和后天的感觉 ^_^

2 _config.yml

初始化时自动创建。

网站的配置信息文件,可以在此配置大部分的参数。具体设置参见 配置 | Hexo 。

3 package.json

初始化时自动创建。

应用程序的信息。可以查看hexo的版本以及安装的扩展版本。

4 .deploy_git

在部署到github后自动创建。

此目录中的内容 = github站点中对于repository中的内容 = 最近一次上传到站点的public目录中的内容

因此,该目录的结构和 public 目录基本一致(不一致的情况是由于重新生成,但是没有发布站点造成,此时 public 内容新于 .deploy_git 内容)。

5 node_modules

存放安装的Hexo扩展。

node_modules

├─.bin

├─hexo

├─hexo-deployer-git

├─hexo-generator-archive

├─hexo-generator-category

├─hexo-generator-feed

├─hexo-generator-index

├─hexo-generator-tag

├─hexo-renderer-ejs

├─hexo-renderer-marked

├─hexo-renderer-org

├─hexo-renderer-stylus

└─hexo-server

Hexo 默认安装:

hexo: 主程序

hexo-deployer-git: git部署

hexo-generator-archive: 存档页面生成器

hexo-generator-category: 类别生成器

hexo-generator-index: index生成器

hexo-generator-tag: 标签生成器

hexo-renderer-ejs: 进一步了解 EJS tj/ejs · GitHub

hexo-renderer-marked: Markdown引擎,让你可以用markdown格式书写博客

hexo-server: 服务器,让你可以本地预览博客

在使用过程中自己安装的扩展也会在此新建目录,比如我安装的:

hexo-generator-feed:生成RSS

hexo-renderer-org:可以用org-mode书写博客

6 public

执行 hexo g 命令,Hexo程序会解析 source 、当前使用的theme,生成的静态网页内容目录就是 piblic 。执行 hexo d 则将该目录内容复制到 .deploy_git 目录。

7 scaffolds

模版 文件夹。当新建文章时,Hexo 会根据 scaffold 来建立文件。更多参见 模版 | Hexo 。

8 source

存放用户资源的地方。

8.1 _posts 文件夹

存放博客文章的地方,其中的markdown文件、html文件、org文件等会被解析并放到 public 文件夹,发布到站点。

8.2 其他开头命名为 _ (下划线)的文件 / 文件夹

将会被忽略。因此可以在source目录下创建 _drafts 目录用于存放未完成的草稿,其中内容不会发布到网站。

8.3 其他开头非_的文件 / 文件夹

会被拷贝到public目录并上传到站点。

可以创建 img 目录来存放在博客引用到的图片等。

要添加新的页面(例如about),执行 hexo new page PageName 命令即会在 source 中自动新建子目录 PageName 。

favicon.ico 在主题配置文件中引用 /favicon.ico 来设置站点的页面图标。

9 themes

主题 文件夹。默认安装 landscape 主题,你可以安装新主题到 themes 目录,也可以自己新建主题。一个主题的基本结构如下:

.

├── _config.yml

├── languages

├── layout

├── scripts

└── source

9.1 _config.yml

主题的配置文件。

9.2 languages

语言文件夹。根据 Hexo 目录中 _config.yml 设置的语言来选择站点以哪种语言来呈现。

9.3 layout

存放主题的模板文件,决定了网站内容的呈现方式。Hexo 根据模板文件的扩展名来决定所使用的模板引擎,例如:

layout.ejs - 使用 EJS

layout.swig - 使用 Swig

更多参见:

9.4 scripts

脚本文件夹。在启动时,Hexo 会载入此文件夹内的 JavaScript 文件。

9.5 source

资源文件夹,除了模板以外的资源,例如 CSS、JavaScript 文件等,都应该放在这个文件夹中。

文件或文件夹开头名称为 _(下划线)或隐藏的文件会被忽略。

如果文件可以被渲染的话,会经过解析然后储存到 public 文件夹,否则会直接拷贝到 public 文件夹。

以next主题为例,其 source 目录的结构如下:

source

├─css

├─fonts

├─images

├─js

└─vendors

├─fancybox

│ └─source

│ └─helpers

├─fastclick

│ └─lib

├─font-awesome

│ ├─css

│ └─fonts

├─jquery

├─jquery_lazyload

└─velocity

9.5.1 css

多为styl文件,next的css目录结构如下:

css

├─_common

│ ├─_component

│ ├─_core

│ ├─_fonts

│ ├─_page

│ ├─_section

│ └─_vendor

├─_custom

├─_mixins

├─_variables

└─main.styl

如果想自定义CSS,主要修改2个地方:

_variables

_custom

9.5.2 vendors

引用的一些小插件。

10 更新历史

<2016-01-22 周五> 增加 public 目录说明

<2016-01-18 周一> 拟定初稿

Footnotes:

Date: <2016-01-18 周一>

hexo站点目录存放html,hexo目录结构小探相关推荐

  1. linux node 文件存放目录_Linux文件与目录结构

    在了解Linux系统目录结构之前应首先了解最为重要的一点: Linux系统中一切皆文件!!! 目录结构简介 命令与简介之间用":"分割,简介结束用"."表示. ...

  2. linux源代码存放在哪个目录_入门Linux,从了解Linux文件系统的目录结构开始

    一说起linux,对于没有接触过的小伙伴来说,脑海里都会浮现出这样一个场景:一个黑色的窗口,满满的英文字符命令,然后一脸懵逼的样子......其实对于稍微了解一点linux的同学来说,事情绝对不是这个 ...

  3. 【最详细的Hexo教程,没有之一】03 - Github + Coding 部署Hexo站点

    专栏回顾 -[Hexo-01]本地建立 Hexo 站点 -[Hexo-02]创建新文章并生成页面 本文同时并行讲解了如何在Github部署和在Coding部署,Github面向国际,但是速度慢,Cod ...

  4. android adbd代码在哪个目录下,Android源代码目录结构

    在讲述Android源码编译的三个步骤之前,将先介绍Android源码目录结构,以便读者理清Android编译系统核心代码在Android源代码的位置. Android源代码顶层目录结构如下所示: . ...

  5. Hexo站点SEO优化攻略

    一.SEO概述 Hexo站点搭建完毕之后,就开始思考如何能够让搜索引擎收录我们的站点,然后被检索到,这就涉及到了SEO优化内容.SEO是英文Search Engine Optimization的缩写, ...

  6. 使用python实现EXCEL内容批量生成图片和批量拼接图片并按照指定目录存放

    一.背景介绍 1.1 任务概况 工作中遇到一个任务,要求如下: 1.批量制作900多个图片,每张图片内容不一样,不同的部分由EXCEL的内容决定: 2.图片制作完成后,需要按照EXCEL制定的名称命名 ...

  7. 阿里云mysql目录_mysql数据库目录存放位置更改-阿里云开发者社区

    mysql Oracle官方下载 类型特多 看起来很让人头痛  我们选择 Download MySQL Community Server 在这个下载网站 选择平台是ORACL& RED HAT ...

  8. linux c readdir 顺序,Linux读取目录函数readdir以及inode结构简介

    readdir 语法: struct dirent* readdir(DIR* dir_handle); 返回值: dirent结构 函数种类: 文件存取 内容说明 本函数用来读取目录.返回目录中的文 ...

  9. linux那个目录存放用户密码信息,linux试题及答案

    选择题1 1.在创建Linux分区时,一定要创建()两个分区 A. FAT/NTFS B. FAT/SW AP C. NTFS/SW AP D.SW AP/根分区 2.在Red Hat Linux 9 ...

最新文章

  1. MindMotion MM32F3277 SoftI2C功能测试
  2. [J2ME] Signing a midlet suite的讨论稿[Update]
  3. 一年的天数 Exercise06_16
  4. stm32f405xx.h头文件的问题Undefined symbol IS_TIM_BREAK_INSTANCE
  5. 决战9小时,产品上线的危机时刻
  6. phpstrom 编辑器设置
  7. 62 getproperty对象
  8. 隐藏文件或文件夹属性无法修改解决方案
  9. 用java做一个管理系统难吗_想知道怎样用Java做出一个学生管理系统,课一直听得一知半解。现在考试啥都不会?...
  10. Linux 设置用户权限只能写不能删除
  11. Ubuntu安装minicom串口工具
  12. 学生宿舍管理项目开发计划书_第六组学生宿舍管理系统项目计划书
  13. TreeMap和TreeSet在排序时如何比较元素?Collections工具类中的sort()方法如何比较元素?...
  14. php rsa加密demo,php实现RSA加密类实例_PHP
  15. CMS网站页面管理开发汇总
  16. 基于嵌入式Linux的语音识别系统硬软件设计
  17. 帝国cms用ajax,帝国CMS7.5二次开发之制作Ajax版登录插件(不改系统文件)
  18. bioRxiv|利用机器智能设计抗新型冠状病毒药物
  19. jquery禁止鼠标右键 原生js禁止鼠标右键
  20. GridView使用大全

热门文章

  1. 设计题目:门禁管理系统(DOS)
  2. java ssm项目心得总结_SSM整合,个人总结和step
  3. 敏捷,需要有人喊一声
  4. html把提交按钮放中心,HTML中如何让提交按钮居中?
  5. Linux 压缩,解压缩,打包指令
  6. UI设计面试时要注意哪些地方!
  7. 百度或360搜索:地震姜常宏,求传播?!!
  8. DVD支持的视频格式
  9. Masonry的尝试_照片墙
  10. luogu 1375 小猫 (卡特兰数)