Topic List Previews (legacy)

썸네일은 이제 코어에서 생성됩니다. 원본 이미지보다 큰 크기의 썸네일은 생성되지 않습니다.

이 부분을 생각해보면, 원하시는 것은 가변적인 썸네일 크기인데, 그렇게 하면 화면이 다소 어지러워 보일 수 있습니다. 현재는 이 기능이 지원되지 않습니다.

타협점을 찾아 썸네일 크기를 줄이면, 낮은 해상도의 썸네일이 덜 거슬리게 보일 것입니다.

1개의 좋아요

일부 썸네일 문제의 원인이 될 수 있지만, 다른 썸네일 문제까지 설명하지는 못합니다. 오늘 게시된 주제와 TLP 플러그인 업그레이드 전에 게시되어 수 주 전으로 거슬러 올라가는 주제들이 있으며, 이 중에는 2000px 이상 폭의 대형 이미지 업로드가 포함되어 있습니다. 그런데 이 이미지들이 프론트 페이지에서 50px와 100px의 매우 작은 썸네일을 생성하고 있습니다.

아니요, 우리는 설정에 따라 폭과 해상도는 단일 표준으로 고정하고 높이는 가변적으로 처리되기를 원합니다:

topic_list_thumbnail_width는 284입니다
topic_list_thumbnail_height는 0입니다
topic_list_thumbnail_resolution_level는 4입니다 (기본값인 2가 정확하지 않아 4를 사용해야 했습니다… 기본값 2로 두면 1024px 썸네일이 생성되었는데, 400px 크기가 필요했고 이는 4에 해당하는 것 같습니다)

제가 이해한 바로는 이 설정들은 다음과 같습니다:

  1. 이미지 썸네일은 400px 폭으로 생성됩니다.
  2. 타일은 284px 폭으로 이미지를 표시하며, 높이는 원본 이미지 업로드 비율에 따라 가변적입니다.

그러나 포럼은 일부 주제에서 50px 또는 100px 폭의 이미지를 무작위로 서빙하는 것 같습니다… 그리고 이러한 이미지들은 항상 284px인 우리 사이트의 타일 프레임 내에서 서빙되므로, 더 작은 썸네일이 타일을 채우기 위해 늘려지면서 흐릿해 보입니다.

2개의 좋아요

Firefox에서 /latest.json 출력을 확인하여 어떤 섬네일이 저장되고 있는지 살펴보세요.

페이지에 표시되는 섬네일의 크기를 브라우저 검사기를 통해 확인해 볼 수도 있습니다.

이상한 점이 보이면 알려주세요.

아, 폭 설정은 타일(Tiles)에서는 관련이 없습니다. (낮추거나 매우 높게 올려보세요) 해상도만 중요합니다.

아마도 타일 뷰가 당신에게 적합한 유형이 아닐 수도 있겠네요.

타일 뷰에서 저해상도 섬네일이 표시되는 것을 방지해야 할까요? 즉, 아예 표시하지 않는 것입니다. 50 x 50인 것을 모두 필터링하는 것도 고려해 볼 수 있습니다.

1개의 좋아요

마침내 정확히 무슨 일이 일어나고 있는지 파악한 것 같습니다… 제가 보고 있는 내용 기준으로 가장 가능성이 높은 추측은 다음과 같습니다:

/latest.json에서 TLP가 thumbnails에 접근하는 방식에 문제가 있는 것 같습니다. thumbnails는 주제별로 항상 동일한 수의 요소를 포함하지 않습니다. 섬네일 생성에 사용되는 원본 주제 이미지의 실제 크기가 1024px 미만인 경우, 해당 섬네일 크기가 생성되지 않으며, 그 크기의 섬네일이 thumbnails 배열에 요소/항목으로 존재하지 않습니다. thumbnails에서 요소가 누락되면 플러그인 카운트가 1만큼 어긋나서 잘못된 섬네일 크기가 반환됩니다. 원본 주제 이미지의 폭이 800px 미만인 경우, 1024와 800 폭이 모두 생성되지 않으며, 플러그인 카운트가 2만큼 어긋나서 더 작은 잘못된 섬네일이 반환됩니다. :slight_smile:

플러그인은 thumbnails를 순회하며 사전에 결정된 요소로 이동하고 있는 것으로 보이지만, 주제 목록 해상도 사이트 설정에 해당하는 특정 max_width를 가진 요소를 찾아야 합니다. 이렇게 하면 latest.json의 thumbnails 배열 길이가 주제마다 달라져도 올바른 섬네일 폭을 반환할 수 있습니다.

이것은 우리 포럼의 일부 주제 타일이 50px 폭으로 표시되고, 일부는 100px 폭으로 표시되는 반면, 대부분의 타일은 올바른 400px 폭으로 표시되었던 이유를 설명합니다… 폭이 더 작았던 주제들은 원본 이미지의 폭이 1024px 미만이거나 800px 미만이었기 때문입니다.

이해가 되시나요?

또한 타일에 284px 폭이 필요하므로 register_topic_thumbnail_size [300, 300]을 추가해 주실 수 있을까요? 300px 섬네일을 로드하는 것이 400px 섬네일을 로드하는 것보다 우리에게 더 좋습니다. 이상적으로는 정확히 필요한 폭을 생성하는 것이 좋겠지만, 해당 기능이 공식 출시되면 Theme Component로 전환하여 자체 커스텀 폭을 추가할 가능성이 높습니다.

플러그인과 컴포넌트 모두에 대한 작업에 감사드립니다! :clap:

죄송합니다. 아직 문제가 무엇인지 이해하지 못하겠습니다.

제시하신 해결책은 관련이 없습니다. 800x800보다 높은 해상도의 섬네일을 생성하지 않기 때문입니다. 배열 내 가장 높은 해상도의 항목은 단순히 원본 이미지일 뿐입니다.

어쨌든 저해상도 이미지에 대해 우려하고 계신 줄 알았는데, 왜这么大的 이미지에 대한 예를 들어 주셨는지 궁금합니다. 이 큰 이미지가 50x50 수준으로 표시되고 있다는 말씀이신가요?

네, 물론 섬네일 배열의 길이는 가변적입니다. 알고리즘은 이를 처리하도록 설계되어 있습니다. 버그가 있을 수는 있지만, 섬네일 목록의 길이가 가변적이라는 사실은 현재 코드의 암묵적 전제 조건입니다.

선택한 섬네일 해상도 레벨을 선택하고, 필요하면 수정합니다. 예:

  • 화면이 레티나로 식별되면, 결과를 더 높은 해상도로 만들기 위해 선택을 한 단계 올립니다.
  • 해당 해상도가 사용할 수 없으면 다음으로 높은 해상도를 선택합니다.

말씀드린 것처럼, 50x50만 사용할 수 있다면 타일(Tiles)에서 섬네일을 완전히 숨기는 것이 더 나을 수도 있습니다.

사용자 정의 해상도를 추가하시려면 당분간 플러그인을 포크(fork)해 주십시오. 섬네일은 의도적으로 서로 2배의 해상도 관계로 설정되어 있습니다. 당신만을 위해 변경하면 모든 사용자에게 디스크 공간 사용량이 증가하게 됩니다. 원본과 아주 정확하게 일치시키는 것이 그렇게 중요하다고 생각하지 않습니다. 이는 단지 섬네일 미리보기일 뿐이니까요. 다만, 일반적인 타일 사용 사례에 더 잘 맞는 해상도를 가질 이유가 있을 수도 있습니다. 한번 생각해 보겠습니다.

1개의 좋아요

네, 400x400과 200x200 레벨이 사용 가능한데도 불구하고 큰 이미지가 50x50 레벨로 표시되는 여러 토픽을 확인했습니다. 이러한 토픽들 사이에서 제가 발견한 유일한 공통점은 업로드된 원본 이미지의 폭이 1024px 미만이거나 800px 미만이었기 때문에, 해당 크기가 섬네일 배열(thumbnails array)에서 누락된다는 점이었습니다. 이로 인해 플러그인이 섬네일에 접근하는 방식이 섬네일 배열의 길이와 어떻게든 관련이 있다고 추측하게 되었습니다.

사용자 정의 크기를 추가하지 말라는 말씀은 완전히 이해합니다. 자세한 설명 감사합니다 :+1:

1개의 좋아요

아, 네. 좋은 정보네요. 버그가 있을 수도 있겠어요. 시간이 나면 확인해볼게요.

2개의 좋아요

저희는 이 기능을 꼭 사용하겠습니다. 특정 시간 썸네일 크기를 정확히 생성할 수 있으면 좋겠거든요!

1개의 좋아요

문제가 있는 전체 크기 이미지를 개인 메시지로 보내주시면 테스트해 보겠습니다. 또한 설정해 두신 해상도 수준과 문제가 발생하는 기기도 확인해 주세요.

2개의 좋아요

완료했습니다! 확인해 주셔서 감사합니다 @merefield

1개의 좋아요

나만 그런 건지 모르겠지만, 테마 컴포넌트를 사용했을 때 모바일에서 섬네일이 작동하지 않고 있습니다. 토픽 섬네일 테마 컴포넌트에서는 여전히 정상적으로 작동하므로 버그인 것 같습니다. 참고로 콘솔에서는 관련된 내용을 확인하지 못했습니다.

2개의 좋아요

재현할 수 없으며, 최신 테스트는 모두 통과했습니다.

1개의 좋아요

모든 분, 이번 주말에 업그레이드 기간이 마감됩니다.

방금 Plugin과 TC에 대해 간단한 점검을 해보았는데, 모두 정상적으로 보입니다.

일요일 이후에는 업그레이드를 자제해 주세요. 다음 달까지는 깨진 변경 사항에 대한 수정을 보장하지 않습니다.

1개의 좋아요

일부 문제 해결 작업을 진행한 결과, 이벤트 플러그인과 충돌이 일어나는 것 같습니다. 재현이 가능한가요?

2개의 좋아요

개인 메시지로 더 자세히 설명을 드렸지만, 기본적으로 TLP 사용자 지정 해상도 크기와 관련된 문제가 있는 것 같습니다. 폭이 1024px 이하인 이미지를 업로드하면 1024x1024 섬네일이 생성되지 않습니다. 폭이 800px 이하인 이미지를 업로드하면 800x800 섬네일이 생성되지 않습니다. 이는 지금까지 예상했던 동작입니다.

예상하지 못한 점은 해상도 수준 2가 실제로 400x400 크기를 로드하지 않고 다음을 로드한다는 것입니다:

  1. 원본 이미지 업로드 폭이 1024px를 초과하는 모든 주제에 대해 1024x1024 섬네일
  2. 원본 이미지 업로드 폭이 1024px 이하이지만 800px를 초과하는 모든 주제에 대해 800x800 섬네일
  3. 원본 이미지 업로드 폭이 800px 이하이지만 400px를 초과하는 모든 주제에 대해 400x400 크기 섬네일
  4. 원본 이미지 업로드 폭이 400px 이하이지만 100px를 초과하는 모든 주제에 대해 100x100 크기 섬네일

해상도 수준 2는 모든 주제에 대해 400x400 크기 섬네일만 로드할 것이라고 생각했습니다.

1개의 좋아요

David/Nick,

OK, 알고리즘을 다시 살펴봤습니다. 해상도를 선택하는 데 사용하던 알고리즘에 개선점을 반영했습니다.

이 변경사항은 TC와 플러그인에 배포되었습니다.

참고로 새로운 해상도 스케일은 0~6이며, 0은 원본 이미지, 1은 그 다음으로 높은 해상도, 6은 가장 낮은 해상도를 의미합니다.

플러그인/TC를 업데이트해 보시고, 이 문제가 해결되는지 알려주세요.

@davidkingham, @internet_cookie 이 문제를 알려주셔서 감사합니다.

(David, 이것이 당신이 보고 있는 문제인 것 같습니다. 하지만 제 추측일 수도 있습니다.)

2개의 좋아요

로브님, 감사합니다. 불행히도 제 문제는 해결되지 않았고, 여전히 이벤트 플러그인과 충돌이 발생하고 있습니다. 제 운영 사이트에서 모바일 환경에 썸네일이 표시되지 않는 것을 확인할 수 있지만, 개발 사이트에서는 이벤트를 비활성화했을 때 정상적으로 동작합니다.

2개의 좋아요

TLP 플러그인을 포함하여 두 플러그인이 어떻게 함께 작동할 수 있었는지 이해하기 어렵습니다. 두 플러그인 모두 모바일 주제 목록 항목 템플릿을 오버라이드하고 있기 때문입니다. 이는 치명적인 문제입니다. 당분간 둘 중 하나를 선택해야 합니다.

장기적으로 템플릿 오버라이드를 피하기 위해 CSS/플러그인 아웃렛만 사용하는 버전을 실험해 볼 수 있지만, 현재로서는 생계 유지에 필수적인 최우선 순위는 아닙니다.

그러나 TLP가 타일(Tile)을 렌더링하는 데 필요한 오버라이드의 범위는 아웃렛만으로는 불가능할 수 있습니다.

1개의 좋아요

아니, 드디어 이벤트를 다시 볼 수 있게 될 줄 알았는데 아쉽네요, 하하! 토피 섬네일(Topic Thumbnails) 테마 구성 요소가 이벤트 플러그인과 함께 작동한다는 점이 좀 궁금하네요. 결론에 의문을 제기하는 건 아니고, 그냥 도움을 드리고 싶어서요. 그러면 템플릿을 오버라이드하는 거 아닌가요? 명확히 말씀드리면, 저는 캘린더 플러그인 속 discourse 팀의 것이 아니라 pavilion의 이벤트 플러그인에 대해 이야기하고 있습니다.

2개의 좋아요

사용하는 레이아웃은 템플릿 오버라이드를 요구하지 않기 때문입니다. TLP에서는 더 많은 요소를 배치하고 있으며, 그중 일부는 중첩된 div 안에 있으므로 동일한 방식으로 작동하지 않습니다. 따라서 템플릿 오버라이드에 의존해야 합니다. 일반적으로 이는 리프 노드이므로 그다지 위험하지 않습니다.

2개의 좋아요