【教程】把随机题头图换成自己的图片,让思源笔记更加赏心悦目

本贴最后更新于 439 天前,其中的信息可能已经斗转星移

之前随机题头图文件夹在哪?研究半天没研究出来,今天无意中翻到了 leolee 的文章《思源笔记折腾记录-整点花里胡哨-自己定义随机头图》,很简单地就实现了,所以分享一下。

为了方便需要的人直接操作,我在这里只说明步骤,对思路感兴趣的话请去看原文。

另外,我使用 Win10 ,不了解其他操作系统。

01 把图片塞进文件夹

1 在工作空间目录下新建文件夹:/snnipets/assets/backgrounds

如果你想换个目录,可能需要改改后面的代码

image

image

2 把自己的图片放入这个文件夹

image

02 加一个代码片段

1 把这串代码复制粘贴到 主菜单 > 设置 > 外观 > 代码片段 > JS 中

注意:如果粘贴时带有版权小尾巴要手动删除

/* 自定义随机头图 JS片段 */
(() => {
    async function 生成随机背景链接() {
        let 请求响应 = await fetch('/snippets/assets/backgrounds/')
        let 临时dom = new DOMParser().parseFromString(await 请求响应.text(), "text/html")
        let 图片链接数组 = 临时dom.querySelectorAll('a')
        let 随机链接 = 图片链接数组[Math.floor(Math.random() * 图片链接数组.length)].getAttribute("href")
        随机链接 = "/snippets/assets/backgrounds/" + 随机链接
        return 随机链接
    }
    document.addEventListener('contextmenu', 更换随机背景图)
    async function 更换随机背景图(event, 元素) {
        let 触发目标 = event.target
        if (元素) {
            触发目标 = 元素
        }
        if (触发目标.tagName == 'svg' || 触发目标.tagName == 'use') {
            更换随机背景图(event, 触发目标.parentElement)
            return
        }
        if (触发目标.classList.value == "protyle-icon b3-tooltips b3-tooltips__sw") {
            let 随机链接 = await 生成随机背景链接()
               触发目标.parentElement.parentElement.querySelector('img').setAttribute("style", '')
               触发目标.parentElement.parentElement.querySelector('img').setAttribute("src", 随机链接)
            fetch('/api/attr/setBlockAttrs',
                {
                    method: 'post',
                    body: JSON.stringify({
                        id: 触发目标.parentElement.parentElement.parentElement.getAttribute("data-node-id"),
                        attrs: { 'title-img': `background-image:url(${随机链接})` }
                    })
                }
            )
        }
    }
})()

2 按以下顺序操作

image

03 开始用吧

1 左键点击文档标题上方的 随机题头图 按钮

image

2 右键点击题头图右下方的 随机 按钮(左键点击仍为原生随机题头图)

image

image

现在显示的就是刚才放在文件夹中的图片了,再次右键点击可以再随机下一张图片

如果你点击了之后它没有变,可能是随机到同一张图片了,你也可以自己改改代码让它能看起来更“随机”一点。

注:有时候图片可能没加载出来,这时候重启思源就行了

  • 思源笔记

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

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

    22434 引用 • 89846 回帖

相关帖子

欢迎来到这里!

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

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

    我设置完以后,还是只能显示内置图库,没有随机的效果,不知道问题出在哪里。。。。

    1 回复
  • 其他回帖
  •         if (元素) {
                触发目标 = 元素
            }
    

    猛一看,有点恍惚。不过为啥不用拼音前缀比如 ys元素 cf触发目标

    1 回复
  • jianjian12138

    image.png大哥,怎么运行成功的?求教

  • 有两个头图插件,一个只能用在线图库,另一个要手写 json ,跟这个直接放图片到文件夹里就能用的方法没得比。要不你再做个插件?

    2 回复
  • 查看全部回帖