插入图片希望添加快捷键

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

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

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

期望:

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

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

  • 思源笔记

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

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

    21204 引用 • 83564 回帖
  • Q&A

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

    7550 引用 • 34363 回帖 • 197 关注

相关帖子

欢迎来到这里!

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

注册 关于
请输入回帖内容 ...
  • 用桌面端,直接把(多个)图片文件拖进思源的文档里就行。

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

    image.png

  • 其他回帖
  • 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,三个键就可以了 😂

推荐标签 标签

  • 星云链

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

    3 引用 • 16 回帖 • 3 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • 微信

    腾讯公司 2011 年 1 月 21 日推出的一款手机通讯软件。用户可以通过摇一摇、搜索号码、扫描二维码等添加好友和关注公众平台,同时可以将自己看到的精彩内容分享到微信朋友圈。

    130 引用 • 793 回帖 • 1 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 66 关注
  • 小说

    小说是以刻画人物形象为中心,通过完整的故事情节和环境描写来反映社会生活的文学体裁。

    28 引用 • 108 回帖 • 1 关注
  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    927 引用 • 937 回帖
  • 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.

    5 引用 • 62 回帖 • 4 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 581 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 17 关注
  • Google

    Google(Google Inc.,NASDAQ:GOOG)是一家美国上市公司(公有股份公司),于 1998 年 9 月 7 日以私有股份公司的形式创立,设计并管理一个互联网搜索引擎。Google 公司的总部称作“Googleplex”,它位于加利福尼亚山景城。Google 目前被公认为是全球规模最大的搜索引擎,它提供了简单易用的免费服务。不作恶(Don't be evil)是谷歌公司的一项非正式的公司口号。

    49 引用 • 192 回帖 • 1 关注
  • HTML

    HTML5 是 HTML 下一个的主要修订版本,现在仍处于发展阶段。广义论及 HTML5 时,实际指的是包括 HTML、CSS 和 JavaScript 在内的一套技术组合。

    103 引用 • 295 回帖
  • Solo

    Solo 是一款小而美的开源博客系统,专为程序员设计。Solo 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    1433 引用 • 10052 回帖 • 487 关注
  • WordPress

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

    66 引用 • 114 回帖 • 257 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 694 关注
  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    176 引用 • 814 回帖
  • CongSec

    本标签主要用于分享网络空间安全专业的学习笔记

    6 引用 • 1 回帖 • 1 关注
  • JWT

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

    20 引用 • 15 回帖 • 8 关注
  • 导航

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

    38 引用 • 169 回帖 • 1 关注
  • WebSocket

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

    48 引用 • 206 回帖 • 370 关注
  • 负能量

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

    88 引用 • 1234 回帖 • 425 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 199 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • 百度

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

    63 引用 • 785 回帖 • 208 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    192 引用 • 291 回帖 • 413 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    11 引用 • 5 回帖 • 597 关注