Auto-Linkify Words

Linkify가 제가 원하는 방식과 거의 정확히 동일하게 작동합니다:

/TBI\s*\W?(\d*)/,https://tbi.example.com/tbi/$1/

이 규칙은 사용자가 다양한 형태로 입력하는 “TBI 번호”를 처리합니다:

  • TBI 17
  • TBI-17
  • TBI17
  • TBI -17
  • TBI*17
  • 등

이러한 유연성을 좋아합니다.

불행히도, 이러한 번호를 입력하는 공식적인 방식은 처리하지 못합니다:

  • TBI #17

#(해시태그, 해시, 숫자 기호, 옥소포, 해시 마크, 파운드 기호, 틱택토 기호)을 올바르게 매칭하는 방법을 찾지 못하고 있습니다. 물론 아래처럼 시도해 보았지만 작동하지 않았습니다:

/TBI\s*#?(\d*)/,https://tbi.example.com/tbi/$1/
/TBI\s*\#?(\d*)/,https://tbi.example.com/tbi/$1/

심지어 완전한 와일드카드조차 작동하지 않습니다:

/TBI\s*.?(\d*)/,https://tbi.example.com/tbi/$1/

제 생각에는 카테고리 팝업 기능이 이 부분을 가로채 Linkify가 매칭 작업을 수행하지 못하게 하는 것 같습니다 — 사용자가 제시된 카테고리 중 하나를 선택하지 않은 경우에도 말이죠.

이것이 의도된 동작인가요, 아니면 버그인가요? 이를 우회하는 방법을 아시는 분이 계신가요?

네, HTML 소스 코드를 검사해 보면 Discourse는 해시로 시작하는 모든 텍스트를 별도의 span 요소에 배치하는 것 같습니다. 이로 인해 linkify 테마의 흐름이 깨집니다. 이 문제를 쉽게 해결하는 방법은 없는 것 같아 죄송합니다. :frowning: 제 생각에는 테마를 포크한 후 이 특정 사례에 맞게 커스터마이징해야 할 것 같습니다. 다른 분이 더 좋은 아이디어를 가지고 있지 않는 한요.

이 플러그인은 잘 작동합니다. 감사합니다. 하지만 abrify와 함께 사용할 때는 작동하지 않습니다.
이 플러그인이 추가하는 클래스에서도 링크가 작동하도록 할 수 있을까요?
GitHub - metabrainz/discourse-abbrify-words: Discourse theme component for automatically adding <abbr> to abbreviations and acronyms · GitHub.

문제는 abbrify 플러그인이 기본적으로 링크 태그를 건너뛰기 때문인 것 같습니다. 코드를 수정하여 head_tag.html의 16번째 줄을 삭제하면 해결할 수 있습니다.

'a': 1,

해결되었는지, 또는 추가적인 도움이 필요한지 알려주세요. :slightly_smiling_face:

2개의 좋아요

감사합니다. 잘 작동하는 것 같습니다.

참고로, GitHub에서 직접 수정하는 대신 CSS/HTML 템플릿에서만 수정하는 경우 차이가 있을까요?

네, Github에서 테마 컴포넌트를 업데이트할 때는 주의해야 합니다. 로컬의 CSS/HTML 변경 사항이 덮어쓰기되어 사라질 수 있습니다.

3개의 좋아요

감사합니다. abbrify 속성 대신 다른 클래스를 추가하는 방식으로 동일한 효과를 낼 수 있는지 궁금합니다. 예를 들어 dfn data-info나 span aria-label, 또는 이와 유사한 속성을 사용하는 경우 말이죠.

예를 들어 콘텐츠로 attr()를 활용하는 방식입니다.

네, 그렇습니다. createAbbr 함수(또는 linkify 테마의 해당 함수)를 직접 수정해 보실 수 있습니다.

1개의 좋아요

정말 좋습니다. 조금 더 직접 사용해 봐야겠어요.
여기서 많은 가능성이 있을 것 같아요. json과 api를 여기서 어떤 방식으로 사용할 수 있는지 혹시 아이디어가 있으신가요?

예를 들어, api를 통해 워드프레스에서 abriffy 단어와 기타 데이터를 표시할 수 있도록 하는 것 같은 경우요?

무엇을 말씀하시는지 잘 모르겠습니다. 구체적으로 어떤 것을 이루고 싶으신지 더 자세히 말씀해 주시겠어요? 테마 컴포넌트는 Discourse 내에서만 작동하며, 다른 곳에서 사용하기 위한 API는 없습니다. 하지만 대부분은 JS 코드를 단순히 다른 곳으로 복사하고 Discourse에 특화된 부분을 수정하는 방식으로 사용할 수 있어야 합니다.

원박스(oneboxes)의 내용을 링크화되지 않도록 제외할 방법이 있나요?

1개의 좋아요

건너뜀 태그 설정에 <aside> 태그를 추가해 보는 것도 좋습니다. 다만 모든 원박스가 <aside> 안에 배치되는지는 확신이 없습니다. 클래스 이름 기반의 필터가 필요할 수도 있겠네요.

@sam 이 문제에 대해 의견이 있으신가요? :arrow_double_up: 이는 합리적인 기본 동작(원박스 내 자동 링크 비활성화)으로 보입니다.

4개의 좋아요

클래스 기반 필터 설정은 완벽해 보입니다. 기본적으로 하나의 박스를 제외해야 합니다.

7개의 좋아요

네, 다음 주에 PR을 제출해 보겠습니다.

2개의 좋아요

안녕하세요. 오늘 기본 Light 테마에 이 테마 컴포넌트를 성공적으로 설치했습니다. 하지만 제 환경에서는 작동하지 않습니다.

정규식(regex)과 기본 링크파이 단어(discourse와 meta)를 모두 시도해 보았지만, 모두 실패했습니다.

현재 v2.3.0.beta2 +256 버전을 사용하고 있습니다. 이 문제를 디버깅하는 데 도움이 될 팁이 있을까요? 미리 감사드립니다 :slight_smile:

1개의 좋아요

최근 코드 리팩토링을 진행했으며, Discourse를 업데이트해야 할 수도 있습니다(2.4 버전이 방금 출시되었으므로 업데이트하는 것이 편리합니다 :slightly_smiling_face:)

6개의 좋아요

원박스(Oneboxes)에서 링크 자동 생성(Linkify) 기능이 이제 기본적으로 비활성화됩니다. @jrgong 주제를 업데이트해 보시고 테스트해 주시겠어요?

1개의 좋아요

이 문제가 아직 해결되지 않은 것 같습니다. 관리자 화면에서 구성 요소를 내보내면 백업을 만들 수 있다고 생각했는데, 내보내기 결과에 사용자 설정이 포함되지 않았습니다.

한 가지 아이디어가 있습니다. 모든 행을 포함하는 설정을 더블클릭하면 편집 가능한 텍스트 영역으로 바뀌도록 하면 어떨까요? CSS/HTML 편집 편집기와 비슷한 방식입니다. 이렇게 하면 백업/내보내기뿐만 아니라 항목을 한 줄에 하나씩 담아 목록을 가져오는 것도 쉬워질 것입니다.

이전:

더블클릭 시:

다른 이야기 하나 더: 이상한 정규식(Regex)을 볼 수 있을 텐데, 이러한 설정 필드에서는 |를 사용할 수 없습니다. 아마도 위의 제안으로 이 문제도 해결할 수 있을 것입니다.

3개의 좋아요

다시 만났네요, 친구! (linkify/abrify 플러그인)을 사용해 단어/링크를 이미지(들)로 변환하는 방법에 대해 어떻게 생각하세요?

현재 플러그인으로는 불가능할 가능성이 높지만, <a> 대신 <img> 태그를 생성하도록 플러그인을 수정하는 것은 어렵지 않을 것입니다.

1개의 좋아요