Keldos-Li / typora-latex-theme

将Typora伪装成LaTeX的中文样式主题,本科生轻量级课程论文撰写的好帮手。This is a theme disguising Typora into Chinese LaTeX style.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

分散选择器到不同 scss 文件的尝试

NaOHCC opened this issue · comments

起因是我对照着我学校的论文格式,修改相关设置,但这个项目暂时没有标题、正文的段前段后距。我去源文件的一些选择器添加 margin 属性。虽然有相当多的设置集中在 :root 选择器,而且注释齐全,但这个过程还是挺麻烦的,主要是各种选择器都集中在一个文件,上下翻来翻去费时间= =。这两天我通过 scss 的 @import 把 sass 样式分散到多个文件,并做了些微小的尝试,这样开发者添加功能时挺方便的。

不过我的仓库对这个项目进行了许多破坏性的改动,比如把暗黑模式整个删了;之前我用正则把 css 的自定义变量(--.)替换成 scss 的变量($.),但添加回来都不算困难。

另外有些字体回退设计的有点不合理,比如:

.CodeMirror-code pre {
        font-family: var(--code-font), var(--ui-font), monospace;
    }

但不妨就在--code-font中考虑回退,取消选择器中的回退 ,这样更方便拿到 css 的同学修改。

    --code-font: var("Latin Modern Mono", "Latin Modern Mono 10", "Courier New",--ui-font), monospace;
/* ... */
.CodeMirror-code pre {
        font-family: var(--code-font);
    }

我的想法是,通过分散文件,所有的变量都在 _setting.scss 中设置(包括回退机制),小文件中只引用变量就行(现在还有不小差距),开发者和普通同学修改 css 都更方便,添加更细粒度的控制(emmm 感觉一通操作下来,typora 被玩成 word 了?但 css 确实有这个能力XD)

commented

非常感谢!
这个项目的 CSS -> SCSS 迁移是我负责的。在当时,这个项目有很多可改进的点;在源代码方面,比如较为明显的以下两条:

  1. 去冗余:统一源代码文件,通过拼接不同方式参数的方式,生成不同平台、不同主题的产物。
  2. 解耦合:把原本耦合的源代码分成若干模块,拆分到不同文件中。

当时选择了 SCSS 作为开发语言,也是因为它能帮我们更好地实现这两个需求。按照当时的规划,这个项目 上 SCSS 要分两步走:

  1. 进行一个尽可能对等的迁移。这意味着,源代码和产物都要尽最大可能保持一致。这样,在用户体验上才能平滑无感,不至于出现重大事故。
  2. 在经过验证、确保这个迁移无显著问题后,再进行源代码上的重构、拆分。

1 比较要紧,且可以认为 2 依赖 1,所以当时我优先做了 1;而 2 至今我都没能抽出完整的时间来做,而这就是你正在做的事情。我阅读了你的源代码,它架构上来说是比较符合预期的。你有向我们提交 pr 的打算吗?

了解了,等我恢复被我删除的功能后,确保能产生和现在一样的产物(pandoc,暗黑模式等),我会向这边提交 pr 的

是应该拆分,从自己玩的仓库变成一个项目很多代码都没有认真改,现在回过头来看愈发觉得整一个挺乱(包括很多奇怪的注释,用空格控制的缩进……都还有问题)……

不过感觉你拆得太多了?个人觉得应该稍微合并一些(?)(纯个人感受)

段前段后距我还没想到这么细的调整诶……我自己用的 css 里改过了 quoteblock 的段前段后距,不过没推到仓库。(感觉不用 root 变量应该?p 的 margin 就是一个基本的样式属性_(:з」∠)_)

⬆️你写的是对的,是应该用 em 做单位,之后有空我一定要把一堆 pt、px 改成 em 和rem……这样就可以避免反复调了,之前写得太随意。

看了你的 cover.css,现在 typora 可以自定义样式在预览编写模式下看到吗,还是只能导出生效?还是是你在vscode下用的?或许能截个图看看吗(´・ω・`)

我也感觉我拆得有点多了,,我会试着合并一下。
typora 在编辑模式渲染 html 时会把 html 的属性去掉,css就不能生效了,很蛋疼。现在这个模板暂时是用来导出 pdf 对付我的作业封面用的,还没找到更好的解决方法。。

commented

请问这边有什么需要帮助的吗?还有继续开发的打算吗?

commented

#91 已合入