Skip to content

插件开发

通过编写插件,可以为 Eruda 创建自定义面板,增加更多功能。

创建插件

为 Eruda 添加插件非常简单,你只需要传递一个实现了几个方法的对象。

javascript
eruda.add({
    name: 'test',
    init($el) {
        $el.html('Hello, this is my first eruda plugin!');
        this._$el = $el;
    },
    show() {
        this._$el.show();
    },
    hide() {
        this._$el.hide();
    },
    destroy() {}
});

基本结构

name

每个插件必须有一个唯一的名称,这个名称将显示在顶部的标签上。

init

该方法在插件被添加时调用,并传入一个用于显示内容的元素节点。

该元素被包装成一个类似 jQuery 的对象,由 licia 工具库提供。

show

该方法在切换到该面板时调用,通常只需要显示容器节点。

hide

该方法在切换到其他面板时调用,你至少应该在这里隐藏容器节点。

destroy

在调用 eruda.remove('plugin name') 移除插件时调用。

值得一提

除了传递一个对象,你还可以传递一个返回对象的函数,Eruda 会自动调用该函数并使用它返回的对象。

javascript
eruda.add(function (eruda) {
    // eruda.Tool 实现了这四个方法。
    class Test extends eruda.Tool {
        constructor() {
            super()
            this.name = 'test';
            this.style = eruda.util.evalCss('.eruda-test { background: #000; }');
        }
        init($el) {
            super.init($el);
        }
        destroy() {
            super.destroy();
            eruda.util.evalCss.remove(this.style);
        }
    }

    return new Test();
});

Eruda 还提供了一个用于插件初始化的工具,可以点击这里查看。

工具函数

在编写插件时,你可以使用 Eruda 提供的工具函数。

evalCss

将 CSS 加载到页面中。

参数名说明
cssCSS 代码
返回值样式元素
javascript
evalCss('body{background:#08c}');

isErudaEl

检查值是否为 Eruda 容器下的元素节点。

参数名说明
val要检查的值
返回值如果值是 Eruda 容器下元素节点则为 true
javascript
isErudaEl(document.body); // -> false

getTheme

获取当前主题名称。

javascript
getTheme(); // -> 'Light'

isDarkTheme

检查 Eruda 是否使用了暗色主题。

参数名说明
theme主题名称
返回值如果主题是暗色主题则为 true
javascript
isDarkTheme('Dark'); // -> true