Sass转Stylus

2020-03-25  本文已影响0人  科研者

1. 需求

将 Sass 的变量配置文件 转成 Stylus 的变量配置文件

2. 场景

从特性和语法上,个人认为 Stylus 优于 Sass ,Sass 优于 Less ,所以项目造型上,我选择了 Stylus ,然而项目又用到了 Element-UI , Element-UI 的主题变量是用 Sass 写的,为了在 Stylus 中能访问到 Element-UI 的主题变量,需要将 Element-UI 用 Sass 写的主题变量 转换成 Stylus 语法;

3. 解决方案

曾经找到过一个将Sass转成Stylus的在线工具http://sass2stylus.com,但该工具实现太简单,只是将 Sass 的 : 换成 =,并去除了 !default 标识,而简单的去除 !default 标识是不对了,应该转成 Stylus 给变量设置默认值的语法,即使这样,也远远不能满足我的需求;

为了更加彻底的转换,我写了一系列的正则,争取尽可能地转换更多的内容;

本文提供了一些 搜索正则 和 替换结果,你可以在支持正则搜索与替换的编辑器(如:VSCode、Webstorm等等)里进行搜索与替换;

将来会开发一个转换工具,争取彻底实现将 Sass 和 Stylus 互转;

4. 搜索正则和替换内容

4.1. 设置变量的默认值

描述
将 Sass 的设置变量默认值的方式 换成 Stylus 设置变量默认值的方式;

行为
将 Sass 中定义默认值 !default 去除,并将 Sass 的变量赋值符号 : 替换成 Stylus 条件赋值符 ?=

操作

4.2. 变量赋值

描述
将Sass给变量赋值的方式 换成 Stylus 给变量赋值的方式;

行为
将Sass的变量赋值符 : 替换成 Stylus 的变量赋值符 =

操作

4.3. 插值语句

描述
将Sass的插值语法 换成 Stylus 的插值语法;

行为
将 Sass 的插值语法 #{[表达式]} 替换成 Stylus 的插值语法 {[表达式]}

操作

4.4. 行内Map

描述
将 Sass 写在一行内的 Map 字面量语法 换成 Stylus 的 哈希 Hashes 字面量语法;

行为
将 Sass 写在一行内的 Map 字面量语法 (key:value,key:value...) 换成 Stylus 的 哈希 Hashes 字面量语法 {key:value,key:value...}

操作

4.5. 跨行Map

描述
将 Sass 跨多行的 Map 字面量语法 换成 Stylus 的 哈希 Hashes 字面量语法;

行为
将 Sass 跨多行的 Map 字面量语法,如:

(
    key:value,
    key:value,
    ...
)

换成 Stylus 的 哈希 Hashes 字面量语法,如:

{
    key:value,
    key:value,
    ...
}

操作

上一篇下一篇

猜你喜欢

热点阅读