cherry-markdown icon indicating copy to clipboard operation
cherry-markdown copied to clipboard

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

Open AnkioTomas opened this issue 1 year ago • 4 comments

Prerequisites

Describe the Bug

问题

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

修复方案

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

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

修复效果

image

另外

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

  • 部分语法的正则写在regexp里面,有一部分还写在ParagraphBase的子类里面
  • 语法的样式过于混乱,都用了scss为什么不把样式拆分到子文件来和语法名称对应(Detail语法对应Detail.scss这样),也方便后期维护和管理

Reproduction Steps

No response

System Information

No response

Contributing

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

AnkioTomas avatar Jun 22 '24 14:06 AnkioTomas

image

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

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

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

sunsonliu avatar Jun 24 '24 06:06 sunsonliu

你们现在的主题写了太多了重复性代码.... 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语法选择器去覆盖默认的主题

AnkioTomas avatar Jun 24 '24 06:06 AnkioTomas

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

sunsonliu avatar Jun 25 '24 10:06 sunsonliu

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

foxfire881 avatar Jun 26 '24 12:06 foxfire881

欢迎安装最新版(v0.10.1),新版本主题已改成css变量的方式

sunsonliu avatar Oct 22 '25 07:10 sunsonliu