Development
We welcome you to join the development of Hexo. This document will help you through the process.
Before You Start
Please follow the coding style:
- Follow Google JavaScript Style Guide.
- Use soft-tabs with a two space indent.
- Don’t put commas first.
Workflow
- Fork hexojs/hexo.
Clone the repository to your computer and install dependencies.
$ git clone https://github.com/<username>/hexo.git$ cd hexo$ npm install$ git submodule update --initCreate a feature branch.
$ git checkout -b new_featureStart hacking.
Push the branch:
$ git push origin new_featureCreate a pull request and describe the change.
Notice
- Don’t modify version number in
package.json
. Your pull request will only get merged when tests passed. Don’t forget to run tests before submission.
$ npm test
Updating Documentation
The Hexo documentation is open source and you can find the source code on hexojs/site.
Workflow
- Fork hexojs/site
Clone the repository to your computer and install dependencies.
$ git clone https://github.com/<username>/site.git$ cd site$ npm installStart editing the documentation. You can start the server for live previewing.
$ hexo serverPush the branch.
- Create a pull request and describe the change.
Translating
- Add a new language folder in
source
folder. (All lower case) - Copy Markdown and template files in
source
folder to the new language folder. - Add the new language to
source/_data/language.yml
. - Copy
en.yml
inthemes/navy/languages
and rename to the language name (all lower case).
Reporting Issues
When you encounter some problems when using Hexo, you can find the solutions in Troubleshooting or ask me on GitHub or Google Group. If you can’t find the answer, please report it on GitHub.
- Represent the problem in debug mode.
- Run
hexo version
and check the version info. - Post both debug message and version info on GitHub.