Generate a hexo theme
Template choices:
- ejs
- nunjucks
- pug
- swig
Style choices:
- stylus
- sass
- scss
- less
- css
Other:
- hexo scripts
- bower: .bowerrc, bower.json
- npm: package.json
- .gitignore
- .editorconfig
npm install --global slush
npm install --global slush-hexo-theme
If you don't have a site yet create one with hexo init
hexo-cli.
mkdir my-site
cd my-site
hexo init
Navigate to the directory you want to place the theme project in (most likely themes/
).
# from the site root
cd themes
# make a new theme directory
mkdir my-theme
cd my-theme
# generate
slush hexo-theme
It will not automatically overwrite an existing file. Overwrites are confirmed with the user.
- Check
_config.yml
in your main blog directory
- Set
theme
property to your theme name, activating this theme
- Check
_config.yml
in your theme directory
- Change menu items if needed
- Change stylesheet and scripts list if needed
- Navigate to your main blog directory
hexo server --debug
It might be necessary to goto the blog directory and install a specific renderer for the template language you have chosen. Swig are built into Hexo.
# templates
npm install hexo-renderer-ejs
npm install hexo-renderer-njks
npm install hexo-render-pug
# styles
npm install hexo-renderer-stylus
npm install hexo-renderer-less
npm install hexo-renderer-sass
- hexo gitter chat https://gitter.im/hexojs/hexo
- post an issue
It's a community project. Want to help?
- Fix a bug
- GitHub star ⭐
npm star slush-hexo-theme
- Do we need to implement any helpers? https://hexo.io/docs/helpers.html
Know another template language hexo users need?
- Fork
- Copy an existing template directory
- Port it to the new language
- Test
- Create pull request
# test the development build
# it's faster than prd script
npm run dev
# build before publishing
# prd = production build
npm run prd
# clean up the test site
npm run clean
npm run prd
does everything needed:
- clean
- link
- test
If you want to add a template language please copy one and port it so it keeps roughly the same structure.
- Theme docs https://hexo.io/docs/themes.html
- Submit your theme https://github.com/hexojs/hexo-theme-unit-test
- Slush docs http://slushjs.github.io