Idea: Paste links in the editor

Hey guys. If any of you uses WordPress, will know what I’m talking about. For others… I’ll explain.

So, in the WordPress editor, if you select a text and you press CTRL+V, it will do one of the following:

  • if the clipboard content is a valid url, it will insert the link with the selected text as anchor;
  • if the clipboard content is not a valid url, it will just overwrite the selected text.

I think it would be nice to just skip few steps (CTRL+K + CTRL+V + enter).

Any chance that this would be implemented on Discourse? :slight_smile:

(also, what’s up with the undo? it’s simply broken if you use any toolbar/shortcut)

4 лайка

Er… what? That sounds confusing. I’m confused! What would that do?

Alright, so I’ve made a short video:

Obviously enough, this should insert markdown instead.

5 лайков

Это то, что мне очень нравится в WordPress и чего я ежедневно не хватает в Discourse. Это позволяет написать большой объём текста, а затем очень быстро и естественно добавить гиперссылки.

2 лайка

Я не уверен, что ты думаешь, @eviltrout — это может быть неожиданно. И у нас уже есть кнопка панели инструментов «Вставить гиперссылку».

1 лайк

Процесс работы с кнопкой ссылки выглядит так:

  1. Выделите текст
  2. Нажмите кнопку (или нажмите Ctrl+K)
  3. Вставьте ссылку
  4. Нажмите «ОК» (или нажмите Enter)

С предложенной мною функциональностью вы как бы сокращаете весь процесс вдвое, поскольку достаточно лишь выделить текст и вставить ссылку. Если текст не выделен, вставка будет работать как обычно (то есть просто вставит текст из буфера обмена).

3 лайка

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

  • Если ничего не выделять и вставить из буфера обмена, это будет простым действием ВСТАВКА.
  • Если выделить текст и вставить из буфера обмена, это будет действием ЗАМЕНИТЬ ТЕКСТ на содержимое буфера обмена.

Вставка гиперссылки — используя уже имеющуюся кнопку — самый простой способ вставить ссылку в выделенный вами текст: сначала выделите текст, затем вставьте ссылку.
Вставка гиперссылки без текста осуществляется так: нажмите на кнопку, вставьте ссылку, нажмите «ОК» или клавишу Enter, либо просто введите или вставьте ссылку в пустое место.

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

В WordPress что определяет, будет ли текст заменен содержимым буфера обмена или вставлена гиперссылка без перезаписи существующего текста, используя простое выделение и вставку, как вы предлагаете? Конечно, простое выделение текста и нажатие кнопки вставки не могут выполнять обе функции одновременно или выполнять одну, теряя другую.

Или я что-то упускаю?

Как уже реализовано в Discourse, ввод или вставка URL автоматически превращает его в кликабельную ссылку без необходимости использовать функцию Вставить ссылку. Также есть функция Onebox. И у вас уже есть кнопка Вставить ссылку.

Вставка вставляет текст.
Выделение и вставка заменяет текст.
Выделение и удаление (Backspace) удаляет текст.

Это общие функции всех текстовых редакторов.

2 лайка

Это зависит от содержимого буфера обмена и состояния редактора:

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

Учитывая, что в редакторе есть ещё несколько моментов, которые работают не совсем так, как в других редакторах (кашель, кашель), я уверен, что для пользователей это не станет большой проблемой :slight_smile:

1 лайк

Я не против этого, но я также не слышал, чтобы кто-то ещё просил об этом. Это кажется довольно нишевым.

4 лайка

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

(Я бы попытался сделать это самостоятельно в виде плагина или чего-то подобного, но по каким-то причинам не могу запустить окружение разработки Discourse на Docker в Windows)

4 лайка

Настоятельно рекомендую использовать WSL-2 и официальную настройку Docker — это самый простой способ начать работу в Windows.

Кроме того… вам даже не нужно полное окружение разработки: вы можете поэкспериментировать в Theme Creator, так как это можно собрать как компонент темы.

2 лайка

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

1 лайк

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

3 лайка

Честно говоря, это просто замечательная функция в WordPress. Гипертекст — великая вещь и фундаментальная концепция веба, конечно… но возвращаться и добавлять по 10 ссылок к посту — это действительно раздражает, если нельзя просто скопировать и вставить их. Поэтому я не утруждаю себя этим, если только не использую WordPress. На самом деле не должно быть сюрпризом, что вставка ссылки создаёт ссылку.

1 лайк

Я только что попробовал это в редакторе Zettlr. У него нет функции «вставить URL для создания ссылки» как в WordPress, но есть аналогичное поведение при нажатии Ctrl+K. Если URL находится в буфере обмена, вы:

  • выделяете текст
  • нажимаете Ctrl+K

— и всё, текст становится ссылкой. Также можно добавить ссылку через правый клик. В Discourse же нужно:

  • выделить текст
  • нажать Ctrl+K
  • нажать Ctrl+V
  • нажать Enter

Это действительно нарушает поток разметки текста.

Не уверен, позволит ли безопасность браузера вставлять URL при нажатии Ctrl+K, но мне кажется, что поведение WordPress идеально.

редактирование Заметил, что Slack тоже имеет такое же поведение «создание ссылки при вставке», как и WordPress, так что это ещё один широко используемый интерфейс, который стоит принять эту функцию.

3 лайка

Я добавил PR по этому вопросу в UX: pasting links on a selection will apply a link format by gwwar · Pull Request #15010 · discourse/discourse · GitHub

23 лайка

Ого! С возвращением и спасибо! Давно не виделись!

6 лайков

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

2 лайка

То же самое. Создавать контент гораздо проще.

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

Для меня вопрос довольно прост: дело в удобстве использования и простоте, но если разработчики видят это иначе, это возможно.

Я не пытаюсь разжечь спор, но время от времени разработчики забывают о конечных пользователях и делают вещи так, как привыкли :wink:

1 лайк

Это уже слито!

  • Скопируйте URL
  • Выделите слово в редакторе Discourse
  • Вставьте URL
  • Слово превращается в ссылку… Магия :woman_mage: :mage:

Большое спасибо gwwar ← Это было легко сделать с помощью трюка с вставкой, @gwwar!

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

21 лайк