gl-website-deployer/vendor/doctrine/rst-parser/lib/LaTeX/Renderers/TitleNodeRenderer.php

43 lines
1013 B
PHP
Raw Permalink Normal View History

2024-11-19 08:02:04 +01:00
<?php
declare(strict_types=1);
namespace Doctrine\RST\LaTeX\Renderers;
use Doctrine\RST\Nodes\TitleNode;
use Doctrine\RST\Renderers\NodeRenderer;
use Doctrine\RST\Templates\TemplateRenderer;
final class TitleNodeRenderer implements NodeRenderer
{
/** @var TitleNode */
private $titleNode;
/** @var TemplateRenderer */
private $templateRenderer;
public function __construct(TitleNode $titleNode, TemplateRenderer $templateRenderer)
{
$this->titleNode = $titleNode;
$this->templateRenderer = $templateRenderer;
}
public function render(): string
{
$type = 'chapter';
if ($this->titleNode->getLevel() > 1) {
$type = 'section';
for ($i = 2; $i < $this->titleNode->getLevel(); $i++) {
$type = 'sub' . $type;
}
}
return $this->templateRenderer->render('title.tex.twig', [
'type' => $type,
'titleNode' => $this->titleNode,
]);
}
}