改变带点参数动态地(changing dotless parameters dynamically)

2019-09-17 14:37发布

我想存储在数据库.LESS参数,一个例子使用的情况下可能是根据自己的喜好每个用户是颜色的变化。

我想这样做,这将是解析所有.LESS文件得到的参数,用户可以再设置这将节省在对用户数据库的参数的最佳途径。 当请求较少的文件处理程序过载可以查询的参数DB。 该处理器可以然后再输出的参数设置的CSS。

问题: - 如何可以采取.LESS文件,并得到的参数列表? - 如何采取.LESS文件的参数(密钥值对)和输出的CSS的阵列?

所有使用带点框架。

Answer 1:

可能是一个迟到的答复,但我们做了类似您的要求,我们已经基于存储在数据库中的用户自定义颜色的东西。

我们的解决方案中添加自定义代码,以带点的来源,可在这里,我相信https://github.com/dotless/dotless

所以后来在分析过程中它甫一字符串替换我们想更换零件。 唯一的缺点,以这种方式来获取更新的构建,我们需要重新emerge每次我们的源新带点的dll。

EDIT下面是一个例子的代码片断:

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;


Answer 2:

如果您使用.NET做那么带点允许您指定可以评估之前运行访客插件。 这种访问的所有节点在较抽象语法树,以便可以轻松地确定所有的变量。 带点还允许指定patamteres让您生成一个变量文件。

但是,这是OTT ..你可能要考虑一下在数据库中存储的所有变量作为你的“主副本”和避免解析较少。



文章来源: changing dotless parameters dynamically