Masonry 이미지 갤러리

:warning: 이 기능은 이제 Discourse 코어에 기본으로 포함되어 있습니다. Discourse의 이미지 그리드에 관한 공지를 참조하세요.

이 테마 컴포넌트는 사용자 정의 가능한 순서로 반응형 마소너리(Masonry) 스타일 이미지 갤러리를 추가합니다.

데스크톱 뷰:

모바일 뷰:

이미지를 클릭하면 기본 라이트박스 뷰어에서 열립니다.

그리드 아이콘을 클릭한 다음 이미지를 추가하여 갤러리를 만들 수 있습니다. 업로드된 이미지를 먼저 선택한 후 아이콘을 클릭하는 방식으로도 작동합니다.


:thinking: → 사용자 정의 가능한 순서(customizable ordering)라는 것은 무슨 뜻인가요?

이미지는 가로(왼쪽에서 오른쪽으로) 또는 세로 방향으로 정렬할 수 있습니다. 가로 정렬은 잡지, 만화책 또는 유사한 매체의 이미지에 이상적입니다. 또한 라이트박스 뷰에서 '다음’을 누르면 올바른 이미지가 표시됩니다.

아래 이미지는 그 차이를 보여줍니다. 오른쪽 이미지는 가로 정렬을 사용하고 있습니다.

기본 정렬은 가로이지만 설정에서 변경할 수 있습니다. 또한 컴포저에서 속성에 vertical/horizontal (v/h도 작동합니다)을 추가하여 특정 갤러리의 정렬을 변경할 수도 있습니다. 예: <div data-masonry-gallery="vertical">.


:face_with_monocle: → 이 컴포넌트는 Joe의 Tiles 이미지 갤러리와 매우 유사해 보입니다. 클론인가요? 아니면 어떤 관계인가요?

저는 Tiles를 꽤 오랫동안 사용해 왔고 매우 좋아합니다. 네, 분명히 그 프로젝트에 큰 영향을 받았다고 할 수 있습니다 :wink: . 하지만 많은 부분이 다르므로 공유하기로 결정했습니다. 아래는 일부 차이점에 대한 목록입니다.

  • 의존성 없음.
  • jQuery 없음.
  • 가로 정렬 지원.
  • 작은 이미지가 레이아웃을 깨뜨리지 않음.
  • 편집 시 올바른 미리보기 제공.
  • 갤러리를 추가할 때 줄바꿈과 함께 여러 행을 선택할 수 있음.
  • decorateCooked 대신 decorateCookedElement API 함수 사용.

제안 및 개선 사항 환영합니다!

:information_source: 작은 이미지는 갤러리에 표시되지만 라이트박스 뷰는 생성되지 않습니다. 이는 Discourse의 기본 동작입니다. 그러나 설정의 max image width와 max image height를 수정하여 작은 이미지로 간주되는 기준을 변경할 수 있습니다. 기본값은 각각 690px와 500px입니다.

:information_source: 이 컴포넌트는 API 버전 0.8.42를 사용합니다. 2020년 5월 이후로 업데이트하지 않았다면, 이 컴포넌트를 사용하려면 업데이트가 필요합니다.

41개의 좋아요

훌륭한 컴포넌트네요! 타일 이미지 갤러리를 대체할 수 있는 방법을 꽤 오래 찾아보고 있었거든요!

모든 이미지에 적용할 수 있는 자동 갤러리 옵션을 추가하는 것에 대해 어떻게 생각하시나요? 기본적으로, 다른 요소 없이 서로 인접한 이미지가 3개 이상일 때 마리오네트 갤러리 뷰가 자동으로 활성화되는 방식입니다. (Tiles Image Gallery가 auto-tiles 브랜치에서 유사한 시도를 한 적이 있습니다.)

5개의 좋아요

감사합니다!

네, 해당 브랜치를 봤습니다. 정말 흥미로운 기능이네요. Tiles에서 구현된 방식이 이 컴포넌트에서도 동작할지, 아니면 다른 코드가 필요한지는 모르겠지만, 꼭 확인해 보겠습니다!

3개의 좋아요

사이트에 Tiles가 설치되어 있고 Masonry로 전환하려는 경우, 기존 갤러리 게시물 모두에서 갤러리 div의 속성을 data-masonry-gallery로 변경해야 합니다. 이는 기존 갤러리 게시물이 여전히 올바르게 렌더링되기를 원하지만 두 컴포넌트를 동시에 설치하고 싶지 않을 때 적용됩니다.

저도 제 사이트에서 이 전환을 수행해 보았기 때문에, 어떻게 하면 되는지 공유해 보려 합니다. 누군가에게 도움이 될 수 있기를 바랍니다.

가장 직관적인 방법은 게시물을 수동으로 편집하는 것입니다. 변경해야 할 게시물이 많지 않다면 이 방법이 작동하지만, 모든 게시물을 찾는 것이 여전히 번거로울 수 있습니다. 하지만 걱정하지 마세요, data explorer가 구원투수로 나섭니다! 다음 SQL을 실행하면 필요한 결과를 정확히 얻을 수 있습니다.

SELECT user_id, topic_id, post_number
FROM posts p
WHERE raw ~~ '%data-theme-tiles%'

수동으로 편집하기에는 항목이 너무 많다면 rake를 사용하여 모든 문자열을 교체할 수 있습니다. 이를 위해 서버에 SSH로 로그인한 다음 다음을 실행해야 합니다:

cd /var/discourse
./launcher enter app
rake posts:remap["data-theme-tiles","data-masonry-gallery"]

해당 솔루션에 대해 더 자세한 내용은 이 게시물에서 확인할 수 있습니다. rake posts:remap 명령어에 대한 해당 게시물의 경고 사항을 꼭 확인하세요:

이 작업을 수행하는 다른 방법들도 아마 있을 것입니다. 예를 들어, 원한다면 컴포넌트 코드를 수정하여 두 속성을 모두 찾도록 할 수도 있습니다.

5개의 좋아요

훌륭한 작업입니다. 감사합니다.

3개의 좋아요

정말 훌륭하고 훨씬 사용자 친화적일 것 같습니다! 이 기능에 대한 계획이 있나요?

3개의 좋아요

해당 기능은 거의 완성 단계입니다. Tiles의 코드를 수정했는데, 이제 몇 가지 더 테스트(서로 다른 시나리오/사이트 수정 사항)를 해야 합니다. 곧 시간을 내서 진행해 보려는데, 일주일 이내에 추가될 것 같습니다. 시간이 좀 더 많으면 좋겠네요 :slight_smile: .

5개의 좋아요

훌륭해요, 감사합니다! 기대하고 있겠습니다 :slight_smile:

2개의 좋아요

훌륭한 TC를 만들어 주셔서 정말 감사합니다. :smiling_face_with_three_hearts:

이제 문제의 “Tiles Image Gallery” TC를 완전히 대체할 수 있게 되었습니다. :tada: :confetti_ball: :confetti_ball: :confetti_ball:

@Heddson
궁금한 점이 있어서 여쭤봅니다. "Slick Image Gallery"를 대체할 유사한 TC도 만들 계획이 있으신가요? :kissing_heart:

"Slick Image Gallery"는 "Tiles Image Gallery"와 유사한 문제점들, 예를 들어 작은 이미지가 레이아웃을 깨뜨리는 문제나 미리보기가 갤러리를 올바르게 로드하지 못하는 문제 등을 가지고 있습니다.

3개의 좋아요

지금은 그럴 계획이 없습니다. 나중에 시간이 나면 할 수도 있겠죠. 만약 작은 수정 사항이라면, 풀 리퀘스트를 올릴 수도 있을 것 같습니다.

1개의 좋아요

안녕, ‘자동 모드’ 작업할 시간 있어?

자동 갤러리 기능이 포함된 컴포넌트를 업데이트했습니다. 업데이트 후 설정에서 활성화할 수 있습니다.

카테고리를 지정하고, 갤러리가 자동으로 생성되도록 필요한 최소 이미지 수를 설정할 수도 있습니다(이때 이미지 사이에 다른 요소나 빈 줄이 없어야 합니다).

4개의 좋아요

대단하네요! 바로 가서 해볼게요!

1개의 좋아요

이상한 점을 발견하면 알려 주세요!

완벽하게 작동해요! :+1:

1개의 좋아요

그냥 이거 바로 잘 동작한다고 말하고 싶었어요. 다른 두 컴포넌트는 계속 문제가 있어서, 이거 정말 최고예요. :partying_face:

2개의 좋아요

정말 좋은 소식입니다!

그리고 grid (또는 g) 속성도 추가했습니다. 이 속성은 그리드 스타일(컴포넌트 이름 때문에 :grinning_face_with_smiling_eyes:)을 설정하며, 모든 행의 높이를 고정(행 내 가장 높은 이미지의 높이에 맞춤)합니다. 높이가 거의 동일한 이미지들을 다룰 때 유용할 수 있습니다.

@Heddson

현재 2.8 안정판(Stable)을 테스트 중입니다. 특정 카테고리가 정의되어 있을 때 auto enabled categories 기능이 작동하지 않습니다. 카테고리 슬러그(slug)와 카테고리 ID를 추가해 보았으나, auto enabled categories를 비워 두면 정상적으로 작동합니다.

음, 좀 이상하네요. 제 2.9.0.beta1에서는 잘 동작하는데, 이건 2.8 안정판과 거의 동일합니다. 추가해야 하는 것은 카테고리 이름이에요. 하지만 제가 뭔가 찾아볼게요.

정보 주셔서 감사합니다!

2개의 좋아요

아니야, 체크박스를 설정하는 걸 잊었네 :man_facepalming:

2개의 좋아요