mirror of
https://github.com/rubickCenter/rubick
synced 2025-06-07 11:04:11 +08:00
112 lines
27 KiB
HTML
112 lines
27 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en-US">
|
||
<head>
|
||
<meta charset="utf-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<title>插件说明 | Rubick</title>
|
||
<meta name="generator" content="VuePress 1.9.9">
|
||
|
||
<meta name="description" content="你的开源桌面插件应用">
|
||
|
||
<link rel="preload" href="/rubick/assets/css/0.styles.a1fe2806.css" as="style"><link rel="preload" href="/rubick/assets/js/app.802a86ab.js" as="script"><link rel="preload" href="/rubick/assets/js/2.733019b2.js" as="script"><link rel="preload" href="/rubick/assets/js/9.3b2c34da.js" as="script"><link rel="preload" href="/rubick/assets/js/3.64801815.js" as="script"><link rel="prefetch" href="/rubick/assets/js/10.f7f1aa99.js"><link rel="prefetch" href="/rubick/assets/js/11.861f0d8b.js"><link rel="prefetch" href="/rubick/assets/js/12.8083ac2d.js"><link rel="prefetch" href="/rubick/assets/js/4.fc333d27.js"><link rel="prefetch" href="/rubick/assets/js/5.bfef3080.js"><link rel="prefetch" href="/rubick/assets/js/6.2d0a63f8.js"><link rel="prefetch" href="/rubick/assets/js/7.9c9172a7.js"><link rel="prefetch" href="/rubick/assets/js/8.010bfadc.js">
|
||
<link rel="stylesheet" href="/rubick/assets/css/0.styles.a1fe2806.css">
|
||
</head>
|
||
<body>
|
||
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/rubick/" class="home-link router-link-active"><img src="/rubick/images/logo.png" alt="Rubick" class="logo"> <span class="site-name can-hide">Rubick</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/rubick/guide/" class="nav-link">
|
||
使用文档
|
||
</a></div><div class="nav-item"><a href="/rubick/dev/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
|
||
开发者
|
||
</a></div> <a href="https://github.com/rubickCenter/rubick" target="_blank" rel="noopener noreferrer" class="repo-link">
|
||
Github
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/rubick/guide/" class="nav-link">
|
||
使用文档
|
||
</a></div><div class="nav-item"><a href="/rubick/dev/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
|
||
开发者
|
||
</a></div> <a href="https://github.com/rubickCenter/rubick" target="_blank" rel="noopener noreferrer" class="repo-link">
|
||
Github
|
||
<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></nav> <ul class="sidebar-links"><li><a href="/rubick/guide/" class="sidebar-link">使用文档</a></li><li><a href="/rubick/dev/" aria-current="page" class="active sidebar-link">插件开发</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/rubick/dev/#插件说明" class="sidebar-link">插件说明</a></li><li class="sidebar-sub-header"><a href="/rubick/dev/#开发-ui-插件" class="sidebar-link">开发 UI 插件</a></li><li class="sidebar-sub-header"><a href="/rubick/dev/#开发系统插件" class="sidebar-link">开发系统插件</a></li><li class="sidebar-sub-header"><a href="/rubick/dev/#发布插件" class="sidebar-link">发布插件</a></li></ul></li><li><a href="/rubick/super/" class="sidebar-link">特殊服务</a></li><li><a href="/rubick/api/" class="sidebar-link">API</a></li><li><a href="/rubick/run/" class="sidebar-link">贡献 rubick</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h2 id="插件说明"><a href="#插件说明" class="header-anchor">#</a> 插件说明</h2> <p><code>rubick</code> 插件分为 <code>UI插件</code> 和 <code>系统插件</code> 2类。下面分别介绍这 2 类插件的区别和作用。</p> <ol><li>UI 插件 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>最常用</span>:都会有 UI 界面,用于和用户交互,且需要通过关键词搜索选择进行使用,比如 <code>斗图</code> 插件,有界面展示,且需要再搜索框内搜索关键词选择后进行呼起才能使用。</li> <li>系统插件:可能不会有 UI 界面,在 <code>rubick</code> 启动的时候,会注册执行系统插件。比如<code>超级面板</code> 插件,安装完成后,即可在 <code>rubick</code> 运行时随时使用,不需要任何关键词和匹配。</li></ol> <h2 id="开发-ui-插件"><a href="#开发-ui-插件" class="header-anchor">#</a> 开发 UI 插件</h2> <p>一个最基础插件的目录是这样的:</p> <div class="language- extra-class"><pre class="language-text"><code>rubick-plugin-demo
|
||
|-- index.html
|
||
|-- package.json
|
||
|-- preload.js
|
||
</code></pre></div><h3 id="文件说明"><a href="#文件说明" class="header-anchor">#</a> 文件说明</h3> <h4 id="package-json"><a href="#package-json" class="header-anchor">#</a> package.json</h4> <p>用于指定插件最基础的配置,一个最基础的配置信息如下:</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
|
||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"rubick-ui-plugin-demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"pluginName"</span><span class="token operator">:</span> <span class="token string">"插件demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"rubick ui 插件demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"author"</span><span class="token operator">:</span> <span class="token string">"muwoo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"main"</span><span class="token operator">:</span> <span class="token string">"index.html"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"logo"</span><span class="token operator">:</span> <span class="token string">"https://www.img/demo.png"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"0.0.1"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"preload"</span><span class="token operator">:</span><span class="token string">"preload.js"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"homePage"</span><span class="token operator">:</span> <span class="token string">"https://gitee.com/rubick-center/rubick-ui-plugin-demo/raw/master/README.md"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"pluginType"</span><span class="token operator">:</span> <span class="token string">"ui"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"features"</span><span class="token operator">:</span> <span class="token punctuation">[</span>
|
||
<span class="token punctuation">{</span>
|
||
<span class="token property">"code"</span><span class="token operator">:</span> <span class="token string">"index"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"explain"</span><span class="token operator">:</span> <span class="token string">"测试插件"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"cmds"</span><span class="token operator">:</span><span class="token punctuation">[</span>
|
||
<span class="token string">"demo"</span><span class="token punctuation">,</span>
|
||
<span class="token string">"测试"</span>
|
||
<span class="token punctuation">]</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">]</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><p>核心字段说明:</p> <ul><li>name: 插件 <code>npm</code> 包名称,<span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>pluginName: 插件显示名称,用于展示给使用者 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>description: 插件描述,描述这个插件的作用 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>author: 插件作者</li> <li>main: 入口文件,一般为 <code>index.html</code></li> <li>logo: 尺寸建议 200 * 200, 插件的 logo, 需要是 http/https 在线地址,不支持本地logo <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>version: 插件的版本 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>preload: 预加载脚本</li> <li>homePage: 插件 readme raw 地址</li> <li>pluginType: 插件类型,枚举:ui, system. 当前选 ui <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>features: 插件核心功能列表 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>features.code: 插件某个功能的识别码,可用于区分不同的功能 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>features.explain: 插件某个功能的解释 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>features.cmds: 输入框内搜索该 cmd 进入插件 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li></ul> <h4 id="index-html"><a href="#index-html" class="header-anchor">#</a> index.html</h4> <p>插件的入口文件,用于展示插件的样式,一个最基础的 <code>html</code> 结构可以是这样:</p> <div class="language-html extra-class"><pre class="language-html"><code><span class="token doctype"><span class="token punctuation"><!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>html</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>body</span><span class="token punctuation">></span></span>
|
||
hello Rubick
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>button</span> <span class="token attr-name">id</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>showNotification<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>通知<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>button</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>body</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"><</span>script</span><span class="token punctuation">></span></span><span class="token script"><span class="token language-javascript">
|
||
document<span class="token punctuation">.</span><span class="token function">getElementById</span><span class="token punctuation">(</span><span class="token string">'showNotification'</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">addEventListener</span><span class="token punctuation">(</span><span class="token string">'click'</span><span class="token punctuation">,</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||
window<span class="token punctuation">.</span><span class="token function">showNotification</span><span class="token punctuation">(</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span>
|
||
</span></span><span class="token tag"><span class="token tag"><span class="token punctuation"></</span>script</span><span class="token punctuation">></span></span>
|
||
<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>html</span><span class="token punctuation">></span></span>
|
||
</code></pre></div><h4 id="preload-js"><a href="#preload-js" class="header-anchor">#</a> preload.js</h4> <p>细心的同学可能已经注意到上面的 <code>index.html</code> 使用了一个全局函数 <code>showNotification</code> 那么这个函数是在哪里定义的呢?
|
||
答案就是在 <code>preload.js</code> 里面。<code>preload.js</code> 可以为页面提供全局函数</p> <div class="language-js extra-class"><pre class="language-js"><code>window<span class="token punctuation">.</span><span class="token function-variable function">showNotification</span> <span class="token operator">=</span> <span class="token keyword">function</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
rubick<span class="token punctuation">.</span><span class="token function">showNotification</span><span class="token punctuation">(</span><span class="token string">'HI, rubick'</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><p>rubick 更多支持 API 能力参考:<a href="https://github.com/rubickCenter/rubick/blob/master/static/preload.js#L49" target="_blank" rel="noopener noreferrer">rubick 全局API<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h3 id="测试写好的插件"><a href="#测试写好的插件" class="header-anchor">#</a> 测试写好的插件</h3> <p>由于 <code>rubick</code> 插件是基于 <code>npm</code> 的管理方式,所以开发者调试插件,也是基于 <code>npm</code> 的软连接的方式进行调试。
|
||
首先需要再插件 <code>package.json</code> 目录下执行:</p> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token function">npm</span> <span class="token function">link</span>
|
||
</code></pre></div><p>然后将插件通过插件市场的 <code>开发者</code> 菜单进行安装,填写插件的 <code>name</code> 即可,如果插件需要调试,可以通过右上角 ... 来打开开发者工具进行调试,页面变更直接刷新即可:</p> <p><img src="https://pica.zhimg.com/80/v2-d7d6d5cba1151527aeff8e2c9b8cefb4_720w.gif" alt=""></p> <p>本小节所有代码:<a href="https://gitee.com/rubick-center/rubick-ui-plugin-demo" target="_blank" rel="noopener noreferrer">rubick-ui-plugin-demo<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a></p> <h2 id="开发系统插件"><a href="#开发系统插件" class="header-anchor">#</a> 开发系统插件</h2> <p>一个最基础插件的目录是这样的:</p> <div class="language- extra-class"><pre class="language-text"><code>rubick-system-plugin-demo
|
||
|-- package.json
|
||
|-- index.js
|
||
</code></pre></div><h3 id="文件说明-2"><a href="#文件说明-2" class="header-anchor">#</a> 文件说明</h3> <h4 id="package-json-2"><a href="#package-json-2" class="header-anchor">#</a> package.json</h4> <p>用于指定插件最基础的配置,一个最基础的配置信息如下:</p> <div class="language-json extra-class"><pre class="language-json"><code><span class="token punctuation">{</span>
|
||
<span class="token property">"name"</span><span class="token operator">:</span> <span class="token string">"rubick-system-plugin-demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"pluginName"</span><span class="token operator">:</span> <span class="token string">"rubick 系统插件demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"version"</span><span class="token operator">:</span> <span class="token string">"0.0.0"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"description"</span><span class="token operator">:</span> <span class="token string">"rubick 系统插件demo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"entry"</span><span class="token operator">:</span> <span class="token string">"index.js"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"logo"</span><span class="token operator">:</span> <span class="token string">"https://xxxx/upload/202112/08/5bac90649c5343cabb63930b131cf8e6.png"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"pluginType"</span><span class="token operator">:</span> <span class="token string">"system"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"author"</span><span class="token operator">:</span> <span class="token string">"muwoo"</span><span class="token punctuation">,</span>
|
||
<span class="token property">"homepage"</span><span class="token operator">:</span> <span class="token string">""</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><p>核心字段说明:</p> <ul><li>name: 插件 <code>npm</code> 包名称,<span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>pluginName: 插件显示名称,用于展示给使用者 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>description: 插件描述,描述这个插件的作用 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>author: 插件作者</li> <li>entry: 入口文件,一般为 <code>index.js</code></li> <li>logo: 尺寸建议 200 * 200, 插件的 logo, 需要是 http/https 在线地址,不支持本地logo <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>version: 插件的版本 <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li> <li>homePage: 插件 readme raw 地址</li> <li>pluginType: 插件类型,枚举:ui, system. 当前选 system <span class="badge tip" style="vertical-align:top;" data-v-15b7b770>必填</span></li></ul> <h4 id="index-js"><a href="#index-js" class="header-anchor">#</a> index.js</h4> <p>插件的入口文件,用于 rubick 主进程进行加载执行:</p> <div class="language-js extra-class"><pre class="language-js"><code>module<span class="token punctuation">.</span><span class="token function-variable function">exports</span> <span class="token operator">=</span> <span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token operator">=></span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">return</span> <span class="token punctuation">{</span>
|
||
<span class="token function">onReady</span><span class="token punctuation">(</span><span class="token parameter">ctx</span><span class="token punctuation">)</span> <span class="token punctuation">{</span>
|
||
<span class="token keyword">const</span> <span class="token punctuation">{</span> Notification <span class="token punctuation">}</span> <span class="token operator">=</span> ctx<span class="token punctuation">;</span>
|
||
<span class="token keyword">new</span> <span class="token class-name">Notification</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
|
||
<span class="token literal-property property">title</span><span class="token operator">:</span> <span class="token string">"测试系统插件"</span><span class="token punctuation">,</span>
|
||
<span class="token literal-property property">body</span><span class="token operator">:</span> <span class="token string">"这是一个系统插件,在rubick运行时,立即被加载"</span>
|
||
<span class="token punctuation">}</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">show</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span>
|
||
<span class="token punctuation">}</span>
|
||
</code></pre></div><p><code>index.js</code> 需要返回一个包含 <code>onReady</code> 生命周期的函数,该函数接受 <code>ctx</code> 对象作为参数,我们可以通过 <code>ctx</code> 使用 <code>electron</code> 主进程所有能力。
|
||
同时也为 <code>ctx</code> 上扩展挂在了 <code>mainWindow</code> 对象。</p> <h4 id="调试插件"><a href="#调试插件" class="header-anchor">#</a> 调试插件</h4> <p>由于 <code>rubick</code> 插件是基于 <code>npm</code> 的管理方式,所以开发者调试插件,也是基于 <code>npm</code> 的软连接的方式进行调试。
|
||
首先需要再插件 <code>package.json</code> 目录下执行:</p> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token function">npm</span> <span class="token function">link</span>
|
||
</code></pre></div><p>然后将插件通过插件市场的 <code>开发者</code> 菜单进行安装,填写插件的 <code>name</code> 即可。由于插件依赖于主进程启动执行,所以安装完成后需要重启 rubick 后才能生效。</p> <p><img src="https://pic3.zhimg.com/80/v2-e218500a0686a8735d80f417aa53b7aa_720w.gif" alt=""></p> <div class="custom-block danger"><p class="custom-block-title">DANGER</p> <p>系统插件目前无法直接通过 <code>devtools</code> 进行调试,后面会进行优化</p></div> <h2 id="发布插件"><a href="#发布插件" class="header-anchor">#</a> 发布插件</h2> <p>这里介绍完了如何开发插件,最后非常欢迎为 <code>rubick</code> 贡献开源插件,发布插件也非常简单,首先需要把自己的插件发布到 <code>npm</code> 仓库:</p> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token function">npm</span> publish
|
||
</code></pre></div><p>然后再给 <a href="https://gitcode.net/rubickcenter/rubick-database/-/blob/master/plugins/total-plugins.json" target="_blank" rel="noopener noreferrer">rubick-database/plugins/total-plugins.json<span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></a> 仓库提个 <code>pull request</code>, 把你的 <code>package.json</code> 信息加入 <code>json</code> 文件内,等我们 merge 了您的提交,插件将会自动上架。</p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/rubickCenter/rubick/edit/master/dev/README.md" target="_blank" rel="noopener noreferrer">帮助我们改善此页面!</a> <span><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" focusable="false" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg> <span class="sr-only">(opens new window)</span></span></div> <!----></footer> <div class="page-nav"><p class="inner"><span class="prev">
|
||
←
|
||
<a href="/rubick/guide/" class="prev">
|
||
使用文档
|
||
</a></span> <span class="next"><a href="/rubick/super/">
|
||
特殊服务
|
||
</a>
|
||
→
|
||
</span></p></div> </main></div><div class="global-ui"></div></div>
|
||
<script src="/rubick/assets/js/app.802a86ab.js" defer></script><script src="/rubick/assets/js/2.733019b2.js" defer></script><script src="/rubick/assets/js/9.3b2c34da.js" defer></script><script src="/rubick/assets/js/3.64801815.js" defer></script>
|
||
</body>
|
||
</html>
|