컬렉션

:information_source: 요약 사용자가 연결된 주제(Topic)의 컬렉션을 생성할 수 있습니다
:hammer_and_wrench: 저장소 링크 https://github.com/Alteras1/discourse-collections
:open_book: 설치 가이드 Discourse에서 플러그인 설치 방법

미리보기

모바일

컬렉션

이 플러그인은 사용자가 연결된 주제를 볼 때 해당 주제들이 포함된 컬렉션을 생성하고 표시할 수 있게 해줍니다. 컬렉션에는 어떤 URL이든 포함될 수 있으며, 연결된 모든 주제에서 표시됩니다. 컬렉션은 섹션으로 조직화할 수 있으며, 컬렉션에 대한 모든 변경 사항은 연결된 모든 주제에 반영됩니다. 연결할 주제를 제한하지 않으므로, 사용자는 카테고리/태그를 넘나들며 컬렉션을 생성할 수 있습니다.

제목 및 설명

입력이 가능한 선택 사항입니다. 제공된 경우, 목록 상단에 표시됩니다.

섹션

선택적인 조직 기능입니다. 섹션 헤더를 추가하면 컬렉션을 섹션으로 나눌 수 있으며, 접을 수 있는 섹션이 표시됩니다.

서브컬렉션

사용자는 단일 주제에서만 표시되는 서브컬렉션을 생성할 수도 있습니다. 이를 통해 사용자는 관련 URL(예: 특정 게시물/외부 리소스)을 단일 주제에 대해서만 연결할 수 있습니다. 추가된 주제 URL은 연결되지 않습니다.

권한

이 플러그인은 사용자가 자신의 주제에 대한 컬렉션을 생성할 수 있도록 허용합니다. 기본적으로 사용자는 자신의 주제에만 연결할 수 있으며, 다른 사용자를 유지관리자(maintainer)로 추가해야만 해당 사용자가 자신의 주제를 컬렉션에 추가할 수 있습니다. 이 설정을 비활성화하면, 특정 그룹(기본값: Staff & TL4)만 모든 컬렉션에 대한 전체 제어 권한을 가질 수 있습니다.

권한 데모

설정

이름 설명
collections enabled 플러그인 활성화/비활성화. 기본값: true
collection by topic owner 주제 게시자(OP)가 컬렉션을 생성할 수 있도록 허용. 기본값: true
collection by topic owner allow groups 컬렉션을 생성할 수 있는 주제 게시자(OP) 제한. collection by topic owner를 제한합니다. 기본값: TL1
subcollection by topic owner allow groups 서브컬렉션을 생성할 수 있는 주제 게시자(OP) 제한. collection by topic owner를 제한합니다. 기본값: TL1
collection modification by allowed groups 모든 컬렉션의 생성/수정이 허용되는 그룹. 기본값: Admin Moderators TL4.
sections in subcollection 서브컬렉션에서 섹션 헤더 사용 허용. 기본값: true

대안

이 플러그인은 Discourse Doc Categories 플러그인에 깊은 영감을 받아(한때 이를 기반으로 하여) 개발되었습니다. Doc Categories 플러그인은 좋은 인덱싱 메커니즘과 훌륭한 표시 방식을 제공하지만, 모든 것이 단일 카테고리에 정리되는 위키 스타일 페이지를 위한 설계였습니다. 마찬가지로, 인덱싱은 별도의 주제에 포맷된 텍스트를 입력하는 데 의존하며, 이는 각각 장단점이 있습니다.

DiscoTOC - automatic table of contents 테마 컴포넌트도 게시물 본문 밖에서 링크를 조직화할 수 있게 하지만, 단일 주제에 제한됩니다.

목적이 단순히 위키 스타일 조직이라면, https://meta.discourse.org/t/discourse-doc-categories/322376이 더 적합할 것입니다. 일부 페이지에만 연결된 주제가 필요할 경우, https://meta.discourse.org/t/discotoc-automatic-table-of-contents/111143이 더 좋습니다.

참고 사항

이것은 제가 소속된 포럼이 Discourse로 마이그레이션하는 것을 지원하기 위해 처음 설계되었습니다. 글쓰기에 초점을 맞춘 포럼인 만큼, 사용자는 다양한 목적으로 별도의 주제를 유지 관리하고 있어, 카테고리 간 주제 링크가 사실상 필수적인 상황이 되었습니다. 이를 돕기 위해, 사용자가 스스로 조직화할 수 있도록 이 플러그인을 만들었습니다.

이것이 플러그인이 아니라 테마 컴포넌트인 또 다른 타임라인이 있습니다. 이 경우, 사용자가 다른 게시물로 가는 URL을 포함하는 div를 입력하여 인덱싱이 이루어집니다. 하지만 도구의 90%를 개발한 후, 이렇게 하는 것이 가치가 없으며 사용자가 작성된 모든 튜토리얼을 건너뛰고 여전히 작동하지 않는 것에 대해 불평할 가능성이 높다는 것을 깨달았습니다. 그래서 그 경로는 포기했습니다. 솔직히 나쁜 해결책은 아니며, 플러그인보다 훨씬 가볍지만, 사용자가 게시물 하나뿐 아니라 여러 게시물에 대해 올바른 포맷을 유지하도록 하는 데 불필요한 부담을 주었을 것입니다.

현재 UI 기능(예: 아이콘)과 권한 시스템에 대해 100% 확신이 서지 않아 #experimental로 표시해 두었습니다. 또한 자동화 단위 테스트를 추가해야 합니다.

21개의 좋아요

FYI: all videos were broken :thinking: (iPad)

1개의 좋아요

Huh, I thought iOS Safari supported WebM…

I’ve swapped out the videos for MP4. Ty!

5개의 좋아요

It’s possible to enable 'public‘ collections like on Discourse Docs?

1개의 좋아요

Sorry if it wasn’t clear, all collections are “public.” All users will see the same collection on the same topic. This plugin is meant to organize topics, not be a kind of private “folder of bookmarks” for users.

5개의 좋아요

Updated the plugin with support for Emojis and Color Squares in sidebar!

https://github.com/Alteras1/discourse-collections/pull/17

5개의 좋아요

정말 매우 인상적입니다. 그리고 문서화도 훌륭하네요! meta.discourse.org에서 문서화가 가장 잘 된 #customization:플러그인으로 이 플러그인을 추천합니다!!

토픽 목록까지 포함하도록 확장하는 것을 고려해 보셨나요?

카테고리별 또는 태그별 링크 모음이 있다면 매우 유용할 것 같습니다. 예를 들어, 특정 그룹을 위한 비공개 카테고리가 있고, 여기에 다른 도구들(예: Google Docs의 몇 가지 폴더, 지방 정부 포털, 관련 채팅 채널, 그룹 공용 메일함 등)이 함께 사용되는 경우가 있습니다. 이 경우 카테고리 관리자가 이를 제어할 수 있다면 이상적일 것입니다.

3개의 좋아요

Thank you very much!

It’s definitely something I’ve considered before, but I don’t think it would fit well with the current design of being a user driven way to organize topics. Not ideal for category/tag level, as it would have to be limited to moderator control. The original use case was to cover linking related topics too big for 1-2 topics, but too small for a tag/category.

Making topic lists display the indexing in the sidebar for categories can be done via Discourse Doc Categories plugin, albeit with a different configuration method. Definitely a hassle having to have two plugins do two very similar things, but I think the original philosophy for each is different enough to warrant the separate approaches.

Adding a compat extension for the Private Topics Plugin is a very cool idea from a user standpoint. I’ll have to consider that…

That just leaves the per-tag level. Making a PR for Discourse Doc Categories (or making a new plugin/TC) for tags is an option tho, but not actively on my mind. Perhaps in the future.

Actually, this would probably work nicely for my use-case. I’m not sure if it is adaptable enough for it though (will play around with it later this week).

Sounds very interesting. What use case do you have in mind?

To regular users, the category with Private Topics enabled would only display their own topics. So I could see this being one of the few places where letting the Collections plugin hoist a collection from the topics level to the category level per user makes sense.

The forum I’m part of actually has a private category for users to use as a personal drafting/testing ground. And they make alot of topics, so user driven topic organization sometimes happen here.

I was really hoping it’s a system of collection where users can create categories and put there topics of their choice, like a gallery. Oh well.

How is this not that?

1개의 좋아요

You can’t create categories is my guess.

이 플러그인의 드래그 앤 드롭 UI를 통해 책의 장과 같은 임의의 토픽(Topics) 시퀀스를 쉽게 만들고 재배열할 수 있어 정말 유용합니다.

컬렉션(Collections)에 이전 <다음 > 같은 순차 내비게이션과 모달(Modal)에서의 페이지네이션(Paging)을 추가하기 위해 테마 컴포넌트를 개발했습니다.

작동하는 저장소는 다음과 같습니다.

4개의 좋아요

오래전부터 필요했던 기능이었어요. 오늘 이 문제를 조사하고 있었는데, 이 부분이 마지막에 필요한 구성 요소인 것 같았어요.

@Alteras ‘컬렉션 만들기’ 모달의 닫기(X) 버튼에서 버그가 발생하고 있어요. 호버와 클릭은 되지만, 페이지를 새로고침할 때까지 모달이 닫히지 않아요.

1개의 좋아요

오, 정말 멋진 개념이네요. 서로 연결된 토픽 게시물을 빠르게 확인할 수 있는 모달을 정말 좋아합니다. 사이드바를 24시간 내내 열어두지 않는 사용자들에게도 컬렉션이 있다는 사실을 알리는 데 도움이 되니까요.

사용자를 해당 토픽으로 리다이렉트하는 대신 게시물 내용을 교체하기로 한 결정에 대해 궁금합니다.

사이드바 없이 토픽을 이동할 수 있도록 타임라인 위에 ‹ PrevNext ›를 사용하는 아이디어를 정말 좋아합니다. 긴 첫 게시물 토픽에서 위로 스크롤할 필요 없이 쉽게 접근할 수 있도록, toc처럼 타임라인에 배치하면 어떨까요? 아니면 단순히 상단/하단 게시물 자체를 꾸미는 것도 좋을 것 같습니다…

괜찮으시다면, 해당 아이디어 중 일부를 플러그인에 직접 추가하는 것을 탐구해보고 싶습니다. 관리자용 추가 사이트 설정과 함께 말이죠. 물론 플러그인을 기반으로 TC(테마 컴포넌트)를 만들어 사용자 맞춤형 기능을 더하는 것에 반대하지 않습니다. TC 작업에 도움이 필요하시면 알려주세요. 현재 표시되는 컬렉션 정보는 DOM을 파싱하지 않고도 service:collection-sidebar 이터 서비스에서 가져올 수 있어야 합니다.

음… 정말 이상하네요. 재현이 되지 않습니다. 최근 플러그인을 업데이트하여 일부 비권장(deprecation) 문제를 해결하는 변경 사항을 넣었기 때문에, 그것이 영향을 미쳤을 수도 있습니다? 플러그인이 최신 버전으로 업데이트되어 있는지 확인해 주세요. 또한 설정 세부 사항(브라우저, 모바일/데스크톱, 디스커스 버전)도 공유해 주세요.

3개의 좋아요

저는 오래된 버전을 쓰고 있었네요. 아마도 그래서였나 봅니다. 11월 6일 커밋을 그대로 쓰고 있었거든요.
ETA: 무시해 주세요. 업데이트로 해결되었습니다.

1개의 좋아요

빠른 반응이 좋습니다. 이는 신중하게 설계된 결과라기보다는, 모달이 콘텐츠에 초점을 맞춘 슬라이드쇼 형태로 팝업되는 것이 제 초기 비전입니다.

여기서 핵심 기회는 항목의 임의적 순서화이며, 시퀀스가 타임라인에 종속되지 않는 것이 분명합니다. 따라서 제 초기 목표는 사용자 프로필 표시에서와 마찬가지로 코어의 수평 스크롤 메뉴 동작을 재사용하는 것입니다. 예를 들어, (정적인) 컬렉션 제목과 설명(존재하는 경우) 아래에 섹션 헤더와 그 아래에 해당 토픽 제목이 두 줄로 나란히 배치되어 수평으로 스크롤/스와이프 가능하도록 하는 방식입니다.

모달 내부에는 왼쪽에서 빠르게 슬라이드 인/아웃되는 접을 수 있는 세로 디스플레이가 포함되며, 이는 모달 밖의 왼쪽 사이드바 동작을 재현합니다. 모달에서 페이지 위로 올라오는 요소가 중앙 정렬된 비모달 뷰에서 보고 경험하는 것과(내비게이션 요소를 포함하여) 대부분 비슷해 보이고 느껴지기를 원하지만, 단순히 조리된 콘텐츠를 둘러싸고 있을 뿐입니다.

제공된 서브컬렉션(Subcollections)을 모달에서도 표시하도록 재사용하는 작업을 진행 중입니다. 이는 슬라이더 내부의 iframe으로 외부 링크 시퀀스를 표시할 수 있으며, 내부 콘텐츠도 재사용할 수 있습니다(현재 토픽은 하나의 컬렉션에서만 사용될 수 있기 때문입니다).

좋습니다, 진행해 보세요!

이 TC(토픽 컬렉션)를 적응형으로 변경하거나, 문서 카테고리 :page_with_curl:에 이러한 유형의 내비게이션과 디스플레이를 제공하는 것도 고려하고 있습니다.

2개의 좋아요

이제 정상적으로 작동합니다(위 업데이트에 대한 안내에 감사드립니다). 사용하면서 발견한 몇 가지 사항을 공유합니다:

  1. 사용자가 허용된 그룹에 속하지 않은 경우에도 ‘컬렉션’ 버튼이 표시됩니다. 컬렉션을 생성하려고 하면 내부 서버 오류가 발생하며, 이는 모달 창에 빨간색 바 형태로 우아하게 표시됩니다.
  2. 컬렉션 사이드바 하단의 버튼은 원래의 ‘컬렉션 생성’ 옵션을 제공합니다. 컬렉션을 관리하려면 원래 게시물에 있는 버튼을 사용해야 하며, 컬렉션 사이드바의 버튼에서 바로 ‘관리’ 옵션을 사용할 수 있다면 매우 유용할 것입니다.
  3. 컬렉션과 하위 컬렉션의 권한을 분리할 수 있을까요? 하위 컬렉션은 모든 연결된 주제에 광범위한 영향을 미치는 컬렉션과 달리, 개인이 자신의 주제를 정리하고 싶은 경우에 immensely 유용할 수 있습니다.

마지막으로, 이 플러그인은 두 개의 컬렉션이 동일한 주제를 연결하는 경우를 어떻게 처리하나요? 두 개의 하위 컬렉션인 경우는요? 이는 컬렉션 기능을 좋아하는 사용자들이 겹치는 목표를 더 쉽게 관리할 수 있도록 제 3번 제안에 더 기울게 만듭니다.

수정: #1은 허용된 그룹이 소유하지 않은 주제를 수정할 수 있도록 하는 컬렉션 수정 관련 오류임을 깨달았습니다. 그래도 더 나은 오류 메시지는 유용할 것입니다!

1개의 좋아요

따라서 허용된 그룹에 의한 컬렉션 수정 설정은 스태프와 권한이 매우 높은 사용자, 즉 위키를 유지보수하는 헬퍼를 위한 것입니다. 하지만 오류를 수정해야 할 것 같습니다.

허용된 그룹에 의한 컬렉션 수정이 충분히 높게 설정되어 있다면, 컬렉션과 서브컬렉션은 토픽 소유자(그리고 스태프)에 의해서만 생성/수정되어야 합니다. 토픽 소유자는 컬렉션이나 서브컬렉션에 일반 사용자를 유지보수자로 추가할 수 있으며, 그들은 자신의 토픽을 추가할 수 있습니다. 둘을 분리해야 할 만큼 설정이 어떻게 되어 있는지 정확히 알 수 없습니다.

두 개의 컬렉션은 같은 토픽을 연결할 수 없습니다. 이미 컬렉션에 있는 토픽을 연결하려고 하면 오류가 표시되어야 합니다. 마찬가지로, 토픽당 하나의 서브컬렉션만 허용됩니다. 이는 모든 컬렉션이 공개되어 있으며 토픽 소유자가 만들어야 하기 때문입니다.


음… 공개적이거나 비공개로 볼 수 있는 북마크 폴더만 있는 별도 플러그인을 만드는 것이 더 나을 것 같은 느낌이 듭니다… “개인 컬렉션?” “북마크 라이브러리?” “토픽 플레이리스트?” 아니면 이 플러그인을 확장하는 것도 방법이죠. 하지만 두 기능 사이의 기반 코드와 철학은 꽤 다를 것입니다… "컬렉션"이라는 이름이 꽤 포괄적이고 여러 가지 방식으로 해석될 수 있다는 점이 다소 아쉬울 뿐입니다.

3개의 좋아요