Популярное ~ Валидный noindex средствами XSLT
Валидный noindex средствами XSLTНарод в очередной раз задался вопросом, как бы так закрыть часть документа от индексации, чтоб при этом все было валидно?

По мотивам статьи от Ayavryk’а сделал свой вариант. В основе лежит ровно та же идея: отдаем на клиент документ, в котором контент, не предназначенный для индексации, спрятан в комментариях, а затем при помощи XSLT достаем его оттуда.
Основная засада заключается в том, что Mozilla Firefox не знает о disable-output-escaping, поэтому исходный метод переставал работать, если в контенте, который мы прячем, встречались вложенные теги. Собственно, эту проблему я решил черезвычайно тупо: дополнительным XSL-преобразованием на сервере.
Пусть у нас имеется (X)HTML-код, в котором некоторые блоки размечены старым добрым невалидным тегом noindex. На сервере мы должны заменить все текстовые узлы внутри noindex’ов на комментарии, а сами noindex’ы заменить на нормальные человеческие теги, каким-то образом отмеченные, чтоб на клиенте знать, что внутри них нужно обрабатывать комментарии.

Я в качестве такого “маркера” использовал класс “noindex”, а в качестве “человеческого тега” - div, либо если noindex[@type = ‘inline’] - то span. Собственно говоря, XSL-шаблон, через который прогоняется документ на сервере.
На клиент приходит документ, в котором тег noindex заменен на div[@class = ‘noindex’], а все текстовые узлы заменены на комментарии. Т.е. что-то в этом духе:


Дорогой Яндекс!

Вот этот кусок можно проиндексировать. А .


Остается натравить на это безобразие еще один шаблон, уже на клиенте. Он совсем простой: он копирует все дерево, заменяя обратно комментарии на текстовые узлы внутри тегов с классом “noindex”. disable-output-escaping я оставил для наглядности: если бы Фокс с ним дружил, можно было бы обойтись без преобразования на сервере.Остается натравить на это безобразие еще один шаблон, уже на клиенте. Он совсем простой: он копирует все дерево, заменяя обратно комментарии на текстовые узлы внутри тегов с классом “noindex”.
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.

 (голосов: 0)
Комментарии [0]   Просмотров: [+232]   Автор, admin 11 декабря 2008 Напечатать


Добавление комментария
Ваше Имя:
Ваш E-Mail:

Введите цифры, которые вы видите на картинке.
Включите эту картинку для отображения кода безопасности
обновить если не виден код
Введите код:


Рубрики нашего сайта
Все самое интересное для Вас...


Опросы на сайте


Архивы проекта
Любые из архивов позволяют пользователю заглянуть за кулисы любого проекта и понять с чего же все начиналось...


Самое интересное

Слова благодарности
Хотим от души поблагодарить всех тех, кто помогал развитию и становлению нашего интернет-портала . Помощь каждого из Вас делает наше дело еще более интересным и полезным для русскоязычного сегмента сети . Будем рады видеть Вас среди гостей нашего сайта в будущем !

"Движение свободных сайтов Рунета" 2007—2008. Администрация не несет ответственности за файлы размещенные пользователями.