1e874628fSMatthias Schulte<?php 2d409808bSgithub-actions[bot] 3e874628fSMatthias Schulte/** 4e689d293SMark Prins * Description plugin. 5e874628fSMatthias Schulte * 6e874628fSMatthias Schulte * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 7917d5640Slupo49 * @author Matthias Schulte <dokuwiki@lupo49.de> 8e689d293SMark Prins * @author Mark C. Prins <mprins@users.sf.net> 9e689d293SMark Prins * 10*ab9621a8SMark Prins * @phpcs:disable Squiz.Classes.ValidClassName.NotCamelCaps 11*ab9621a8SMark Prins * @noinspection AutoloadingIssuesInspection 12e874628fSMatthias Schulte */ 13e874628fSMatthias Schulte 14e689d293SMark Prinsuse dokuwiki\Extension\SyntaxPlugin; 15e874628fSMatthias Schulte 16e689d293SMark Prinsclass syntax_plugin_description extends SyntaxPlugin 17e689d293SMark Prins{ 18e689d293SMark Prins final public function getType(): string 19e689d293SMark Prins { 20e689d293SMark Prins return 'substition'; 21e689d293SMark Prins } 22e874628fSMatthias Schulte 23e689d293SMark Prins final public function getPType(): string 24e689d293SMark Prins { 25e689d293SMark Prins return 'block'; 26e689d293SMark Prins } 27e874628fSMatthias Schulte 28e689d293SMark Prins final public function getSort(): int 29e689d293SMark Prins { 30e689d293SMark Prins return 98; 31e689d293SMark Prins } 32e874628fSMatthias Schulte 33e689d293SMark Prins final public function connectTo($mode): void 34e689d293SMark Prins { 35e874628fSMatthias Schulte $this->Lexer->addSpecialPattern('\{\{description>.+?\}\}', $mode, 'plugin_description'); 36e874628fSMatthias Schulte } 37e874628fSMatthias Schulte 38e689d293SMark Prins final public function handle($match, $state, $pos, Doku_Handler $handler): array 39e689d293SMark Prins { 40e874628fSMatthias Schulte $match = substr($match, 14, -2); // strip markup 41e874628fSMatthias Schulte $match = hsc($match); 42e874628fSMatthias Schulte 43d409808bSgithub-actions[bot] return [$match]; 44e874628fSMatthias Schulte } 45e874628fSMatthias Schulte 46e689d293SMark Prins final public function render($format, Doku_Renderer $renderer, $data): bool 47e689d293SMark Prins { 48e874628fSMatthias Schulte $description = $data[0]; 49e689d293SMark Prins if (empty($description)) { 50e689d293SMark Prins return false; 51e689d293SMark Prins } 52e874628fSMatthias Schulte 53e689d293SMark Prins if ($format === 'metadata') { 54917d5640Slupo49 $renderer->meta['plugin_description']['keywords'] = $description; 55e874628fSMatthias Schulte return true; 56e874628fSMatthias Schulte } 57e874628fSMatthias Schulte return false; 58e874628fSMatthias Schulte } 59e874628fSMatthias Schulte} 60