这个思源插件允许你将多种语言的代码放在一组标签页下
- 不保证适配所有第三方主题
- 切换主题或模式时至少要有一个打开着的文档,否则标签页样式不会随主题改变,需要打开一个文档后再次切换主题
- 导出为markdown或html等格式时所有标签页样式会丢失,只有导出pdf或图片时标签页才能正常显示
- 更换主题时代码标签页的样式可能会出现异常,这时请尝试以下方法:
- 切换外观模式
- 切换主题
- 关闭已打开的文档再重新打开
- 重启思源笔记后再次尝试以上方法
- 目前仅3.0.16及以上版本可正常使用
- 思源3.0.14及以上版本需要在 设置 -> 编辑器 中打开
允许执行HTML块内脚本
- 从0.3.0版本开始各项功能已基本实现预期(暂时不考虑实现显示行号功能),之后的更新将主要以修复bug和优化样式为主
- 更新插件后如果出现显示异常,可以用 插件 -> 修复已打开文档中所有代码标签页 进行修复,如果仍有问题,可尝试切回代码块后重新生成代码标签页
- 先在思源文档中插入一个代码块,形式如下。在
tab:::
后输入标题,之后再跟上:::active
表示打开文档时默认激活这个标签,若没有添加该标志则默认激活第一个标签。之后再输入lang:::语言
,其中lang:::语言
省略不写时默认将标题作为代码的语言类型。示例文件- 语言类型为
markdown
时会使用marked 进行渲染,使用marked-katex-extension 渲染Katex公式,使用marked-highlight渲染代码块。
tab:::这是c语言:::active lang:::c #include<stdio.h> int main(){ printf("hello\n"); return 0; } tab:::python def hello_world(): print("Hello World")
- 语言类型为
- 鼠标点击 代码块左上角的块菜单 -> 插件 -> 将代码块转换为标签页,你也可以在 设置 -> 快捷键
中为该功能设置一个快捷键。转换后效果如下
- 若需要编辑代码,可点击标签页右上角的 切回代码块,编辑完成之后再次将代码块转换为标签页即可
- 可以点击右上角的复制按钮一键复制代码
- 标签过多时一部分标签会被隐藏,桌面端可以将鼠标光标放在标签栏上使用鼠标滚轮滚动查看,移动端可以左右滑动标签栏查看
- 效果演示
- 这个插件基本上是在文心一言和ChatGPT的帮助下写出来的
- 这个插件是仿照obsidian-code-tab写的
- 测试时的思源版本:3.1.13
- 修复3.1.15中切回代码块时换行符丢失的问题
- 修复某些主题中标签和代码间的间距问题
- 调整标签的最小宽度
- 现在复制按钮可以复制markdown了
- 移动端标签过多时可以左右滑动查看标签了
- 修复使用docker时复制按钮不生效的问题
- 优化标签样式
- 优化样式及显示效果,适配更多主题
- 修复在使用docker时可能因CORS问题导致的代码样式异常的问题
- 修复在某些版本中标签页内代码边距太小的问题
- 支持在docker中运行插件
- 加载插件时会检查是否打开了允许执行HTML块内脚本选项
- 修复尖括号转义问题
- 限制标签标题长度,标签过多时自动添加水平滚动条
- 调整纯文本和markdown中代码块的字体大小
- 优化显示效果
- 让标签页适配更多主题
- 现在可以指定打开文档时默认激活的标签了
- 修复了一些bug