缘起
继 批量导入文档到数据库 0.0.6 版全新发布 之后,又一款导入数据库的代码片段问世。
之前的代码主打是批量导入,偏向于自动化,这个代码主打是单个或少量导入,主打是手动操作,通过块菜单或文档菜单导入,并且支持绑定块和不绑定块两种操作。
同样,与之前的代码一样,这个代码也是基于某源(思源)友的需求( 发送到数据库设置成默认取消绑定块,用代码片段能实现吗?或者没有大佬用插件实现? )而开发的。
改功能已全部使用到了 @Achuan-2 大佬提供的 7 个数据库 api 的操作,有想了解这些 api 用法的小伙伴也可以参考下该代码。
功能简介
1 支持自定义菜单及数据库,支持多个数据库配置
2 支持添加数据库的同时添加其他任意字段到数据库
3 添加其他字段时,可根据列表添加,多个同名的取第一个
4 添加其他字段时,具体添加内容是什么可以自定义,也可以使用回调函数实现。
使用说明
首先在代码参数配置中添加相应配置,然后在块菜单或文档菜单中选择 menus 参数中配置的菜单即可。
如果想要添加数据库的同时添加其他更多字段,可以把 isEnableMoreCols 开启,然后配置 menus 的 otherCols 字段即可。
参数配置如下:
// 是否开启,同时添加其他字段 true 开启 false 不开启 // 开启时,需要配置menus中的otherCols字段信息(可参考下面的示例) const isEnableMoreCols = false; // 块菜单配置 const menus = [ { // 菜单名,显示在块或文档右键菜单上 name: "添加到数据库A", // 添加到的数据库块id列表(必填),注意是数据库所在块id,如果移动了数据库位置需要更改 toAvBlockId: "20250501223635-2hu6d9z", // 指定数据库的列名,不填默认是添加到主键列,该参数仅对不绑定块菜单有效,如果多个列名一样的则取第一个 // 注意,目前仅支持文本列 toAvColName: "", // 是否绑定块菜单,true 绑定,false 不绑定 isBindBlock: true, // 其他扩展字段 // getColValue回调函数可动态计算字段值返回 otherCols: [ { colName: '状态', // 对于绑定块,块/文档id === rowID getColValue: (keyID, rowID, cellID, avID) => { return {"mSelect": [{"content":"今天"}]}; }, } ], }, ... }
可通过参数 isBindBlock 指定是否绑定块或文档,不绑定块是指仅仅发送块内容或标题文本到数据库。
可通过参数 toAvBlockId,指定将要添加到的数据库块 id,注意,是数据库所在块的 id,不是数据库 id(因此,如果移动了数据库位置需要更改块 id)。
可通过参数 toAvColName 指定数据库的列名,不填默认是添加到主键列,该参数仅对不绑定块菜单有效,如果多个列名一样的则取第一个(注意,目前仅支持文本列)
注意:只能在块菜单或文档菜单中操作(你的右键可能不是块菜单)
预览
块菜单如下
文档菜单如下
代码
鸣谢
感谢 @Achuan-2 大佬提供的数据库 api 使用方法。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于