40 lines
707 B
PHP
40 lines
707 B
PHP
<?php
|
|
|
|
namespace dokuwiki\Parsing\ParserMode;
|
|
|
|
class Filelink extends AbstractMode
|
|
{
|
|
|
|
protected $pattern;
|
|
|
|
/** @inheritdoc */
|
|
public function preConnect()
|
|
{
|
|
|
|
$ltrs = '\w';
|
|
$gunk = '/\#~:.?+=&%@!\-';
|
|
$punc = '.:?\-;,';
|
|
$host = $ltrs.$punc;
|
|
$any = $ltrs.$gunk.$punc;
|
|
|
|
$this->pattern = '\b(?i)file(?-i)://['.$any.']+?['.
|
|
$punc.']*[^'.$any.']';
|
|
}
|
|
|
|
/** @inheritdoc */
|
|
public function connectTo($mode)
|
|
{
|
|
$this->Lexer->addSpecialPattern(
|
|
$this->pattern,
|
|
$mode,
|
|
'filelink'
|
|
);
|
|
}
|
|
|
|
/** @inheritdoc */
|
|
public function getSort()
|
|
{
|
|
return 360;
|
|
}
|
|
}
|