Допустим, есть HTML-код
1 2 3 | <img src="12" height="14%"/> <p style="15" id="333">Text</p> <h1 id="a">H1</h1> |
Где в нем видим различные атрибуты HTML-тегов (src, height и так далее…). Некоторые из этих атрибутов, естественно, нам не нужны и их необходимо удалить.
Для удаления лишних атрибутов HTML-тегов используется макрос шаблона вывода [CLEARTAGSATTRS]
1 2 3 | [CLEARTAGSATTRS(img:src,title|a:href)]<img src="12" height="14%"> <p style="15" id="333">Text</p> <H1 id="a">H1</H1>[/CLEARTAGSATTRS] |
В результате работы которого мы получим
1 2 3 | <img src="12"> <p>Text</p> <H1>H1</H1> |
Как видим, лишние атрибуты HTML-тегов были удалены из кода. Что и требуется!
Параметрами макроса является строка img:src,title|a:href (которая прописывается в круглых скобках).
Формат строки параметров следующий: имя_тега:атрибут_тега_1,атрибут_тега_2,атрибут_тега_3…|следующее_имя_тега:атрибут_тега_1…
Как видим, сначала прописывается имя HTML-тега (img, p, h1…) затем ставится двоеточие и после него перечисляются атрибуты тега (src, height). Каждые следующие сеты имен и атрибутов тегов прописываются в том же формате через разделитель (символ вертикальной черты).
Примечание: Оператор строки параметров all служит для обозначения сразу всех имен тегов или всех имен атрибутов
1 2 3 | img:all (не удалять все атрибуты тегов img) a:all (не удалять все атрибуты тегов a) all:src,href,id (не удалять атрибуты src, href и id, которые могут быть расположены в любых тегах) |
Макрос [CLEARTAGSATTRS] удаляет атрибуты HTML-тегов в двух режимах:
1) Удаление лишних атрибутов у всех HTML-тегов (стандартный режим)
2) Удаление лишних атрибутов только у перечисленных HTML-тегов (режим {target})
В обоих режимах происходит удаление всех лишних атрибутов HTML-тегов (кроме перечисленных). Отличие режимов состоит в том, что в стандартном режиме (1) происходит чистка всех HTML-тегов, а в режиме {target} (2) – только перечисленных (остальные HTML-теги остаются в неизменном виде)!!!
Допустим, есть задача удалить все атрибуты у всех тегов, кроме атрибутов src и title у тегов img, и кроме атрибутов id у тегов h1
1 2 3 | [CLEARTAGSATTRS(img:src,title|h1:id)]<img src="12" height="14%"> <p style="15" id="333">Text</p> <H1 id="a">H1</H1>[/CLEARTAGSATTRS] |
В результате работы которого мы получим
1 2 3 | <img src="12"> <p>Text</p> <H1 id="a">H1</H1> |
Как видим, были удалены все атрибуты у всех HTML-тегов (кроме перечисленных в параметрах).
Если нужно удалить лишние атрибуты ТОЛЬКО в перечисленных HTML-тегах, указываем оператор {target} 1 раз в любом месте строки параметров
1 2 3 | [CLEARTAGSATTRS({target}img:src,title|h1:id)]<img src="12" height="14%"> <p style="15" id="333">Text</p> <H1 id="a">H1</H1>[/CLEARTAGSATTRS] |
В итоге получим:
1 2 3 | <img src="12"> <p style="15" id="333">Text</p> <H1 id="a">H1</H1> |
Как видим, при активном режиме {target}, функция очистки атрибутов обработала только перечисленные в параметрах HTML-теги.
Сергей, спасибо.
Теперь зачистка стилей упрощена, и можно не делать кучу правил поиска-замены.
Здравствуйте.
Пожалуйста.