-
如何让数学公式渲染 支持 $ 公式 $ ,$$ 公式 $$ 格式, 也支持 \(公式 \), \[公式]\ 这样的标识符
2024-09-21 13:41+1,用 ai 常常有这个困扰,只能用 prompt 让 ai 输出标准 markdown 格式的公式
-
我的很多笔记标题变成 Untitled 了
2024-09-19 09:13我很早之前也出现过
怀疑是之前的某个同步 bug,导致云端存储的笔记出现了问题,丢失了 title,出现这个问题的笔记都是父文档,后面尽管更新笔记,云端同步到其他设备也依然有问题
建议把云端笔记目录全部删除,新建新的目录,重新全量上传
否则下次全量同步,依然可能出现问题
操作过后,我现在就没有这个问题了
-
在一个区域需要有多个图片是怎么排版的
2024-09-16 11:42确实,图片排版不适合用超级块,适合一个块放多个图片,超级块放图片,编辑器宽度改变,图片的高度和宽度也会改变,原来是对齐的,编辑器宽度改变就不对齐了
-
如何进行知识管理丨 P.A.R.A 系统:以行动为导向
2024-08-27 11:00因为书签管理笔记是为了行动,home 页面是为了归档
Project 和 Area 我希望专精,在书签里列当前最重要的就好,不重要的不列,不需要列表,bookmark+ 插件可以排序,对我来说足够用了
当 Project 的一个项目完成,领域的主题学习完成,我就可以在书签中移除这些笔记了
-
思源笔记设置代码块输出结果的样式
2024-08-11 20:29要是社区这个 Zuoqiu-Yingyi/siyuan-plugin-custom-block 自定义块样式插件,可以添加自定义样式就方便多了
issue: 建议新增自定义块样式 · Issue #10 · Zuoqiu-Yingyi/siyuan-plugin-custom-block (github.com)
-
分享思源代码片段调试技巧
2024-08-11 08:39看后面的替换文件,我觉得我会倾向于直接 vscode 打开主题文件夹,在主题里直接写,css 在 theme.css 写是即时生效的,js 需要刷新下
-
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 21:22原来这样呀。
ps:如果出现的是 hljs,querySelector 选择代码语言要更改下,因为代码语言是兄弟节点不是子节点,会查找不到 -
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 20:55所以我改成了这样就没问题了
// 监听新增代码 if(mutation.target.classList.contains("hljs")) { if(codeTimer) clearTimeout(codeTimer); codeTimer = setTimeout(() => { const langText = mutation.previousSibling.textContent; // 添加语言 addLanguage(langText); // 设置默认语言 setDefaultLang(); // console.log(mutation.target.querySelector(".protyle-action__language")?.textContent, 'selected'); }, 40); }
-
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 20:51就是
mutation
监控的问题,因为我确实测试了,新增代码块没有检测到 code-block 变化,,所以 if 判断里面的代码没有执行code-block 新增,不覆盖思源的上一个选择代码语言,所以下一次新增代码,就变为了上一次选择的代码语言,而不是代码片段设置的代码语言了
我新建空白工作空间测试了,依然检测不到 code-block 变化
-
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 19:55我用你的方式(即斜杆命令创建不指定语言的代码块),也是一样的结果,监听 mutation,也是只有 hljs 变化,没有 code-block 变化
思源是最新版
系统是 windows11
代码
// 功能:代码块最近使用的语言置顶 (async ()=>{ // 配置默认的代码语言,注意如果设置了这个参数,则会覆盖上一次使用的语言。始终默认用这个语言,为空不设置 const defaultCodeLang = "python"; // 配置最近代码语言最大显示个数 const recentlyCodeLangLength = 10; // 配置置顶的代码语言,这个配置里的语言始终置顶,比如 ["js", "java", "php"] let topCodeLang = []; // 配置持久化文件的存储路径 const storagePath = "/data/storage/recently_code_lang.json";
录屏
-
为了让文档层级导航插件能用于 MOC 笔记法,我写了一个对反链进行过滤的代码片段
2024-08-09 16:36学习这篇帖子代码片段实现代码块最近使用的语言置顶 - 链滴 (ld246.com)
放弃 setInterval 定时执行,用了 MutationObserver 来监控 DOM 变化
(async ()=>{function filterAndReorderLinks() { const filterPatterns = [ /^\d{8} \w{3}$/, // Example: 20240728 Sun /^\d{6}$/, /^\d{8} ~ \d{8}$/, /^\d{8} \- \d{8}$/ // Add more patterns here if needed ]; const containers = document.querySelectorAll("div.og-hierachy-navigate-backlink-doc-container"); if (containers.length === 0) { return; } containers.forEach(container => { const refLinks = container.querySelectorAll("span.refLinks.docLinksWrapper"); if (refLinks.length === 0) { return; } // Hide elements that match any pattern in filterPatterns refLinks.forEach(link => { const docName = link.getAttribute("title"); if (filterPatterns.some(pattern => pattern.test(docName))) { link.style.display = "none"; } else { link.style.display = ""; // Reset display property if it doesn't match } }); // Separate elements into two arrays: one for @-prefixed and one for otherItems const mocItems = []; const otherItems = []; refLinks.forEach(link => { const docName = link.getAttribute("title"); if (docName.startsWith("@")) { mocItems.push(link); } else { otherItems.push(link); } }); // Sort the 'otherItems' array based on the 'title' attribute in ascending order otherItems.sort((a, b) => { const titleA = a.getAttribute("title").toUpperCase(); // Ignore upper and lowercase const titleB = b.getAttribute("title").toUpperCase(); // Ignore upper and lowercase return titleA.localeCompare(titleB); }); // Clear only the refLinks elements and append them in the desired order refLinks.forEach(link => link.remove()); mocItems.concat(otherItems).forEach(link => { container.appendChild(link); }); }); } // 监控dom变化 function observeDomChange(targetNode, callback) { const config = { childList: true, subtree: true }; const observer = new MutationObserver((mutationsList) => { for (const mutation of mutationsList) { if (mutation.type === 'childList') { callback(mutation); } } }); observer.observe(targetNode, config); // 返回observer,用于停止观察 // observer.disconnect(); return observer; } // 等待元素渲染完成后执行的函数 function whenElementExist(selector) { return new Promise(resolve => { const checkForElement = () => { let element = null; if (typeof selector === 'function') { element = selector(); } else { element = document.querySelector(selector); } if (element) { resolve(element); } else { // 如果元素不存在,等浏览器再次重绘,递归调用checkForElement,直到元素出现 requestAnimationFrame(checkForElement); } }; checkForElement(); }); } // 等待笔记区出现 whenElementExist(".layout__center").then((element)=>{ const observer = observeDomChange(element, (mutation) => { // 监听弹窗代码列表 if(mutation.target.classList.contains("protyle-top") || mutation.target.classList.contains("og-hn-heading-docs-container")) { setTimeout(filterAndReorderLinks, 100); } }); }); })();
-
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 15:42if(mutation.target.classList.contains("code-block")) {
这个好像有点问题,貌似是不执行的,新增代码块的
mutation.target.classList
只有 hljs我设置默认语言为 python,新增代码块确实是 python 语法高亮,再新增一个 matlab 代码块,之后再新增不指定语言的代码块,默认就是 matlab 代码块了
-
[js] 代码片段实现代码块最近使用的语言置顶
2024-08-09 11:16谢谢大佬,这个很好用!👍
代码写的真好
js 小白,学习了observeDomChange
和whenElementExist
的使用 -
为了让文档层级导航插件能用于 MOC 笔记法,我写了一个对反链进行过滤的代码片段
2024-08-08 10:49因为我还是喜欢文档来管理内容,也能更沉浸去创作。
目前块引用也基本是文档引用,块粒度的引用对我而言,不如文档引用安全,容易失效
-
集市什么时候新增评论和评分功能
2024-08-07 18:25支持,现在插件使用,没有评分和评论,用户只能自己看 readme 和亲自尝试,有了评分和评论就简单做下筛选,
可以知道哪些插件评分很高,自己可以试试(下载量其实只能当做受欢迎程度程度参考之一,因为和插件的受众多少以及插件更新频率有很大关系)
哪些插件其实并不好用,做的并不完善,需要警惕使用
而评论功能除了避坑、简单了解插件有哪些不足,还可以分享用户使用插件的场景,对于用户而言,绝对是利好的。至于对于开发者而言,我是觉得要接受评论的好坏的,把插件分享到集市是好心,但是其实也是对集市资源的一种占用,别人因为看到集市有这个插件而去尝试,然后发表意见,就是很正常的事情。把东西放到互联网上,其实就应该要做好被评论的准备。
我喜欢把自己写的文章放到互联网上,因为我知道自己的文章有局限性,我其实非常期待别人能找出问题,告诉我,也想要和同道之人讨论进步。如果评论区只是夸赞,我反而有点失望,没有我想要的建设性意见。其实自己有时候也在想,互联网上信息良莠不齐,人人都可以发言,劣币常常驱逐良币,自己是不是同时也给别人找资料时造成了误导呢?
现在评分和评论暂时可以缓缓,因为集市插件不并多,等插件非常多了,个人觉得还是有必要出的。
论坛虽然可以讨论插件,但是非常信息过于零散,是不如评论功能便携好用的
-
在思源笔记里如何管理主题笔记
2024-08-04 14:06举个用数据库管理的例子
我计划每周要学习统计分析,并且发小红书和微信公众号
今天学完了 z 检验,加入《统计分析》和《博客》数据库
那么我可以在 z 检验这篇笔记直接看到我的整个统计分析学习进度
也可以看到博客发布到平台的情况
-
从 2024 年的视角来看,以 Roam Research 为首的双向链接似乎已经降温
2024-07-31 22:43加一,所以我之前就提过 issue,建议添加相关笔记功能了,建议的是能手动添加相关笔记,就是在属性里加一个相关笔记,可以添加多个笔记链接进去,有一个面板能显示本笔记所有相关的笔记,但是被否了
如果用 dailynote 笔记法的话,反链面板更适合积累想法,当笔记的历史记录,用反链面板找相关的笔记,很容易有太多噪声
除非完全弃用 dailynote,双链真的就是用来建立关联,而不是传递零碎信息的,这样反链面板才干净些
说到底,反链面板本身的设计就是去找这个块在哪里被引用了,并不是为找相关块而设计的,被引用不代表是我想要的相关和归属关系