Once Hexo is installed, run the following commands to initialise Hexo in the target <folder>.

$ hexo init <folder>
$ cd <folder>
$ npm install

Once initialised, here’s what your project folder will look like:

├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes


Site configuration file. You can configure most settings here.


Application data. The EJS, Stylus and Markdown renderers are installed by default. If you want, you can uninstall them later.

"name": "hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": ""
"dependencies": {
"hexo": "^3.0.0",
"hexo-generator-archive": "^0.1.0",
"hexo-generator-category": "^0.1.0",
"hexo-generator-index": "^0.1.0",
"hexo-generator-tag": "^0.1.0",
"hexo-renderer-ejs": "^0.1.0",
"hexo-renderer-stylus": "^0.2.0",
"hexo-renderer-marked": "^0.2.4",
"hexo-server": "^0.1.2"


Scaffold folder. When you create a new post, Hexo bases the new file on the scaffold.


Source folder. This is where you put your site’s content. Hexo ignores hidden files and files or folders whose names are prefixed with _ (underscore) - except the _posts folder. Renderable files (e.g. Markdown, HTML) will be processed and put into the public folder, while other files will simply be copied.


Theme folder. Hexo generates a static website by combining the site contents with the theme.