Tencent / cherry-markdown

✨ A Markdown Editor
Other
3.51k stars 412 forks source link

如何在自定义语法中调用cherry的语法渲染? #408

Closed dreamncn closed 7 months ago

dreamncn commented 1 year ago

Cherry版本: 0.8.15

自定义语法结构如下:

语法结构1:

::: cardList 2
```yaml
- name: 酷安
  desc: 更新速度最快,首选下载位置
  avatar: https://cdn.jsdelivr.net/gh/dreamncn/picBed@master/uPic/2021_12_30_23_10_20_1640877020_1640877020278_Q3vHAU.jpg # 可选
  link: https://www.coolapk.com/apk/cn.dreamn.qianji_auto # 可选
  bgColor: '#CBEAFA' # 可选,默认var(--bodyBg)。颜色值有#号时请添加单引号
  textColor: '#6854A1' # 可选,默认var(--textColor)
- name: LSPosed仓库
  desc: 更新速度相对慢,备选下载点
  avatar: https://avatars.githubusercontent.com/u/75879071?s=200&v=4
  link: https://github.com/Xposed-Modules-Repo/cn.dreamn.qianji_auto/releases/tag/v3.1.8
  bgColor: '#718971'
  textColor: '#fff'

:::


语法结构2:

::: note 缘起 于是,少年们找到了记账软件:钱迹。 仿佛听到了群山中少年们的呼唤,光芒自迷雾中降生,自动记账——他来了 :::


### hook时机:

before `codeBlock`

### 问题:
语法结构1中的`yaml`结构是配置信息,并不希望被直接渲染为代码块,所以放在before之前。
语法结构2包含了一些基本的markdown语法。
这两个语法基础结构相似,所以放在一个hook里面,这样就导致语法结构2中的markdown语法无法被渲染,希望可以调用cherry的语法渲染直接渲染好。

### 解决方案:
我没找到调用cherry语法渲染的办法,就引入了`markedjs`库,先渲染内部的markdown再构造新的语法结构。
dreamncn commented 1 year ago

这又带来新的问题,里面的代码块不会被高亮,如果再引入codemirror进行高亮就显得累赘且多余了。

sunsonliu commented 1 year ago
sunsonliu commented 7 months ago

详细文档可以参考这里 :https://github.com/Tencent/cherry-markdown/wiki/%E8%87%AA%E5%AE%9A%E4%B9%89%E8%AF%AD%E6%B3%95