插入图片希望添加快捷键

场景: 将有道云笔记迁移到思源笔记

需要逐个笔记进行拷贝粘贴, 万恶的有道云笔记不支持图片的拷贝(大图片),需要保存为本地图片在插入到思源笔记。

当前的问题: 思源笔记插入图片的菜单比较远,需要二级菜单才能点到对应的功能,操作起来耗时费力。

期望:

方案 1: 添加“插入图片”的快捷键

方案 2: 在工具栏添加“插入图片”按钮

  • 思源笔记

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

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

    22370 引用 • 89523 回帖
  • Q&A

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

    8124 引用 • 37043 回帖 • 160 关注

相关帖子

欢迎来到这里!

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

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

    我简单写了一个 js 片段, 不知道能否符合你的要求

    // 增加按钮&快捷键实现: 插入图片或文件
    // 修改有标记的配置 "[可修改]"
    
    (async () => {
    
    /*******************************自定义配置**************************************/
        // 按钮id
        const btn_e = {
            /***********左上角**********/
            // 返回按钮(左箭头)
            barBack : "barBack",
            // 前进按钮(右箭头)
            barForward : "barForward",
            // 同步按钮
            barSync : "barSync",
            // 皇冠图标
            toolbarVIP : "toolbarVIP",
            // 日历热力图插件
            heatmap : "plugin_Calendar-heatmap_0",
            /***********右上角**********/
            // 搜索按钮
            barSearch : "barSearch",
            // 插件按钮
            barPlugins : "barPlugins",
            // 命令面板按钮
            barCommand : "barCommand",
            /***********左下角**********/
            // 底栏中的隐藏侧栏按钮
            barDock : "barDock",
            /***********右下角**********/
            // 底栏帮助按钮
            statusHelp : "statusHelp",
        }
    
        // 插入位置
        const position_e = {
            // 插入位置: 目标元素前面
            before : "beforebegin",
            // 插入位置: 目标元素后面
            after : "afterend",
        }
    
        // [可修改] 触发快捷键
        const hotkey = "ctrl+alt+g"
        // [可修改] 按钮 插入的位置 跟 哪个元素 有关
        const btn_basic_id = btn_e.barForward
        // [可修改] 按钮 插入到 元素 的前面还是后面
        const btn_post = position_e.after
        // [可修改] 按钮 的悬浮显示内容
        const btn_tips = "插入图片或文件"
    
    
    
    /*******************************代码分割线**************************************/
    
        const icon_e = {
            // 设置
            setting : "iconSettings",
            // 代码
            code : "iconCode",
            // 刷新
            refresh : "iconRefresh",
            // 调试
            debug : "iconBug",
            // 下方
            after : "iconAfter",
            // 下载
            download : "iconDownload",
        }
    
        // 快捷键监听
        document.addEventListener('keydown', event => {
            console.log("hotkey")
            if (checkShortcut(hotkey, event)) {
                // 阻止默认行为,比如浏览器的保存网页操作
                // event.preventDefault();
                quickInsertImgFunc()
            }
        });
    
        /* 重新加载会有延时, 所以需要等待1s之后再添加按钮 */
        setTimeout(() => {
            // 目标元素id, 插入位置, 新元素id, 显示内容, 图标, 点击回调
            addElement(btn_basic_id, btn_post, "custom_quick_inser_img", btn_tips, icon_e.download, quickInsertImgFunc);
        }, 1000);
    
        function checkShortcut(hostkey, event) {
            const keys = hostkey.split("+");
            const key = event.key.toLowerCase();
            const isCtrl = event.ctrlKey ? "ctrl+" : "";
            const isAlt = event.altKey ? "alt+" : "";
            const isShift = event.shiftKey ? "shift+" : "";
    
            const combination = isAlt + isCtrl + isShift + key;
            // console.log(keys.sort().join("+"))
            // console.log(combination)
            return keys.sort().join("+") === combination;
        }
    
        // 目标元素id, 插入位置, 新元素id, 显示内容, 图标, 点击回调
        function addElement(targetId, position, newElementId, displayContent, icon, clickCallback) {
            let barMode = document.getElementById(targetId);
            if (barMode === null) {
                return ""
            }
            barMode.insertAdjacentHTML(
                position,
                `<div id="${newElementId}" class="toolbar__item ariaLabel" aria-label="${displayContent}"></div>`
            );
            let newBtn = document.getElementById(newElementId);
            if (newBtn === null) {
                return ""
            }
            newBtn.innerHTML = `<svg><use xlink:href="#${icon}"></use></svg>`;
            newBtn.addEventListener("click", clickCallback);
            return newElementId
        }
    
    
        function quickInsertImgFunc() {
            const more_btn = document.querySelector('.layout__center [data-type="more"]:not([data-menu]');
            if (more_btn) {
                more_btn.click();
                setTimeout(() => {
                    const insert_btn = document.querySelector('#commonMenu > div.b3-menu__items > button:nth-child(1) > span > input');
                    if (insert_btn) {
                        insert_btn.click();
                    }
                }, 200);
    
            }
        }
    })()
    
    
  • 其他回帖
  • auric 1 赞同

    /tp,三个键就可以了 😂

  • 啥?我都是直接文件系统复制,进思源粘贴。。。。

  • 用桌面端,直接把(多个)图片文件拖进思源的文档里就行。

    另外在这里也能插入图片:

    image.png

推荐标签 标签

  • Firefox

    Mozilla Firefox 中文俗称“火狐”(正式缩写为 Fx 或 fx,非正式缩写为 FF),是一个开源的网页浏览器,使用 Gecko 排版引擎,支持多种操作系统,如 Windows、OSX 及 Linux 等。

    8 引用 • 30 回帖 • 407 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • Markdown

    Markdown 是一种轻量级标记语言,用户可使用纯文本编辑器来排版文档,最终通过 Markdown 引擎将文档转换为所需格式(比如 HTML、PDF 等)。

    167 引用 • 1513 回帖
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 2 关注
  • 星云链

    星云链是一个开源公链,业内简单的将其称为区块链上的谷歌。其实它不仅仅是区块链搜索引擎,一个公链的所有功能,它基本都有,比如你可以用它来开发部署你的去中心化的 APP,你可以在上面编写智能合约,发送交易等等。3 分钟快速接入星云链 (NAS) 测试网

    3 引用 • 16 回帖 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    944 引用 • 1459 回帖 • 17 关注
  • 七牛云

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

    27 引用 • 225 回帖 • 169 关注
  • MyBatis

    MyBatis 本是 Apache 软件基金会 的一个开源项目 iBatis,2010 年这个项目由 Apache 软件基金会迁移到了 google code,并且改名为 MyBatis ,2013 年 11 月再次迁移到了 GitHub。

    170 引用 • 414 回帖 • 385 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 211 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1327 回帖 • 1 关注
  • 负能量

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

    88 引用 • 1235 回帖 • 412 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖 • 1 关注
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖 • 2 关注
  • Log4j

    Log4j 是 Apache 开源的一款使用广泛的 Java 日志组件。

    20 引用 • 18 回帖 • 30 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • Gitea

    Gitea 是一个开源社区驱动的轻量级代码托管解决方案,后端采用 Go 编写,采用 MIT 许可证。

    4 引用 • 16 回帖 • 6 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    85 引用 • 139 回帖
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 709 关注
  • Latke

    Latke 是一款以 JSON 为主的 Java Web 框架。

    71 引用 • 535 回帖 • 788 关注
  • C

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

    85 引用 • 165 回帖 • 3 关注
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖
  • IPFS

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

    21 引用 • 245 回帖 • 241 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 639 关注
  • webpack

    webpack 是一个用于前端开发的模块加载器和打包工具,它能把各种资源,例如 JS、CSS(less/sass)、图片等都作为模块来使用和处理。

    41 引用 • 130 回帖 • 261 关注
  • SOHO

    为成为自由职业者在家办公而努力吧!

    7 引用 • 55 回帖 • 18 关注