Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

希望支持 kmarkdown 的构造和解析 #23

Open
MeetWq opened this issue Jul 13, 2023 · 8 comments
Open

希望支持 kmarkdown 的构造和解析 #23

MeetWq opened this issue Jul 13, 2023 · 8 comments

Comments

@Tian-que
Copy link
Owner

这周末看看能不能超一个

@ssttkkl
Copy link
Collaborator

ssttkkl commented Jul 13, 2023

其实我不太理解为什么需要构造和解析kmd,手写有什么局限性或者说构造和解析有什么优势吗()

@MeetWq
Copy link
Author

MeetWq commented Jul 13, 2023

其实我不太理解为什么需要构造和解析kmd,手写有什么局限性或者说构造和解析有什么优势吗()

类似于为什么要用 MessageSegment 代替 CQ码
手写发送的时候还好,解析的时候就麻烦了,比如我现在有个需求是从 kmd 中拿到被 mention 的 id

@ssttkkl
Copy link
Collaborator

ssttkkl commented Jul 13, 2023

我觉得比较好的方案是把kmd相关的功能单独做成一个库,然后由插件开发者手动调用。
一方面我理解kmd和cq码不一样,大部分场景都不需要做解析,没必要引入额外的性能开销,另一方面可以直接用pyo3之类的方案把上面现成的rust库粘上

看看@Tian-que 怎么说

@ssttkkl
Copy link
Collaborator

ssttkkl commented Jul 13, 2023

其实需要mention的id的话可以在事件的extra属性拿到

mention: Optional[List[str]] = Field(None)

@kexue-z
Copy link

kexue-z commented Jul 14, 2023

KMD 我搬了这个来用 https://github.com/kexue-z/KaiheilaCardBuilder

自己用了一些写的 https://github.com/kexue-z/Dao-bot/blob/master/plugins/mc/kook/utils.py

效果-->

image

image

@Tian-que
Copy link
Owner

其实我不太理解为什么需要构造和解析kmd,手写有什么局限性或者说构造和解析有什么优势吗()

类似于为什么要用 MessageSegment 代替 CQ码 手写发送的时候还好,解析的时候就麻烦了,比如我现在有个需求是从 kmd 中拿到被 mention 的 id

从复用角度来看,就像@ssttkkl 说的那样, 这部分可以单独抽出来作为一个功能性组件,@kexue-z搞了一个Python实现的KaiheilaCardBuilder,可以试一下

@ssttkkl
Copy link
Collaborator

ssttkkl commented Nov 9, 2023

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants