Class yii\apidoc\templates\bootstrap\GuideRenderer

Inheritanceyii\apidoc\templates\bootstrap\GuideRenderer » yii\apidoc\templates\html\GuideRenderer » yii\apidoc\renderers\GuideRenderer » yii\apidoc\renderers\BaseRenderer » yii\base\Component
Uses Traitsyii\apidoc\templates\bootstrap\RendererTrait
Available since extension's version2.0
Source Code https://github.com/yiisoft/yii2-apidoc/blob/master/templates/bootstrap/GuideRenderer.php

Protected Methods

Hide inherited methods

Method Description Defined By
afterMarkdownProcess() Callback that is called after markdown is processed. yii\apidoc\templates\html\GuideRenderer
filterTypes() Returns types of a given class yii\apidoc\templates\bootstrap\RendererTrait
fixMarkdownLinks() Adds guide name to link URLs in markdown yii\apidoc\templates\html\GuideRenderer
generateGuideFileName() Given markdown file name generates resulting html file name yii\apidoc\templates\html\GuideRenderer
generateLink() Generate link markup yii\apidoc\templates\html\GuideRenderer
getTypeCategory() Returns category of TypeDoc yii\apidoc\templates\bootstrap\RendererTrait
loadGuideStructure() Loads guide structure from a set of files yii\apidoc\renderers\GuideRenderer

Constants

Hide inherited constants

Constant Value Description Defined By
GUIDE_PREFIX 'guide-' Deprecated since 2.0.1 use $guidePrefix instead which allows configuring this options yii\apidoc\renderers\BaseRenderer

Property Details

Hide inherited properties

$layout public property
public $layout '@yii/apidoc/templates/bootstrap/layouts/guide.php'

Method Details

Hide inherited methods

afterMarkdownProcess() protected method (available since version 2.0.5)

Defined in: yii\apidoc\templates\html\GuideRenderer::afterMarkdownProcess()

Callback that is called after markdown is processed.

You may override it to do some post processing. The default implementation fixes some markdown links using fixMarkdownLinks() on the output.

protected string afterMarkdownProcess ( $file, $output, $renderer )
$file string

The file that has been processed.

$output string

The rendered HTML output.

$renderer yii\apidoc\helpers\ApiMarkdown

The renderer instance.

                protected function afterMarkdownProcess($file, $output, $renderer)
{
    return $this->fixMarkdownLinks($output);
}

            
createSubjectLink() public method

Defined in: yii\apidoc\renderers\BaseRenderer::createSubjectLink()

Creates a link to a subject

public string createSubjectLink ( $subject, $title null, $options = [] )
$subject yii\apidoc\models\PropertyDoc|yii\apidoc\models\MethodDoc|yii\apidoc\models\ConstDoc|yii\apidoc\models\EventDoc
$title string
$options array

Additional HTML attributes for the link.

createTypeLink() public method

Defined in: yii\apidoc\renderers\BaseRenderer::createTypeLink()

Creates a link to a type (class, interface or trait)

public string createTypeLink ( $types, $context null, $title null, $options = [] )
$types yii\apidoc\models\ClassDoc|yii\apidoc\models\InterfaceDoc|yii\apidoc\models\TraitDoc|yii\apidoc\models\ClassDoc[]|yii\apidoc\models\InterfaceDoc[]|yii\apidoc\models\TraitDoc[]|string|string[]
$context yii\apidoc\models\BaseDoc
$title string

A title to be used for the link TODO check whether [[yii...|Class]] is supported

$options array

Additional HTML attributes for the link.

filterTypes() protected method

Defined in: yii\apidoc\templates\bootstrap\RendererTrait::filterTypes()

Returns types of a given class

protected array filterTypes ( $types, $navClasses )
$types yii\apidoc\models\TypeDoc[]
$navClasses string

                protected function filterTypes($types, $navClasses)
{
    switch ($navClasses) {
        case 'app':
            $types = array_filter($types, function ($val) {
                return strncmp($val->name, 'yii\\', 4) !== 0;
            });
            break;
        case 'yii':
            $self = $this;
            $types = array_filter($types, function ($val) use ($self) {
                if ($val->name == 'Yii' || $val->name == 'YiiRequirementChecker') {
                    return true;
                }
                if (strlen($val->name) < 5) {
                    return false;
                }
                $subName = substr($val->name, 4, strpos($val->name, '\\', 5) - 4);
                return strncmp($val->name, 'yii\\', 4) === 0 && !in_array($subName, $self->extensions);
            });
            break;
        default:
            $types = array_filter($types, function ($val) use ($navClasses) {
                return strncmp($val->name, "yii\\$navClasses\\", strlen("yii\\$navClasses\\")) === 0;
            });
    }
    return $types;
}

            
fixMarkdownLinks() protected method

Defined in: yii\apidoc\templates\html\GuideRenderer::fixMarkdownLinks()

Adds guide name to link URLs in markdown

protected string fixMarkdownLinks ( $content )
$content string

generateApiUrl() public method

Defined in: yii\apidoc\templates\html\GuideRenderer::generateApiUrl()

Generate an url to a type in apidocs

public mixed generateApiUrl ( $typeName )
$typeName

                public function generateApiUrl($typeName)
{
    return rtrim($this->apiUrl, '/') . '/' . strtolower(str_replace('\\', '-', $typeName)) . '.html';
}

            
generateGuideFileName() protected method

Defined in: yii\apidoc\templates\html\GuideRenderer::generateGuideFileName()

Given markdown file name generates resulting html file name

protected string generateGuideFileName ( $file )
$file string

Markdown file name

                protected function generateGuideFileName($file)
{
    return $this->guidePrefix . basename($file, '.md') . '.html';
}

            
generateGuideUrl() public method

Defined in: yii\apidoc\renderers\BaseRenderer::generateGuideUrl()

Generate an url to a guide page

public string generateGuideUrl ( $file )
$file string

                public function generateGuideUrl($file)
{
    //skip parsing external url
    if ( (strpos($file, 'https://') !== false) || (strpos($file, 'http://') !== false) ) {
        return $file;
    }
    $hash = '';
    if (($pos = strpos($file, '#')) !== false) {
        $hash = substr($file, $pos);
        $file = substr($file, 0, $pos);
    }
    return rtrim($this->guideUrl, '/') . '/' . $this->guidePrefix . basename($file, '.md') . '.html' . $hash;
}

            
generateLink() protected method
protected mixed generateLink ( $text, $href, $options = [] )
$text
$href
$options array

Additional HTML attributes for the link.

getGuideReferences() public method
public void getGuideReferences ( )

                public function getGuideReferences()
{
    // TODO implement for api docs
$refs = [];
foreach ($this->markDownFiles as $file) {
	$refName = 'guide-' . basename($file, '.md');
	$refs[$refName] = ['url' => $this->generateGuideFileName($file)];
}
return $refs;
}

            
getNavTypes() public method
public array getNavTypes ( $type, $types )
$type yii\apidoc\models\TypeDoc

Typedoc to take category from

$types yii\apidoc\models\TypeDoc[]

TypeDocs to filter

                public function getNavTypes($type, $types)
{
    if ($type === null) {
        return $types;
    }
    return $this->filterTypes($types, $this->getTypeCategory($type));
}

            
getTypeCategory() protected method

Defined in: yii\apidoc\templates\bootstrap\RendererTrait::getTypeCategory()

Returns category of TypeDoc

protected string getTypeCategory ( $type )
$type yii\apidoc\models\TypeDoc

                protected function getTypeCategory($type)
{
    $extensions = $this->extensions;
    $navClasses = 'app';
    if (isset($type)) {
        if ($type->name == 'Yii' || $type->name == 'YiiRequirementChecker') {
            $navClasses = 'yii';
        } elseif (strncmp($type->name, 'yii\\', 4) == 0) {
            $navClasses = 'yii';
            $subName = substr($type->name, 4);
            if (($pos = strpos($subName, '\\')) !== false) {
                $subNamespace = substr($subName, 0, $pos);
                if (in_array($subNamespace, $extensions)) {
                    $navClasses = $subNamespace;
                }
            }
        }
    }
    return $navClasses;
}

            
getView() public method
public \yii\web\View getView ( )
return \yii\web\View

The view instance

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = new View();
        $assetPath = Yii::getAlias($this->_targetDir) . '/assets';
        if (!is_dir($assetPath)) {
            mkdir($assetPath);
        }
        $this->_view->assetManager = new AssetManager([
            'basePath' => $assetPath,
            'baseUrl' => './assets',
        ]);
    }
    return $this->_view;
}

            
init() public method
public void init ( )

                public function init()
{
    parent::init();
    if ($this->pageTitle === null) {
        $this->pageTitle = 'The Definitive Guide to Yii 2.0';
    }
}

            
loadGuideStructure() protected method

Defined in: yii\apidoc\renderers\GuideRenderer::loadGuideStructure()

Loads guide structure from a set of files

protected array loadGuideStructure ( $files )
$files array

                protected function loadGuideStructure($files)
{
    $chapters = [];
    foreach ($files as $file) {
        $contents = file_get_contents($file);
        if (basename($file) == 'README.md') {
            $indexAnalyzer = new IndexFileAnalyzer();
            $chapters = $indexAnalyzer->analyze($contents);
            break;
        }
        if (preg_match("/^(.*)\n=+/", $contents, $matches)) {
            $headlines[$file] = $matches[1];
        } else {
            $headlines[$file] = basename($file);
        }
    }
    return $chapters;
}

            
render() public method

Renders a set of files given into target directory.

public void render ( $files, $targetDir )
$files array
$targetDir string

                public function render($files, $targetDir)
{
    $types = array_merge($this->apiContext->classes, $this->apiContext->interfaces, $this->apiContext->traits);
    $extTypes = [];
    foreach ($this->extensions as $k => $ext) {
        $extType = $this->filterTypes($types, $ext);
        if (empty($extType)) {
            unset($this->extensions[$k]);
            continue;
        }
        $extTypes[$ext] = $extType;
    }
    parent::render($files, $targetDir);
    if ($this->controller !== null) {
        $this->controller->stdout('generating search index...');
    }
    $indexer = new ApiIndexer();
    $indexer->indexFiles(FileHelper::findFiles($targetDir, ['only' => ['*.html']]), $targetDir);
    $js = $indexer->exportJs();
    file_put_contents($targetDir . '/jssearch.index.js', $js);
    if ($this->controller !== null) {
        $this->controller->stdout('done.' . PHP_EOL, Console::FG_GREEN);
    }
}