햄버거 카테고리 위젠프가 마운트되지 않나요?

여기 문서(Developing Discourse Themes & Theme Components)를 참고하고 있습니다.
로그를 사용하는 예제는 잘 동작하는데, 위젯을
{{mount-widget widget="hamburger-categories"}}
으로 업데이트하면 아무것도 표시되지 않습니다… https://github.com/discourse/discourse/tree/main/app/assets/javascripts/discourse/app/widgets 에 있는 목록을 확인해 봤는데, 어떤 위젯은 표시되고 어떤 위젯은 그렇지 않은 것 같습니다.

결국 커스텀 헤더 안에 카테고리 목록만 버튼으로 사용하고 싶습니다. 이렇게요…

새로운 사이드바가 활성화되었나요? 그렇게 하면 이전 햄버거 메뉴가 숨겨집니다.

사이트 설정이 다음과 같이 되어 있는지 확인해 주세요:

처음에는 "Header Dropdown"으로 설정되어 있었는데, "Legacy"로 변경해 보았지만 동일한 문제가 발생합니다.

햄버거 메뉴가 표시되지만, 저는 카테고리만 필요합니다.
{{mount-widget widget="hamburger-menu"}}

위젯 이름 때문에 혼란스러웠네요. 어떤 플러그인 아웃렛을 사용 중이시나요?

문서와 동일합니다

<script type="text/x-handlebars" data-template-name="/connectors/below-footer/fancy-footer">
  <div class="footer">
    <div class="wrap">
      <p>위젯 마운트 전</p>
        {{mount-widget widget="home-logo"}}
        {{mount-widget widget="hamburger-categories"}}
      <p>위젯 마운트 후</p>
    </div>
  </div>
  </script>

테마는 여기 있습니다: https://github.com/tpximpact/bcn-discourse-theme https://discourse.theme-creator.io/에서 시도해 보았지만 문제가 여전히 남아 있습니다.

가이드를 보면 플러그인 아웃렛이 showFooter 속성을 받는 것을 확인할 수 있습니다. 이 값은 아마도 false일 것입니다. 즉, 푸터와 연결된 위젯 모두 표시되지 않는다는 뜻입니다.

어쨌든 헤더 아티팩트에 푸터 아웃렛이 왜 필요한가요?

개인적으로 플러그인 아웃렛 테마 컴포넌트를 사용하여 더 적절한 위치를 선택하는 것이 좋다고 생각합니다.

나타나긴 합니다… widget="home-logo"가 표시되고
widget="hamburger-menu"도 표시됩니다.

하지만 widget="hamburger-categories"는 표시되지 않아요.

그냥 테스트해 보는 거라 지금은 어디에 있는지 크게 중요하지 않습니다.

콘솔에 오류가 있나요?

인스펙터에 무엇이 표시되나요?

여기서 카테고리를 볼 수 있으니, 실제로 존재하는 것이네요.

제 추측으로는 이 부분이 문제인 것 같습니다:

푸터 아웃렛을 통해 categories 속성이 전달되지 않고 있습니다.

하지만 푸터 아웃렛에 widget="hamburger-menu"를 사용하면 카테고리가 표시됩니다.
페이지 여기저기의 다른 아웃렛을 시도해 보았지만 문제가 여전히 지속됩니다.

처음부터 그 오류 메시지를 올려주셨더라면 많은 시간을 절약할 수 있었을 것입니다.

항상 콘솔을 확인하세요.

햄버거 메뉴가 카테고리 목록을 가져오는 방식과 동일한 방식으로 목록을 가져온 후, 이 요소를 JavaScript로 연결해야 할 수 있습니다.

네, 확실합니다. 그리고 문서에 "자, 위젤타운 마운트는 꽤 간단합니다. 알아야 할 것은 위젤타운 이름뿐입니다. 이게 전부입니다"라고 적혀 있었다면 더 많은 시간이 걸렸을 겁니다.

네, 제 짐작으로는 그 가이드가 오래된 거 아닌가요?

최신 가이드를 어디서 찾을 수 있는지 혹시 아시나요? 여기저기 헤매며 답을 찾고 있는데, 4년 전에 작성된 게시물들만 계속 뜨네요. 어딘가에 실제 가이드 문서가 있나요?

네, 그게 얼마나 오해의 소지가 있는지 이해할 수 있습니다. 기술적으로는 위젤타운 마운트하지만, 위젯에 필요한 데이터가 자동으로 제공되는 것은 아닙니다.

위와 같이 카테고리 데이터를 위젯에 전달해 보세요:

{{mount-widget widget="hamburger-categories" args=(hash categories=this.site.categories)}}

좋아요, 감사합니다. 네, 그 말이 맞고 이제 제대로 표시됩니다.

여기서는 콘솔 로깅에 대해 이야기하고 있습니다.
문서 Developing Discourse Themes & Theme Components 를 따라가면,
아래처럼 시도해 보았을 때

<script type="text/discourse-plugin" version="0.8">
    console.log(Discourse)
</script>

콘솔에 "글로벌 객체"가 나오는 것 같지 않고, 클래스가 나옵니다.

그리고 이렇게 시도해 보면

<script type="text/discourse-plugin" version="0.8">
  const settings = Discourse.SiteSettings;
 console.log(settings)
</script>

아래와 같은 오류가 발생합니다.
THEME 6 'BCN Theme - watched locally'] Deprecation notice: use injected siteSettings instead of Discourse.SiteSettings