# 貢獻
## 開發
我們非常歡迎您加入 Hexo 的開發,這份文件將幫助您了解開發流程。
### 開始之前
請遵守以下準則:
* 遵守 [Google JavaScript 代碼風格](http://google-styleguide.googlecode.com/svn/trunk/javascriptguide.xml)。
* 使用 2 個空格縮排。
* 不要把逗號放在最前面。
### 工作流程
1. Fork [hexojs/hexo](https://github.com/hexojs/hexo)
2. 把庫(repository)復制到電腦上,并安裝所依賴的插件。
```
$ git clone https://github.com/<username>/hexo.git
$ cd hexo
$ npm install
$ git submodule update --init
```
3. 新增一個功能分支。
```
$ git checkout -b new_feature
```
4. 開始開發。
5. 推送(push)分支。
```
$ git push origin new_feature
```
6. 建立一個新的合并申請(pull request)并描述變動。
### 注意事項
* 不要修改 `package.json` 的版本號。
* 只有在測試通過的情況下您的合并申請才會被批準,在提交前別忘了進行測試。
```
$ npm test
```
## 更新文檔
Hexo 文檔開放源代碼,您可以在 [hexojs/site](https://github.com/hexojs/site) 找到源代碼。
### 工作流程
1. Fork [hexojs/site](https://github.com/hexojs/site)
2. 把庫(repository)復制到電腦上,并安裝所依賴的插件。
```
$ git clone https://github.com/<username>/site.git
$ cd site
$ npm install
```
3. 開始編輯文件,您可以通過服務器預覽變動。
```
$ hexo server
```
4. 推送(push)分支。
5. 建立一個新的合并申請(pull request)并描述變動。
### 翻譯
1. 在 `source` 資料夾中建立一個新的語言資料夾(全小寫)。
2. 把 `source` 資料夾中相關的文件(Markdown 和模板文件)復制到新的語言資料夾中。
3. 在 `source/_data/language.yml` 中新增語言。
4. 將 `en.yml` 復制到 `themes/navy/languages`中并命名為語言名稱(全小寫)。
## 反饋問題
當您在使用 Hexo 時遇到問題,您可以嘗試在 [問題解答](troubleshooting.html) 中尋找解答,或是在 [GitHub](https://github.com/hexojs/hexo/issues) 或 [Google Group](https://groups.google.com/group/hexo) 上提問。如果你沒有找答案,請在 Github 報告它。
1. 在 [調試模式](commands.html#調試模式) 中重現問題。
2. 運行 `hexo version` 并檢查版本信息。
3. 把調試信息和版本信息都貼到 GitHub。
- 文檔
- 開始使用
- 概述
- 建站
- 配置
- 指令
- 遷移
- 基本操作
- 寫作
- Front-matter
- 標簽插件(Tag Plugins)
- 資源文件夾
- 數據文件
- 服務器
- 生成文件
- 部署
- 自定義
- 永久鏈接(Permalinks)
- 主題
- 模版
- 變量
- 輔助函數(Helpers)
- 國際化(i18n)
- 插件
- 其他
- 問題解答
- 貢獻
- API
- 核心
- 概述
- 事件
- 局部變量
- 路由
- Box
- 渲染
- 文章
- 腳手架(Scaffold)
- 主題
- 擴展
- 控制臺(Console)
- 部署器(Deployer)
- 過濾器(Filter)
- 生成器(Generator)
- 輔助函數(Helper)
- 遷移器(Migrator)
- 處理器(Processor)
- 渲染引擎(Renderer)
- 標簽插件(Tag)