Contributing

We welcome you to join the development of Hexo. ๐Ÿค—

๊ฐœ๋ฐœ

์šฐ๋ฆฌ๋Š” ๋‹น์‹ ์ด Hexo์˜ ๊ฐœ๋ฐœ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฒƒ์„ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฌธ์„œ๋Š” ๋‹น์‹ ์˜ ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค์— ๋„์›€์„ ์ค„ ๊ฒ๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๊ธฐ ์ „์—โ€ฆ

Please read Contributor Covenant Code of Conduct first.

์•„๋ž˜์˜ ์ฝ”๋”ฉ ์Šคํƒ€์ผ์„ ์ง€์ผœ์ฃผ์„ธ์š”.

  • Google JavaScript Style Guide๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.
  • ๋‘ ๊ฐœ์˜ ๊ณต๋ฐฑ์„ ์‚ฌ์šฉํ•œ soft-tab์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ์ฝค๋งˆ๋กœ ์‹œ์ž‘ํ•˜์ง€ ๋งˆ์„ธ์š”.

Also, Hexo has its own ESLint config, so please make sure your contribution will make ESLint happy.

Workflow

  1. Fork hexojs/hexo.
  2. ์ €์žฅ์†Œ๋ฅผ ๋‹น์‹ ์˜ ์ปดํ“จํ„ฐ์— cloneํ•˜๊ณ  ์˜์กด ์‚ฌํ•ญ๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
$ git clone https://github.com/<username>/hexo.git
$ cd hexo
$ npm install
$ git submodule update --init
  1. ๊ธฐ๋Šฅ branch๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
$ git checkout -b new_feature
  1. Start hacking.
  2. Branch๋ฅผ pushํ•ฉ๋‹ˆ๋‹ค.
$ git push origin new_feature
  1. ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•˜์—ฌ Pull request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๊ณต์ง€์‚ฌํ•ญ

  • package.json์˜ version number๋Š” ์ˆ˜์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.
  • ๋‹น์‹ ์˜ Pull request๋Š” ํ…Œ์ŠคํŠธ๋ฅผ ํ†ต๊ณผํ–ˆ์„ ๋•Œ์—๋งŒ merge๋ฉ๋‹ˆ๋‹ค. ๋ฐ˜์˜ํ•˜๊ธฐ ์ „์— test๋ฅผ ๋Œ๋ ค๋ณด์„ธ์š”.
$ npm test

Updating official-plugins

Also, we welcome PR or issue to official-plugins. ๐Ÿค—

๋ฌธ์„œ์˜ ๊ฐฑ์‹ 

Hexo ๋ฌธ์„œ๋Š” opensource์ด๋ฉฐ hexojs/site์—์„œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Workflow

  1. Fork hexojs/site
  2. ์ €์žฅ์†Œ๋ฅผ ๋‹น์‹ ์˜ ์ปดํ“จํ„ฐ์— cloneํ•˜๊ณ  ์˜์กด ์‚ฌํ•ญ๋“ค์„ ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค.
$ npm install hexo-cli -g # If you don't have hexo-cli installed
$ git clone https://github.com/<username>/site.git
$ cd site
$ npm install
  1. ๋ฌธ์„œ๋ฅผ ์ˆ˜์ •ํ•˜์„ธ์š”. Server๋ฅผ ๋Œ๋ ค์„œ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
$ hexo server
  1. Branch๋ฅผ pushํ•ฉ๋‹ˆ๋‹ค.
  2. ๋‹น์‹ ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์„ค๋ช…์„ ํฌํ•จํ•˜์—ฌ Pull request๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ฒˆ์—ญ

Contribute translations

Crowdin

Now we use the Crowdin platform for translation, where anyone can contribute translations and vote for translations without manual git operations.

Add a new language

  1. Submit a new issue to let us know. The members with access to the Crowdin Project add the language in settings.
  2. After adding language in Crowdin, anyone can contribute translations on it.
  3. source/_data/language.yml์— ์ƒˆ ์–ธ์–ด๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.
  4. themes/navy/languages์— en.yml ํŒŒ์ผ์„ ๋ณต์‚ฌํ•˜๊ณ  ์ƒˆ ์–ธ์–ด๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์„ธ์š”. (์†Œ๋ฌธ์ž๋กœ ๋ณ€๊ฒฝํ•˜์„ธ์š”.)

์ด์Šˆ ๋ณด๊ณ 

Hexo๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•˜๋ฉด, Troubleshooting, GitHub, Google Group์—์„œ ์ด์Šˆ์— ๋Œ€ํ•ด ๋‹ต์„ ์ฐพ์•„๋ณด์„ธ์š”. ๋งŒ์•ฝ ๋‹ต์ด ์—†๋‹ค๋ฉด Github์— ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•ด ์ฃผ์„ธ์š”.

  1. ๋ฌธ์ œ ์žฌํ˜„์€ debug mode์—์„œ ํ•ด์ฃผ์„ธ์š”.
  2. Follow the steps from issue template to provide debug message and version when submitting a new issue at GitHub.