Etherpad/外掛:修訂版本之間的差異
出自福留子孫
(→步驟) |
(→步驟) |
||
第 29 行: | 第 29 行: | ||
"engines":{"node":"*"} | "engines":{"node":"*"} | ||
}</pre> | }</pre> | ||
+ | *在資料夾中新增 ep.json ,裡面打外掛的函式介紹([https://etherpad.org/doc/latest/#index_plugins 範例(搜尋Plugin definition)]) <br/>其中 name 為外掛名字, hook 及 client hook 中會寫出外掛使用的函式及位置。 | ||
+ | <pre>{ | ||
+ | "parts":[ | ||
+ | { | ||
+ | "name":"nameThisPartHoweverYouWant", | ||
+ | "hooks":{ | ||
+ | "authenticate":"ep_<plugin>/<file>:functionName1", | ||
+ | "expressCreateServer":ep_<plugin>/<file>:functionName2" | ||
+ | }, | ||
+ | "client_hooks":{"acePopulateDOMLine":"ep_<plugin>/<file>:functionName3"} | ||
+ | } | ||
+ | ] | ||
+ | }</pre> | ||
+ | :以 ep_previewimages 中的 ep.json 為例: | ||
<pre>{ | <pre>{ | ||
"parts":[ | "parts":[ | ||
第 39 行: | 第 53 行: | ||
} | } | ||
] | ] | ||
− | } | + | }</pre> |
− | </pre> | + |
2023年4月25日 (二) 14:42的修訂版本
可參考以下影片
寫出第一個Etherpad外掛步驟
- 可將 setting.json 中 "minify" 的設定由 true 改成 false ,方便 debug
- 創造 plugins 資料夾(舉例 ep_previewimages)
- 在資料夾中新增 packages.json ,裡面打此外掛的基本資訊(名字 作者 版本 描述 貢獻者 運行引擎),無涉外掛運用(範例(搜尋Package definition))
其中 name 為外掛的名字, version 為外掛版本, description 為外掛介紹, author 為外掛作者, contributors 為貢獻者名單, dependencies 為寫程式所依賴的工具包, engines 為運行引擎。
{ "name": "ep_PLUGINNAME", "version": "0.0.1", "description": "DESCRIPTION", "author": "USERNAME (REAL NAME) <MAIL@EXAMPLE.COM>", "contributors": [], "dependencies": {"MODULE": "0.3.20"}, "engines": {"node": ">=12.13.0"} }
- 以 ep_previewimages 中的 packages.json 為例:
{ "name":"ep_previewimages", "description":"Image previewer, paste the URL of an image or upload an image using ep_fileupload", "version":"0.0.13", "author":"johnyma22 (John McLear) <john@mclear.co.uk>", "contributors":[], "dependencies":{}, "repository":{"type":"git","url":"https://github.com/JohnMcLear/ep_previewimages.git"}, "engines":{"node":"*"} }
- 在資料夾中新增 ep.json ,裡面打外掛的函式介紹(範例(搜尋Plugin definition))
其中 name 為外掛名字, hook 及 client hook 中會寫出外掛使用的函式及位置。
{ "parts":[ { "name":"nameThisPartHoweverYouWant", "hooks":{ "authenticate":"ep_<plugin>/<file>:functionName1", "expressCreateServer":ep_<plugin>/<file>:functionName2" }, "client_hooks":{"acePopulateDOMLine":"ep_<plugin>/<file>:functionName3"} } ] }
- 以 ep_previewimages 中的 ep.json 為例:
{ "parts":[ { "name":"ep_previewimages", "client_hooks":{ "aceGetFilterStack":"ep_previewimages/static/js/index:aceGetFilterStack", "aceCreateDomLine":"ep_previewimages/static/js/index:aceCreateDomLine" } } ] }