能够将 Alt + X 标记与加粗结合到一起

即按 Alt + X 的时候既标注你颜色又加粗字体

  • 思源笔记

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

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

    25115 引用 • 103541 回帖 • 1 关注
  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9579 引用 • 43577 回帖 • 97 关注

相关帖子

被采纳的回答
  • alt+z 行吗?alt+x 和思源冲突,调不出来

    // alt+z 给文字加粗和标记 (()=>{ // 监听键盘按下alt+z事件 document.addEventListener('keydown', function(event) { // 检查是否按下了 Alt 键以及物理按键是 'KeyZ' if ( event.altKey && // 按下了 Alt 键 event.code === 'KeyZ' && // 物理按键是 Z !event.shiftKey && // 未按下 Shift 键 !event.ctrlKey && // 未按下 Ctrl 键 !event.metaKey // 未按下 Meta 键 ) { // 阻止默认行为(如果有必要) event.preventDefault(); // 获取protyle const protyle = getProtyle(); // 给文字加粗 protyle.toolbar.setInlineMark(protyle, 'strong', "toolbar"); // 给文字标记 protyle.toolbar.setInlineMark(protyle, 'mark', "toolbar"); } }); function getProtyle() { try { if(document.getElementById("sidebar")) return siyuan.mobile.editor.protyle; const currDoc = siyuan?.layout?.centerLayout?.children.map(item=>item.children.find(item=>item.headElement?.classList.contains('item--focus') && (item.panelElement.closest('.layout__wnd--active')||item.panelElement.closest('[data-type="wnd"]')))).find(item=>item); return currDoc?.model.editor.protyle; } catch(e) { console.error(e); return null; } } })();

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • wilsons 1 1 评论

    alt+z 行吗?alt+x 和思源冲突,调不出来

    // alt+z 给文字加粗和标记 (()=>{ // 监听键盘按下alt+z事件 document.addEventListener('keydown', function(event) { // 检查是否按下了 Alt 键以及物理按键是 'KeyZ' if ( event.altKey && // 按下了 Alt 键 event.code === 'KeyZ' && // 物理按键是 Z !event.shiftKey && // 未按下 Shift 键 !event.ctrlKey && // 未按下 Ctrl 键 !event.metaKey // 未按下 Meta 键 ) { // 阻止默认行为(如果有必要) event.preventDefault(); // 获取protyle const protyle = getProtyle(); // 给文字加粗 protyle.toolbar.setInlineMark(protyle, 'strong', "toolbar"); // 给文字标记 protyle.toolbar.setInlineMark(protyle, 'mark', "toolbar"); } }); function getProtyle() { try { if(document.getElementById("sidebar")) return siyuan.mobile.editor.protyle; const currDoc = siyuan?.layout?.centerLayout?.children.map(item=>item.children.find(item=>item.headElement?.classList.contains('item--focus') && (item.panelElement.closest('.layout__wnd--active')||item.panelElement.closest('[data-type="wnd"]')))).find(item=>item); return currDoc?.model.editor.protyle; } catch(e) { console.error(e); return null; } } })();
    2 回复
    这个好像是和 mark 标记是一样的效果,所以我可以直接修改 mark 标记的 css 实现,但是只有一种颜色,也够用了
    Adaxi
  • JeffreyChen 1 1 评论

    alt+x 和思源冲突,调不出来

    加上这个即可:

    image.png

    👍 感谢!学习了。不过这个场景感觉还是 alt+z 好些,毕竟没冲突。
    wilsons
  • 你没考虑到快捷键设置为 Alt+Z 的情况 huaji

    image.png

    1 回复
  • 为啥我的是 alt+x 你是否改过快捷键?还是版本问题,我用 3.1.27 没改过快捷键

    image.png

    1 回复
  • 快捷键设置为 Alt+Z

    不是“默认为”

  • alt+x 版

    注意:

    代码中加上这个 event.stopPropagation();可以阻止默认的 alt+x 最近使用样式的添加(默认已加上这个代码)

    去掉这个代码,则会同时赋予 3 种样式,加粗,标记和最近样式

    // alt+x 给文字加粗和标记 (()=>{ // 监听键盘按下alt+x事件 document.addEventListener('keydown', function(event) { // 检查是否按下了 Alt 键以及物理按键是 'KeyX' if ( event.altKey && // 按下了 Alt 键 event.code === 'KeyX' && // 物理按键是 X !event.shiftKey && // 未按下 Shift 键 !event.ctrlKey && // 未按下 Ctrl 键 !event.metaKey // 未按下 Meta 键 ) { // 阻止默认行为(如果有必要) event.preventDefault(); // 阻止冒泡,不加这个会和思源的alt+x重合,出现三种效果 event.stopPropagation(); // 获取protyle const protyle = getProtyle(); // 给文字加粗 protyle.toolbar.setInlineMark(protyle, 'strong', "toolbar"); // 给文字标记 protyle.toolbar.setInlineMark(protyle, 'mark', "toolbar"); } },true); function getProtyle() { try { if(document.getElementById("sidebar")) return siyuan.mobile.editor.protyle; const currDoc = siyuan?.layout?.centerLayout?.children.map(item=>item.children.find(item=>item.headElement?.classList.contains('item--focus') && (item.panelElement.closest('.layout__wnd--active')||item.panelElement.closest('[data-type="wnd"]')))).find(item=>item); return currDoc?.model.editor.protyle; } catch(e) { console.error(e); return null; } } })();
  • wilsons 1 1 评论

    @Adaxi

    这个好像是和 mark 标记是一样的效果,所以我可以直接修改 mark 标记的 css 实现,但是只有一种颜色,也够用了

    这个 protyle.toolbar.setInlineMark(protyle, 'mark', "toolbar"); mark 这个参数可以任意改,工具栏上的"strong", "em", "s", "code", "mark", "tag", "u", "sup", "clear", "sub", "kbd"样式都支持。

    参考 https://github.com/siyuan-note/siyuan/blob/a01523dc98799590396ffcabdc90b2dc6efe8474/app/src/mobile/util/keyboardToolbar.ts#L615C77-L615C154

    如果想要改文字颜色或背景色也可以

    比如:

    protyle.toolbar.setInlineMark(protyle, "text", "range", {type:'color', color:'var(--b3-font-color8)'}); protyle.toolbar.setInlineMark(protyle, "text", "range", {type:'backgroundColor', color:'var(--b3-font-background2)'});

    参考 https://github.com/siyuan-note/siyuan/blob/a01523dc98799590396ffcabdc90b2dc6efe8474/app/src/protyle/toolbar/Font.ts#L284

    当然,你用自己的方法实现也可以的,条条大路通罗马。

    谢谢提点
    Adaxi
请输入回帖内容 ...

推荐标签 标签

  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 2 关注
  • Chrome

    Chrome 又称 Google 浏览器,是一个由谷歌公司开发的网页浏览器。该浏览器是基于其他开源软件所编写,包括 WebKit,目标是提升稳定性、速度和安全性,并创造出简单且有效率的使用者界面。

    63 引用 • 289 回帖
  • WebSocket

    WebSocket 是 HTML5 中定义的一种新协议,它实现了浏览器与服务器之间的全双工通信(full-duplex)。

    48 引用 • 206 回帖 • 295 关注
  • 工具

    子曰:“工欲善其事,必先利其器。”

    298 引用 • 762 回帖 • 1 关注
  • 音乐

    你听到信仰的声音了么?

    62 引用 • 512 回帖
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 678 关注
  • 30Seconds

    📙 前端知识精选集,包含 HTML、CSS、JavaScript、React、Node、安全等方面,每天仅需 30 秒。

    • 精选常见面试题,帮助您准备下一次面试
    • 精选常见交互,帮助您拥有简洁酷炫的站点
    • 精选有用的 React 片段,帮助你获取最佳实践
    • 精选常见代码集,帮助您提高打码效率
    • 整理前端界的最新资讯,邀您一同探索新世界
    488 引用 • 384 回帖 • 9 关注
  • 链书

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

    链书社

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

    14 引用 • 257 回帖 • 2 关注
  • FreeMarker

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

    23 引用 • 20 回帖 • 459 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 734 关注
  • 叶归
    5 引用 • 16 回帖 • 8 关注
  • WordPress

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

    66 引用 • 114 回帖 • 194 关注
  • Shell

    Shell 脚本与 Windows/Dos 下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比 Windows 下的批处理更强大,比用其他编程程序编辑的程序效率更高,因为它使用了 Linux/Unix 下的命令。

    124 引用 • 74 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3455 回帖 • 164 关注
  • 印象笔记
    3 引用 • 16 回帖
  • JWT

    JWT(JSON Web Token)是一种用于双方之间传递信息的简洁的、安全的表述性声明规范。JWT 作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以 JSON 的形式安全的传递信息。

    20 引用 • 15 回帖 • 23 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    89 引用 • 122 回帖 • 616 关注
  • SSL

    SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS 与 SSL 在传输层对网络连接进行加密。

    70 引用 • 193 回帖 • 413 关注
  • OAuth

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

    36 引用 • 103 回帖 • 32 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 442 关注
  • 安装

    你若安好,便是晴天。

    132 引用 • 1184 回帖
  • 禅道

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

    6 引用 • 15 回帖 • 26 关注
  • Outlook
    1 引用 • 5 回帖 • 1 关注
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • Gzip

    gzip (GNU zip)是 GNU 自由软件的文件压缩程序。我们在 Linux 中经常会用到后缀为 .gz 的文件,它们就是 Gzip 格式的。现今已经成为互联网上使用非常普遍的一种数据压缩格式,或者说一种文件格式。

    9 引用 • 12 回帖 • 165 关注
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 3 关注