-
从 3.1.11 升级到 3.1.13 引述块格式发生了变化,是怎么回事?
2024-11-20 12:32其实我一直不建议官方改样式,专心出功能,美化方面的还是留给主题去做吧
每次改完样式之后,主题就得适配,现在列表转脑图和表格的功能就全废了/(ㄒoㄒ)/~~
-
思源笔记丨写了一个插件,用块引实现脚注和备注
2024-11-20 11:56另外学习了下给超级块加边框的操作,改下默认模板
{{{row > ${selection} ${content} }}} {: style="border: 2px dashed var(--b3-theme-on-background);"}
-
[Quicker] 思源笔记 SuperTag
2024-11-19 00:33有一点像 tana 一样,把标签当成数据库
思源的数据库其实挺灵活的,就是目前不能直接用添加数据库直接创建数据库,我现在基本就没用标签,都是用数据库快捷把文档归类,确实很爽
-
思源笔记丨写了一个插件,用块引实现脚注和备注
2024-11-19 00:31你试了 dev 版本了吗,我自己在本地测试应该是没有什么问题的
很奇怪我明明设置了最低版本是 3.1.12,但是你用低版本还能开启插件
-
思源有支持鸿蒙的开发计划吗?
2024-11-18 23:24 -
思源笔记丨写了一个插件,用块引实现脚注和备注
2024-11-18 20:10把有脚注的文档导出为模板(即 kramdown 格式),写了个 js 可以把这个模板内容变为脚注数字编号,不过目前由于这个原因,/api/block/getBlockKramdown 支持导出 span 元素样式 · Issue #13183 · siyuan-note/siyuan 还得之后再集成到插件功能里去
转化前
转化后
function processkramdown(kramdownText) { // 使用正则表达式匹配所有的脚注块引,不考虑data-subtype和span的文本内容 const footnoteRegex = /<span data-type="block-ref sup"[^>]*data-id="([^"]+)"[^>]*>[^<]*<\/span>{: style="--memo: 1"}/g; let match; const ids = []; // 提取所有的data-id并记录第一次出现的顺序 while ((match = footnoteRegex.exec(kramdownText)) !== null) { const id = match[1]; if (!ids.includes(id)) { ids.push(id); } } // 更新脚注块引中的内容为对应的序号,并修改data-subtype为"d" let processedkramdown = kramdownText.replace(footnoteRegex, (match, id) => { const index = ids.indexOf(id) + 1; // 获取序号 return `<span data-type="block-ref sup" data-subtype="d" data-id="${id}">${index}</span>{: style="--memo: 1"}`; }); // 更新被引用的块的命名 ids.forEach((id, index) => { const blockRegex = new RegExp(`({: id="${id}"[^}]*)}`, 'g'); processedkramdown = processedkramdown.replace(blockRegex, `$1 name="${index + 1}"}`); }); return processedkramdown; } // 导出为模板的内容 const kramdownText = ` ... `; // 处理Markdown文本 const processedkramdown = processkramdown(kramdownText); console.log(processedkramdown);
-
思源笔记丨写了一个插件,用块引实现脚注和备注
2024-11-18 18:56要数字编号,暂时可以通过对脚注内容块进行命名,把脚注引用变为动态锚文本来实现
之后我会尝试下让插件有一键转换数字脚注的功能
-
思源笔记丨动态图标使用笔记
2024-11-17 21:34![](api/icon/getDynamicIcon?color=red&date=2025-10-26&type=7&lang=zh_CN) ![](api/icon/getDynamicIcon?color=red&date=2025-10-26&type=7&lang=en_US)
getDynamicIcon 打多了,这样应该就可以
-
重返思源笔记半年,有感而发,写了一篇推文
2024-11-13 20:22手写选择 OneNote,纯电子本地使用还是用思源顺手,OneNote 的搜索能力也差劲(ps:我今年才知道 OneNote 老早就支持[[引用语法(大概 2010 年?),OneNote 老用户表示真是震惊)
思源笔记越用越顺手
-
重返思源笔记半年,有感而发,写了一篇推文
2024-11-13 11:47配图是真好看呀
抄抄作业,改进下我的主题,我现在习惯用引述块放内容,就把引述块改造为卡片样式了(引述块的缺点可能是放标题不在大纲显示)
-
思源笔记丨 Tsundoku 主题对引述块的样式优化(引述块添加背景色、嵌套引述块、引述块里的代码块)
2024-11-11 14:15思源笔记是最新版本吗,主题也是最新版本吗,以前是有这个问题,现在我自己没遇到过了
-
思源笔记丨动态图标使用笔记
2024-11-09 19:06写了一个脚本,可以用 python 脚本批量更改 dailynote、月份、年、周复盘的图标为动态图标
- 日记:格式“20241109 Sat”
import json import re import os def update_sy_file(file_path): # 读取 .sy 文件内容 with open(file_path, "r", encoding="utf-8") as file: content = file.read() # 解析 JSON 数据 data = json.loads(content) # 使用正则表达式提取 title 中的日期 title = data.get("Properties", {}).get("title", "") match = re.match(r"^(\d{4})(\d{2})(\d{2})\s\w{3}$", title) if match: year, month, day = match.groups() formatted_date = f"{year}-{month}-{day}" # 更新 icon 属性 new_icon = f"api/icon/getDynamicIcon?type=6&color=red&date={formatted_date}" data["Properties"]["icon"] = new_icon # 将更新后的数据写回文件 with open(file_path, "w", encoding="utf-8") as file: json.dump(data, file, ensure_ascii=False) print(f"Updated icon for file: {file_path}") def process_directory(directory_path): # 遍历目录及其子目录中的所有文件 for root, _, files in os.walk(directory_path): for file in files: if file.endswith(".sy"): file_path = os.path.join(root, file) update_sy_file(file_path) # 使用示例 process_directory(r"D:\Notes\Siyuan\Achuan-2\data\20241028223345-d9ifjv0")
- 月:格式“202411”
import json import re import os def update_sy_file(file_path): # 读取 .sy 文件内容 with open(file_path, "r", encoding="utf-8") as file: content = file.read() # 解析 JSON 数据 data = json.loads(content) # 使用正则表达式提取 title 中的日期 title = data.get("Properties", {}).get("title", "") match = re.match(r"^(\d{4})(\d{2})$", title) if match: year, month = match.groups() formatted_date = f"{year}-{month}-01" # 更新 icon 属性 new_icon = f"api/icon/getDynamicIcon?type=3&date={formatted_date}" data["Properties"]["icon"] = new_icon # 将更新后的数据写回文件 with open(file_path, "w", encoding="utf-8") as file: json.dump(data, file, ensure_ascii=False) print(f"Updated icon for file: {file_path}") def process_directory(directory_path): # 遍历目录及其子目录中的所有文件 for root, _, files in os.walk(directory_path): for file in files: if file.endswith(".sy"): file_path = os.path.join(root, file) update_sy_file(file_path) # 使用示例 process_directory(r"D:\Notes\Siyuan\Achuan-2\data\20241028223345-d9ifjv0")
- 年:格式“2024”
import json import re import os def update_sy_file(file_path): # 读取 .sy 文件内容 with open(file_path, "r", encoding="utf-8") as file: content = file.read() # 解析 JSON 数据 data = json.loads(content) # 使用正则表达式提取 title 中的日期 title = data.get("Properties", {}).get("title", "") match = re.match(r"^(\d{4})$", title) if match: year,= match.groups() formatted_date = f"{year}-01-01" # 更新 icon 属性 new_icon = f"api/icon/getDynamicIcon?type=4&date={formatted_date}" data["Properties"]["icon"] = new_icon # 将更新后的数据写回文件 with open(file_path, "w", encoding="utf-8") as file: json.dump(data, file, ensure_ascii=False) print(f"Updated icon for file: {file_path}") def process_directory(directory_path): # 遍历目录及其子目录中的所有文件 for root, _, files in os.walk(directory_path): for file in files: if file.endswith(".sy"): file_path = os.path.join(root, file) update_sy_file(file_path) # 使用示例 process_directory(r"D:\Notes\Siyuan\Achuan-2\data\20241028223345-d9ifjv0")
- 日记:格式“20241109 Sat”
-
语雀导出的文档导入思源有很多 html 标签怎么处理掉
2024-11-09 18:13如果想要保留颜色的话,可以写一个 python 脚本或者正则批量替换下 font 标签为 span,添加 date-type 属性,然后标签末尾添加思源设置颜色的语法
<span data-type="text">有颜色文字</span>{: style="color: rgb(61,70,77);"}普通文字
如果用 vscode 的话,可以用
正则语法<font style="([^"]+)">([^<]+)</font>
替换语法
<span data-type="text">$2</span>{: style="$1"}
替换完毕后
直接粘贴到思源
@88250 导入 md 能不能添加下 font 标签的转换,或者干脆支持 font 标签呢,考虑到 obsidian 和 typora 有很多用户会用 font 标签来设置笔记颜色