我是Mustache的初学者,我正在尝试在我的项目中实现它。没有胡子,它没用。我不知道如何执行以下操作(也许是因为我不知道Google会使用哪些关键字?)。
如果问题标题不清楚,我很抱歉。我不知道如何以更清晰的方式表达它。如果有人可以帮我编辑标题,那将是最好的。
基本上,我要将一系列背景颜色转换为CSS内部样式。但我也想在打印之前处理数组,以生成数组中每种背景颜色的文本颜色。
颜色数组:
$colors = array(
array(
"name" => "blue",
"hex" => "#6CC5FA"
),
array(
"name" => "red",
"hex" => "#840715"
),
...
)
我有一个接受输入颜色字符串并输出对比文本颜色的函数。目前,我正在使用循环来回显<style>
我想打印出这样的输出:
<style>
.bg-blue {
background-color:#6CC5FA;
color: #333333 /*This is the contrast color*/
}
.bg-red {
background-color:#840715;
color: #ffffff
}
....
</style>
当前的方法(显然没有Mustache)是这样的:
echo "<style>";
for ($i=0;i<sizeof($colors);i++) {
echo ".bg-".$colors[$i]["name"]....contrastColor($colors[$i]["hex"])....;
//You get the idea
}
echo "</style>";
我知道我可以使用循环将生成的文本颜色推送到使用Mustache的$colors
模板,但有没有办法将函数放入模板并告诉Mustache运行通过它的颜色代码?
有类似的东西吗?
$color_template = '
<style>
{{#color}}
.bg-{{name}} {
background-color:{{hex}};
color: {{contrastColor(hex)}}
}
{{/color}}
</style>
';
答案 0 :(得分:0)
是的!您可以使用the FILTERS
pragma执行此操作:
{{% FILTERS }}
<style>
{{# color }}
.bg-{{ name }} {
background-color: {{ hex }};
color: {{ hex | contrastColor }};
}
{{/ color }}
</style>