waiting0324_obsidian-code-note/README-zh.md

64 lines
2 KiB
Markdown
Raw Normal View History

2023-03-11 06:35:31 +00:00
# Obsidian 源碼筆記插件
[English Document](./README.md)
技術支持 [AntV X6](https://x6.antv.antgroup.com/)
## 一、插件功能
- 解析 Obsidian 筆記中的代碼區塊,繪製成方法調用鏈路的圖形,並在畫布中保留代碼區塊,方便查看
![Demo](img/demo.gif)
## 二、如何使用
### 1. 在 Markdown 的 代碼區塊 的 代碼註釋 部分,通過 關鍵字 編寫相關信息
| 支持的關鍵字 | 效果 |
| ------------ |-----------------------------|
| @class | 方法對應的類名稱 |
| @function | 方法名稱 |
| @call | 調用相關的方法,支持多個。格式: 類名稱 @ 方法名稱 |
**範例**
```Java
/**
* Register metadata string.
*
* @class ShenyuClientHttpRegistryController
* @function registerMetadata(@RequestBody final MetaDataRegisterDTO metaDataRegisterDTO)
* @call RegisterClientServerDisruptorPublisher @ publish(final DataTypeParent data)
*
* @param metaDataRegisterDTO the meta data register dto
* @return the string
*/
@PostMapping("/register-metadata")
@ResponseBody
public String registerMetadata(@RequestBody final MetaDataRegisterDTO metaDataRegisterDTO) {
// 通过 Publisher 注册 元数据对象
publisher.publish(metaDataRegisterDTO);
return ShenyuResultMessage.SUCCESS;
}
```
```Java
/**
* Register metadata string.
*
* @class RegisterClientServerDisruptorPublisher
* @function publish(final DataTypeParent data)
*
* @param metaDataRegisterDTO the meta data register dto
* @return the string
*/
@Override
public void publish(final DataTypeParent data) {
// 获取 DisruptorProvider
DisruptorProvider<Collection<DataTypeParent>> provider = providerManage.getProvider();
// 调用 DisruptorProvider 的 onData 方法,发送数据
provider.onData(Collections.singleton(data));
}
```
### 2. 點擊 Obsidian 左側按鈕,打開畫布