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 Likes

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 Likes

This is something I really enjoy in wordpress too, and miss in discourse on a daily basis. It allows you to write a whole bunch of text, then go through adding hyperlinks extremely quickly and naturally.

2 Likes

I’m not sure, what do you think @eviltrout — this could be unexpected. And we already have an insert hyperlink toolbar button.

1 Like

The flow with the link button is this:

  1. Select the text
  2. Click the button (or press ctrl+k)
  3. Paste the link
  4. Click OK (or press enter

With the functionality I proposed, you kind of half the whole process, as you only select then paste. If no text is selected, the paste will work as usual (i.e. just insert the clipboard text).

3 Likes

In every editor I know of, if you jselect some text and paste from a clipboard, that text is overwritten by what’s in the clipboard. What you are suggesting would do away with the existing function of replace text with what’s in the clipboard.

  • Not selecting any text and pasting from clipboard is a simple PASTE action.
  • Selecting text and pasting from a clipboard is a REPLACE TEXT action with what is in the clipboard.

Inserting hyperlink - using the already supplied button - is the easiest way to insert a link in whatever text you select by selecting the text first.
Inserting a hyperlink without text is clicking on the button, paste the link, click okay or hit enter or by just typing or pasting a link to a blank space.

I don’t see why you would want to take the universal Select & Replace Text function and convert that into what the existing button already does without losing that function common to all text editors. What would happen if you wanted to replace text with other text if you lose the Select & Replace function?

In Wordpress, what determines whether the text is replaced with what’s in the clipboard or inserts a hyperlink without overwriting the existing text using a simple select & paste as you suggest? Surely a simple highlighting of text and clicking paste cannot perform both functions or do one function without losing the other.

Or am I missing something?

As is already in Discourse, typing in or pasting a URL does turn it into a clickable link without having to use the Insert Link feature. Then you have the Onebox feature. And you have the Insert Link button already.

Paste inserts text.
Select and paste replaces the text.
Select and delete/back space deletes the text.

These are common functions of all text editors.

2 Likes

A combination of clipboard content and editor state:

  • If cliboard content is not a valid URL: the paste will act just as you said (replace any selected text or append it at the cursor otherwise)
  • If the clipboard is an URL and:
    • no text selected: the URL will be inserted at the cursor position
    • text selected: use that text as an anchor text.

Considering that there are a few other things that doesn’t quite work as other editors (cough, cough), I’m pretty sure it wouldn’t be such a big problem for users :slight_smile:

1 Like

I’m not against it but I also haven’t heard of anyone else asking for it. It seems fairly niche.

4 Likes

I think it’s one of those things you don’t know you need until you actually got it.

(I would try to do it myself as a plugin or something, but for some reasons I can’t start discourse docker dev env on windows)

4 Likes

I strongly recommend WSL-2 here, and our official docker setup, easiest way to get started on Windows.

Also … you don’t even need a full dev environment, you could experiment on theme creator, this can be built as a theme component.

2 Likes

Meanwhile I’ve figured out what I was doing wrong (and updated the post to prevent others persist in my mistake), now I can run it, but I have no spare time. Maybe in the near future :slight_smile:

1 Like

I didn’t even know Wordpress or anything else did this, so wouldn’t have thought of asking, but it would be handy, and likely wouldn’t cause huge surprises (I’ve never tried to overwrite any text with a URL, and if I were to then I’d understand what was happening).

3 Likes

Honestly it’s just such a lovely feature in wordpress. Hypertext is a great thing, and foundational concept for the web, of course… but going back adding 10 links to a post is really irritating unless you can simply copy and paste them. So I don’t bother, unless I’m using wordpress. There should really be no surprise that pasting a link creates a link.

1 Like

I just tried this in the zettlr editor, it doesn’t have the wordpress paste-to-create-link but does have similar behaviour for ctrl-k… With an URL in the clipboard, you …

  • select text
  • press ctrl-k

… and that’s it, the text becomes a link. Alternatively you can right-click to add a link. In discourse you have to:

  • select text
  • press ctrl-k
  • press ctrl-v
  • press enter

This really breaks the flow of marking up some text.

I’m not sure if browser security would let you paste with ctrl-k, but really I think the wordpress behaviour is perfect.

edit I’ve noticed that slack has the same link-on-paste behaviour as wordpress, so that’s another well-used UI to embrace this feature.

3 Likes

I’ve added a PR for this in UX: pasting links on a selection will apply a link format by gwwar · Pull Request #15010 · discourse/discourse · GitHub

23 Likes

Oh wow! Welcome back and thank you! It’s been a while!

6 Likes

I’m using this in WordPress all the time. I first write the whole sentence, or even a paragraph, then make another pass and convert words/phrases into links.

2 Likes

Same here. Much more easier to create content.

I know CMSes, as WordPress, is a bit different than foruma, but those borders are disappearing, like computers vs. tablets vs. phones.

For me the question is quite easy: it is matter of UX and easiness, but if devs see things differently is possible.

I don’t try to start any flaming, but every now and then devs are forgetting end users and doing things as they are used to :wink:

1 Like

This is now merged!

  • Cut a URL
  • Select a word in Discourse composer
  • Paste URL
  • Word becomes a link… Magic :woman_mage: :mage:

Big thank you gwwar ← That was easily created using the paste trick @gwwar!

I find this quite cool, very hard to learn about it existing, but now that I know it exists I will certainly use the trick on occasion

21 Likes