hexo มีระบบปลั๊กอินท่ีมีประสิทธิภาพ ซึ่งทำให้มันง่ายท่ีจะขยาย function ต่างๆโดยไม่ต้องแก้ไข source code ของ module สำคัญ ใน hexo มีปลั๊กอินสองอย่างทั้งหมด: There are two kinds of plugins in Hexo:
Script
If your plugin is relatively simple, it’s recommended to use a script. ถ้าปลั๊กอินของคุณไม่ซับซ้อนเท่าไร การท่ีคุณต้องทำคือวางไฟล์ JavaScript ของคุณอยู่ใน folder script
เท่านั้น hexo จะโหลดไฟล์นั้นในช่วง initialization
Plugin
ถ้า code ของคุณค่อนข้างซับซ้อน หรือคุณอยากไปประกาศท่ี NPM registry คุณใช้ code เหล่านี้ในแบบปลั๊กอินจะสะดวกกว่า ชื่อของ folder นี้ต้องมี hexo-
เป็นคำนำหน้า ไม่งั้นจะถูก hexo ละเลย First, create a folder in the node_modules
folder. The name of this folder must begin with hexo-
or Hexo will ignore it.
folder ใหม่ของคุณต้องการมีไฟล์อย่างน้อยสองอย่าง: อย่างหนึ่งเป็นไฟล์ท่ีรวม JavaScript code ของตน และอีกอย่างหนึ่งเป็นไฟล์ package.json
ท่ีเขียนเจตนาการสร้างปลั๊กอินนี้และ dependency ของมัน
. |
Edit source/_data/plugins.yml
and add your plugin. For example:
{ |
คุณยังต้องเขียนชื่อปลั๊กอินของตนเป็น dependency ในไฟล์ package.json
ท่ีเป็น root ของ hexo ดังนั้น hexo จะได้สืบค้นและโหลดปลั๊กอินนี้
Tools
คุณสามารถใช้ประโยชน์จากเครื่องมือทางการท่ีสนับสนุนโดย hexo เพื่อเพิ่มความเร็วของ development:
- hexo-fs:File IO
- hexo-util:Utilities
- hexo-i18n:Localization (i18n)
- hexo-pagination:Generate pagination data
Publishing
เมื่อปลั๊กอินของคุณพร้อมแล้ว คุณอาจจะคิดท่ีจะประกาศมันไปถึง [plugin list] (/plugins) เพื่อชวนคนอื่นมาใช้ การประกาศปลั๊กอินของตนจะคล้ายกับ updating documentation Publishing your own plugins is very similar to updating documentation.
Fork hexojs/site
Clone the repository to your computer and install dependencies.
git clone https://github.com/<username>/site.git
cd site
npm installCreate a new yaml file in
source/_data/plugins/
, use your plugin name as the file nameEdit
source/_data/plugins/<your-plugin-name>.yml
and add your plugin. For example:description: Server module for Hexo.
link: https://github.com/hexojs/hexo-server
tags:
- official
- server
- consolePush the branch.
Create a pull request and describe the change.