이 구성 요소를 설치하면 각 태그에 텍스트 설명을 추가할 수 있으며, 이는 태그 자체가 선택되었을 때 표시되는 배너에 나타납니다. 텍스트 필드는 HTML을 지원하므로 사용자 정의 CSS를 사용하여 스타일링을 할 수 있어 다양한 활용이 가능합니다. 다음은 태그를 편집하는 매우 단순한 예시입니다:
어려운 점은 이 구성 요소를 수정하여 태그 페이지뿐만 아니라 해당 태그를 사용하는 각 토픽에서도 표시되도록 하는 것입니다. 이를 위해 얼마나 많은 작업이 필요한지는 알 수 없지만, 더 경험이 많은 개발자(예: Nate…)라면 몇 가지 아이디어를 제시할 수 있을 것입니다.
네이트, 이걸 맡아줘서 정말 멋져. 나한테는 직접 필요는 없지만, 한번 써보고 싶어서 기대가 됐어. 잘 작동해!
다만, 토픽에 여러 태그가 있을 때 주의할 점이 하나 있어. (토픽당 태그를 하나만 관리하는 상황을 상상하기는 어렵거든.)
태그는 알파벳순이나 인기순으로 정렬되는데…
…그래서 작성자가 어떤 태그가 먼저 표시될지 직접 제어할 수 없어.
클라이언트 태그(~ClientName)를 알파벳이 아닌 문자로 시작하게 하면 항상 목록 맨 앞으로 올라갈 거라고 생각했어. /tags 페이지에서는 이게 작동해 — 하지만 토픽에서는 안 돼. 토픽의 태그 목록은 ~ 문자를 무시하거든.
작년 토픽을 보면, 특정 비알파벳 문자를 눈에 띄지 않게 삽입해서 정렬을 강제할 수 있었던 것 같아: Invisible way to force display order of tags? 하지만 지금은 이게 작동하지 않는 것 같아. 오늘 따옴표나 쉼표가 포함된 태그를 만들면 거부되거나 조용히 제거돼. (~는 왜 허용되는지 모르겠어.)
위에서 언급한 태그 정렬 설정은 /tags 페이지와 토픽의 태그 목록 모두에 영향을 미치는데 — 아마 서로 다른 알파벳 정렬 알고리즘을 사용하는 것 같아?
네, 원래 플러그인에 이 기능을 추가하는 것이 널리 유용할 만큼 가치가 있을지 확신하지 못합니다. "Tagged Topic Banner"라는 이름의 별도 버전이나 애드온이 더 적절할 것 같습니다.
하지만 태그를 지정하는 사람이 어떤 태그를 기본 태그로 사용할지 지정할 수 있는 방법이 없다면, 이 기능의 유용성은 상당히 제한적이라고 생각합니다. 제가 떠올릴 수 있는 방법은 다음과 같습니다…
1.) ~와 같은 문자를 목록 맨 위에 배치하도록 알파벳 정렬을 조작하는 해킹 방식.
AskBot이 플러그인 몽키 패치에 대한 접근 방식을 제안함
# plugin.rb
after_initialize do
module ::CustomTagSort
def custom_tag_sort(tags)
tags.sort_by do |tag|
# ~로 시작하는 태그를 맨 앞에 배치하고, 그 후 A-Z 순으로 정렬
[tag.name.start_with?("~") ? 0 : 1, tag.name.downcase]
end
end
end
# visible_tags 등을 계산하는 직렬화기/메서드에 패치 적용
require_dependency 'topic_tags_mixin'
TopicTagsMixin.prepend(Module.new do
private
def all_tags
return @tags if defined?(@tags)
tags = topic.visible_tags(scope)
if SiteSetting.tags_sort_alphabetically
tags = ::CustomTagSort.custom_tag_sort(tags)
else
topic_count_column = Tag.topic_count_column(scope)
tags = tags.sort_by { |tag| tag.public_send(topic_count_column) }.reverse
end
@tags = tags
end
end)
end
2.) 더 좋은 방법: 태그 그룹의 지정된 순서에 따라 태그를 정렬하는 것.
검색해보니 태그 순서에 대한 더 많은 제어 기능을 요청하는 여러 토픽이 발견됩니다. 이는 종속성(속 → 종), 제조사 → 모델 등 다양한 이유로 순서가 중요한 경우가 많기 때문입니다. – 하지만 답변들을 보면 상당한 양의 작업이 필요할 것 같다는 의견이 많습니다.