Клуб Яндекс.Поиска для сайта

Поиск для xslt-шаблонизатора

irbea
8 июля 2013, 10:32

Не нашел ни одного поста в клубе с с ключом "XSLT", поэтому создаю свою тему.

JS поисковой формы содержит амперсанды, которые XSLT не понимает. Эту проблему решил, убрав JS в подгружаемый файл. Но возникла новая проблема: страница не компилируется, так как использование фигурных скобок на onclick="return {}" снова вызывает недоумение шаблонизатора.

Заменив фигурные скобки на обычные, добиваемся того, что страница собирается. И тут выясняется, что сама форма конечно же работает, правда перебрасывает на страницу яндекса (про страницу, специлаьно подготовленную для результатов поиска, форма ничего не знает, так как onclick нет).

Как это вылечить?

10 комментариев
Подписаться на комментарии к посту
Вульбрун Дмитрий
8 июля 2013, 10:34

Я отправлю ваш вопрос разработчикам, как только будет информация, отвечу.

Вульбрун Дмитрий
8 июля 2013, 12:36

Фигурные скобки в атрибутах экранируются их удвоением, js-код можно завернуть в ltext>

Тогда все будет работать. Например:




    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    version="1.0"
    >

            indent="yes"/>

   
       
     
       
           
           
           
           
           
       
   
   
       
   

Спасибо, вечерком попробую ))

По-моему в метрике можно версию кода специально для xslt получить (для XML-сайтов) - нужно вам аналогичную фичу добавить.

Вульбрун Дмитрий
8 июля 2013, 12:41

Спасибо, подумаем :)

Дмитрий, вы отвечаете быстрее, чем я успеваю закрыть вкладку (+1)

Попробовал, делюсь впечатлениями.

1. Экранирование массива помогло.

2. Экранирование JS через ![CDATA] делать не стал - не кошерная конструкция получается, оставил во внешнем файле.

3. Сильно расстроился от того, что JS полностью реврайтит весь первоначальный код, из-за чего такой нуб как я лишается возможности развесить собственные классы.

4. Несмотря на обилие !important, теги приобретают свойство 'display: block' от стилей Bootstrap, и приходится писать новое CSS свойство для яндексовского класса, так как существующий для исправления этой ситуацией класс Bootstrap нельзя на весить (смотрите пункт 3).

5. Превью при настройке формы поиска недоделанное: цвет текста меняет, а цвет фона - нет.

6. Каскад из трех таблиц вызывает уныние. Может это и безопасная верстка, но она откуда-то из прошлого века. Однако вмешательство в JS - как прочитал в клубе - лишает техподдержи, а значит и джедаи хорошо подумают, прежде чем привести код формы в соответствующий нашему прогрессивного веку вид, а такие нубы как я - вообще не полезут, от греха...

7. Сам поиск работает обалденно! Быстро и живо пошел индексировать страницы, не тупит, отдает то, что просят (если есть). В крайнем случае, здесь же прямо можно и результаты по всему интренету выдать.

8. Немного смутило минимальное количество адресов для создания темы. Для нишевых тем 21 достойный внимания ресурс найти - это нужно постараться. Но уже сам факт такой возможности очень обнадеживает - буду использовать эту фичу в других тематиках.

PS. Выложил в продакшн. Теперь буду наблюдать, кто чего ищет. Как будет что написать интересное - поделюсь информацией.

Вульбрун Дмитрий
12 июля 2013, 11:16

попробую по пунктам:

1. ок

2. дело ваше :)

3. вы можете же, используя событие yass.ready, добавить нужные классы в выдачу. Как именно - написано тут: http://clubs.ya.ru/sitesearch/replies.xml?item_no=669

4. см. пункт 3 :)

5. спасибо, мы проверим

6. Этой весной мы объявляли о том, что мы разрешаем изменять DOM-структуру выдачи и позволяем менять дизайн на свое усмотрение. Вмешательство возможно любое, которое не затронет наличие логотипа в выдаче (вверху выдачи), а также не будет изменять порядок ответов (ранжирование), скрывать как либо способом результаты поиска (прятать, закрывать всплывающей и прочей рекламой). Все остальное можно делать без проблем.

7. мы рады :)

8. Поисковая тема нужна ТОЛЬКО для того, чтобы создать  поиск по большому кол-ву сайтов (одна тема - до 100 000 адресов). Если у вас в области поиска мало сайтов, ну скажем так пара десятков или меньше, то тема вам вообще не нужна, просто указывайте список сайтов в области поиска вашей поисковой площадки.

6. А есть документация, как это можно сделать?

8. То есть мне не нужно подтверждать права на поиск по этим сайтам? Можно просто добавить, и все? А то я попробовал сначала, но потом испугался ))))

Вульбрун Дмитрий
12 июля 2013, 12:36

6. Доки пока нет, мы просто сообщили о том что вы можете это делать. Исследуете каким-нибудь инспектором выдачу и работаете с ней. Мы обязательно в обозримом буущем напишем всю докуметацию к стандарту выдачи, но пока это единственный способ.

8. Подтверждение прав нужно только для того, чтобы пользоваться инструментом Индексирование, а поиск вы можете создать по абсолютно любому кол-ву любых сайтов.