Отключить всплывающее окно автозаполнения с # в редакторе постов?

Я хотел бы отключить всплывающее меню, когда на моем экземпляре Discourse вводится символ # без пробела.

Например, на meta это выглядит следующим образом:

Мне бы хотелось, чтобы это всплывающее меню вообще не появлялось. Я поискал варианты настроек, но не смог найти способ его отключить.

3 лайка

Хотите полностью отключить эту функцию? Или вы хотите, чтобы она срабатывала только в том случае, если после символа # не был введен ни один символ?

Раньше мы ждали, пока после # будет введен хотя бы один символ, но теперь изменили это поведение: такое требование больше не нужно (пользователи просили об этом ранее, но мы не могли реализовать это по техническим причинам, которые больше не актуальны).

6 лайков

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

1 лайк

Можете объяснить, в чём польза ожидания появления персонажа перед предложением автодополнения?

6 лайков

Конечно. Я считаю, что появление меню категорий отвлекает, когда я просто набираю заголовок. Это особенно заметно у молодых или медленных авторов. Когда они вводят # и задумываются о заголовке, который хотят написать, им сразу показывают меню категорий, которое никак не связано с тем, что они пытаются набрать.

Да, комбинация “#<пробел>” это предотвращает, но в тот момент, пока они ищут пробел, это отвлекает и сбивает с толку, потому что компьютер предлагает варианты, которые могут иметь смысл при написании комментария, но не подходят для создания поста и ввода заголовка.

Понятно ли я объяснил? Извините, я пытался описать это несколько раз, но не уверен, что у меня получилось :slight_smile:

2 лайка

Правильный синтаксис заголовка в Markdown требует пробела после #. Вы пробовали использовать пробел, чтобы отклонить это?

2 лайка

Я говорю о коротком промежутке времени между вводом символа # и нажатием пробела.

Представьте пользователя, который печатает, перебирая клавиши: он нажимает #, затем ищет пробел, и в этот момент у него появляется меню, в котором нужно принять решение. Даже если вы быстро введете “#”, меню всё равно ненадолго появится, тогда как раньше для этого нужно было намеренно вводить несколько символов, например “#c”, чтобы начать поиск или выбор тега.

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

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

1 лайк

Интересно, можно ли добавить настройку — сколько символов нужно ввести, чтобы появилось всплывающее окно автодополнения?

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

2 лайка

Спасибо, что обратили на это внимание.

Думаю, такое предложение вполне разумно. Давайте посмотрим, что думают по этому поводу другие.

2 лайка

Учитывая этот контекст, возможно, имеет смысл сделать это настройкой пользователя, а не параметром сайта… :thinking:

Как бы вы назвали эту настройку для молодых или менее опытных авторов, чтобы они сразу поняли, что она делает?

Также я думаю, что многие пользователи заходят в настройки только для заполнения профиля. Мне кажется, что подавляющее большинство использует программное обеспечение форумов «как есть» и даже не знает, что такая опция может существовать в их собственных настройках (я сам из таких :smile:). :thinking:

3 лайка

Хм, мне не нравится идея сделать доступность опциональной. По умолчанию всё должно быть доступно как на уровне сайта, так и на уровне пользователя.

1 лайк

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

4 лайка

Я тоже ломал голову над комментарием о доступности.

Если посмотреть на другие платформы, то есть такие, которые предлагают варианты тегов сразу после ввода символа # — например, Twitter на iOS начинает предлагать популярные теги, пока пользователь не введёт второй символ.

Мне также не совсем нравится аргумент про «поиск и нажатие», ведь по определению пользователи в этот момент смотрят на клавиатуру. Скорее, всплывающее окно с тегами служит напоминанием о том, что пользователь перешёл в режим ввода тегов, пока не нажмёт пробел.

Мне нравится в новом поведении то, насколько оно делает ввод тегов более заметным для новичков.

Заголовки можно вводить только в начале новой строки, но стоит ли менять поведение по умолчанию в зависимости от положения курсора? Единственная группа, которая может запутаться, — это слепые печатники, которые не знают, что после символа # для заголовков должен следовать пробел.

4 лайка

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

Это проблема даже тогда, когда вы не добавляете новые заголовки. Просто используйте стрелки для навигации по теме, которую вы уже редактировали и которая содержит заголовки где-либо. Вы нажимаете стрелку вниз до символа #, а затем, продолжая нажимать стрелку, курсор начинает выбирать конкретный тег или категорию вместо того, чтобы продолжать движение вниз по странице. Теперь мне приходится нажимать Escape, чтобы продолжить движение вниз по посту с клавиатуры, или избегать «минных полей» с символом #.

Заголовок один, о, не подпускайте курсор к знаку решетки.

Заголовок два, если ваш курсор окажется перед первой решеткой, появится меню.

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

Что касается молодых редакторов: заставлять их редактор совершать «магические» действия, когда они просто пытаются понять создание заголовков с помощью языка Markdown, — это перегружать пользователя вещами, которые ему не нужно знать или понимать.

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

2 лайка

Мистер Джобс действительно был прав, когда сказал, что курсоры бесполезны :slight_smile:

Шучу.

Но я постоянно использую клавиши-стрелки, так как много пишу, в основном длинные тексты, и не сталкиваюсь с ситуацией, которую вы описываете.

(Редактирование: я добрался сюда, уворачиваясь от всех мин :wink: )

заголовок второго уровня

и даже не здесь и сейчас

третий уровень: теги

Я могу использовать теги благодаря автодополнению через хэш-символ, так как эта новая система работает очень удобно: how-to, или просто введя тег, если я его помню: unsupported-install — это тоже сработало.

Так что же я сейчас не понимаю?

На данный момент у нас нет планов вносить какие-либо конкретные изменения здесь.

Я не уверен, какое решение будет лучшим, и это кажется немного маловероятным, но я могу воспроизвести это, установив курсор в нужное место, и согласен, что это раздражает, когда это всё же происходит (когда курсор находится на 1 символ от начала строки).

курсор в начале строки

cursor-0

курсор на 1 символ от начала

cursor-1

курсор на 2 символа от начала

cursor-2

5 лайков

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

1 лайк

Мне кажется, решение простое — отключить автодополнение для хештегов:

  1. Если вы находитесь в начале строки.
  2. Если после символа # стоит меньше одной буквы.

Таким образом:

#

не вызовет автодополнение.

test #

вызовет автодополнение.

#t

также вызовет автодополнение.

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

@martin … что думаешь?

2 лайка

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

1 лайк