Linking to Custom Scheme

AI-generated summary

The discussion revolves around creating a custom link button for Discourse that uses a custom URL scheme (inet://) and allows users to easily insert links with the highlighted text as both the link title and the actual link.

jays10 has set up a custom URL scheme and created a button using an applySurround script, but wants to automate the process of using the highlighted text for both the link title and the link itself.

merefield suggests overriding the onebox logic to work with the custom protocol, which jays10 considers as an alternative solution. merefield clarifies that creating a onebox plugin for inet:// links could allow for automatic formatting of the links, similar to how https:// links are handled.

jays10 understands the suggestion and merefield elaborates on how modifying the oneboxing subsystem could enable nice linked titles, using og tags, similar to how Discourse handles https:// links.

Hello All,

We are setting up our new discourse internal environment and I was able to setup a custom URL scheme to link to an internal resource on the network, I wanted to add an easy button when making a new post which I was able to do but I want to be able to use the highlighted text for the link title as well as for the actual link itself. Right now I am just using an apply surround to insert what we need into a link but we have to manually change the link title, see the code below.

<script type="text/discourse-plugin" version="1.0">
api.onToolbarCreate(toolbar => {
    toolbar.addButton({
        id: "dms_button",
        group: "fontStyles",
        icon: "fab-wikipedia-w",
        perform: e => e.applySurround("[id_here](INET://", ')')
    });
});
</script>

user enters 123456 > that applies this around the highlighted text [id_here](INET://123456)

I did look through the code but I could not find anything that would help me accomplish what we are looking to do. Is there anyway to use the highlighted text in the link title as well?

So you want the text you select to appear twice?

I don’t think that function will allow you to do that?

Have you thought about overriding the onebox logic to work with your protocol?

The protocol works fine, I can use inet:// as needed but I was just looking for an easy way for user to insert the custom URL into a post. In the previous form (phpbb) we made a custom bbcode for the link that worked however I was looking for an easier solution with discourse.

so Discourse already supports oneboxing of inet:// links?

It does not out of the box. So what you’re referring to is to create a onebox plugin for inet:// which will format the link the way I need?

So when user enter inet://12345
onebox preview will actually contain the proper formatted link?

My suggestion was that rather than doing something so low level in the composer, “simply” modify the oneboxing subsystem so it formats inet:// links just like https:// links.

Specifically I’m referring to the way it formats inline like so: Dark/Light Mode Toggle - #20 by jordan.vidrine

All I had to do was paste the link, Discourse looked at the target and created a nice linked title for me from the og tags.

This of course assumes your organisation has control over the og tags on the target linked pages.