커스텀 스킴 연결

안녕하세요,

우리는 새로운 Discourse 내부 환경을 구축하고 있습니다. 네트워크의 내부 리소스로 링크할 수 있는 사용자 정의 URL 스킴을 설정하는 데 성공했습니다. 새 게시글을 작성할 때 사용할 수 있는 간단한 버튼을 추가하고 싶었고, 실제로 추가도 했습니다. 하지만 현재 하이라이트된 텍스트를 링크 제목으로만 사용하는 것이 아니라 실제 링크 자체에도 사용하고 싶습니다. 지금은 applySurround를 사용하여 필요한 내용을 링크에 삽입하고 있지만, 링크 제목은 수동으로 변경해야 합니다. 아래 코드를 참고해 주세요.

<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>

사용자가 123456을 입력하면 하이라이트된 텍스트 주위에 [id_here](INET://123456)가 적용됩니다.

코드를 살펴보았지만 우리가 하려는 일을 달성하는 데 도움이 될 만한 것을 찾을 수 없었습니다. 하이라이트된 텍스트를 링크 제목에도 사용할 수 있는 방법이 있을까요?

선택한 텍스트가 두 번 나타나게 하려는 건가요?

그 기능이 그렇게 할 수 있게 해줄 것 같진 않네요.

원박스(onebox) 로직을 오버라이드해서 프로토콜에 맞게 동작하도록 하는 건 어떻게 생각해 보셨나요?

프로토콜은 잘 작동하며, 필요할 때 inet://를 사용할 수 있습니다. 다만 사용자가 게시물에 사용자 지정 URL을 쉽게 삽입할 수 있는 방법을 찾고 있었을 뿐입니다. 이전 포럼(phpbb)에서는 링크에 대해 사용자 지정 bbcode를 만들어 사용했지만, Discourse에서는 더 간단한 해결책을 찾고 있었습니다.

즉, Discourse는 이미 inet:// 링크의 oneboxing을 지원하나요?

기본 설정에서는 그렇게 작동하지 않습니다. 말씀하신 것은 inet://에 대해 원박스 플러그인을 만들어 링크를 제가 원하는 방식으로 포맷팅하라는 뜻인가요?

즉, 사용자가 inet://12345를 입력하면 원박스 미리보기에 실제로 적절하게 포맷팅된 링크가 포함되는 것인가요?

제 제안은 컴포저에서 이렇게 저수준의 작업을 하는 대신, inet:// 링크를 https:// 링크와 동일한 방식으로 포맷하도록 원박싱(Oneboxing) 하위 시스템을 “그냥” 수정하자는 것이었습니다.

구체적으로는 다음과 같은 인라인 포맷팅 방식을 말씀드리는 것입니다: Dark/Light Mode Toggle - #20 by jordan.vidrine

링크를 붙여넣기만 하면, Discourse가 대상 페이지를 확인하고 og 태그로부터 적절한 링크 제목을 자동으로 생성해 주었습니다.

물론 이는 해당 조직이 링크된 대상 페이지의 og 태그를 제어할 수 있다는 전제 하에 성립합니다.