思源笔记折腾记录 - 嵌入块批量操作 - 批量移动文档为子文档

本贴最后更新于 803 天前,其中的信息可能已经事过境迁

一、实现方式

首先还是引入依赖,毕竟手写菜单元素有点蛋疼

import 自定义菜单 from 'siyuan-noob/customMenu/index.js' import 核心api from "siyuan-noob/utilKernel/kernelApi.js"

然后像思源笔记折腾记录 - 嵌入块批量操作 - 批量删除 - 链滴 (ld246.com)

里面的一样,我们注册一个菜单项给嵌入块

自定义菜单.块标菜单.注册自定义菜单项({ id:"嵌入块批量移动文档", 文字:"批量移动所在文档为子文档", 判定函数:()=>{ return 自定义菜单.块标菜单.菜单状态.当前块类型=='NodeBlockQueryEmbed' && !document.querySelectorAll( `div[data-node-id="${自定义菜单.块标菜单.菜单状态.当前块id}"]` )[1] }, 点击回调函数:(e)=>{ let 当前块元素 = document.querySelector(`[data-node-id="${自定义菜单.块标菜单.菜单状态.当前块id}"]`) 移动嵌入块所有文档为子文档(当前块元素) } })

然后我们来实现一个移动方法:

export async function 移动嵌入块所有文档为子文档(嵌入块元素){ let 嵌入块内部元素id数组 = [] 嵌入块元素.querySelectorAll('div[data-node-id]:not([data-type="NodeBlockQueryEmbed"])').forEach( el=>嵌入块内部元素id数组.push(el.dataset.nodeId) ) let 嵌入块属性=(await 从元素获取块属性(嵌入块元素)) await 批量移动所在文档到指定块所在文档(嵌入块内部元素id数组,嵌入块属性) 嵌入块元素.querySelector( '.protyle-action__reload' ).click() }
export async function 从元素获取块属性(块元素){ let id = 块元素.dataset.nodeId let sql = `select * from blocks where id ='${id}'` return (await 核心api.sql({stmt:sql}))[0] }

然后需要实现移动所在文档了

export async function 批量移动所在文档到指定块所在文档(id数组,目标块属性){ let sql=`select path from blocks where false ` id数组.forEach( id=>{ sql =sql+`or id='${id}'` } ) let 文档路径数组=[]; (await 核心api.sql({stmt:sql})).forEach( item=>{文档路径数组.push(item.path)} ) 文档路径数组=Array.from(new Set(文档路径数组)) await 核心api.批量移动文档( { fromPaths:文档路径数组, toNotebook:目标块属性.box, toPath:目标块属性.path } ) }

这回就不加确认了,反正移动也不会出什么大问题的吧.

二、使用方法

需要依赖这个代码片段

思源笔记折腾记录 - 运行你的笔记 - 链滴 (ld246.com)

然后把这篇文章的内容剪藏到你的思源笔记里面就可以用了哒


这个是我的爱发电账号,如果觉得这个对你有用可以考虑请我们喝一杯咖啡~~

leolee9086 正在创作一些简单的技术教程和小工具,以及设计方面内容 | 爱发电 (afdian.net)

  • 思源笔记

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

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

    26028 引用 • 108011 回帖 • 1 关注
2 操作
leolee 在 2023-04-11 00:18:48 更新了该帖
leolee 在 2023-04-08 03:25:17 更新了该帖

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    76 引用 • 258 回帖 • 629 关注
  • 百度

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

    63 引用 • 785 回帖 • 77 关注
  • 资讯

    资讯是用户因为及时地获得它并利用它而能够在相对短的时间内给自己带来价值的信息,资讯有时效性和地域性。

    56 引用 • 85 回帖
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    10 引用 • 54 回帖 • 178 关注
  • Notion

    Notion - The all-in-one workspace for your notes, tasks, wikis, and databases.

    10 引用 • 77 回帖
  • uTools

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

    7 引用 • 28 回帖 • 2 关注
  • Android

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

    336 引用 • 324 回帖
  • GraphQL

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

    4 引用 • 3 回帖 • 11 关注
  • 阿里云

    阿里云是阿里巴巴集团旗下公司,是全球领先的云计算及人工智能科技公司。提供云服务器、云数据库、云安全等云计算服务,以及大数据、人工智能服务、精准定制基于场景的行业解决方案。

    85 引用 • 324 回帖
  • RIP

    愿逝者安息!

    8 引用 • 92 回帖 • 404 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1021 回帖 • 1 关注
  • Ant-Design

    Ant Design 是服务于企业级产品的设计体系,基于确定和自然的设计价值观上的模块化解决方案,让设计者和开发者专注于更好的用户体验。

    17 引用 • 23 回帖 • 4 关注
  • 导航

    各种网址链接、内容导航。

    45 引用 • 177 回帖
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    412 引用 • 3588 回帖 • 1 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖 • 9 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 465 关注
  • Laravel

    Laravel 是一套简洁、优雅的 PHP Web 开发框架。它采用 MVC 设计,是一款崇尚开发效率的全栈框架。

    19 引用 • 23 回帖 • 737 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    89 引用 • 113 回帖
  • abitmean

    有点意思就行了

    35 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    188 引用 • 1057 回帖 • 2 关注
  • Rust

    Rust 是一门赋予每个人构建可靠且高效软件能力的语言。Rust 由 Mozilla 开发,最早发布于 2014 年 9 月。

    58 引用 • 22 回帖 • 14 关注
  • 爬虫

    网络爬虫(Spider、Crawler),是一种按照一定的规则,自动地抓取万维网信息的程序。

    106 引用 • 275 回帖 • 1 关注
  • 支付宝

    支付宝是全球领先的独立第三方支付平台,致力于为广大用户提供安全快速的电子支付/网上支付/安全支付/手机支付体验,及转账收款/水电煤缴费/信用卡还款/AA 收款等生活服务应用。

    29 引用 • 347 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 5 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 395 关注
  • 小薇

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

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

    35 引用 • 468 回帖 • 761 关注
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 271 关注