HTML с использованием Groovy MarkupBuilder, как мне элегантно смешать теги и текст? - PullRequest
3 голосов
/ 22 августа 2008

При использовании Groovy MarkupBuilder у меня есть места, где мне нужно вывести текст в документ или вызвать функцию, которая выводит текст в документ. В настоящее время я использую неопределенный тег "text" для вывода. Есть ли лучший способ написать этот код?

li {
  text("${type.getAlias()} blah blah ")
  function1(type.getXYZ())
  if (type instanceof Class1) {
    text(" implements ")
    ft.getList().each { 
      if (it == '') return
      text(it) 
      if (!function2(type, it)) text(", ")
    }
  }
}

Ответы [ 2 ]

8 голосов
/ 17 сентября 2008

На самом деле, сейчас рекомендуется использовать mkp.yield, например,

src.p {
    mkp.yield 'Some element that has a '
    strong 'child element'
    mkp.yield ' which seems pretty basic.'
}

для производства

<p>Some element that has a <strong>child element</strong> which seems pretty basic.</p>
2 голосов
/ 23 августа 2008

Включите метод:

void text(n){
    builder.yield n
}

Скорее всего, вы (я) скопировали этот код откуда-то, у которого был текстовый метод, но вы также не копировали текстовый метод. Поскольку MarkupBuilder принимает любое имя для имени тега, а браузеры игнорируют неизвестную разметку, это просто сработало.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...