我想将.less参数存储在数据库中,一个示例用例可能是每个用户的颜色根据他或她的喜好进行更改。
我认为最好的方法是解析所有的.less文件以获得参数,然后用户可以设置参数,这些参数将针对用户保存在数据库中。当请求less文件时,处理程序重载可以向DB查询参数。然后,处理程序可以输出设置了参数的css。
问题:-如何获取.less文件并获取参数列表?-如何获取.less文件参数数组(键值对)并输出css?
所有这些都使用了无点框架。
发布于 2012-06-06 20:59:14
可能是一个延迟的回复,但我们做了一些与您的要求类似的事情,我们根据存储在数据库中的用户自定义颜色。
我们的解决方案是将自定义代码添加到dotless的源代码中,我相信可以在这里找到https://github.com/dotless/dotless
因此,在解析过程中,它只是将字符串替换为我们想要替换的部分。这种方法的唯一缺点是获得新的无点动态链接库的更新版本,我们每次都需要重新合并源代码。
编辑这里是一个示例代码片段:
dotless.Core.Utils.HslColor hslcolor = dotless.Core.Utils.HslColor.FromRgbColor( new dotless.Core.Parser.Tree.Color( "187AAB" );
hslcolor.Lightness = 0.93;
var hexString = '#' + ( hslcolor.ToRgbColor().RGB.Select( i => ( ( int )i ).ToString( "X2" ) ).Aggregate( ( a, b ) => a + b ) ).ToLowerInvariant();
var resultColor = hexString;发布于 2012-05-30 00:11:02
如果你是用.Net做的,那么dotless允许你指定一个插件,它可以作为访问者在评估之前运行。这将访问不太抽象的语法树中的所有节点,因此可以很容易地确定所有变量。Dotless还允许指定patamteres,允许您生成变量文件。
但那是奥特..您可能希望考虑将数据库中的所有变量存储为您的“主副本”,并避免解析较少的变量。
https://stackoverflow.com/questions/10797661
复制相似问题