해시태그가 #새단장을 준비하고 있습니다

Discourse는 해시태그(#)를 사용하여 카테고리(#announcements)와 태그(release-notes)에 대한 링크를 오랫동안 지원해 왔습니다. Discourse Chat의 도입으로 해시태그를 통해 채팅 채널에도 링크할 수 있도록 하기를 원했으며, 이를 위해 채널이 자동완성으로 제안되고 게시물 및 채팅 메시지에서 렌더링(cook)될 수 있도록 시스템 동작 방식을 일부 개편해야 했습니다. 또한 자동완성 메뉴와 렌더링된 해시태그의 디자인도 전면 개편하기로 결정했습니다.

이번 개편에 포함된 변경 사항 요약:

  • 채팅이 활성화된 경우 채팅 채널을 검색할 수 있는 기능
  • 해시태그 검색 결과는 슬러그(slug)에 기반한 정확한 일치 항목을 우선하며, 게시물인지 채팅 메시지인지에 따라 다른 유형의 결과를 우선합니다(예: 게시물에서는 카테고리가 상단에, 채팅에서는 채널이 상단에 표시됨)
  • 각 검색 결과에 고유한 아이콘이 표시됨
  • 고유한 아이콘을 포함하는 렌더링된 해시태그의 새로운 스타일

새로운 자동완성 결과:

@mention 스타일과 매우 유사하게 일치하는 해시태그 자동완성의 새로운 렌더링 스타일.

Discourse 사이트에서 enable_experimental_hashtag_autocomplete 사이트 설정을 활성화하여 이 새로운 버전의 해시태그 자동완성 및 렌더링 사용에 옵트인(opt-in)할 수 있습니다:

새해에는 이것이 기본 설정으로 변경될 것으로 예상되며, 현재 이 기능은 여전히 실험적 기능으로 간주되므로 수정 및 개선해야 할 사항이 몇 가지 남아 있습니다.

이 기능은 이제 Discourse Meta에서도 활성화되었습니다 :sparkles:

42개의 좋아요

메타에서 이러한 새로운 해시태그를 사용하는 예시입니다. #announcements 를 확인해 보거나, release-notes 를 읽어 보시는 건 어떨까요?

12개의 좋아요

23개의 게시글이 새 주제로 분리되었습니다: Add colour and subcategory styling to category and chat mentions

게시물에서 채팅 채널로 링크하는 방식의 간단한 예시는 다음과 같습니다: #general::channel

다른 채팅 채널에서 채팅 채널로 링크하는 방식의 간단한 예시는 다음과 같습니다:

7개의 좋아요

게시물이 새 주제로 분리되었습니다: 기존 해시태그를 새 디자인으로 변경

여기 업데이트 소식입니다 – 해시태그 처리 방식을 일부 변경한 후, 이제 이 기능을 모든 사이트의 기본값으로 설정했습니다. 이제 아이콘의 색상도 표시되며, 원래의 하위 카테고리 스타일링도 포함됩니다 :rainbow: :

Support Contribute > Feature #general::channel #announcements:blog

곧 이전 해시태그 시스템을 참조하는 구식 코드도 삭제될 예정입니다.

16개의 좋아요

매우 좋아 보입니다. 하지만 시각 장애인이 사용할 때는 어떻게 작동할까요?

accessibility General #general::channel #documentation:devs

에 aria 레이블이 누락된 것 같습니다… 여기에 해당하는 미리보기 HTML이 있습니다.

<p dir="ltr">
<a class="hashtag-cooked" href="/tag/accessibility" data-type="tag" data-id="109" data-slug="accessibility" tabindex="-1">
  <svg class="fa d-icon d-icon-tag svg-icon hashtag-color--tag-109 svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#tag"></use></svg>
  <span>accessibility</span>
</a> 
<a class="hashtag-cooked" href="/c/general/124" data-type="category" data-id="124" data-slug="general" tabindex="-1">
  <span class="hashtag-category-badge hashtag-color--category-124"></span>  
  <span>General</span></a> 
<a class="hashtag-cooked" href="/chat/c/general/508" data-type="channel" data-id="508" data-slug="general" tabindex="-1">
  <svg class="fa d-icon d-icon-comment svg-icon hashtag-missing svg-string" xmlns="http://www.w3.org/2000/svg"><use href="#comment"></use></svg>
  <span>general</span></a> 
<a class="hashtag-cooked" href="/c/documentation/devs/56" data-type="category" data-id="56" data-slug="devs" tabindex="-1">
  <span class="hashtag-category-badge hashtag-color--category-56"></span>
  <span>developers</span>
</a>
</p>
7개의 좋아요

이 점을 짚어주셔서 감사합니다. 정말 좋은 지적입니다. 최소한 각 해시태그에 aria-label을 추가하는 것은 필요합니다. 이번 주에 이 부분에 대한 커밋을 올리도록 하겠습니다.

7개의 좋아요

기존 주제들은 HTML이 다시 생성될 때까지 태그와 카테고리의 새 형식을 사용하지 않습니다. UI를 일관되게 만들기 위해 모든 주제를 안전하게 다시 생성할 수 있는 방법이 있을까요? rake를 사용하는 방법도 있을까요?

아래와 같은 방식으로 가능한가요? 아직 테스트해보지 않았습니다!

./launcher enter app
rake posts:rebake
2개의 좋아요

이 쪽이 더 구체적이라고 생각해요:

다만 bundle exec 부분은 잘 모르겠어요. 라이브 사이트에서는 이게 필요한지 확신이 안 서거든요.

5개의 좋아요

bundle exec 없이도 프로덕션 사이트에서는 작동하는 것 같습니다 :slight_smile:

root@Canapin-app:/var/www/discourse# rake hashtags:mark_old_format_for_rebake
Finding posts matching old format, this could take some time...
[!] You are about to mark 0 posts containing hashtags in the old format to rebake. [CTRL+c] to cancel, [ENTER] to continue

Done, rebakes will happen when periodical updates job runs.
6개의 좋아요