# Topic List Previews (legacy)

**URL:** https://meta.discourse.org/t/topic-list-previews-legacy/101646
**Category:** Plugin
**Tags:** deprecated
**Created:** [11월 9, 2018, 3:56오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646 "2018-11-09T03:56:38Z")
**Posts on this page:** 20
**Page:** 17

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 15, 2020, 7:54오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1268 "2020-08-15T07:54:55Z")

</div>

지원 기간(공지에 명시된 정책에 따라 매월 첫 5일) 외에는 업데이트를 하지 마세요. 지원 기간 외 업데이트를 진행할 경우, 먼저 비프로덕션 환경에서 업그레이드를 테스트해 보시는 것을 권장합니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 15, 2020, 8:52오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1269 "2020-08-15T08:52:30Z")

</div>

그럼에도 불구하고, 이번 기회에 플러그인과 TC 모두에 대한 수정 사항을 반영했습니다 :).

TC: [FIX: adopt new router service format · merefield/discourse-tc-topic-list-previews@7a2f539 · GitHub](https://github.com/merefield/discourse-topic-list-previews-theme/commit/7a2f5399fb9387507aeeb221b48aeb99a3ed51b9)

플러그인: [https://github.com/paviliondev/discourse-topic-previews/pull/160](https://github.com/paviliondev/discourse-topic-previews/pull/160)

이제 두 가지 모두 최신 tests-passed 환경에서 정상적으로 작동해야 합니다.

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [8월 15, 2020, 12:08오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1270 "2020-08-15T12:08:30Z")

</div>

이 문제를 수정해 주셔서 감사합니다, @merefield. 저도 방금 보고하려던 참이었습니다. 지난밤에 재빌드했는데, 그 후 제 사이트의 모든 게시물을 볼 수 없게 되었습니다. 비공식 플러그인을 비활성화해 보니 TLP뿐만 아니라 다른 플러그인들도 동일한 문제를 겪고 있었습니다.

이 플러그인들도 같은 문제가 있을 수 있으니 확인해 주세요. 아래 플러그인들을 비활성화해야 다시 게시물을 볼 수 있었습니다:

> **[GitHub - paviliondev/discourse-news: Adds a news stream to your Discourse instance](https://github.com/paviliondev/discourse-news)**
>
> Adds a news stream to your Discourse instance

> **[GitHub - paviliondev/discourse-ratings: A Discourse plugin that lets you use topics to...](https://github.com/paviliondev/discourse-ratings)**
>
> A Discourse plugin that lets you use topics to rate things

> **[GitHub - paviliondev/discourse-layouts: A Discourse plugin that allows you to create...](https://github.com/paviliondev/discourse-layouts)**
>
> A Discourse plugin that allows you to create custom layouts.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 15, 2020, 12:10오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1271 "2020-08-15T12:10:34Z")

</div>

현재 지원 기간이 종료되었지만, 지원 기간이 다시 시작되면 해당 프로젝트의 주요 유지보수 담당자들이 최소한으로 검토해 줄 것입니다.

Production을 너무 자주 재빌드하고 싶은 유혹을 참으세요. 할 수 있다는 뜻이 해야 한다는 뜻은 아니니까요 🙂

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [8월 15, 2020, 12:12오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1272 "2020-08-15T12:12:14Z")

</div>

저항해 보겠습니다. 😇

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 15, 2020, 12:13오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1273 "2020-08-15T12:13:32Z")

</div>

그리고 부득이하게 빌드를 수정해야 한다면, 반드시 스테이징 환경에서 하세요. 사실 스테이징 환경을 하나 구축하는 것만으로도 프로덕션 업그레이드를 할 틈이 없을지도 모릅니다 😉

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [8월 19, 2020, 6:37오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1274 "2020-08-19T06:37:09Z")

</div>

이 플러그인에는 기능상 문제가 없습니다. 토픽 목록 썸네일이 정상적으로 작동하는 것을 확인할 수 있습니다. 하지만 오늘 로그에서 아래 내용을 발견했습니다(로그에 있는 유일한 에러입니다). 그래서 보고합니다. “Solved” 플러그인과 충돌인 것 같습니다. 이 두 플러그인을 모두 설치해 두었다면 재현할 수 있습니다. 토픽을 생성하고 해결책으로 선택하면 500 에러가 발생할 수 있습니다.

![image](https://cdck-file-uploads-global.s3.dualstack.us-west-2.amazonaws.com/meta/optimized/3X/6/8/687fc8f8dc1681c3aa8165e77b0f7978d3ed9df9_2_690x17.png)

> **Log**
>
> ```
> plugins/discourse-topic-previews/plugin.rb:61:in `block (2 levels) in activate!'
> lib/discourse_event.rb:14:in `block in trigger'
> /usr/local/lib/ruby/2.6.0/set.rb:338:in `each_key'
> /usr/local/lib/ruby/2.6.0/set.rb:338:in `each'
> lib/discourse_event.rb:13:in `trigger'
> plugins/discourse-solved/plugin.rb:160:in `block in accept_answer!'
> lib/distributed_mutex.rb:33:in `block in synchronize'
> lib/distributed_mutex.rb:29:in `synchronize'
> lib/distributed_mutex.rb:29:in `synchronize'
> lib/distributed_mutex.rb:14:in `synchronize'
> plugins/discourse-solved/plugin.rb:81:in `accept_answer!'
> plugins/discourse-solved/plugin.rb:222:in `accept'
> actionpack (6.0.3.2) lib/action_controller/metal/basic_implicit_render.rb:6:in `send_action'
> actionpack (6.0.3.2) lib/abstract_controller/base.rb:195:in `process_action'
> actionpack (6.0.3.2) lib/action_controller/metal/rendering.rb:30:in `process_action'
> actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:42:in `block in process_action'
> activesupport (6.0.3.2) lib/active_support/callbacks.rb:112:in `block in run_callbacks'
> app/controllers/application_controller.rb:340:in `block in with_resolved_locale'
> i18n (1.8.5) lib/i18n.rb:313:in `with_locale'
> app/controllers/application_controller.rb:340:in `with_resolved_locale'
> activesupport (6.0.3.2) lib/active_support/callbacks.rb:121:in `block in run_callbacks'
> activesupport (6.0.3.2) lib/active_support/callbacks.rb:139:in `run_callbacks'
> actionpack (6.0.3.2) lib/abstract_controller/callbacks.rb:41:in `process_action'
> actionpack (6.0.3.2) lib/action_controller/metal/rescue.rb:22:in `process_action'
> actionpack (6.0.3.2) lib/action_controller/metal/instrumentation.rb:33:in `block in process_action'
> activesupport (6.0.3.2) lib/active_support/notifications.rb:180:in `block in instrument'
> activesupport (6.0.3.2) lib/active_support/notifications/instrumenter.rb:24:in `instrument'
> activesupport (6.0.3.2) lib/active_support/notifications.rb:180:in `instrument'
> actionpack (6.0.3.2) lib/action_controller/metal/instrumentation.rb:32:in `process_action'
> actionpack (6.0.3.2) lib/action_controller/metal/params_wrapper.rb:245:in `process_action'
> activerecord (6.0.3.2) lib/active_record/railties/controller_runtime.rb:27:in `process_action'
> actionpack (6.0.3.2) lib/abstract_controller/base.rb:136:in `process'
> actionview (6.0.3.2) lib/action_view/rendering.rb:39:in `process'
> rack-mini-profiler (2.0.4) lib/mini_profiler/profiling_methods.rb:104:in `block in profile_method'
> actionpack (6.0.3.2) lib/action_controller/metal.rb:190:in `dispatch'
> actionpack (6.0.3.2) lib/action_controller/metal.rb:254:in `dispatch'
> actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:50:in `dispatch'
> actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:33:in `serve'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:49:in `block in serve'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `each'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'
> actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:834:in `call'
> railties (6.0.3.2) lib/rails/engine.rb:527:in `call'
> railties (6.0.3.2) lib/rails/railtie.rb:190:in `public_send'
> railties (6.0.3.2) lib/rails/railtie.rb:190:in `method_missing'
> actionpack (6.0.3.2) lib/action_dispatch/routing/mapper.rb:19:in `block in <class:Constraints>'
> actionpack (6.0.3.2) lib/action_dispatch/routing/mapper.rb:48:in `serve'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:49:in `block in serve'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `each'
> actionpack (6.0.3.2) lib/action_dispatch/journey/router.rb:32:in `serve'
> actionpack (6.0.3.2) lib/action_dispatch/routing/route_set.rb:834:in `call'
> lib/middleware/omniauth_bypass_middleware.rb:68:in `call'
> rack (2.2.3) lib/rack/tempfile_reaper.rb:15:in `call'
> rack (2.2.3) lib/rack/conditional_get.rb:40:in `call'
> rack (2.2.3) lib/rack/head.rb:12:in `call'
> lib/content_security_policy/middleware.rb:12:in `call'
> lib/middleware/anonymous_cache.rb:336:in `call'
> rack (2.2.3) lib/rack/session/abstract/id.rb:266:in `context'
> rack (2.2.3) lib/rack/session/abstract/id.rb:260:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/cookies.rb:648:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/callbacks.rb:27:in `block in call'
> activesupport (6.0.3.2) lib/active_support/callbacks.rb:101:in `run_callbacks'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/callbacks.rb:26:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/actionable_exceptions.rb:17:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/debug_exceptions.rb:32:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
> logster (2.9.2) lib/logster/middleware/reporter.rb:43:in `call'
> railties (6.0.3.2) lib/rails/rack/logger.rb:37:in `call_app'
> railties (6.0.3.2) lib/rails/rack/logger.rb:28:in `call'
> config/initializers/100-quiet_logger.rb:19:in `call'
> config/initializers/100-silence_logger.rb:31:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/request_id.rb:27:in `call'
> lib/middleware/enforce_hostname.rb:22:in `call'
> rack (2.2.3) lib/rack/method_override.rb:24:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/executor.rb:14:in `call'
> rack (2.2.3) lib/rack/sendfile.rb:110:in `call'
> actionpack (6.0.3.2) lib/action_dispatch/middleware/host_authorization.rb:76:in `call'
> rack-mini-profiler (2.0.4) lib/mini_profiler/profiler.rb:321:in `call'
> message_bus (3.3.1) lib/message_bus/rack/middleware.rb:61:in `call'
> lib/middleware/request_tracker.rb:176:in `call'
> railties (6.0.3.2) lib/rails/engine.rb:527:in `call'
> railties (6.0.3.2) lib/rails/railtie.rb:190:in `public_send'
> railties (6.0.3.2) lib/rails/railtie.rb:190:in `method_missing'
> rack (2.2.3) lib/rack/urlmap.rb:74:in `block in call'
> rack (2.2.3) lib/rack/urlmap.rb:58:in `each'
> rack (2.2.3) lib/rack/urlmap.rb:58:in `call'
> unicorn (5.6.0) lib/unicorn/http_server.rb:632:in `process_client'
> unicorn (5.6.0) lib/unicorn/http_server.rb:728:in `worker_loop'
> unicorn (5.6.0) lib/unicorn/http_server.rb:548:in `spawn_missing_workers'
> unicorn (5.6.0) lib/unicorn/http_server.rb:144:in `start'
> unicorn (5.6.0) bin/unicorn:128:in `<top (required)>'
> vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `load'
> vendor/bundle/ruby/2.6.0/bin/unicorn:23:in `<main>'
> 
> ```

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 19, 2020, 7:02오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1275 "2020-08-19T07:02:50Z")

</div>

재현 단계를 알려 주세요. 두 사이트에서 이 코드를 실행하고 있는데, 해당 로그 항목이 없습니다.

---

<div class="post-metadata">

### Author: ![AntiMetaman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/antimetaman/32/186978_2.png) [@AntiMetaman](https://meta.discourse.org/u/AntiMetaman)
#### Post date: [8월 19, 2020, 12:34오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1276 "2020-08-19T12:34:27Z")

</div>

제 사이트에서 재현하려면:

1. 주제 목록 미리보기를 활성화하세요.
2. '해결됨’이 활성화된 주제로 이동하세요:  
 ![image](https://global.discourse-cdn.com/meta/original/3X/2/4/24b301e07cc72521416b40d95a25c0d7f5842be4.png)
3. 관리자 또는 스태프 권한으로 사용자의 게시글을 열고 이를 '해결책’으로 선택하세요.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 19, 2020, 1:16오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1277 "2020-08-19T13:16:41Z")

</div>

감사합니다. 지원 주간 중에 확인해 보겠습니다.

---

<div class="post-metadata">

### Author: ![Moksh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moksh/32/188137_2.png) [@Moksh](https://meta.discourse.org/u/Moksh)
#### Post date: [8월 20, 2020, 12:57오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1278 "2020-08-20T12:57:12Z")

</div>

@merefield 좋아요와 북마크를 위한 사이드카 플러그인과 함께 사용하는 토픽 목록 미리보기 테마 컴포넌트를 정말 좋아합니다.

`https://github.com/merefield/discourse-topic-list-previews-theme/`

누군가가 "답글(Replies)"을 클릭할 때 토픽 목록 미리보기에서 버그를 발견한 것 같습니다.

**이상적인 상황:**

토픽 미리보기 목록에서 해당 토픽의 답글을 클릭하면 날짜를 선택할 수 있고, 하나를 선택하면 토픽 상세 페이지로 이동합니다.

 ![image](https://global.discourse-cdn.com/meta/original/3X/1/b/1bc80c8dff577ff6ae3caf3d106bc8d36dead344.png)

**제 문제:**

토픽 미리보기 목록에서 해당 토픽의 답글을 클릭하면 날짜 선택 목록이 보이지만, 하나를 선택하기 전에 토픽 목록 미리보기 페이지가 새로고침되고 토픽 상세 페이지로 이동하지 않습니다.

 ![image](https://global.discourse-cdn.com/meta/original/3X/b/f/bfca9b20350a132c3da034d52c30b33d08143ff3.png)

시간이 나실 때 이 문제를 확인해 주시겠습니까?

감사합니다.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 20, 2020, 1:54오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1279 "2020-08-20T13:54:04Z")

</div>

이번 달에는 지원 업무에 많은 시간을 보냈습니다. 이 문제가 긴급하지 않으므로, 더 한가한 시기로 미루겠습니다. 양해해 주셔서 감사합니다. 제 기억에 이 문제는 오래된 버그이며, 그에 대한 수정은 우선순위가 낮게 설정되어 있었습니다. 언제나처럼 PR을 환영합니다.

---

<div class="post-metadata">

### Author: ![Moksh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moksh/32/188137_2.png) [@Moksh](https://meta.discourse.org/u/Moksh)
#### Post date: [8월 22, 2020, 9:08오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1280 "2020-08-22T21:08:20Z")

</div>

다음 테마 컴포넌트와 플러그인을 설치했습니다. 두 개가 함께 잘 작동합니다. 도움이 필요합니다.

```
https://github.com/merefield/discourse-topic-list-previews-theme 
git clone https://github.com/merefield/discourse-topic-previews.git -b "theme_sidecar" 

```

**발췌문 아래에 '좋아요’와 ‘북마크’ 아이콘을 정렬하는 CSS 팁을 찾고 있습니다.** 이미지의 크기에 따라 위치가 이동합니다.

 ![tlp_css](https://global.discourse-cdn.com/meta/original/3X/3/1/31663bc38abd5dd396a3e97d2c61162699a210e9.png)

감사합니다.

---

<div class="post-metadata">

### Author: ![Steven](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/steven/32/187890_2.png) [@Steven](https://meta.discourse.org/u/Steven)
#### Post date: [8월 22, 2020, 10:52오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1281 "2020-08-22T22:52:43Z")

</div>

예시가 앞에 있으면 더 잘 이해가 가요. 특히 포럼 전체에 섬네일을 사용하지 않는다면요. 하지만 이 문제를 해결하는 가장 좋은 방법은 주제 상세 정보(topic-details) 클래스를 사용해 사용하는 폭을 제한하는 것일 거예요. 이 클래스의 폭을 `width: calc(100% - 000px);` (000 = 섬네일 열에 설정된 폭)와 같은 값으로 제한하고, 섬네일과 같은 크기의 margin-left를 추가하면 됩니다. 이렇게만 해도 충분할 수 있어요.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 23, 2020, 10:22오전 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1282 "2020-08-23T10:22:44Z")

</div>

사이트 주소를 개인 메시지로 보내주시겠어요? 나중에 한번 확인해볼게요.

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 23, 2020, 3:16오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1283 "2020-08-23T15:16:33Z")

</div>

다음과 같이 시도해 보세요:

```plaintext
.topic-details {
    overflow: hidden;
}

```

---

<div class="post-metadata">

### Author: ![Moksh](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/moksh/32/188137_2.png) [@Moksh](https://meta.discourse.org/u/Moksh)
#### Post date: [8월 23, 2020, 5:01오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1284 "2020-08-23T17:01:13Z")

</div>

> [@merefield](#):
>
> ```plaintext
> .topic-details {
> overflow: hidden;
> }
> 
> ```

훌륭네요, 작동합니다. 정말 감사합니다 🙏

---

<div class="post-metadata">

### Author: ![sunjam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sunjam/32/175682_2.png) [@sunjam](https://meta.discourse.org/u/sunjam)
#### Post date: [8월 23, 2020, 5:58오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1285 "2020-08-23T17:58:24Z")

</div>

_Theme A_에서만 이 플러그인을 활성화하고 _Theme B_에서는 무시하는 것이 가능한가요?

---

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [8월 23, 2020, 6:02오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1286 "2020-08-23T18:02:58Z")

</div>

네, TC를 사용하시면 됩니다.

---

<div class="post-metadata">

### Author: ![sunjam](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/sunjam/32/175682_2.png) [@sunjam](https://meta.discourse.org/u/sunjam)
#### Post date: [8월 23, 2020, 6:05오후 UTC](https://meta.discourse.org/t/topic-list-previews-legacy/101646/1287 "2020-08-23T18:05:38Z")

</div>

감사합니다. 무식한 질문을 해서 죄송한데, TC가 뭐예요? 테마 컴포넌트(Theme Component)인가요..?

[이전 페이지](https://meta.discourse.org/t/topic-list-previews-legacy/101646.md?page=16)

[다음 페이지](https://meta.discourse.org/t/topic-list-previews-legacy/101646.md?page=18)
