/**
  * @param Text $text
  */
 public function processWikiDefinitionList(Text $text)
 {
     $text->replace('{
             (^
                 ;[ \\t]*.+\\n
                 (:[ \\t]*.+\\n){1,}
             ){1,}
             \\n+
         }mx', function (Text $w) {
         $w->replace('/^;[ \\t]*(.+)\\n((:[ \\t]*.+\\n){1,})/m', function (Text $w, Text $item, Text $content) {
             $dt = Tag::create('dt')->setText($item);
             $lines = $content->trim()->ltrim(':')->split('/\\n?^:[ \\t]*/m', PREG_SPLIT_NO_EMPTY);
             if (count($lines) > 1) {
                 $dd = Tag::create('dd')->setText(Tag::create('p')->setText(trim($lines->join($this->getRenderer()->renderLineBreak() . "\n"))));
             } else {
                 $dd = Tag::create('dd')->setText($content->trim());
             }
             return $dt->render() . "\n" . $dd->render() . "\n";
         });
         $tag = Tag::create('dl')->setText("\n" . $w->trim() . "\n");
         return $tag->render();
     });
 }
Exemple #2
0
 /**
  * {@inheritdoc}
  */
 public function renderLineBreak(array $options = array())
 {
     $tag = Tag::create('br')->setType(Tag::TYPE_INLINE)->setEmptyTagSuffix($this->getEmptyTagSuffix());
     $this->getEmitter()->emit('tag', [$tag]);
     return $tag->render();
 }