问题描述
我正在使用 Rainlab Translate 和 Vojta Svoboda Twig Extensions 插件使用October CMS创建一个多语言网站。
我正在使用树枝函数template_from_string
在一个模板文件中创建一个链接按钮。
一切正常。 如果我在link属性中使用|media
过滤器,以获取媒体文件的url。
但是,如果我使用|page
过滤器来获取页面网址,则会收到未知“页面”过滤器的错误消息。
<!-- It works: -->
<div>
{% set btn = {
'link': 'foobar.jpg','label': 'Where is FooBar »'
} %}
{{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link|media }}" role="button">{{ btn.label }}</a>')) }}
</div>
<!-- It does not work: -->
<div>
{% set btn = {
'link': 'foobar','label': 'Where is FooBar »'
} %}
{{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link|page }}" role="button">{{ btn.label }}</a>')) }}
</div>
我一直在解决这个问题,我的问题是:如何使两个过滤器都能工作? 预先感谢您的帮助。
解决方法
我认为您正在忽略东西:)
您可以这样使用
import numpy
def convolve_circularly(a1,a2):
return numpy.round(numpy.abs(numpy.fft.ifft(numpy.fft.fft(a1) * numpy.fft.fft(a2))))
def min_sum_abs_diff(a1,a2):
a1 = numpy.array(a1)
a2 = numpy.array(a2)[::-1]
return numpy.min(convolve_circularly(a1,1 - a2) + convolve_circularly(1 - a1,a2))
def slow_min_sum_abs_diff(a1,a2):
return min(
sum(abs(a1[i] - a2[i - k]) for i in range(len(a1))) for k in range(len(a2))
)
def main():
n = 100
for r in range(100000):
a1 = numpy.random.randint(2,size=n)
a2 = numpy.random.randint(2,size=n)
r = min_sum_abs_diff(a1,a2)
slow_r = slow_min_sum_abs_diff(a1,a2)
if r != slow_r:
print(a1,a2,r,slow_r)
break
if __name__ == "__main__":
main()
您可以使用uint32_t InsertBits(uint32_t input,uint8_t idx,uint8_t bits,uint8_t width)
{
uint32_t mask = ((1UL << width) - 1) << idx;
input &= ~mask;
input |= bits << idx;
return input;
}
并直接通过<div>
{% set btn = {
'link': 'fooba'|page,<-- HERE
'label': 'Where is FooBar »'
} %}
{{ include(template_from_string('<a class="btn btn-promo btn-white move" href="{{ btn.link }}" role="button">{{ btn.label }}</a>')) }}
</div>
。您无需在filter on main scope
如有疑问,请发表评论。