You are browsing a version that has not yet been released. |
Custom Text Roles
An interpreted text role can apply special styles to an inline text.
This is some :role:`interpreted text`.
You can define custom text roles in your project if needed:
Text role class
You can write your own text roles by defining a class that implements
Doctrine\RST\TextRoles\TextRole
. In most use cases it is more convenient
to extend the Doctrine\RST\TextRoles\BaseTextRole
.
See TextRole.php for more information.
Example Text Role
declare(strict_types=1);
namespace Doctrine\Tests\RST\TextRoles;
use Doctrine\RST\Environment;
use Doctrine\RST\Span\SpanToken;
use Doctrine\RST\TextRoles\BaseTextRole;
class ExampleRole extends BaseTextRole
{
public function getName(): string
{
return 'example';
}
public function render(Environment $environment, SpanToken $spanToken): string
{
return '<samp>' . $spanToken->get('text') . '</samp>';
}
}
Now you can register your text role by registering it in a custom directive factory in your Configuration.php:
$configuration = new Configuration();
$configuration->addDirectiveFactory(new CustomDirectiveFactory(
[],
[new ExampleRole()]
));
return $configuration;