Сайт, RSS и браузерный XSLT

Мне последние три года не даёт покоя мысль: вот у нас есть RSS на сайтах, он же — XML, что мешает взять его за основу, наложить на него XLST через браузерный движок и получить оформленный сайт? Зачем делать аж два разные источника?

Листалки вперёд/назад, ссылки на комментарии — всё есть в расширениях, для остального RSS можно расширить самостоятельно. Никто ещё ничего такого не сделал?
17 января 2010 19:11

Вадим Макеев (pepelsbey.moikrug.ru)
17 января 2010, 20:09

Делали, конечно. Только там, насколько я помню, всё упирается в слабую и очень разную поддержку XSL в браузерах. Кажется одна из версий сайта jQuery (когда ещё с красными пирамидками на тёмно-синем фоне) была собрана на XML+XSL.

Живые примеры почему-то вылетели из головы.

bolk (bolknote.ru)
17 января 2010, 20:51, ответ предназначен Вадим Макеев (pepelsbey.moikrug.ru):

Сделать кроссбраузерную обвязку не проблема, надо порыться, посмотреть с какими проблемами люди сталкивались.

ELV1S (elv1s.ru)
17 января 2010, 21:18

Я знаю серъёзный недостаток: сайт очень сильно упадёт в выдаче поисковиков.

Года 3 назад проверял. Перевёл usercss.ru на XSLT. Вскоре, в Гугле опустился на 20 позиций, из выдачи Яндекса пропал воовсе. Надеюсь, ситуация изменилась.

ELV1S (elv1s.ru)
17 января 2010, 21:31

http://xml.pro-radio.ru/ — единственный, известный мне, работающий на XSLT сайт.

zencd.livejournal.com (zencd.livejournal.com)
17 января 2010, 21:58

Не понимаю зачем вообще объединять RSS с сайтом? Даже не представляю о чём точно идёт речь. РСС - это одно: лента новостей. Сайт - это другое: сайдбары, навигация, поиск, куча разнородной информации слепленной вместе. Не все сайты - блоги.

Есть связка XML + клиентский XSLT, но она сама по себе, при чём здесь RSS?

Или я чего-то не понял?

bolk (bolknote.ru)
17 января 2010, 22:39, ответ предназначен ELV1S (elv1s.ru):

Интересно, почему падает выдача? Из-за отсутствия всяких там Hx, strong?

bolk (bolknote.ru)
17 января 2010, 22:41, ответ предназначен zencd.livejournal.com:

Не все сайты блоги, но мой сайт — блог, вот и я рассуждаю применительно к своему сайту и похожим на него.
Или я чего-то не понял?
Не знаю, попробую ещё раз. Есть источник данных в формате XML (точнее — RSS), накладываем на него XLST, получаем сайт. При этом RSS тоже остаётся.

bolk (bolknote.ru)
17 января 2010, 22:42, ответ предназначен ELV1S (elv1s.ru):

http://xml.pro-radio.ru/ — единственный, известный мне, работающий на XSLT сайт.
Как-то бедненько.

kuchin.livejournal.com (kuchin.livejournal.com)
17 января 2010, 22:48

FeedBurner оформляет свои RSS фиды через XSLT.

NV (elv1s.ru)
17 января 2010, 23:02, ответ предназначен bolk (bolknote.ru):

Я даже пробовал XML с H[1-6], strong. http://usercss.ru/index.xml
Дело скорее в Content-Type. Поисковики не любят XML.

bolk (bolknote.ru)
17 января 2010, 23:25, ответ предназначен NV (elv1s.ru):

Может отдавать им text/html? Для XSLT всё равно, читалкам — тоже.

bolk (bolknote.ru)
17 января 2010, 23:27, ответ предназначен kuchin.livejournal.com:

Странно, но мой фид не оформлен.

wiktar (wiktar.com)
17 января 2010, 23:35, ответ предназначен bolk (bolknote.ru):

Скорее всего потому, что поисковики ищут для людей нормальный человеческий HTML, а не какой-то там XML. Никогда не встречал в результатах поиска ленты RSS.

NV (elv1s.ru)
17 января 2010, 23:39, ответ предназначен bolk (bolknote.ru):

По User-Agent'у проверять? Есть подозрение, что могут забанить за клоакинг.

bolk (bolknote.ru)
17 января 2010, 23:42, ответ предназначен wiktar (wiktar.com):

Встречал наверняка :) blog.yandex.ru ищет как раз по RSS. Кроме того, можно просто выдавать text/html.

bolk (bolknote.ru)
17 января 2010, 23:43, ответ предназначен NV (elv1s.ru):

Зачем проверять? Всегда выдавать text/html, а XSLT накладывать через JS.

NV (elv1s.ru)
17 января 2010, 23:46, ответ предназначен bolk (bolknote.ru):

Я так не умею :-)
Можно попробовать.

zero-sharp.livejournal.com (zero-sharp.livejournal.com)
18 января 2010, 01:46

Можно зайти с другой стороны, в стиле hAtom: делать что-то, что выглядит как feed из оригинального html.

wiktar (wiktar.com)
18 января 2010, 03:26, ответ предназначен bolk (bolknote.ru):

Ну, это читинг :) blog.yandex.ru именно под это и заточен :)).

Но в остальном, факт.

В общем, это будет очень интересный proof-of-concept.

bolk (bolknote.ru)
18 января 2010, 11:25, ответ предназначен wiktar (wiktar.com):

Что именно читинг? :)

blog.ad.by (blog.ad.by)
18 января 2010, 12:32

Я пробовал и иногда использую схему с XSLT на клиенте. Работает.

Проблемы следующие:
1) Режим высокой безопасности в IE не дает запускать XSLT-процессор. А этот режим увы корпоративная реальность в наши дни. Не везде, но бывает, что от него не избавиться.
2) Индексация поисковиками. Решается через клоакинг, что может быть чревато, хотя конкретных примеров у меня нет.
3) Наличие феерических глюков даже в самых современных браузерах. Например сафари и хром до сих пор не починили функцию document и директиву include. Ну и куда ты без них уедешь? Очень недалеко.
4) Наличие феерических глюков в js-библиотеках. Это понятно.
5) Куча браузеров без XSLT: мобильные и старьё всякое.
6) Скорость загрузки сайта. xslt-процессор подключает шаблоны строго последовательно. Никакой параллельности.
7) Глюки с кешированием. Например IE нужно перезапускать постоянно, он иногда жестко запоминает результат первого запроса шаблона.

В общем, сейчас отлаживаю промежуточную схему - серверный xslt-процессор плюс анализ юзер-агента. Одним отправлять готовое, другим - детали для сборки.

bolk (bolknote.ru)
18 января 2010, 12:49, ответ предназначен blog.ad.by:

Режим высокой безопасности в IE не дает запускать XSLT-процессор
Как не даёт? Сайт консультанта так работает, у них же запускается.
Индексация поисковиками. Решается через клоакинг, что может быть чревато, хотя конкретных примеров у меня нет
Да зачем? Просто выдаём text/html всегда
Например сафари и хром до сих пор не починили функцию document и директиву include
Херассе. Не работает вообще или есть известные обходимые глюки?
Куча браузеров без XSLT: мобильные и старьё всякое.
Ну, старьё, бывает, не интересно, пусть RSS читают, а современные мобильные это поддерживают.
Скорость загрузки сайта. xslt-процессор подключает шаблоны строго последовательно. Никакой параллельности.
Тут надо смотреть, может через JS как-то удастся решить
В общем, сейчас отлаживаю промежуточную схему - серверный xslt-процессор плюс анализ юзер-агента
Тоже выход, да. А в качестве XML RSS используется?

blog.ad.by (blog.ad.by)
18 января 2010, 13:37, ответ предназначен bolk (bolknote.ru):

1. Про консультант ничего не знаю, не видел его. В любом случае - сомнительно, т.к. ActiveX отключается полностью, а XSLT-процессор в IE это именно ActiveX-компонент. Возможно они запускают серверную трансформацию. Возможно есть какой-то хитрый способ включить ActiveX, которого я не знаю. Как-то так.
2. про text/html. есть два пути трансформации на клиенте: JS и ?xml-stylesheet. Так вот IE не запустит трансформацию во втором случае, если ты отдаешь документ как text/html.
3. про инклуд - http://code.google.com/p/chromium/issues/detail?id=8441 про документ не помню точно, там вроде просто относительные пути нельзя было использовать при работе из JS. через ?xml-stylesheet вроде работало. Т.е. методы борьбы есть.
4. Глюков вообще очень много. Почитай внимательно http://ajaxandxml.blogspot.com/search/label/XSLT
5. нету у мене RSS. просто XML. Причем дополненный разными "предкалькулированными" значениями, т.к. увы, но EXSLT мало где поддерживается, а XSLT беден функциями.

bolk (bolknote.ru)
18 января 2010, 13:56, ответ предназначен blog.ad.by:

Возможно они запускают серверную трансформацию. Возможно есть какой-то хитрый способ включить ActiveX, которого я не знаю. Как-то так
Не припомню у них ActiveX, наоборот, кажется там через какой-то JS без всяких ActiveX.
про text/html. есть два пути трансформации на клиенте: JS и ?xml-stylesheet. Так вот IE не запустит трансформацию во втором случае, если ты отдаешь документ как text/html.
Может выдавать для IE другой content-type?

blog.ad.by (blog.ad.by)
18 января 2010, 14:10

1. Ну вообще чисто яваскриптовые реализации XSLT-процессоров есть. Например http://code.google.com/p/ajaxslt/ Сам не пробовал, скорость очевидно будет ужасная.

2. content-type. Ну вот и получается, что без юзер-агента никуда. Именно поэтому я и собрал сейчас серверный процессор и буду просто понемногу переводить обработку на гарантированно рабочих клиентов. Такой подход дает возможность решать проблемы последовательно.

А вообще мне идея с RSS+XSLT кажется красивой и работоспособной.

bolk (bolknote.ru)
18 января 2010, 14:27, ответ предназначен blog.ad.by:

1) я имею ввиду, что там как-то DOM/JS-вызов, но могу путать, давно смотрел.

blog.ad.by (blog.ad.by)
26 января 2010, 00:08, ответ предназначен bolk (bolknote.ru):

На заметку
http://www.ibm.com/developerworks/ru/library/x-think40/index.html

Ваше имя или адрес блога (можно OpenID):

Текст вашего комментария, не HTML:

Кому бы вы хотели ответить (или кликните на его аватару)