-
Notifications
You must be signed in to change notification settings - Fork 1
ru options tags
Классы отвечающие за стандартные теги расположены в пространстве имён axy\ml\tags
.
Здесь описано их поведение и настройки по умолчанию. Как изменить настройки написано в соответствующем разделе.
Как написать свой класс написано в другом разделе.
Выводит соответствующий html-тег.
[B]
- <b>
, [I]
- <i>
...
Настройки:
-
single
(boolean) - тег является одиночным (следует закрывать с помощью/>
), по умолчаниюFALSE
.
Использование класса:
$parser = new Parser(null, [
'strong' => 'HtmlTag',
'abbr' => 'HtmlTag',
'hr' => [
'classname' => 'HtmlTag',
'single' => true,
],
]);
Добавили тегов для <strong>
, <abbr>
и <hr />
.
Выводит ссылку.
Использует имя тега в качестве схемы урл.
Среди стандартных тегов используют этот класс [HTTP]
и [HTTPS]
.
Настроек нет.
$parser = new Parser(null, [
'ftp' => 'Scheme',
]);
Теперь можно вставлять ftp-ссылки.
[ftp://server.loc/file.txt Ссылка на файл]
.
-
css
- css класс ссылки (по умолчанию нет). -
handler
- обработчик параметров.
Функция handler
получает на вход объект с следующими свойствами:
-
url
- адрес ссылки из тега. -
caption
- текст ссылки (уже экранированный). Если текст не указан - сама ссылка. -
plain
- текст ссылки для plain-вывода. -
css
- css-класс -
context
- контекст разбора.
Внутри обработчика все эти параметры можно изменить. Например, проведём над ссылкой следующие манипуляции:
- Если ссылка начинается с "http://", считаем её внешней, вешаем css класс
external
и добавляем иконку к тексту. - Если ссылка относительная (начинается не с "/"), то считаем её путём в некоторой части сайта (например, в текущей языковой версии).
$parser = new Parser(null, [
'url' => [
'options' => [
'handler' => function ($link) {
if (\substr($link, 0, 7) === 'http://')) {
$link->css = 'external';
$link->caption .= ' <icon>';
} elseif (\substr($link, 0, 1) !== '/')) {
$link->url = $link->context->custom->createLocalUrl($link->url);
}
},
],
],
]);
-
handler
- обработчикSRC
. Аналогиченhandler
для[URL]
(см. выше).
-
tag_block
- тег для блокового кода (по умолчаниюpre
) -
tag_inline
- тег для однострочного кода (по умолчаниюcode
). -
attr_lang
- атрибут для указания языка (по умолчаниюrel
). Не указан - язык не выводится. -
default_lang
- язык, используемый если не указан явно (по умолчанию не определён). -
lang
- если указан, всегда используется в качестве языка.
Пример:
$parser = new Parser(null, [
'code' => [
'options' => [
'tag_block' => '<div>',
'tag_inline' => '<span>',
'attr_lang' => 'lang',
'default_lang' => 'php',
],
],
]);
Теперь вместо [CODE echo 2 + 2]
выводится <span lang="php">echo 2 + 2</span>
.
Ещё пример:
$parser = new Parser(null,
'php' => [
'classname' => 'Code',
'options' => [
'lang' => 'php',
],
],
]);
[PHP]
соответствует [CODE]
, только игнорирует аргумент с языком и всегда использует в его качестве php
.
Классы для [HTML]
, [TAG]
и закрывающих тегов вроде [/B]
.
Настроек не имеют и выгода от их использования для других тегов сомнительно.