# 插件
Hexo 有強大的插件系統,使您能輕松擴展功能而不用修改核心模塊的源碼。在 Hexo 中有兩種形式的插件:
### 腳本(Scripts)
如果您的代碼很簡單,建議您編寫腳本,您只需要把 JavaScript 文件放到 `scripts` 文件夾,在啟動時就會自動載入。
### 插件(Packages)
如果您的代碼較復雜,或是您想要發布到 NPM 上,建議您編寫插件。首先,在 `node_modules` 文件夾中建立文件夾,文件夾名稱開頭必須為 `hexo-`,如此一來 Hexo 才會在啟動時載入否則 Hexo 將會忽略它。
文件夾內至少要包含 2 個文件:一個是主程序,另一個是 `package.json`,描述插件的用途和所依賴的插件。
```
.
├── index.js
└── package.json
```
`package.json` 中至少要包含 `name`, `version`, `main` 屬性,例如:
```
{ "name"hexo-my-plugin", "version"0.0.1", "main"index"
```
### 工具
您可以使用 Hexo 提供的官方工具插件來加速開發:
* [hexo-fs](https://github.com/hexojs/hexo-fs):文件 IO
* [hexo-util](https://github.com/hexojs/hexo-util):工具程式
* [hexo-i18n](https://github.com/hexojs/hexo-i18n):本地化(i18n)
* [hexo-pagination](https://github.com/hexojs/hexo-pagination):生成分頁資料
### 發布
當您完成插件后,可以考慮將它發布到 [插件列表](/plugins),讓更多人能夠使用您的插件。發布插件的步驟和 [更新文件](contributing.html#更新文件) 非常類似。
1. Fork [hexojs/site](https://github.com/hexojs/site)
2. 把庫(repository)復制到電腦上,并安裝所依賴的插件。
```
$ git clone https://github.com/<username>/site.git
$ cd site
$ npm install
```
3. 編輯 `source/_data/plugins.yml`,在檔案中新增您的插件,例如:
```
- name: hexo-server
description: Server module for Hexo.
link: https://github.com/hexojs/hexo-server
tags:
- official
- server
- console
```
4. 推送(push)分支。
5. 建立一個新的合并申請(pull request)并描述改動。
- 文檔
- 開始使用
- 概述
- 建站
- 配置
- 指令
- 遷移
- 基本操作
- 寫作
- Front-matter
- 標簽插件(Tag Plugins)
- 資源文件夾
- 數據文件
- 服務器
- 生成文件
- 部署
- 自定義
- 永久鏈接(Permalinks)
- 主題
- 模版
- 變量
- 輔助函數(Helpers)
- 國際化(i18n)
- 插件
- 其他
- 問題解答
- 貢獻
- API
- 核心
- 概述
- 事件
- 局部變量
- 路由
- Box
- 渲染
- 文章
- 腳手架(Scaffold)
- 主題
- 擴展
- 控制臺(Console)
- 部署器(Deployer)
- 過濾器(Filter)
- 生成器(Generator)
- 輔助函數(Helper)
- 遷移器(Migrator)
- 處理器(Processor)
- 渲染引擎(Renderer)
- 標簽插件(Tag)