AnyBlock 插件系列教程之 —0. 基础教程
ob 库,请用 Obsidian 安装 AnyBlock 插件打开
你可能需要频繁切换:源码/实时/渲染模式,推荐个人快捷键:
- Ctrl + / | 切换源码和实时(默认未设置)
- Alt + / | 切换编辑和渲染(默认 Ctrl+E)
插件推荐设置:(默认)
插件介绍
黑曜石插件 AnyBlock(后文可能会简称 AB
)。你可以通过一些方法灵活地创建一个“块”。
同时该插件提供了一些实用的功能,例如 列表转化为表格
插件由两个核心部分组成:选择器和处理器。
选择器可以选择一段文本区域,并将其转化为“块”。
处理器可以将选择器转化为的“块”,进行一定程度的再处理。
选择器
选择器包括
[2ut|scrollT]
- 列表选择器
- 使用:在列表的上一/两行加上
[处理器名]
的 header,注意 header 必须和列表首行位于同一层次
- 使用:在列表的上一/两行加上
- 引用块选择器
- 使用:在引用块的上一/两行加上
[处理器名]
的 header,注意 header 必须和引用块首行位于同一层次
- 使用:在引用块的上一/两行加上
- 代码块选择器
- 使用:在代码块的上一/两行加上
[处理器名]
的 header,注意 header 必须和代码块首行位于同一层次
- 使用:在代码块的上一/两行加上
- 标题选择器
- 使用:在标题的上一/两行加上
[处理器名]
的 header,注意 header 必须和标题首行位于同一层次 - 注意要项:选择范围可能会跨越多个 Obsidian 认为的“最小块”,在渲染模式中可能会被 Obsidian 进行优化而失效
- 使用:在标题的上一/两行加上
- 首尾选择器
- 使用:以
:::
开头和结尾,处理器名写在第一个:::
的后面,不需要加[]
。其实就和代码块差不多,这也是 VuePress 的一个 md 扩展语法 - 注意要项:选择范围可能会跨越多个 Obsidian 认为的“最小块”,在渲染模式中可能会被 Obsidian 进行优化而失效
- 使用:以
选择器一览
Here’s an example: (@todo nested rendering is a bit buggy at the moment).
You can also view all the selectors supported by the current version of the plugin through the Settings panel.
%% 下面举例使用:(@todo 嵌套渲染目前还有点 bug)%%
%% 你也可以通过设置面板来查看当前版本插件所支持的所有选择器 %%
[title2list|list2tab]
List Selector
[code(js)]
- 1
- 2
- 3
- 4
- 2
Quote Selector
[code(js)]
1
2
3
Code Selector
[code(js)]
1
2
3
Title Selector
A TAB bar like this is done using this selector
%% 像这里的转标签栏,就是使用标题选择器完成的%%
Head-tail Selector
This selector is not available in render mode
%% 该选择器在渲染模式不可用%%
:::code()
1
2
3
:::
Table Selector
add in V2.2.0
[code(js)]
|1 |2 |
|---|---|
|3 |4 |
嵌套支持
- v2.0.0 开始, 支持在列表或引用块中,使用 AB 语句(非不再限制只能再文档根部使用)
- v2.1.0 开始, 能够支持用 AB 块包括 AB 块自己(@todo 依赖于 html2md,出 bug 的概率较大)
[title2list|list2tab]
List in Quote
[X]
1
2[code(js)]
- 11
- 12
- 13
- 14
3
4
Quote in List
[2table]
-
l1
[Xquote|code(js)]
1
2 -
l2
List in List
Or even three levels of nesting
%% 甚至三层嵌套%%
[list2table]
- 1
-
2
-
3 [Xquote]
[list2table]
- < ll1| ll2
- ll3| ll4
-
-
5
-
Quote in Quote
[#q in q]
1
2[code(js)]
c1()
c2()3
~~Advanced selector(underdevelopment) ~~
%% 高级选择器(未开发)%%
[>XXX]
可以缩减范围选择(此功能未开发)
{^XXX} 所在层级选择,不同于下一层级选择(此功能未开发)
处理器
处理器包括
[2table|scrollT]
- 渲染处理器
- 文本到 UI
- 包括解析操作,其实叫做“解析并渲染”会更准确一点 如果不指定渲染操作则为 md 渲染操作
- 文本处理器
- 文本到文本
- 仅处理文本,即将一系列纯文本转化为另一个新的纯文本。可叠加
- 装饰处理器
- UI 到 UI
- 可以提供一些装饰:如溢出滚动等。可叠加
[#注意]
- 处理器可以进行叠加操作,多个处理器用
|
间隔。一个处理器可以由多个文本操作和多个装饰操作、加一个渲染操作组成 - 装饰器是 v1.3.0 版本新增的,相较于旧版本,有了装饰处理器会更灵活,可以对已经成型的页面元素进行二次修改
- 如果对文本处理器直接使用装饰处理器,默认会自动先对文本进行一个
md渲染处理器
- 三种处理器的逻辑,如下所示
[list2mermaid]
- Text—TextProcessor—>Text
- Text—RenderProcessor—>UI
- UI—DecorateProcessor—>UI
处理器一览
(下面可能包含旧的或未实现的或与插件版本不符的处理器,也可能通过设置面板查看自己安装插件所支持的所有处理器)
你也可以通过设置面板查看当前版本插件所支持的所有处理器
[list2table|overfold]
- < 大类型| 解析方法 | 解析方法 zh | 渲染方法 | 渲染方法 zh | 可转 md/html
- tree
- ul-list| ul 树
(一叉多层树)
- 2ut/2mdut | 转表格(规范) | md/html
- li-list| li 树
(一叉多层树)
- 2lt/mdlt | 转列表格 | html
- ab-tree | 二层树
也叫 ” 消除最高级 ”
(一叉二层树)
- 2timeline | 转时间线 | mermaid
- 2tab | 转标签栏 | html
- 2chat | 转对话
- tree-list | 树列表
(多叉多层树)
- 2table/2mdtable | 转树表格 | html
- 2mermaid | 转流程图 | mermaid/html
- 2mindmap | 转思维导图 | html
- 2tree | 长得像树的树状图 | html
- 2xuri | 旭日图 | html
- 2brace | 括弧分类图 | html
- ul-list| ul 树
(一叉多层树)
- other
- title | 标题级(语法糖)
- 2list+list2xxx | (组合使用,下面提供了几种语法糖)
- 2tab
- 2table
- 2mindmap
- code | 一定代码
- 2doctable | 转表格(文档生成) | html
- json | 这个不能转树,只能说转可折叠渲染
- common | 通用
- text | 纯文本 | md
- md | md 渲染 | md
- render| 渲染
(理论上为 ” 渲染修饰器 ”
但该功能没做)
- flod | (折叠类) 可折叠 | md+
- hide | (折叠类) 默认折叠 | md+
- heimu| (折叠类) 黑幕遮挡 | html
- limit()/part() | (折叠类) 限高折叠 | html
- scroll()| (折叠类) 限高滚动 | html
- title()| 增加块标题(代码块可能会很常用)
- title | 标题级(语法糖)
支持的文本操作:
(与渲染操作相比,文本操作的特点在于可叠加。即:可以先经过多个文本操作,再进行渲染操作)
[2table]
- < 类型 | 类型 zh | 方法 | 方法 zh
- title| 标题类
- title2list| 转列表文本,title 最重要的处理器,可配合 list 渲染器使用
- tree-indent | 树缩进
- indent2list | 缩进转列表
- code/quote | 代码或引用块
- X | 根据选择器自动解除块
- code/code(str) | 变代码块
- Xcode/Xcode(bool) | 解除代码块
- quote | 变引用块
- Xquote | 解除引用块
- code2quote | 代码块转引用块
- quote2code | 引用块转代码块
- text | 纯文本操作
- replace| 替换(带参)
- slice()| 切片(例如切割 1,-1,也可以达到类似 Xcode 的效果)
- listroot| 增加列表根
- 2tree-indent | 列表转缩进
三种可解析为树的选择器的差异
[2table]
- < 选择器| 可解析层次| 在 ul-list 里解析的区别
- 列表选择器| 树层次(>0)| 首列仅解析列表层,
|
为分割 - 负列表选择器| 树层级(>-4)| 首列仅解析负列表层
- 标题选择器| 树层级(>-9)| 首列仅解析标题层
补充:
2
表示to
的意思(就是一种格式转化为另一种格式)X
表示去除
的意思(例如去除引用块或代码块)
接下来是 1 - 使用示例 - 列表选择器
讨论
若阁下有独到的见解或新颖的想法,诚邀您在文章下方留言,与大家共同探讨。
反馈交流
其他渠道
版权声明
版权声明:所有 PKMer 文章如果需要转载,请附上原文出处链接。