思源笔记折腾记录 - 快速输入 - 快速设置文档属性

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

之前我们搞了一下能够快速输入文字片段和快速设置样式的小玩意

现在给它弄点别的小功能,先从设置文档属性开始吧嘿嘿嘿

下面是菜单的主体部分, 可以看到基本上跟之前弄设置样式属性的没什么两样(有些人可能已经想到这个能够再抽象一层,然后再有多的一起框框 A 了,但是先不说这个)

import { 注册表 } from "siyuan-noob/commonStruct"; import 核心api from "siyuan-noob/utilKernel/kernelApi"; let 关键词注册表 = new 注册表("自定义关键词菜单"); let 当前菜单状态; let 当前属性对象; 关键词注册表.注册({ id: "快捷块属性", 行内关键词判断函数: (菜单状态) => { 当前菜单状态 = 菜单状态; if ( 菜单状态.当前节点 && (菜单状态.当前节点.wholeText || 菜单状态.当前节点.textContent).indexOf( "@doc" ) > -1 ) { let wholeText = 菜单状态.当前节点.wholeText; try { 当前属性对象 = new Function( `"use strict";return (${wholeText.split("@doc").pop()})` )(); return true; } catch (e) { return false; } } }, 文字: "设置文档属性", 图标: "#iconFile", 点击回调函数: () => { let element = 当前菜单状态.当前节点.parentElement; 设置文档属性(当前菜单状态); 当前菜单状态.当前节点.parentElement.innerText=当前菜单状态.当前节点.wholeText.slice( 0, 当前菜单状态.当前节点.wholeText.lastIndexOf("@doc") ); element.insertAdjacentHTML("beforeend", "<wbr>"); element.innerHTML=element.innerHTML var range = document.createRange(); let wbr = element.querySelector("wbr"); range.selectNodeContents(wbr); range.collapse(false); const selection = window.getSelection(); selection.removeAllRanges(); selection.addRange(range); wbr.remove(); window.siyuan.menus.menu.remove(); }, });

然后我们来弄一下那个设置文档属性

function 设置文档属性(菜单状态) { let 当前块id = 菜单状态.当前块id; 核心api.sql( { stmt: `select * from blocks where id='${当前块id}'`, }, "", (data) => { 核心api.setBlockAttrs({ id: data[0].root_id, attrs: 当前属性对象, }); } ); }

这样之后就可以用 @doc{name:'想要设置的文档名称'}​的形式来设置文档的属性了.

安装方式

这还是一个可运行代码片段,可以使用这个代码片段来进行安装

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

但是这个东西还要依赖另一个笔记,所以这个也要安装(啊,说安装笔记总感觉怪怪的)

思源笔记折腾记录 - 快速输入 - 链滴 (ld246.com)

直接剪藏这篇笔记之后,用运行到代码片段功能安装到代码片段就可以了。


如果这玩意对你有用可以去爱发电给我买杯咖啡

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

  • 思源笔记

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

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

    25864 引用 • 107118 回帖 • 1 关注

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 旅游

    希望你我能在旅途中找到人生的下一站。

    98 引用 • 903 回帖
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 227 关注
  • C

    C 语言是一门通用计算机编程语言,应用广泛。C 语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

    86 引用 • 165 回帖
  • FreeMarker

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

    23 引用 • 20 回帖 • 463 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    29 引用 • 230 回帖 • 125 关注
  • ngrok

    ngrok 是一个反向代理,通过在公共的端点和本地运行的 Web 服务器之间建立一个安全的通道。

    7 引用 • 63 回帖 • 656 关注
  • AWS
    11 引用 • 28 回帖 • 4 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖
  • Oracle

    Oracle(甲骨文)公司,全称甲骨文股份有限公司(甲骨文软件系统有限公司),是全球最大的企业级软件公司,总部位于美国加利福尼亚州的红木滩。1989 年正式进入中国市场。2013 年,甲骨文已超越 IBM,成为继 Microsoft 后全球第二大软件公司。

    107 引用 • 127 回帖 • 341 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 34 关注
  • Netty

    Netty 是一个基于 NIO 的客户端-服务器编程框架,使用 Netty 可以让你快速、简单地开发出一个可维护、高性能的网络应用,例如实现了某种协议的客户、服务端应用。

    49 引用 • 33 回帖 • 35 关注
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖 • 1 关注
  • Solidity

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

    3 引用 • 18 回帖 • 433 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 93 关注
  • 钉钉

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

    15 引用 • 67 回帖 • 271 关注
  • 强迫症

    强迫症(OCD)属于焦虑障碍的一种类型,是一组以强迫思维和强迫行为为主要临床表现的神经精神疾病,其特点为有意识的强迫和反强迫并存,一些毫无意义、甚至违背自己意愿的想法或冲动反反复复侵入患者的日常生活。

    15 引用 • 161 回帖 • 4 关注
  • JVM

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

    180 引用 • 120 回帖 • 3 关注
  • SQLServer

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

    21 引用 • 31 回帖 • 2 关注
  • 链书

    链书(Chainbook)是 B3log 开源社区提供的区块链纸质书交易平台,通过 B3T 实现共享激励与价值链。可将你的闲置书籍上架到链书,我们共同构建这个全新的交易平台,让闲置书籍继续发挥它的价值。

    链书社

    链书目前已经下线,也许以后还有计划重制上线。

    14 引用 • 257 回帖
  • 叶归
    10 引用 • 47 回帖 • 21 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 185 关注
  • WordPress

    WordPress 是一个使用 PHP 语言开发的博客平台,用户可以在支持 PHP 和 MySQL 数据库的服务器上架设自己的博客。也可以把 WordPress 当作一个内容管理系统(CMS)来使用。WordPress 是一个免费的开源项目,在 GNU 通用公共许可证(GPLv2)下授权发布。

    45 引用 • 114 回帖 • 176 关注
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    7 引用 • 69 回帖 • 6 关注
  • Visio
    1 引用 • 2 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖 • 1 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 580 关注
  • GitBook

    GitBook 使您的团队可以轻松编写和维护高质量的文档。 分享知识,提高团队的工作效率,让用户满意。

    3 引用 • 8 回帖 • 6 关注