代码之家  ›  专栏  ›  技术社区  ›  Bob Vesterman

有没有办法在模板或其他页面内部设置“新”参数?

  •  0
  • Bob Vesterman  · 技术社区  · 4 年前

    假设我有一个页面,可以接受两个参数,x和y。我经常发现自己在这个页面上做一些事情,比如下面这个愚蠢的小例子:

    {{#if: {{{x|{{{y|}}}}}} | '''{{{x|{{{y|}}}}}}'''. I repeat, {{{x|{{{y|}}}}}}.}}
    

    在很多情况下,我更倾向于简化 {{{x|{{{y|}}}}}} ,以清晰、易于打字,并使其更难错过或出错。所以,我想做一些类似于以下假设语法的事情:

    {{#set:z|{{{x|{{{y|}}}}}}}}
    {{#if: {{{z|}}} | '''{{{z}}}'''. I repeat, {{{z}}}.}}
    

    也就是说,创建一个新参数z,它是 不 传递到页面,但仍可以在页面中使用。有没有办法做到这一点?

    0 回复  |  直到 4 年前
        1
  •  2
  •   Alexander Mashin    4 年前

    这是分机 Variables ,但它假定了特定的解析顺序,当使用Parsoid解析页面时,情况并非如此。

    为了保证正确的解析顺序,可以使用 Lua .

    但最简单的方法是创建一个新模板,只取一个参数,然后从原始模板调用它。

    Template1 :

    {{template2| z = {{{x|{{{y|}}}}}} }}
    

    Template2 :

    {{#if: {{{z}}} | '''{{{z}}}'''. I repeat, {{{z}}}.}}