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

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

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

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

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

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

10 комментариев
Дмитрий Вульбрун
28 января 2016, 01:01

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

Дмитрий Вульбрун
28 января 2016, 01:01

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

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




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

            indent="yes"/>

   
       
     
       
           
           
           
           
           
       
   
   
       
   
Юрий Занин
28 января 2016, 01:01

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

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

Дмитрий Вульбрун
28 января 2016, 01:01

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

Юрий Занин
28 января 2016, 01:01

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

Юрий Занин
28 января 2016, 01:01

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

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

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

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

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

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

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

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

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

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

Дмитрий Вульбрун
28 января 2016, 01:01

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

1. ок

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

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

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

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

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

7. мы рады :)

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

Юрий Занин
28 января 2016, 01:01

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

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

Дмитрий Вульбрун
28 января 2016, 01:01

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

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