TopicExcerpt 템플릿 수정 방법?

토픽 생성자의 아바타를 토픽 목록 발췌문에 추가하고 싶은데, Topic Excerpt를 수정할 방법이 없어 보입니다.

TopicExcerpt:

유일한 방법은 CSS로 .topic-excerpt를 숨기고, TopicExcerpt 영역 바로 아래에 있는 topic-list-main-link-bottom Plugin Outlets를 통해 자체 컴포넌트를 사용하는 것 같습니다. 하지만 그 방법의 문제는 플러그인 아웃렛이 인수로 토픽만 전달받기 때문에, 표시 여부를 판단하기 위해 expandPinned의 모든 로직을 중복 구현해야 한다는 점입니다.

요약: TopicExcerpt 내부에 PluginOutlets를 추가하거나, topic-list-main-link-bottom 아웃렛에 @expandPinned를 전달해 주실 수 있을까요?

이제 더 많은 옵션이 있습니다. 참고:

제가 아는 모든 옵션을 확인해 보았습니다. 제가 볼 수 있는 범위 내에서, 발췌 부분만 외과수술처럼 정밀하게 수정할 방법은 없는 것 같습니다.

네, 있습니다. 삭제하고 직접 추가하세요.

말씀하신 게 전체 토픽 목록 항목을 제 것으로 교체하라는 건가요? 아주 작은 부분만 수정하고 싶은데, 그렇게 하면 나머지 모든 것을 관리해야 해서 피하고 싶습니다.

아니요, 발췌 셀을 교체하거나 옆에 다른 셀을 추가한 후 숨기세요.

요약(excerpt)은 셀이 아닙니다. topic-cell과 모바일 아이템 내부에서 사용됩니다.

여기서도 볼 수 있듯이, 근처의 topic-list-main-link-bottom 플러그인 아웃렛은 @topic만 전달하고 @expandPinned은 전달하지 않습니다.

아 네, 맞습니다. 죄송합니다.

토픽 목록 컴포넌트에서 파일을 보고 추측을 했었네요.

하지만 어쨌든, 원하는 것을 달성할 수 있는 도구가 많이 있죠?

플러그인 아웃렛이 좋은 옵션인 것 같고, 그런 다음 CSS로 레이아웃을 조작하면 되겠네요?

expandPinned의 경우, 새로운 컴포넌트에서 필요한 만큼 로직을 복제하는 것이 어떨까요?

네, 저도 그 방향으로 생각하고 있었습니다. 그렇게 하면 이것도 복제해야 합니다.

  get useMobileLayout() {
    return applyValueTransformer(
      "topic-list-item-mobile-layout",
      this.site.mobileView,
      { topic: this.args.outletArgs.topic }
    );
  }
  //and from discovery/topics.js
  get expandGloballyPinned() {
    !this.expandAllPinned();
  }
  get expandAllPinned() {
    const category = this.discovery.category?.id
    const tag = this.discovery.tag?.id
    return category || tag;
  }

신에게 기도하면 더 깔끔한 옵션이 나올까 하고 바랐습니다 :pray: :sweat_smile:

저도 월요일 아침에는 보통 그렇게 해요.

이것은 합리적인 것 같아서 여기에서 이렇게 처리했습니다: