П2: Псевдотеги


П2: ПсевдотегиМорда: СтандартнаяСераяЗеленая Главная / Портфель / П2: Псевдотеги Запомнить № 7:
 П2: ПсевдотегиОпубликовано:
 23 апреля 2002 |
Псевдотеги нужны для того, чтобы иметь возможность без проблем публиковать HTML код на сайте и при этом иметь возможность некоторого форматирования текста, например выделение жирным, курсивом, применение нумерованных списков и т.д. Идея псевдотегов взята мной из форума по парсеру на сайте его разработчиков и здесь я хочу показать собственную реализацию этой идеи.
Идея заключается в том, чтобы использовать в тегах вместо угловых скобок, квадратные и потом, при выводе на экран, производить поиск и замену тегов с квадратными скобками на нормальные HTML теги, которые и будут форматировать текст при выводе его на экран. Например, для того, чтобы выделить фрагмент текста жирным, в HTML вы должны написать следующую конструкцию: Текст выделенный жирным. С помощью псевдотегов это будет выглядеть так: [b]Текст выделенный жирным[/b] и так далее, т.е. то же самое можно сделать для всех тегов без атрибутов. В случае же если тег имеет атрибуты, все будет сложнее, и я не буду сейчас рассматривать этот случай, за исключением тега a, т.е. для того, чтобы иметь возможность ставить гиперссылки.
Итак, текст макроса:@pseudotags[text]
^var[buff;$text]
# переменная названий тегов
^var[tg;b|i|u|ul|ol|li|h1|h2|h3|h4|h5|h6|p|center|sup|sub|a]
^var[buff;^match[\[(^var[tg])\];g;<^item[\1]>;^var[buff]]]
^var[buff;^match[\[/(^var[tg])\];g;</^item[\1]>;^var[buff]]]
# ссылки
^var[buff;^match[\[a href="([^^"]+)"\];ig;<a href="^item[\1]">;^var[buff]]]
# Вывод
^var[buff] Для запуска в работу данного макроса я делаю следующее:
^var[temp;^unescape_br[^level[html;^item[text]]]]
^var[temp;^macro[pseudotags;^var[temp]]]
^level[none;^var[temp]]
^item[text] — это столбец контекста, где находится текст публикуемого материала (статьи, примера и т.д.). Я формирую контекст материала из базы данных, однако это можно делать и с помощью обычных файлов.<< № 6 | Содержание | № 8 >>Из последнего№ 24 Работаем с .htpasswd 08.11.2003 (Изменено: 10.01.2004)№ 23 Самодокументирование парсерного кода 14.09.2003№ 22 Работаем с RSS 21.02.2003№ 21 Топологическая сортировка 16.02.2003№ 20 Установка 3-го парсера на хостинге 350mb.ru 12.02.2003ПолезноеParser 2Parser2 - ПримерыParser2 - форумГлавная / Портфель / П2: Псевдотеги Запомнить Информация о сервереАвторРегистрация/настройки
содержание | 2 | Плетение из бисера
Используются технологии uCoz