Skip to content

社区资源

思源社区在发展的过程中,有热心的开发者为插件开发编写了一些工具包。这里做一些简单介绍

siyuan-package-custom-block

作者githubnpm语言环境
zuoez02siyuan-package-custom-blocksiyuan-package-custom-block

用于协助开发者控制基于HTML块的自定义块工具。

代码示例

javascript
const siyuan = require("siyuan");
const { CustomBlock, CustomBlockManager } = require("siyuan-package-custom-block");

class CarouselBlock extends CustomBlock {
    static type = "CarouselBlock";
    static css = ".hello { color: red; }";

    onMount(el, data) {
        console.log("hello world");
        el.insertAdjacentHTML("afterbegin", `<div class="hello">hello ${data.name}</div>`);
    }
}

module.exports = class P extends siyuan.Plugin {
    onload() {
        CustomBlockManager.init(this);
        CustomBlockManager.load(CarouselBlock);
        const content = CustomBlockManager.buildBlock("CarouselBlock", {
            name: "123",
        });
        // use content for paste in editor.
        console.log(content);
    }
};

sy-plugin-changelog

作者githubnpm语言环境
frostimesy-plugin-changelogsy-plugin-changelogtypescript

这个包可以可以帮开发者在插件更新的时候展示更新日志。主要用法如下:

  1. 安装依赖

    pnpm add -D sy-plugin-changelog

  2. 在自己的代码中导入, 并将 this 作为参数传入 changelog 当中

    ts
    import { changelog } from "sy-plugin-changelog";
    
    export default class PluginSample extends Plugin {
        async onload() {
        // ... everything done
            changelog(this);
        }
    }
  3. 请在 i18n 目录下新建文件 CHANGELOG-<lang>-<version>.md 文件, 并保证被加入打包当中

    • 例如: i18n/CHANGELOG-zh_CN-0.0.2.md
    • <lang> 应当和思源 window.siyuan.config.lang 一致, 例如: zh_CN
    • <version> 应当和 plugin.json 中 version 字段一致, 且格式为 /\d+\.\d+\.\d+/, 如 1.1.2

更多详细的用法, 请阅读文档。

zhi-siyuan-api

作者githubnpm语言环境
terwerzhi-siyuan-apizhi-siyuan-api?

#TODO

siyuan-sdk

作者GitHub 仓库npm语言环境
Zuoqiu-Yingyisiyuan-community/siyuan-sdk
GitHub 最新发行版本 (最新一次发行/预发行)
@siyuan-community/siyuan-sdk
NPM 版本
JavaScript / TypeScript

思源内核 API 的封装,提供了一些常用的方法,可以帮助开发者更快的开发插件。

其他详细信息请参阅 siyuan-sdk 文档