Есть ли способ интерполировать миксин в Pug? - PullRequest
0 голосов
/ 18 июня 2020

Можно ли использовать миксины внутри большого блока текста, может быть, путем интерполяции? Я пробовал использовать следующий синтаксис, но он не сработал:

p.
    The molecular #{+intext(1, "Cooper et al.")} structure of 
    AACs causes them to bind to chlorophyll and retain

По сути, я хочу создавать ссылки на ссылки внизу страницы и обратно от цитат к этому тексту. Таким образом, миксин может быть примерно таким:

mixin intext(num, text)
    span(id= 'intext' + num)
        | (
        a(href="#citation" + num)= text
        | )

Теперь я знаю, что могу обойти это, используя передаваемый текст:

p
    | The molecular 
    +intext(1, "Cooper et al.")
    | structure of AACs causes them to bind to chlorophyll and retain

Но на веб-странице будет много текста и много цитат, и трубы сделают это слишком сложным.

Есть ли способ, которым это может быть достигнуто, используя интерполяцию или фильтр? Или что-нибудь попроще?

1 Ответ

0 голосов
/ 18 июня 2020

Понятно. Это можно сделать с помощью самой функции JavaScript.

var intext = function(num, text) {
    var link = "<a href=\"#citation" + num + "\">" + text + "</a>";
    var wrapper = "<span id=\"intext" + num + "\">(" + link + ")</span>"
    return wrapper;
}

А затем, чтобы использовать ее,

p.
    The molecular !{intext(1, "Cooper et al.")} structure of 
    AACs causes them to bind to chlorophyll and retain

отлично работает!

...