插入图片希望添加快捷键

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

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

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

期望:

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

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

  • 思源笔记

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

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

    20547 引用 • 80218 回帖 • 1 关注
  • Q&A

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

    7218 引用 • 32906 回帖 • 206 关注

相关帖子

欢迎来到这里!

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

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

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

    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,三个键就可以了 😂

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

推荐标签 标签

  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 387 关注
  • Quicker

    Quicker 您的指尖工具箱!操作更少,收获更多!

    28 引用 • 101 回帖
  • 分享

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

    245 引用 • 1776 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 123 关注
  • 反馈

    Communication channel for makers and users.

    124 引用 • 907 回帖 • 220 关注
  • 面试

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

    324 引用 • 1395 回帖
  • OnlyOffice
    4 引用 • 16 关注
  • SOHO

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

    7 引用 • 55 回帖 • 48 关注
  • jQuery

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

    63 引用 • 134 回帖 • 725 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • 生活

    生活是指人类生存过程中的各项活动的总和,范畴较广,一般指为幸福的意义而存在。生活实际上是对人生的一种诠释。生活包括人类在社会中与自己息息相关的日常活动和心理影射。

    230 引用 • 1454 回帖 • 1 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖 • 1 关注
  • 游戏

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

    174 引用 • 814 回帖 • 2 关注
  • gRpc
    11 引用 • 9 回帖 • 50 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    14 引用 • 7 回帖 • 1 关注
  • etcd

    etcd 是一个分布式、高可用的 key-value 数据存储,专门用于在分布式系统中保存关键数据。

    5 引用 • 26 回帖 • 511 关注
  • JSON

    JSON (JavaScript Object Notation)是一种轻量级的数据交换格式。易于人类阅读和编写。同时也易于机器解析和生成。

    51 引用 • 190 回帖
  • 链书

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

    链书社

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

    14 引用 • 257 回帖
  • 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 回帖 • 3 关注
  • 星云链

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

    3 引用 • 16 回帖
  • Gzip

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

    9 引用 • 12 回帖 • 127 关注
  • 深度学习

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

    43 引用 • 40 回帖
  • 资讯

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

    54 引用 • 85 回帖
  • BookxNote

    BookxNote 是一款全新的电子书学习工具,助力您的学习与思考,让您的大脑更高效的记忆。

    笔记整理交给我,一心只读圣贤书。

    1 引用 • 1 回帖
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 41 关注
  • CloudFoundry

    Cloud Foundry 是 VMware 推出的业界第一个开源 PaaS 云平台,它支持多种框架、语言、运行时环境、云平台及应用服务,使开发人员能够在几秒钟内进行应用程序的部署和扩展,无需担心任何基础架构的问题。

    5 引用 • 18 回帖 • 151 关注
  • Oracle

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

    104 引用 • 126 回帖 • 431 关注