Способ навигации по результатам поиска в этой теме

Есть ли обработчик для навигации по предыдущему и следующему результатам недавнего поиска «в этой теме»?

Поскольку ленивая загрузка и виртуальные списки ломают нативный поиск браузера Найти во всех темах, кроме самых коротких, я считаю важным воспроизвести эту функциональность.

Я довольно новичок в Discourse, я искал в Meta и исходном коде, но ничего не нашёл. Однако это кажется довольно важным, так что, возможно, я что-то упустил. Спасибо!

1 лайк

Думаю, стрелки на клавиатуре должны помочь. Вы можете увидеть доступные сочетания клавиш, нажав кнопку с изображением клавиатуры в боковой панели на компьютере.

Цель — перемещаться по теме, не прыгая туда-сюда между темой и результатами поиска.

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

Поэтому это должно работать как обработчики j и k (selectUp, selectDown), но с тем отличием, что они будут пропускать ответы, не входящие в последние результаты поиска по этой теме, выбирая только те, которые входят.

4 лайка

На мой взгляд, разумно было бы сохранять список ответов вне экрана (например, в виде массива), а затем просто перебирать его с помощью обработчиков previousResult и nextResult, сбрасывая список при загрузке новой темы или выполнении нового поиска.

Конечно, тогда сочетания клавиш и/или кнопки станут тривиальными в реализации.

3 лайка

Привет @finder, добро пожаловать в Discourse!

Я перемещаю это в #feature, так как это похоже на запрос новой функции. Если вы сможете предоставить больше информации о проблеме, с которой столкнулись, возможно, даже с помощью записи экрана, нам будет легче понять, о чём вы спрашиваете. Можете рассказать подробнее о вашей конфигурации?

Мне это кажется довольно сложным, так как это лишит контекста.

На самом деле список результатов уже сохраняется между кликами, но в настоящее время нет способа индексировать результаты (например, кнопки «назад/вперед», обработчика или сочетания клавиш), кроме как вручную.

В этом видео показано, что функция «Найти» не работает, так как Discourse использует ленивые/виртуальные списки, поэтому мы переключаемся на «Поиск» внутри этой темы. Однако нет простого способа перемещаться между результатами без повторного открытия меню поиска, которое перекрывает страницу. Поэтому его приходится закрывать, чтобы просмотреть результат, затем снова открывать, прокручивать страницу, вручную находить последний выбранный результат и кликать на следующий за ним.

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

Если мы собираемся заменить встроенную функцию браузера «Найти», которая существует в своем нынешнем виде с незапамятных времен, она должна быть хотя бы равноценной по функционалу.

Список существует, компьютеры отлично справляются с перемещением по спискам, и я не вижу ничего сложного в этом.