[思源笔记第三方插件系统] 插件系统安装指引

本贴最后更新于 381 天前,其中的信息可能已经沧海桑田

2023/3/28 更新:以支持挂件版本安装,详见:[思源笔记第三方插件系统] v0.3.21 发布,支持“插件系统挂件版”


  1. 将如下代码插入到代码片段中(源码可以查看插件系统的 load.js)

    /* SiYuanPluginSystem */
    (function () {
        const path = require('path');
        const getCrossPlatformAppDataFolder = () => {
            let configFilePath;
            if (process.platform === "darwin") {
                configFilePath = path.join(
                    process.env.HOME,
                    "/Library/Application Support"
                );
            } else if (process.platform === "win32") {
                // Roaming包含在APPDATA中了
                configFilePath = process.env.APPDATA;
            } else if (process.platform === "linux") {
                configFilePath = process.env.HOME;
            }
            return configFilePath;
        };
        try {
            const data = require('fs').readFileSync(path.join(getCrossPlatformAppDataFolder(), '.siyuan', 'plugin.js'));
            const script = data.toString('utf8');
            console.log('local plugin system found, loading...');
            eval(script);
    
        } catch (e) {
            console.log('local plugin system not found, load online');
            return fetch('https://gitee.com/zuoez02/siyuan-plugin-system/raw/main/main.js', { cache: 'no-cache' }).then((res) => res.text()).then((sc) => {
                window.siyuanPluginScript = sc;
                eval(sc);
            });
        }
    })();
    

    image
    打开设置
    image
    选择外观 -> 代码片段 设置
    image
    如图所示添加 JS 代码,粘贴代码并开启,点击确定保存
    插件系统将自动完成安装及开启。

  2. image
    右上角出现小齿轮,代表安装完成,点击小齿轮,选择插件系统设置,即可查看当前插件系统配置
    image

  3. 打开你的工作空间目录,在 data​目录下创建 plugins 目录(通过思源菜单-> 工作空间-> 你的工作空间名称-> 打开文件位置即可直接打开)

  4. 将你下载的插件放置在 plugins 目录下,使用插件系统快捷菜单的“重载”功能,页面刷新后,在插件系统菜单的插件列表中即可看到你的插件。每个插件为一个目录,其内部必须包括 main.js​和 manifest.json​两个主要文件
    image

    image

  5. 关闭“安全模式”,在插件列表中开启插件,即可完成插件的加载。
    image
    关闭“安全模式”
    image
    开启你的第三方插件

注意 ⚠️:安全模式的作用是为了确保当开启时不加载第三方插件。由于 Electron 应用复杂的 API 设计,很难做到一个安全的插件系统,因此需要用户个人根据意愿开启或关闭安全模式。当插件系统初次安装时,安全模式为开启状态。

  • 思源笔记

    思源笔记是一款隐私优先的个人知识管理系统,支持完全离线使用,同时也支持端到端加密同步。

    融合块、大纲和双向链接,重构你的思维。

    18470 引用 • 68611 回帖
1 操作
zuoez02 在 2023-03-28 12:26:09 更新了该帖

相关帖子

优质回帖

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 默认加载代码只有主题和代码片段有能力,插件系统的目的就是避免只有部分主题有能力,让用户只能用某个主题。

    挂件也至少需要应用一次,然后调用接口写代码片段。事实上没有区别,不如用户自己操作。

    有机会的话我会改善这个的,前提是思源提供这个能力

    1 回复
  • 其他回帖
  • alee2021

    这段代码里面,IP 地址这个地方显示的是作者的局域网 IP,其他人使用肯定会报错

    需要改成 localhost 才行

    image.png

    1 回复
  • 2.7.7 版本,我不太懂截图截那里,需要魔法网络吗

    image.png

    1 回复
  • 如果没有 plugins 目录会报错,要手动创建才能加载,这里可以改进一下

    image.png

  • 查看全部回帖

推荐标签 标签

  • FFmpeg

    FFmpeg 是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。

    22 引用 • 31 回帖 • 7 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3167 引用 • 8207 回帖
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    6461 引用 • 29063 回帖 • 253 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖 • 43 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 35 关注
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    163 引用 • 1450 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 349 关注
  • IDEA

    IDEA 全称 IntelliJ IDEA,是一款 Java 语言开发的集成环境,在业界被公认为最好的 Java 开发工具之一。IDEA 是 JetBrains 公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。

    180 引用 • 400 回帖 • 1 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 96 关注
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 18 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 491 关注
  • 百度

    百度(Nasdaq:BIDU)是全球最大的中文搜索引擎、最大的中文网站。2000 年 1 月由李彦宏创立于北京中关村,致力于向人们提供“简单,可依赖”的信息获取方式。“百度”二字源于中国宋朝词人辛弃疾的《青玉案·元夕》词句“众里寻他千百度”,象征着百度对中文信息检索技术的执著追求。

    63 引用 • 785 回帖 • 252 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    284 引用 • 247 回帖 • 195 关注
  • OnlyOffice
    4 引用 • 28 关注
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    19 引用 • 31 回帖 • 1 关注
  • abitmean

    有点意思就行了

    20 关注
  • uTools

    uTools 是一个极简、插件化、跨平台的现代桌面软件。通过自由选配丰富的插件,打造你得心应手的工具集合。

    5 引用 • 13 回帖 • 1 关注
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    368 引用 • 1212 回帖 • 577 关注
  • Android

    Android 是一种以 Linux 为基础的开放源码操作系统,主要使用于便携设备。2005 年由 Google 收购注资,并拉拢多家制造商组成开放手机联盟开发改良,逐渐扩展到到平板电脑及其他领域上。

    331 引用 • 315 回帖 • 73 关注
  • danl
    60 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 3 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖 • 4 关注
  • 新人

    让我们欢迎这对新人。哦,不好意思说错了,让我们欢迎这位新人!
    新手上路,请谨慎驾驶!

    51 引用 • 226 回帖 • 1 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    34 引用 • 467 回帖 • 691 关注