slush-hexo-theme icon indicating copy to clipboard operation
slush-hexo-theme copied to clipboard

⚠️ Need slush dev to help fix for newest node and slush version | Moved to https://tcrowe.commons.host/contact

slush-hexo-theme

Generate a hexo theme

Yeoman version available too

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

Install globally

npm install --global slush
npm install --global slush-hexo-theme

How to use it

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.

  1. Check _config.yml in your main blog directory
  • Set theme property to your theme name, activating this theme
  1. Check _config.yml in your theme directory
  • Change menu items if needed
  • Change stylesheet and scripts list if needed
  1. Navigate to your main blog directory
  2. hexo server --debug

Hexo renderers

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

Help!


Contribute

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?

  1. Fork
  2. Copy an existing template directory
  3. Port it to the new language
  4. Test
  5. Create pull request

Development

# 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.


Thank you contributors

Resources

  • 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