123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- <?php
- /**
- * @link http://www.yiiframework.com/
- * @copyright Copyright (c) 2008 Yii Software LLC
- * @license http://www.yiiframework.com/license/
- */
- namespace yii\apidoc\helpers;
- use cebe\markdown\latex\GithubMarkdown;
- use yii\apidoc\models\TypeDoc;
- use yii\apidoc\renderers\BaseRenderer;
- use yii\helpers\Markdown;
- /**
- * A Markdown helper with support for class reference links.
- *
- * @author Carsten Brandt <mail@cebe.cc>
- * @since 2.0
- */
- class ApiMarkdownLaTeX extends GithubMarkdown
- {
- use ApiMarkdownTrait;
- /**
- * @var BaseRenderer
- */
- public static $renderer;
- protected $renderingContext;
- /**
- * @inheritdoc
- */
- protected function renderApiLink($block)
- {
- // TODO allow break also on camel case
- $latex = '\texttt{'.str_replace(['\\textbackslash', '::'], ['\allowbreak{}\\textbackslash', '\allowbreak{}::\allowbreak{}'], $this->escapeLatex(strip_tags($block[1]))).'}';
- return $latex;
- }
- /**
- * @inheritdoc
- */
- protected function renderBrokenApiLink($block)
- {
- return $this->renderApiLink($block);
- }
- /**
- * @inheritdoc
- * @since 2.0.5
- */
- protected function translateBlockType($type)
- {
- $key = ucfirst($type) . ':';
- if (isset(ApiMarkdown::$blockTranslations[$key])) {
- $translation = ApiMarkdown::$blockTranslations[$key];
- } else {
- $translation = $key;
- }
- return "$translation ";
- }
- /**
- * Renders a blockquote
- */
- protected function renderQuote($block)
- {
- if (isset($block['blocktype'])) {
- // TODO render nice icon for different block types: note, info, warning, tip
- //$class = ' class="' . $block['blocktype'] . '"';
- }
- return '\begin{quote}' . $this->renderAbsy($block['content']) . "\\end{quote}\n";
- }
- /**
- * Converts markdown into HTML
- *
- * @param string $content
- * @param TypeDoc $context
- * @param bool $paragraph
- * @return string
- */
- public static function process($content, $context = null, $paragraph = false)
- {
- if (!isset(Markdown::$flavors['api-latex'])) {
- Markdown::$flavors['api-latex'] = new static;
- }
- if (is_string($context)) {
- $context = static::$renderer->apiContext->getType($context);
- }
- Markdown::$flavors['api-latex']->renderingContext = $context;
- if ($paragraph) {
- return Markdown::processParagraph($content, 'api-latex');
- } else {
- return Markdown::process($content, 'api-latex');
- }
- }
- }
|