【问题标题】:changing dotless parameters dynamically动态改变无点参数
【发布时间】:2014-10-10 20:01:26
【问题描述】:

我想在数据库中存储 .less 参数,一个示例用例可能是根据每个用户的喜好改变颜色。

我认为最好的方法是解析所有 .less 文件以获取参数,然后用户可以针对用户设置将保存在数据库中的参数。当请求较少的文件时,处理程序重载可以查询数据库的参数。然后处理程序可以输出带有参数集的 css。

问题: - 如何获取 .less 文件并获取参数列表? - 如何将 .less 文件获取参数数组(键值对)并输出 css?

全部使用dotless框架。

【问题讨论】:

    标签: c# .net less dotless


    【解决方案1】:

    可能回复晚了,但我们做了与您的要求类似的事情,我们根据存储在数据库中的用户自定义颜色。

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

    所以在解析过程中,它只是用字符串替换了我们想要替换的部分。这种方法的唯一缺点是获取新的无点 dll 的更新版本,我们每次都需要重新合并我们的源代码。

    编辑 这是一个示例代码sn-p:

    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;
    

    【讨论】:

    • 请问您有解决方案的示例吗?我需要完全一样的。
    • 我添加了一些示例代码。这是我们根据用户自定义颜色计算 UI 不同部分的不同色调的地方。
    • 谢谢约翰,非常感谢
    【解决方案2】:

    如果您在 .Net 中执行此操作,则 dotless 允许您指定一个插件,该插件可以作为访问者在评估之前运行。这会访问不太抽象的语法树中的所有节点,因此可以轻松确定所有变量。 Dotless 还允许指定 patamteres 以便您生成变量文件。

    但那是 ott.. 您可能需要考虑将数据库中的所有变量存储为您的“主副本”,并避免解析较少的变量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多