Tencent / cherry-markdown

✨ A Markdown Editor
Other
3.35k stars 381 forks source link

[Bug Report]手风琴语法单独使用无法识别 #806

Open AnkioTomas opened 1 week ago

AnkioTomas commented 1 week ago

Prerequisites

Describe the Bug

问题

手风琴语法单独使用无法识别

image

修复方案

regexp.js#L254的正则修改为:

    begin: /(?:^|\n)(\n*[^\S\n]*)\+\+([+-]?)\s+([^\n]+)\n/,

修复效果

image

另外

这个项目看起来有点混乱。

Reproduction Steps

No response

System Information

No response

Contributing

No, I don't plan to at this time.

sunsonliu commented 1 week ago

image

哦哦,这里应该是我们语法说明上不够准确,默认收起的语法是 +++,默认展开的语法是+++-

针对正则写法的问题,目前遵循的一个原则是:需要复用的就放在regexp.js里,不需要复用的就放在各自的子类里,所以可能看上去会有点乱,后续确实可以考虑全都放到regexp.js里,但优先级比较低。

scss的话,针对不同的段落语法写对应的样式文件确实可行,不过主题就比较难实现了。。总不能有一大堆 /src/sass/themes/blue/Detail.scss这样的文件吧,这样反而降低了开发效率,所以最终我们选择了按模块拆分scss

AnkioTomas commented 1 week ago

你们现在的主题写了太多了重复性代码.... image

主题个人觉得用css变量的形式更方便一点?例如可以给变量加前缀: 默认主题(写到对应的scss文件里core/Detail.scss):

.theme{
--detail-summary-color:#000;
}

其他主题的话(themes/light.scss),直接覆盖变量就好了

.theme-light{
--detail-summary-color:#111;
}

而且现在的主题和cherry的耦合度太高了,都是一次性打包进cherry。

可以拆离开来,分离成一个个css,即便用户不引用主题的css,也有一个内置的默认主题可用。

用变量还有个好处就是,如果我只是想修改主题的颜色,我不用写一大段的css语法选择器去覆盖默认的主题

sunsonliu commented 6 days ago

嗯。。确实可以用css变量方式。当时实现主题的时候技术不行不知道有css变量的方式(当然现在我也似懂非懂),我们后续排期搞搞

foxfire881 commented 5 days ago

确实需要优化一下css主题了,前几天做自定义主题时发现,给的几个demo主题的css文件居然元素结构不一样,而且有一些元素在css中也没有体现出来,后来对着chrome的debug调试了好久才找到对应的元素修改点,改起来好麻烦