This commit is contained in:
muwoo 2023-08-02 16:03:41 +08:00
commit 7b52f0fb4a
22 changed files with 494 additions and 0 deletions

20
404.html Normal file
View File

@ -0,0 +1,20 @@
<!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/6.2d0a63f8.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/2.733019b2.js"><link rel="prefetch" href="/rubick/assets/js/3.64801815.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/7.9c9172a7.js"><link rel="prefetch" href="/rubick/assets/js/8.010bfadc.js"><link rel="prefetch" href="/rubick/assets/js/9.3b2c34da.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"><div class="theme-default-content"><h1>404</h1> <blockquote>How did we get here?</blockquote> <a href="/rubick/" class="router-link-active">
Take me home.
</a></div></div><div class="global-ui"></div></div>
<script src="/rubick/assets/js/app.802a86ab.js" defer></script><script src="/rubick/assets/js/6.2d0a63f8.js" defer></script>
</body>
</html>

127
api/index.html Normal file
View File

@ -0,0 +1,127 @@
<!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/8.010bfadc.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/3.64801815.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/9.3b2c34da.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/" class="nav-link">
开发者
</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/" class="nav-link">
开发者
</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/" class="sidebar-link">插件开发</a></li><li><a href="/rubick/super/" class="sidebar-link">特殊服务</a></li><li><a href="/rubick/api/" aria-current="page" class="active sidebar-link">API</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/rubick/api/#事件" class="sidebar-link">事件</a></li><li class="sidebar-sub-header"><a href="/rubick/api/#窗口交互" class="sidebar-link">窗口交互</a></li><li class="sidebar-sub-header"><a href="/rubick/api/#系统" class="sidebar-link">系统</a></li><li class="sidebar-sub-header"><a href="/rubick/api/#本地数据库" class="sidebar-link">本地数据库</a></li></ul></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> <h3 id="onpluginready-callback-、onpluginenter-callback"><a href="#onpluginready-callback-、onpluginenter-callback" class="header-anchor">#</a> onPluginReady(callback)、onPluginEnter(callback)</h3> <ul><li><code>callback</code> Function</li></ul> <p><code>callback</code> 内会返回一个 <code>object</code> 对象,来描述进入当前插件的环境信息:</p> <ul><li><code>code</code> String</li></ul> <blockquote><p>plugin.json 配置的 feature.code</p></blockquote> <ul><li><code>type</code> String</li></ul> <blockquote><p>plugin.json 配置的 feature.cmd.type可以为 &quot;text&quot;&quot;img&quot;&quot;files&quot;&quot;regex&quot;&quot;over&quot;&quot;window&quot;</p></blockquote> <ul><li>payload String | Object | Array</li></ul> <blockquote><p>feature.cmd.type 对应匹配的数据</p></blockquote> <p>当插件装载成功rubick 将会主动调用这个方法, 所有的 <code>api</code> 都应该在 <code>onPluginReady</code> 之后进行调用。</p> <h4 id="示例"><a href="#示例" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">onPluginReady</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> code<span class="token punctuation">,</span> type<span class="token punctuation">,</span> payload <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</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 comment">/*
type 为 &quot;files&quot; 时, payload 值示例
[
{
&quot;isFile&quot;: true,
&quot;isDirectory&quot;: false,
&quot;name&quot;: &quot;demo.js&quot;,
&quot;path&quot;: &quot;C:\\demo.js&quot;
}
]
type 为 &quot;img&quot; 时, payload 值示例
data:image/png;base64,...
type 为 &quot;text&quot;&quot;regex&quot;&quot;over&quot; 时, payload 值为进入插件时的主输入框文本
*/</span>
</code></pre></div><h3 id="onpluginout-callback"><a href="#onpluginout-callback" class="header-anchor">#</a> onPluginOut(callback)</h3> <ul><li><code>callback</code> Function</li></ul> <p>每当插件从前台进入到后台时rubick 将会主动调用这个方法。</p> <h2 id="窗口交互"><a href="#窗口交互" class="header-anchor">#</a> 窗口交互</h2> <h3 id="hidemainwindow"><a href="#hidemainwindow" class="header-anchor">#</a> hideMainWindow()</h3> <p>隐藏主窗口</p> <h3 id="showmainwindow"><a href="#showmainwindow" class="header-anchor">#</a> showMainWindow()</h3> <p>显示主窗口</p> <h3 id="setexpendheight-height"><a href="#setexpendheight-height" class="header-anchor">#</a> setExpendHeight(height)</h3> <p>执行该方法将会修改插件窗口的高度。</p> <ul><li><code>height</code> Integer</li> <li>返回 <code>Boolean</code></li></ul> <h4 id="示例-2"><a href="#示例-2" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">setExpendHeight</span><span class="token punctuation">(</span><span class="token number">100</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinput-onchange-placeholder"><a href="#setsubinput-onchange-placeholder" class="header-anchor">#</a> setSubInput(onChange, placeholder)</h3> <p>设置插件输入框监听,当进入插件后,用户搜索会触发<code>onChange</code> 函数</p> <ul><li><code>onChange</code> Function
<ul><li><code>Object</code> <ul><li><code>text</code> String</li></ul></li></ul></li></ul> <blockquote><p>子输入框文本修改时触发</p></blockquote> <ul><li><code>placeholder</code> String (可选)</li></ul> <blockquote><p>子输入框占位符</p></blockquote> <ul><li><code>isFocus</code> Boolean (可选)</li></ul> <blockquote><p>子输入框是否获得焦点,默认 true</p></blockquote> <p><code>返回 Boolean</code></p> <h4 id="示例-3"><a href="#示例-3" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">setSubInput</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter"><span class="token punctuation">{</span> text <span class="token punctuation">}</span></span><span class="token punctuation">)</span> <span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>text<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">'搜索'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="setsubinputvalue-value"><a href="#setsubinputvalue-value" class="header-anchor">#</a> setSubInputValue(value)</h3> <p>直接对子输入框的值进行设置。</p> <ul><li><code>value</code> String</li> <li><code>返回</code> Boolean</li></ul> <h4 id="示例-4"><a href="#示例-4" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">setSubInputValue</span><span class="token punctuation">(</span><span class="token string">'rubick'</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="系统"><a href="#系统" class="header-anchor">#</a> 系统</h2> <h3 id="shownotification-body"><a href="#shownotification-body" class="header-anchor">#</a> showNotification(body)</h3> <p>显示系统通知</p> <ul><li><code>body</code> String</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>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>
</code></pre></div><h3 id="shellopenpath-fullpath"><a href="#shellopenpath-fullpath" class="header-anchor">#</a> shellOpenPath(fullPath)</h3> <p>打开给定路径的文件</p> <ul><li><code>fullPath</code> String</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">shellOpenPath</span><span class="token punctuation">(</span><span class="token string">'/path/file'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="shellopenexternal-url"><a href="#shellopenexternal-url" class="header-anchor">#</a> shellOpenExternal(url)</h3> <p>浏览器打开URL</p> <ul><li><code>url</code> String</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span><span class="token function">shellOpenExternal</span><span class="token punctuation">(</span><span class="token string">'https://www.baidu.com'</span><span class="token punctuation">)</span>
</code></pre></div><h3 id="getpath-name"><a href="#getpath-name" class="header-anchor">#</a> getPath(name)</h3> <p>electron 内置 getPath 能力,详见 <a href="https://www.electronjs.org/docs/latest/api/app#appgetpathname" target="_blank" rel="noopener noreferrer">electron 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> <div class="language-js extra-class"><pre class="language-js"><code>console<span class="token punctuation">.</span><span class="token function">log</span><span class="token punctuation">(</span>rubick<span class="token punctuation">.</span><span class="token function">getPath</span><span class="token punctuation">(</span><span class="token string">'cache'</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span>
</code></pre></div><h2 id="本地数据库"><a href="#本地数据库" class="header-anchor">#</a> 本地数据库</h2> <p><code>rubick db</code> 是基于开源的 <a href="https://github.com/pouchdb/pouchdb" target="_blank" rel="noopener noreferrer">pouchdb<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="rubick-db-put-doc"><a href="#rubick-db-put-doc" class="header-anchor">#</a> rubick.db.put(doc)</h3> <ul><li><code>doc</code> Object</li> <li><code>返回</code> Object</li></ul> <h4 id="示例-5"><a href="#示例-5" class="header-anchor">#</a> 示例</h4> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 创建请求</span>
rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">_id</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">data</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
<span class="token comment">// 返回 {id: &quot;demo&quot;, ok: true, rev: &quot;1-05c9b92e6f24287dc1f4ec79d9a34fa8&quot;}</span>
<span class="token comment">// 更新请求</span>
rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">put</span><span class="token punctuation">(</span><span class="token punctuation">{</span>
<span class="token literal-property property">_id</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">data</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">_rev</span><span class="token operator">:</span> <span class="token string">&quot;1-05c9b92e6f24287dc1f4ec79d9a34fa8&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><p>_id 代表这个文档在数据库中唯一值,如果值不存在,则会创建一个新的文档,如果值已经存在,则会进行更新。你可能已经注意到,返回对象中包含一个 rev
属性,这是代表此文档的版本,每次对文档进行更新时,都要带上最新的版本号,否则更新将失败,版本化的意义在于解决同步时数据冲突。</p> <p>另外需要注意,每次更新时都要传入完整的文档数据,无法对单个字段进行更新。</p> <h3 id="rubick-db-get-id"><a href="#rubick-db-get-id" class="header-anchor">#</a> rubick.db.get(id)</h3> <p>执行该方法将会根据文档 ID 获取数据</p> <ul><li><code>id</code> String</li> <li><code>返回</code> Object</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">get</span><span class="token punctuation">(</span><span class="token string">&quot;demo&quot;</span><span class="token punctuation">)</span>
<span class="token comment">// 返回 {_id: &quot;demo&quot;, _rev: &quot;3-9836c5c68af5aef618e17d615882942a&quot;, data: &quot;demo&quot;}</span>
</code></pre></div><h3 id="rubick-db-remove-doc"><a href="#rubick-db-remove-doc" class="header-anchor">#</a> rubick.db.remove(doc)</h3> <ul><li><code>doc</code> String | Object</li> <li><code>返回</code> Object 执行该方法将会删除数据库文档,可以传入文档对象或文档 id 进行操作。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">remove</span><span class="token punctuation">(</span><span class="token string">&quot;demo&quot;</span><span class="token punctuation">)</span>
<span class="token comment">// 返回 {id: &quot;demo&quot;, ok: true, rev: &quot;2-effe5dbc23dffc180d8411b23f3108fb&quot;}</span>
</code></pre></div><h3 id="rubick-db-bulkdocs-docs"><a href="#rubick-db-bulkdocs-docs" class="header-anchor">#</a> rubick.db.bulkDocs(docs)</h3> <ul><li><code>docs</code> Array</li> <li><code>返回</code> Array 执行该方法将会批量更新数据库文档,传入需要更改的文档对象合并成数组进行批量更新。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code>rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">bulkDocs</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token punctuation">{</span>
<span class="token literal-property property">_id</span><span class="token operator">:</span> <span class="token string">&quot;demo1&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">data</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">_rev</span><span class="token operator">:</span> <span class="token string">&quot;1-c8817a74e292eda4cba1a45924853af6&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token punctuation">{</span>
<span class="token literal-property property">_id</span><span class="token operator">:</span> <span class="token string">&quot;demo2&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">data</span><span class="token operator">:</span> <span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">_rev</span><span class="token operator">:</span> <span class="token string">&quot;1-f0399b42cc6123a9cc8503632ba7b3a7&quot;</span>
<span class="token punctuation">}</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">/* 返回
[{
id: &quot;demo1&quot;, ok: true, rev: &quot;2-7857b2801bc0303d2cc0bb82e8afd796&quot;
}, {
id: &quot;demo2&quot;, ok: true, rev: &quot;2-7857b2801bc0303d2cc0bb82e8afd796&quot;
}]
*/</span>
</code></pre></div><h3 id="rubick-db-alldocs-key"><a href="#rubick-db-alldocs-key" class="header-anchor">#</a> rubick.db.allDocs(key)</h3> <ul><li><code>key</code> String | Array</li> <li><code>返回</code> Array 执行该方法将会获取所有数据库文档,如果传入字符串,则会返回以字符串开头的文档,也可以传入指定 ID 的数组,不传入则为获取所有文档。</li></ul> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 获取所有文档</span>
rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">allDocs</span><span class="token punctuation">(</span><span class="token punctuation">)</span>
<span class="token comment">// 传入字符串则返回id以 demo 开头的文档</span>
rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">allDocs</span><span class="token punctuation">(</span><span class="token string">&quot;demo&quot;</span><span class="token punctuation">)</span>
<span class="token comment">/* 返回
[{
_id: &quot;demo/123&quot;, _rev: &quot;2-7857b2801bc0303d2cc0bb82e8afd796&quot;, data: &quot;demo&quot;
}, {
_id: &quot;demo/124&quot;, _rev: &quot;1-f0399b42cc6123a9cc8503632ba7b3a7&quot;, data: &quot;demo&quot;
}, {
_id: &quot;demo/125&quot;, _rev: &quot;1-f0399b42cc6123a9cc8503632ba7b3a7&quot;, data: &quot;demo&quot;
}]
*/</span>
<span class="token comment">// 根据id数组请求</span>
rubick<span class="token punctuation">.</span>db<span class="token punctuation">.</span><span class="token function">allDocs</span><span class="token punctuation">(</span><span class="token punctuation">[</span>
<span class="token string">&quot;demo1&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;demo2&quot;</span>
<span class="token punctuation">]</span><span class="token punctuation">)</span>
<span class="token comment">/* 返回
[{
_id: &quot;demo1&quot;, _rev: &quot;2-7857b2801bc0303d2cc0bb82e8afd796&quot;, data: &quot;demo&quot;
}, {
_id: &quot;demo2&quot;, _rev: &quot;1-f0399b42cc6123a9cc8503632ba7b3a7&quot;, data: &quot;demo&quot;
}]
*/</span>
</code></pre></div></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/rubickCenter/rubick/edit/master/api/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/super/" class="prev">
特殊服务
</a></span> <span class="next"><a href="/rubick/run/">
贡献 rubick
</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/8.010bfadc.js" defer></script>
</body>
</html>

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><svg xmlns="http://www.w3.org/2000/svg" width="12" height="13"><g stroke-width="2" stroke="#aaa" fill="none"><path d="M11.29 11.71l-4-4"/><circle cx="5" cy="5" r="4"/></g></svg>

After

Width:  |  Height:  |  Size: 216 B

1
assets/js/10.f7f1aa99.js Normal file

File diff suppressed because one or more lines are too long

1
assets/js/11.861f0d8b.js Normal file

File diff suppressed because one or more lines are too long

1
assets/js/12.8083ac2d.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[12],{284:function(v,_,t){"use strict";t.r(_);var r=t(14),c=Object(r.a)({},(function(){var v=this,_=v._self._c;return _("ContentSlotsDistributor",{attrs:{"slot-key":v.$parent.slotKey}},[_("h1",{attrs:{id:"特殊服务"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#特殊服务"}},[v._v("#")]),v._v(" 特殊服务")]),v._v(" "),_("h2",{attrs:{id:"说明"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#说明"}},[v._v("#")]),v._v(" 说明")]),v._v(" "),_("p",[_("code",[v._v("rubick")]),v._v(" 一直坚持开源免费,现在不会变,以后也不会变。但是纯开源 "),_("code",[v._v("MIT")]),v._v(" 模式下,是一种 0 收入用爱发电的,完全依靠\n作者自己的爱好和激情。但这种用爱发电的模式很难持续维持为了更好的持续迭代和发展壮大 "),_("code",[v._v("rubick")]),v._v(", 我们需要一定的现金持续激励 "),_("code",[v._v("rubick")]),v._v(" 的核心开发者们,让更多的人成为 "),_("code",[v._v("rubick")]),v._v("\n的核心开发者。所以 "),_("code",[v._v("rubick")]),v._v(" 开启了一个新的模式尝试,那是服务付费:"),_("code",[v._v("rubick")]),v._v(" 用户可以购买我们提供技术支持、答疑解惑、定制化插件开发、二次定制化开发 "),_("code",[v._v("rubick")]),v._v(" 等等官方服务...")]),v._v(" "),_("h2",{attrs:{id:"可以提供哪些服务"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#可以提供哪些服务"}},[v._v("#")]),v._v(" 可以提供哪些服务?")]),v._v(" "),_("p",[v._v("我们收集了大量用户的问题,目前约定可以支持到的服务有:")]),v._v(" "),_("ol",[_("li",[v._v("二次定制化开发 "),_("code",[v._v("rubick")])]),v._v(" "),_("li",[v._v("轻量级插件开发")]),v._v(" "),_("li",[_("code",[v._v("rubick")]),v._v(" 实现原理手把手介绍")]),v._v(" "),_("li",[_("code",[v._v("rubick")]),v._v(" 使用答疑")]),v._v(" "),_("li",[_("code",[v._v("rubick")]),v._v(" 内网部署一条龙服务")]),v._v(" "),_("li",[v._v("前端圈各种技术支持(作者分别是前蚂蚁集团和字节跳动的前端技术专家)")]),v._v(" "),_("li",[v._v("未来能提供的一切...")])]),v._v(" "),_("h2",{attrs:{id:"如何加入特殊服务"}},[_("a",{staticClass:"header-anchor",attrs:{href:"#如何加入特殊服务"}},[v._v("#")]),v._v(" 如何加入特殊服务?")]),v._v(" "),_("p",[v._v("扫描下方的二维码,加入知识星球即可:\n"),_("img",{attrs:{width:"400",src:"https://picx.zhimg.com/80/v2-6deabf65175d18080439ef813102d18c_720w.png"}})])])}),[],!1,null,null,null);_.default=c.exports}}]);

1
assets/js/2.733019b2.js Normal file

File diff suppressed because one or more lines are too long

1
assets/js/3.64801815.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[3],{254:function(t,e,n){},273:function(t,e,n){"use strict";n(254)},286:function(t,e,n){"use strict";n.r(e);var i={functional:!0,props:{type:{type:String,default:"tip"},text:String,vertical:{type:String,default:"top"}},render:(t,{props:e,slots:n})=>t("span",{class:["badge",e.type],style:{verticalAlign:e.vertical}},e.text||n().default)},p=(n(273),n(14)),l=Object(p.a)(i,void 0,void 0,!1,null,"15b7b770",null);e.default=l.exports}}]);

1
assets/js/4.fc333d27.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[4],{256:function(t,e,a){},275:function(t,e,a){"use strict";a(256)},279:function(t,e,a){"use strict";a.r(e);var s={name:"CodeBlock",props:{title:{type:String,required:!0},active:{type:Boolean,default:!1}},mounted(){this.$parent&&this.$parent.loadTabs&&this.$parent.loadTabs()}},i=(a(275),a(14)),n=Object(i.a)(s,(function(){return(0,this._self._c)("div",{staticClass:"theme-code-block",class:{"theme-code-block__active":this.active}},[this._t("default")],2)}),[],!1,null,"759a7d02",null);e.default=n.exports}}]);

1
assets/js/5.bfef3080.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[5],{255:function(e,t,a){},274:function(e,t,a){"use strict";a(255)},278:function(e,t,a){"use strict";a.r(t);var o={name:"CodeGroup",data:()=>({codeTabs:[],activeCodeTabIndex:-1}),watch:{activeCodeTabIndex(e){this.activateCodeTab(e)}},mounted(){this.loadTabs()},methods:{changeCodeTab(e){this.activeCodeTabIndex=e},loadTabs(){this.codeTabs=(this.$slots.default||[]).filter(e=>Boolean(e.componentOptions)).map((e,t)=>(""===e.componentOptions.propsData.active&&(this.activeCodeTabIndex=t),{title:e.componentOptions.propsData.title,elm:e.elm})),-1===this.activeCodeTabIndex&&this.codeTabs.length>0&&(this.activeCodeTabIndex=0),this.activateCodeTab(0)},activateCodeTab(e){this.codeTabs.forEach(e=>{e.elm&&e.elm.classList.remove("theme-code-block__active")}),this.codeTabs[e].elm&&this.codeTabs[e].elm.classList.add("theme-code-block__active")}}},s=(a(274),a(14)),c=Object(s.a)(o,(function(){var e=this,t=e._self._c;return t("ClientOnly",[t("div",{staticClass:"theme-code-group"},[t("div",{staticClass:"theme-code-group__nav"},[t("ul",{staticClass:"theme-code-group__ul"},e._l(e.codeTabs,(function(a,o){return t("li",{key:a.title,staticClass:"theme-code-group__li"},[t("button",{staticClass:"theme-code-group__nav-tab",class:{"theme-code-group__nav-tab-active":o===e.activeCodeTabIndex},on:{click:function(t){return e.changeCodeTab(o)}}},[e._v("\n "+e._s(a.title)+"\n ")])])})),0)]),e._v(" "),e._t("default"),e._v(" "),e.codeTabs.length<1?t("pre",{staticClass:"pre-blank"},[e._v("// Make sure to add code blocks to your code group")]):e._e()],2)])}),[],!1,null,"deefee04",null);t.default=c.exports}}]);

1
assets/js/6.2d0a63f8.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[6],{277:function(t,e,s){"use strict";s.r(e);const o=["There's nothing here.","How did we get here?","That's a Four-Oh-Four.","Looks like we've got some broken links."];var n={methods:{getMsg:()=>o[Math.floor(Math.random()*o.length)]}},h=s(14),i=Object(h.a)(n,(function(){var t=this._self._c;return t("div",{staticClass:"theme-container"},[t("div",{staticClass:"theme-default-content"},[t("h1",[this._v("404")]),this._v(" "),t("blockquote",[this._v(this._s(this.getMsg()))]),this._v(" "),t("RouterLink",{attrs:{to:"/"}},[this._v("\n Take me home.\n ")])],1)])}),[],!1,null,null,null);e.default=i.exports}}]);

1
assets/js/7.9c9172a7.js Normal file
View File

@ -0,0 +1 @@
(window.webpackJsonp=window.webpackJsonp||[]).push([[7],{280:function(t,n,s){"use strict";s.r(n);var e=s(14),o=Object(e.a)({},(function(){return(0,this._self._c)("ContentSlotsDistributor",{attrs:{"slot-key":this.$parent.slotKey}})}),[],!1,null,null,null);n.default=o.exports}}]);

1
assets/js/8.010bfadc.js Normal file

File diff suppressed because one or more lines are too long

1
assets/js/9.3b2c34da.js Normal file

File diff suppressed because one or more lines are too long

16
assets/js/app.802a86ab.js Normal file

File diff suppressed because one or more lines are too long

111
dev/index.html Normal file
View File

@ -0,0 +1,111 @@
<!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">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rubick-ui-plugin-demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;pluginName&quot;</span><span class="token operator">:</span> <span class="token string">&quot;插件demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;description&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rubick ui 插件demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;author&quot;</span><span class="token operator">:</span> <span class="token string">&quot;muwoo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;main&quot;</span><span class="token operator">:</span> <span class="token string">&quot;index.html&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;logo&quot;</span><span class="token operator">:</span> <span class="token string">&quot;https://www.img/demo.png&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;version&quot;</span><span class="token operator">:</span> <span class="token string">&quot;0.0.1&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;preload&quot;</span><span class="token operator">:</span><span class="token string">&quot;preload.js&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;homePage&quot;</span><span class="token operator">:</span> <span class="token string">&quot;https://gitee.com/rubick-center/rubick-ui-plugin-demo/raw/master/README.md&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;pluginType&quot;</span><span class="token operator">:</span> <span class="token string">&quot;ui&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;features&quot;</span><span class="token operator">:</span> <span class="token punctuation">[</span>
<span class="token punctuation">{</span>
<span class="token property">&quot;code&quot;</span><span class="token operator">:</span> <span class="token string">&quot;index&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;explain&quot;</span><span class="token operator">:</span> <span class="token string">&quot;测试插件&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;cmds&quot;</span><span class="token operator">:</span><span class="token punctuation">[</span>
<span class="token string">&quot;demo&quot;</span><span class="token punctuation">,</span>
<span class="token string">&quot;测试&quot;</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">&lt;!</span><span class="token doctype-tag">DOCTYPE</span> <span class="token name">html</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>html</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>body</span><span class="token punctuation">&gt;</span></span>
hello Rubick
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</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">&quot;</span>showNotification<span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span>通知<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>button</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>body</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>script</span><span class="token punctuation">&gt;</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">=&gt;</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">&lt;/</span>script</span><span class="token punctuation">&gt;</span></span>
<span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>html</span><span class="token punctuation">&gt;</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">&quot;name&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rubick-system-plugin-demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;pluginName&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rubick 系统插件demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;version&quot;</span><span class="token operator">:</span> <span class="token string">&quot;0.0.0&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;description&quot;</span><span class="token operator">:</span> <span class="token string">&quot;rubick 系统插件demo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;entry&quot;</span><span class="token operator">:</span> <span class="token string">&quot;index.js&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;logo&quot;</span><span class="token operator">:</span> <span class="token string">&quot;https://xxxx/upload/202112/08/5bac90649c5343cabb63930b131cf8e6.png&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;pluginType&quot;</span><span class="token operator">:</span> <span class="token string">&quot;system&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;author&quot;</span><span class="token operator">:</span> <span class="token string">&quot;muwoo&quot;</span><span class="token punctuation">,</span>
<span class="token property">&quot;homepage&quot;</span><span class="token operator">:</span> <span class="token string">&quot;&quot;</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">=&gt;</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">&quot;测试系统插件&quot;</span><span class="token punctuation">,</span>
<span class="token literal-property property">body</span><span class="token operator">:</span> <span class="token string">&quot;这是一个系统插件在rubick运行时立即被加载&quot;</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>

40
guide/index.html Normal file
View File

@ -0,0 +1,40 @@
<!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/10.f7f1aa99.js" as="script"><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/3.64801815.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="prefetch" href="/rubick/assets/js/9.3b2c34da.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/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
使用文档
</a></div><div class="nav-item"><a href="/rubick/dev/" class="nav-link">
开发者
</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/" aria-current="page" class="nav-link router-link-exact-active router-link-active">
使用文档
</a></div><div class="nav-item"><a href="/rubick/dev/" class="nav-link">
开发者
</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/" aria-current="page" class="active sidebar-link">使用文档</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/rubick/guide/#赞助" class="sidebar-link">赞助</a></li><li class="sidebar-sub-header"><a href="/rubick/guide/#前言" class="sidebar-link">前言</a></li><li class="sidebar-sub-header"><a href="/rubick/guide/#下载-rubick" class="sidebar-link">下载 rubick</a></li><li class="sidebar-sub-header"><a href="/rubick/guide/#功能说明" class="sidebar-link">功能说明</a></li></ul></li><li><a href="/rubick/dev/" class="sidebar-link">插件开发</a></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> 是非盈利项目,开源不容易,如果该项目对你有用的话,可以打赏我们喝杯 coffee ☕️.</p> <img width="200" src="https://pic1.zhimg.com/80/v2-688385687a37e962fe32daf136139feb_720w.png"> <img width="200" src="https://pica.zhimg.com/80/v2-1ba296fd2cece45ee1094ee7c259035c_720w.png"> <h2 id="前言"><a href="#前言" class="header-anchor">#</a> 前言</h2> <p>rubick 之前的插件管理,依托于云服务器存储,我们需要为服务器存储支付一笔不小的开销。
由于项目完全开源,所以几乎无任何收入,所以为了让 rubick 先生存下去,我们再三抉择把插件包管理方式托管到了<code>npm</code> 上。</p> <p>由于 rubick 的插件管理体系是基于 npm 的包管理体系,所以当您需要使用插件的时候,需要手动保证当前电脑已经安装好了<code>node</code>环境。
如果当前电脑已经安装过 <code>node</code>,那么您可以直接下载 <code>rubick</code> 进行使用啦!</p> <p><a href="https://juejin.cn/post/6844903886541553672" target="_blank" rel="noopener noreferrer">macos 下安装 nodejs 方法<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> <p><a href="https://juejin.cn/post/6892790243687137287" target="_blank" rel="noopener noreferrer">windows 下安装 nodejs 方法<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="下载-rubick"><a href="#下载-rubick" class="header-anchor">#</a> 下载 rubick</h2> <p><a href="https://github.com/rubickCenter/rubick/releases" target="_blank" rel="noopener noreferrer">rubick 下载安装地址<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> <p>macos 选择 <code>pkg</code> 文件windows 选择 <code>exe</code> 文件Debian/Ubuntu选择<code>deb</code>
安装完成后打开 rubick 即可看到主搜索界面:</p> <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/26f0fbe2c69246b6a3ed139b0df1ca0b~tplv-k3u1fbpfcp-watermark.image" alt=""></p> <h2 id="功能说明"><a href="#功能说明" class="header-anchor">#</a> 功能说明</h2> <p>接下来详细介绍 rubick 所包含和支持的功能</p> <h3 id="_1-搜索系统应用"><a href="#_1-搜索系统应用" class="header-anchor">#</a> 1. 搜索系统应用</h3> <p>支持拼音和缩写来搜索系统安装应用:</p> <p><img src="https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/ba363e8f60f540e6a5c365c4317c4413~tplv-k3u1fbpfcp-watermark.image" alt=""></p> <h3 id="_2-ui类插件安装"><a href="#_2-ui类插件安装" class="header-anchor">#</a> 2. UI类插件安装</h3> <p>点击搜索框右侧 <code>rubick</code> 图标,进入插件市场,选择所需插件,点击下载按钮即可下载,下载完成后在已安装 tab 下可以找到安装插件。
安装完成后,输入插件呼起命令即可使用对应插件:</p> <p><img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/7ae45c7ede1f4e3bb7d35ae845e60b64~tplv-k3u1fbpfcp-watermark.image" alt=""></p> <h3 id="_3-系统类插件安装"><a href="#_3-系统类插件安装" class="header-anchor">#</a> 3. 系统类插件安装</h3> <p>系统插件安装方式和UI类一样在插件市场选择<code>系统分类</code>,寻找适合自己的系统插件安装即可。</p> <div class="custom-block danger"><p class="custom-block-title">DANGER</p> <p>系统插件安装成功后,需要重启 <code>rubick</code> 才能生效</p></div> <h3 id="_4-输入框聚焦自动根据剪切板内容匹配插件"><a href="#_4-输入框聚焦自动根据剪切板内容匹配插件" class="header-anchor">#</a> 4. 输入框聚焦自动根据剪切板内容匹配插件</h3> <p><code>rubick</code> 内搜索<code>偏好设置</code>,然后开启<code>自动粘贴</code> 功能,即可匹配剪切板内容自动匹配适合插件进行使用。</p> <p><img src="https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/01ef50fbfa064ba9a88bebe1531eacd4~tplv-k3u1fbpfcp-watermark.image" alt=""></p> <h3 id="内网部署"><a href="#内网部署" class="header-anchor">#</a> 内网部署</h3> <div class="custom-block tip"><p class="custom-block-title">TIP</p> <p>如果把插件发布到公网 <code>npm</code> 如果不符合您的公司安全要求,<code>rubick</code> 支持内网私有源和私有插件库,如果您需要内网部署使用,可以自行配置以下规则。</p></div> <p><code>rubick</code> 依赖 <code>npm</code> 仓库做插件管理,依赖 <code>gitcode</code> 做插件数据存储所以如果要进行内网部署主要需要替换这2个设置。详细设置
<code>插件市场 -&gt; 设置 -&gt; 内网部署设置</code></p> <p><img src="https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1319b177fb544017ae10b4a703e8efa6~tplv-k3u1fbpfcp-watermark.image?" alt="image.png"></p> <h4 id="_1-替换-npm-源"><a href="#_1-替换-npm-源" class="header-anchor">#</a> 1. 替换 npm 源</h4> <p>插件发布到私有 <code>npm</code> 源即可。</p> <h4 id="_2-替换-gitcode-源为内网-gitlab-database-url"><a href="#_2-替换-gitcode-源为内网-gitlab-database-url" class="header-anchor">#</a> 2. 替换 <code>gitcode</code> 源为内网 <code>gitlab</code>: database url</h4> <ul><li>clone 下载 rubick 插件库:<a href="https://gitcode.net/rubickcenter/rubick-database" target="_blank" rel="noopener noreferrer">https://gitcode.net/rubickcenter/rubick-database<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></li> <li>提交仓库到私有 <code>gitlab</code> 库。</li></ul> <p>替换格式:<code>https://gitlab.xxx.com/api/v4/projects/{projectId}/repository/files/</code> 。因为接口为 <code>gitlab openAPI</code>,所以需要填写仓库 <code>access_token</code></p> <h3 id="更多功能"><a href="#更多功能" class="header-anchor">#</a> 更多功能</h3> <p>如果您还需要更多功能,欢迎来这里给我们提建议:<a href="https://github.com/rubickCenter/rubick/issues" target="_blank" rel="noopener noreferrer">issues<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></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/rubickCenter/rubick/edit/master/guide/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="next"><a href="/rubick/dev/">
插件开发
</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/10.f7f1aa99.js" defer></script>
</body>
</html>

BIN
images/logo.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

38
index.html Normal file
View File

@ -0,0 +1,38 @@
<!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/7.9c9172a7.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/3.64801815.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/8.010bfadc.js"><link rel="prefetch" href="/rubick/assets/js/9.3b2c34da.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 no-sidebar"><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/" aria-current="page" class="home-link router-link-exact-active 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/" class="nav-link">
开发者
</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/" class="nav-link">
开发者
</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/" class="sidebar-link">插件开发</a></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 aria-labelledby="main-title" class="home"><header class="hero"><img src="/rubick/images/logo.png" alt="hero"> <h1 id="main-title">
Rubick
</h1> <p class="description">
基于 Electron 开源的插件化工具箱
</p> <p class="action"><a href="/rubick/guide/" class="nav-link action-button">
快速上手 →
</a></p></header> <div class="features"><div class="feature"><h2>极其轻量</h2> <p>rubick 仅仅包含插件运行所需要的API本身不内置任何插件可以看成是 electron 的二次封装框架。</p></div><div class="feature"><h2>更强大的插件能力</h2> <p>不仅仅支持ui插件需要搜索呼起使用还支持系统插件不需要搜索只要rubick在运行系统插件即可用</p></div><div class="feature"><h2>更便捷的插件管理</h2> <p>rubick 插件全部托管在 npm 仓库rubick 插件的安装、使用、删除就是 npm 包的安装、使用、删除</p></div></div> <div class="theme-default-content custom content__default"></div> <div class="footer">
MIT Licensed | Copyright (c) 2021 muwoo
</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/7.9c9172a7.js" defer></script>
</body>
</html>

88
run/index.html Normal file
View File

@ -0,0 +1,88 @@
<!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/11.861f0d8b.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/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="prefetch" href="/rubick/assets/js/9.3b2c34da.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/" class="nav-link">
开发者
</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/" class="nav-link">
开发者
</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/" class="sidebar-link">插件开发</a></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/" aria-current="page" class="active sidebar-link">贡献 rubick</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/rubick/run/#赞助" class="sidebar-link">赞助</a></li><li class="sidebar-sub-header"><a href="/rubick/run/#贡献代码" class="sidebar-link">贡献代码</a></li></ul></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> 是非盈利项目,开源不容易,如果该项目对你有用的话,可以打赏我们喝杯 coffee ☕️.</p> <img width="200" src="https://pic1.zhimg.com/80/v2-688385687a37e962fe32daf136139feb_720w.png"> <img width="200" src="https://pica.zhimg.com/80/v2-1ba296fd2cece45ee1094ee7c259035c_720w.png"> <h2 id="贡献代码"><a href="#贡献代码" class="header-anchor">#</a> 贡献代码</h2> <h3 id="rubick-目录介绍"><a href="#rubick-目录介绍" class="header-anchor">#</a> rubick 目录介绍</h3> <div class="language-shell extra-class"><pre class="language-shell"><code><span class="token builtin class-name">.</span>
├── docs <span class="token comment"># 文档存方目录</span>
│ ├── docs
│ ├── package-lock.json
│ ├── package.json
│ └── pnpm-lock.yaml
├── feature <span class="token comment"># 插件市场插件</span>
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── src
│ ├── tsconfig.json
│ └── vue.config.js
├── public <span class="token comment"># rubick __static 目录</span>
│ ├── favicon.ico
│ ├── feature
│ ├── icons
│ ├── index.html
│ ├── preload.js
│ └── tpl
├── src <span class="token comment"># rubick 核心源码</span>
│ ├── common <span class="token comment"># 一些通用的函数</span>
│ ├── core <span class="token comment"># 一些核心的能力,比如 app search</span>
│ ├── main <span class="token comment"># 主进程</span>
│ └── renderer <span class="token comment"># 渲染进程</span>
├── tpl <span class="token comment"># rubick 模板插件</span>
│ ├── README.md
│ ├── babel.config.js
│ ├── package-lock.json
│ ├── package.json
│ ├── public
│ ├── src
│ ├── tsconfig.json
│ └── vue.config.js
├── LICENSE <span class="token comment"># MIT 协议</span>
├── README.md <span class="token comment"># 英文文档</span>
├── README.zh-CN.md <span class="token comment"># 中文文档</span>
├── babel.config.js
├── deploy-doc.sh <span class="token comment"># rubick doc 发布脚本</span>
├── tsconfig.json
├── package-lock.json
├── package.json
└── vue.config.js
</code></pre></div><h3 id="启动"><a href="#启动" class="header-anchor">#</a> 启动</h3> <h4 id="_1-安装依赖"><a href="#_1-安装依赖" class="header-anchor">#</a> 1. 安装依赖</h4> <p><code>rubick</code> 启动主要涉及到3个目录</p> <ol><li>根目录:<code>rubick</code> 核心进程</li> <li>feature<code>rubick</code> 内置的插件市场插件</li> <li>tpl: <code>rubick</code> 内置的模板插件</li></ol> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token function">npm</span> i
$ <span class="token builtin class-name">cd</span> feature <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> i
$ <span class="token builtin class-name">cd</span> tpl <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> i
</code></pre></div><h4 id="_2-启动核心进程"><a href="#_2-启动核心进程" class="header-anchor">#</a> 2. 启动核心进程</h4> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token function">npm</span> run electron:serve
</code></pre></div><h4 id="_3-启动插件中心"><a href="#_3-启动插件中心" class="header-anchor">#</a> 3. 启动插件中心 <span class="badge warning" style="vertical-align:top;" data-v-15b7b770>非必须</span></h4> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token builtin class-name">cd</span> feature <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> run serve
</code></pre></div><h4 id="_4-启动模板插件"><a href="#_4-启动模板插件" class="header-anchor">#</a> 4. 启动模板插件 <span class="badge warning" style="vertical-align:top;" data-v-15b7b770>非必须</span></h4> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token builtin class-name">cd</span> tpl <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> run serve
</code></pre></div><h3 id="编译"><a href="#编译" class="header-anchor">#</a> 编译</h3> <div class="language-shell extra-class"><pre class="language-shell"><code>$ <span class="token builtin class-name">cd</span> feature <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> run build
$ <span class="token builtin class-name">cd</span> tpl <span class="token operator">&amp;&amp;</span> <span class="token function">npm</span> run build
$ <span class="token function">npm</span> run electron:build
</code></pre></div><h3 id="pr"><a href="#pr" class="header-anchor">#</a> PR</h3> <ol><li>Create an issue about the features, such as new components.</li> <li>Fork the repo to your own account.</li> <li>Clone your fork.</li> <li>Create a new branch base on dev, if you want to add new component, the branch name should be formatted as component-[Component Name]. (e.g. component-steps) And the commit info should be formatted as [Component Name]: Info about commit.</li> <li>Make sure that running npm run prepublish outputs the correct files.</li> <li>Rebase before creating a PR to keep commit history clear. (Merge request to branch dev)</li> <li>Provide some description about your PR.</li></ol></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/rubickCenter/rubick/edit/master/run/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/api/" class="prev">
API
</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/11.861f0d8b.js" defer></script><script src="/rubick/assets/js/3.64801815.js" defer></script>
</body>
</html>

41
super/index.html Normal file
View File

@ -0,0 +1,41 @@
<!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/12.8083ac2d.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/3.64801815.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="prefetch" href="/rubick/assets/js/9.3b2c34da.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/" class="nav-link">
开发者
</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/" class="nav-link">
开发者
</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/" class="sidebar-link">插件开发</a></li><li><a href="/rubick/super/" aria-current="page" class="active sidebar-link">特殊服务</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/rubick/super/#说明" class="sidebar-link">说明</a></li><li class="sidebar-sub-header"><a href="/rubick/super/#可以提供哪些服务" class="sidebar-link">可以提供哪些服务?</a></li><li class="sidebar-sub-header"><a href="/rubick/super/#如何加入特殊服务" class="sidebar-link">如何加入特殊服务?</a></li></ul></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"><h1 id="特殊服务"><a href="#特殊服务" class="header-anchor">#</a> 特殊服务</h1> <h2 id="说明"><a href="#说明" class="header-anchor">#</a> 说明</h2> <p><code>rubick</code> 一直坚持开源免费,现在不会变,以后也不会变。但是纯开源 <code>MIT</code> 模式下,是一种 0 收入用爱发电的,完全依靠
作者自己的爱好和激情。但这种用爱发电的模式很难持续维持,为了更好的持续迭代和发展壮大 <code>rubick</code>, 我们需要一定的现金持续激励 <code>rubick</code> 的核心开发者们,让更多的人成为 <code>rubick</code>
的核心开发者。所以 <code>rubick</code> 开启了一个新的模式尝试,那是服务付费:<code>rubick</code> 用户可以购买我们提供技术支持、答疑解惑、定制化插件开发、二次定制化开发 <code>rubick</code> 等等官方服务...</p> <h2 id="可以提供哪些服务"><a href="#可以提供哪些服务" class="header-anchor">#</a> 可以提供哪些服务?</h2> <p>我们收集了大量用户的问题,目前约定可以支持到的服务有:</p> <ol><li>二次定制化开发 <code>rubick</code></li> <li>轻量级插件开发</li> <li><code>rubick</code> 实现原理手把手介绍</li> <li><code>rubick</code> 使用答疑</li> <li><code>rubick</code> 内网部署一条龙服务</li> <li>前端圈各种技术支持(作者分别是前蚂蚁集团和字节跳动的前端技术专家)</li> <li>未来能提供的一切...</li></ol> <h2 id="如何加入特殊服务"><a href="#如何加入特殊服务" class="header-anchor">#</a> 如何加入特殊服务?</h2> <p>扫描下方的二维码,加入知识星球即可:
<img width="400" src="https://picx.zhimg.com/80/v2-6deabf65175d18080439ef813102d18c_720w.png"></p></div> <footer class="page-edit"><div class="edit-link"><a href="https://github.com/rubickCenter/rubick/edit/master/super/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/dev/" class="prev">
插件开发
</a></span> <span class="next"><a href="/rubick/api/">
API
</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/12.8083ac2d.js" defer></script>
</body>
</html>