Update website

This commit is contained in:
Guilhem Lavaux 2024-11-19 08:02:04 +01:00
parent 4413528994
commit 1d90fbf296
6865 changed files with 1091082 additions and 0 deletions

View file

@ -0,0 +1,14 @@
<?php
declare(strict_types=1);
namespace Doctrine\RST\Templates;
interface TemplateEngineAdapter
{
/** @return mixed */
public function getTemplateEngine();
/** @param mixed[] $parameters */
public function render(string $template, array $parameters = []): string;
}

View file

@ -0,0 +1,11 @@
<?php
declare(strict_types=1);
namespace Doctrine\RST\Templates;
interface TemplateRenderer
{
/** @param mixed[] $parameters */
public function render(string $template, array $parameters = []): string;
}

View file

@ -0,0 +1,37 @@
<?php
declare(strict_types=1);
namespace Doctrine\RST\Templates;
use Doctrine\RST\Configuration;
use Twig\Environment as TwigEnvironment;
final class TwigAdapter implements TemplateEngineAdapter
{
/** @var Configuration */
private $configuration;
/** @var TwigEnvironment */
private $twigEnvironment;
public function __construct(Configuration $configuration)
{
$this->configuration = $configuration;
}
public function getTemplateEngine(): TwigEnvironment
{
if ($this->twigEnvironment === null) {
$this->twigEnvironment = TwigEnvironmentFactory::createTwigEnvironment($this->configuration);
}
return $this->twigEnvironment;
}
/** @param mixed[] $parameters */
public function render(string $template, array $parameters = []): string
{
return $this->getTemplateEngine()->render($template, $parameters);
}
}

View file

@ -0,0 +1,60 @@
<?php
declare(strict_types=1);
namespace Doctrine\RST\Templates;
use Doctrine\RST\Configuration;
use Twig\Environment as TwigEnvironment;
use Twig\Loader\FilesystemLoader;
use function file_exists;
use function sprintf;
final class TwigEnvironmentFactory
{
public static function createTwigEnvironment(Configuration $configuration): TwigEnvironment
{
$loader = new FilesystemLoader(self::getTemplateDirs($configuration));
return new TwigEnvironment($loader, [
'strict_variables' => true,
'cache' => sprintf('%s/twig', $configuration->getCacheDir()),
'auto_reload' => true,
]);
}
/** @return string[] */
private static function getTemplateDirs(Configuration $configuration): array
{
$themeDirs = [];
$fileExtension = $configuration->getFileExtension();
$templateDirectories = $configuration->getCustomTemplateDirs();
// add the fallback directory
$templateDirectories[] = __DIR__;
foreach ($templateDirectories as $templateDir) {
$themePath = $templateDir . '/' . $configuration->getTheme() . '/' . $fileExtension;
if (! file_exists($themePath)) {
continue;
}
$themeDirs[] = $themePath;
}
// look for the fallback "default" in all directories
if ($configuration->getTheme() !== Configuration::THEME_DEFAULT) {
foreach ($templateDirectories as $templateDir) {
$themePath = $templateDir . '/' . Configuration::THEME_DEFAULT . '/' . $fileExtension;
if (! file_exists($themePath)) {
continue;
}
$themeDirs[] = $themePath;
}
}
return $themeDirs;
}
}

View file

@ -0,0 +1,26 @@
<?php
declare(strict_types=1);
namespace Doctrine\RST\Templates;
use Doctrine\RST\Configuration;
use function rtrim;
final class TwigTemplateRenderer implements TemplateRenderer
{
/** @var Configuration */
private $configuration;
public function __construct(Configuration $configuration)
{
$this->configuration = $configuration;
}
/** @param mixed[] $parameters */
public function render(string $template, array $parameters = []): string
{
return rtrim($this->configuration->getTemplateEngine()->render($template, $parameters), "\n");
}
}

View file

@ -0,0 +1 @@
<a id="{{ anchorNode.value }}"></a>

View file

@ -0,0 +1 @@
<br />

View file

@ -0,0 +1,5 @@
<ul{% if listNode.classes %} class="{{ listNode.classesString }}"{% endif %}>
{% for item in listNode.items -%}
{{ include('list-item.html.twig', {text: item.contentsAsString, prefix: item.prefix}) }}
{%- endfor %}
</ul>

View file

@ -0,0 +1 @@
<pre{% if codeNode.classes %} class="{{ codeNode.classesString }}"{% endif %}><code class="{{ codeNode.language }}">{{ codeNode.value }}</code></pre>

View file

@ -0,0 +1,22 @@
<dl{% if definitionListNode.classes %} class="{{ definitionListNode.classesString }}"{% endif %}>
{% for definitionListTerm in definitionList.terms %}
{% if definitionListTerm.classifiers is empty %}
<dt>{{ definitionListTerm.term.render()|raw }}</dt>
{% else %}
<dt>
{{ definitionListTerm.term.render()|raw }}
{% for classifier in definitionListTerm.classifiers %}
<span class="classifier-delimiter">:</span>
<span class="classifier">{{ classifier.render()|raw }}</span>
{% endfor %}
</dt>
{% endif %}
<dd>
{% for definition in definitionListTerm.definitions %}
{{ definition.render()|raw }}
{% endfor %}
</dd>
{% endfor %}
</dl>

View file

@ -0,0 +1 @@
<div class="{{ class }}"{% if id is defined and id %} id="{{ id }}"{% endif %}>

View file

@ -0,0 +1,9 @@
{% extends "layout.html.twig" %}
{% block head %}
{{ headerNodes|raw }}
{% endblock %}
{% block body %}
{{ bodyNodes|raw }}
{% endblock %}

View file

@ -0,0 +1 @@
<em>{{ text|raw }}</em>

View file

@ -0,0 +1,5 @@
<ol class="{{ ('arabic ' ~ listNode.classesString)|trim }}">
{% for item in listNode.items -%}
{{ include('list-item.html.twig', {text: item.contentsAsString, prefix: item.prefix}) }}
{%- endfor %}
</ol>

View file

@ -0,0 +1 @@
<link rel="icon" type="image/x-icon" href="{{ url }}" />

View file

@ -0,0 +1,13 @@
{% apply spaceless %}
<figure>
{{ figureNode.image.render()|raw }}
{% if figureNode.document %}
{% set caption = figureNode.document.render()|trim %}
{% if caption %}
<figcaption>{{ caption|raw }}</figcaption>
{% endif %}
{% endif %}
</figure>
{% endapply %}

View file

@ -0,0 +1 @@
<h{{ titleNode.level }}>{{ titleNode.value.render()|raw }}</h{{ titleNode.level }}>

View file

@ -0,0 +1 @@
<img src="{{ imageNode.url }}" {% for key, value in imageNode.options %}{{ key }}="{{ value }}" {% endfor %}/>

View file

@ -0,0 +1 @@
<script type="text/javascript" src="{{ js }}"></script>

View file

@ -0,0 +1,12 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
{% block head '' %}
</head>
<body>
{% block body '' %}
</body>
</html>

View file

@ -0,0 +1 @@
<a href="{{ url|raw }}"{% for key, value in attributes %} {{ key }}="{{ value }}"{% endfor %}>{{ title|raw }}</a>

View file

@ -0,0 +1 @@
<li{{ prefix == '-' ? ' class="dash"' : '' }}>{{ text|raw }}</li>

View file

@ -0,0 +1 @@
<code>{{ text|raw }}</code>

View file

@ -0,0 +1 @@
<meta name="{{ metaNode.key }}" content="{{ metaNode.value }}" />

View file

@ -0,0 +1 @@
&nbsp;

View file

@ -0,0 +1,7 @@
{% apply spaceless %}
{% set text = paragraphNode.value.render()|trim %}
{% if text %}
<p{% if paragraphNode.classes %} class="{{ paragraphNode.classesString }}"{% endif %}>{{ text|raw }}</p>
{% endif %}
{% endapply %}

View file

@ -0,0 +1 @@
<blockquote{% if quoteNode.classes %} class="{{ quoteNode.classesString }}"{% endif %}>{{ quoteNode.value.render()|raw }}</blockquote>

View file

@ -0,0 +1 @@
<div class="section" id="{{ sectionBeginNode.titleNode.id }}">

View file

@ -0,0 +1 @@
</div>

View file

@ -0,0 +1 @@
<hr />

View file

@ -0,0 +1 @@
<strong>{{ text|raw }}</strong>

View file

@ -0,0 +1 @@
<link rel="stylesheet" type="text/css" href="{{ css }}" />

View file

@ -0,0 +1,22 @@
<table{% if tableNode.classes %} class="{{ tableNode.classesString }}"{% endif %}>
{% if tableHeaderRows is not empty %}
<thead>
{% for tableHeaderRow in tableHeaderRows %}
<tr>
{% for column in tableHeaderRow.columns %}
<th{% if column.colspan > 1 %} colspan="{{ column.colspan }}"{% endif %}>{{ column.render|raw }}</th>
{% endfor %}
</tr>
{% endfor %}
</thead>
{% endif %}
<tbody>
{% for tableRow in tableRows %}
<tr>
{% for column in tableRow.columns %}
<td{% if column.colSpan > 1 %} colspan="{{ column.colSpan }}"{% endif %}{% if column.rowSpan > 1 %} rowspan="{{ column.rowSpan }}"{% endif %}>{{ column.render|raw }}</td>
{% endfor %}
</tr>
{% endfor %}
</tbody>
</table>

View file

@ -0,0 +1 @@
<title>{{ title }}</title>

View file

@ -0,0 +1,9 @@
<li id="{{ tocItem.targetId }}" class="toc-item">
<a href="{{ tocItem.targetUrl }}">{{ tocItem.title|raw }}</a>
{% if tocItem.children|length %}
{% include "toc-level.html.twig" with {
tocItems:tocItem.children
} %}
{% endif %}
</li>

View file

@ -0,0 +1,7 @@
{% apply spaceless %}
<ul>
{% for tocItem in tocItems %}
{% include "toc-item.html.twig" %}
{% endfor %}
</ul>
{% endapply %}

View file

@ -0,0 +1,5 @@
{% apply spaceless %}
<div class="toc">
{% include "toc-level.html.twig" %}
</div>
{% endapply %}

View file

@ -0,0 +1 @@
\label{{ '{' }}{{ anchorNode.value }}{{ '}' }}

View file

@ -0,0 +1 @@
\\\\\\\\\n

View file

@ -0,0 +1,5 @@
\begin{{ '{' }}itemize{{ '}' }}
{%- for item in listNode.items -%}
{{ include('list-item.tex.twig', {text: item.contentsAsString, prefix: item.prefix}) }}
{%- endfor %}
\end{{ '{' }}itemize{{ '}' }}

View file

@ -0,0 +1,4 @@
\lstset{language={{ codeNode.language }}{{ '}'}}
\begin{lstlisting}
{{ codeNode.value|raw }}
\end{lstlisting}

View file

@ -0,0 +1,22 @@
{% if isMain %}
\documentclass[11pt]{report}
\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[french]{babel}
\usepackage{cite}
\usepackage{amssymb}
\usepackage{amsmath}
\usepackage{mathrsfs}
\usepackage{graphicx}
\usepackage{hyperref}
\usepackage{listings}
{% for node in document.headerNodes %}
{{ node.render() }}
{% endfor %}
\begin{document}
{% endif %}
\label{{ '{' }}{{ document.environment.url}}{{ '}' }}
{{ body|raw }}
{% if isMain %}
\end{document}
{% endif %}

View file

@ -0,0 +1 @@
\textit{{ '{' }}{{ text|raw }}{{ '}' }}

View file

@ -0,0 +1,5 @@
\begin{{ '{' }}enumerate{{ '}' }}
{%- for item in listNode.items -%}
{{ include('list-item.tex.twig', {text: item.contentsAsString, prefix: item.prefix}) }}
{%- endfor %}
\end{{ '{' }}enumerate{{ '}' }}

View file

@ -0,0 +1 @@
\includegraphics{{ '{' }}{{ imageNode.url }}{{ '}' }}

View file

@ -0,0 +1,5 @@
{% if type == 'ref' %}
\ref{{ '{' }}{{ url }}{{ '}' }}
{% else %}
\href{{ '{' }}{{ url }}{{ '}' }}{{ '{' }}{{ title }}{{ '}' }}
{% endif %}

View file

@ -0,0 +1 @@
\item {{ text|raw }}

View file

@ -0,0 +1 @@
\verb|{{ text|raw }}|

View file

@ -0,0 +1 @@
~

View file

@ -0,0 +1,8 @@
{% apply spaceless %}
{% set text = paragraphNode.value.render() %}
{% if text|trim %}
{{ text|raw }}
{% endif %}
{% endapply %}

View file

@ -0,0 +1,3 @@
\begin{quotation}
{{ quoteNode.value.render()|raw }}
\end{quotation}

View file

@ -0,0 +1 @@
\ \

View file

@ -0,0 +1 @@
\textbf{{ '{' }}{{ text|raw }}{{ '}' }}

View file

@ -0,0 +1 @@
\{{ type }}{{ '{' }}{{ titleNode.value.render() }}{{ '}' }}

View file

@ -0,0 +1,4 @@
\tableofcontents
{% for tocItem in tocItems %}
\input{{ '{' }}{{ tocItem.url }}{{ '}' }}
{% endfor %}