Update website
This commit is contained in:
parent
4413528994
commit
1d90fbf296
6865 changed files with 1091082 additions and 0 deletions
71
vendor/doctrine/rst-parser/lib/HTML/Directives/ClassDirective.php
vendored
Normal file
71
vendor/doctrine/rst-parser/lib/HTML/Directives/ClassDirective.php
vendored
Normal file
|
@ -0,0 +1,71 @@
|
|||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\RST\HTML\Directives;
|
||||
|
||||
use Doctrine\RST\Directives\SubDirective;
|
||||
use Doctrine\RST\Environment;
|
||||
use Doctrine\RST\Nodes\DocumentNode;
|
||||
use Doctrine\RST\Nodes\Node;
|
||||
use Doctrine\RST\Parser;
|
||||
|
||||
use function array_map;
|
||||
use function explode;
|
||||
|
||||
final class ClassDirective extends SubDirective
|
||||
{
|
||||
public function getName(): string
|
||||
{
|
||||
return 'class';
|
||||
}
|
||||
|
||||
/** @param string[] $options */
|
||||
public function processSub(
|
||||
Parser $parser,
|
||||
?Node $document,
|
||||
string $variable,
|
||||
string $data,
|
||||
array $options
|
||||
): ?Node {
|
||||
if ($document === null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$classes = explode(' ', $data);
|
||||
|
||||
$normalizedClasses = array_map(static function (string $class): string {
|
||||
return Environment::slugify($class);
|
||||
}, $classes);
|
||||
|
||||
$document->setClasses($normalizedClasses);
|
||||
|
||||
if ($document instanceof DocumentNode) {
|
||||
$this->setNodesClasses($document->getNodes(), $classes);
|
||||
}
|
||||
|
||||
return $document;
|
||||
}
|
||||
|
||||
public function appliesToNonBlockContent(): bool
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Node[] $nodes
|
||||
* @param string[] $classes
|
||||
*/
|
||||
private function setNodesClasses(array $nodes, array $classes): void
|
||||
{
|
||||
foreach ($nodes as $node) {
|
||||
$node->setClasses($classes);
|
||||
|
||||
if (! ($node instanceof DocumentNode)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->setNodesClasses($node->getNodes(), $classes);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue