/**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderSetextContent(Token $token)
 {
     $level = $token->get('level', 1);
     $content = $token->get('content', '');
     $line = str_pad('', max(2, strlen($content)), $level === 1 ? '=' : '-');
     return "\n" . $content . "\n" . $line;
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     $level = $token->get('level', 1);
     $content = $token->get('content', '');
     $id = strtolower(preg_replace(['/[^\\dA-Za-z ]/', '/ /'], ['', '-'], $content));
     return "<h{$level} id=\"{$id}\">{$content}</h{$level}>";
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     if ($token->get('used', false)) {
         return '';
     }
     return $token->get('match') . "\n";
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderItemOpen(Token $token)
 {
     if ($token->get('forceParagraph', false)) {
         return "\n\n*   ";
     }
     return "\n*   ";
 }
 /**
  * @param \ViKon\Parser\Token     $token
  * @param \ViKon\Parser\TokenList $tokenList
  *
  * @return string
  * @throws \ViKon\Parser\LexerException
  */
 public function renderReference(Token $token, TokenList $tokenList)
 {
     $reference = $token->get('reference');
     $label = $token->get('label');
     if ($reference instanceof Token) {
         $referenceToken = $reference;
     } else {
         if (empty($reference) === '') {
             $reference = strtolower($token->get('label'));
         }
         $tokens = $tokenList->getTokensByCallback(function (Token $token) use($reference) {
             return $token->getName() === ReferenceRule::NAME && $token->get('reference', null) === $reference;
         });
         // Get first token (if not found return full match)
         if (($referenceToken = reset($tokens)) === false) {
             return $token->get('match', '');
         }
         $referenceToken->set('used', true);
     }
     $url = $referenceToken->get('url');
     $title = $referenceToken->get('title', '');
     if (empty($title)) {
         return "<a href=\"{$url}\">{$label}</a>";
     }
     return "<a href=\"{$url}\" title=\"{$title}\">{$label}</a>";
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderHeaderClose(Token $token)
 {
     $aligns = $token->get('align', null);
     $content = '|';
     foreach ($aligns as $align) {
         switch ($align) {
             case 'left':
                 $content .= ' :' . str_pad('', 9, '-') . ' |';
                 break;
             case 'right':
                 $content .= ' ' . str_pad('', 9, '-') . ': |';
                 break;
             case 'center':
                 $content .= ' :' . str_pad('', 8, '-') . ': |';
                 break;
             default:
                 $content .= ' ' . str_pad('', 10, '-') . ' |';
                 break;
         }
     }
     return "\n" . $content;
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     // Mathematics expression
     $eq = urlencode($token->get('expression', ''));
     // Background color
     $bc = config('parser-markdown.rule.math.background');
     // Foreground color (text color)
     $fc = config('parser-markdown.rule.math.font.color');
     // Image type
     $im = config('parser-markdown.rule.math.image');
     // Font size
     $fs = config('parser-markdown.rule.math.font.size');
     // Font type
     $ff = config('parser-markdown.rule.math.font.type');
     // Image path
     $img = public_path(config('parser-markdown.rule.math.path') . '/' . md5($eq) . '.' . $im);
     if (!file_exists($img)) {
         $url = 'http://www.sciweavers.org/tex2img.php?eq=' . $eq . '&bc=' . $bc . '&fc=' . $fc . '&im=' . $im . '&fs=' . $fs . '&ff=' . $ff . '&edit=0';
         file_put_contents($img, file_get_contents($url));
     }
     $size = getimagesize($img);
     return 'src="/images/math/' . md5($eq) . '.' . $im . '" alt="' . $token->get('content', '') . '" ' . $size[3];
 }
 /**
  * @param \ViKon\Parser\Token     $token
  * @param \ViKon\Parser\TokenList $tokenList
  *
  * @return string
  * @throws \ViKon\Parser\LexerException
  */
 public function renderReference(Token $token, TokenList $tokenList)
 {
     $reference = $token->get('reference');
     $alt = $token->get('alt');
     if ($reference instanceof Token) {
         $referenceToken = $reference;
     } else {
         $tokens = $tokenList->getTokensByCallback(function (Token $token) use($reference) {
             return $token->getName() === ReferenceRule::NAME && $token->get('reference', null) === $reference;
         });
         // Get first token (if not found return full match)
         if (($referenceToken = reset($tokens)) === false) {
             return $token->get('match', '');
         }
         $referenceToken->set('used', true);
     }
     $url = $referenceToken->get('url');
     $title = $referenceToken->get('title', '');
     if (empty($title)) {
         return "<img alt=\"{$alt}\" src=\"{$url}\"/>";
     }
     return "<img alt=\"{$alt}\" src=\"{$url}\" title=\"{$title}\" />";
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return $token->get('content', '');
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return $token->get('match');
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return '\\' . $token->get('char');
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderReference(Token $token)
 {
     return $token->get('match', '');
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return htmlspecialchars($token->get('content', ''));
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderLevelOpen(Token $token)
 {
     $this->ordered[] = $token->get('ordered', false);
     return '<' . ($token->get('ordered', false) ? 'ol' : 'ul') . '>';
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return $token->get('expression', '');
 }
 /**
  * @param \ViKon\Parser\Token $token
  *
  * @return string
  */
 public function renderContent(Token $token)
 {
     return '<span style="color: #CC0000;">' . $token->get('content', '') . '</span>';
 }