DiscoTOC 문제: TypeError: _offsetCalculator.headerOffset이 함수가 아닙니다

Discourse 팀 여러분, @Johani 님께,

훌륭한 Discourse 플러그인인 DiscoTOC - automatic table of contents 을 제공해 주셔서 감사합니다.

어제, community.hiveeyes.org에서 TOC 내비게이션이 작동하지 않는다는 사용자의 보고를 받았습니다. 예시는 [1]에서 확인할 수 있습니다. 해당 인스턴스는 Discourse 2.8.0.beta10과 최신 버전의 DiscoTOC를 실행 중이며, 테마 컴포넌트 관리자에서 업그레이드되었습니다.

다른 두 개의 Discourse 인스턴스에서는 문제가 없는 것 같습니다:

  • 2.8.0.beta10 (자체 호스팅), DiscoTOC 17개 커밋 뒤처짐, 5b051e18 [2]
  • 2.9.0.beta2 (비즈니스 플랜), DiscoTOC 1개 커밋 뒤처짐, 9933031 [3]

이 시스템에 설치된 다른 플러그인 중 하나 [4]가 원인일 수 있다고 생각하시나요? 지금까지 DiscoTOC와 관련하여 비슷한 문제를 경험해 본 적이 없습니다.

이 문제를 살펴봐 주시겠다면 미리 감사드립니다. 아직 다른 곳에서 유사한 보고를 발견하지 못했기 때문에 우리 쪽의 단순한 실수일 것이라고 추정하고 있습니다. 한편, 여기의 해결 과정이 비슷한 현상을 관찰하는 다른 사람들에게 도움이 될 수도 있을 것입니다.

감사합니다.
Andreas.


Firefox 브라우저 콘솔의 오류는 updateTOCSidebar 함수 내에서 Uncaught TypeError: _offsetCalculator.headerOffset is not a function입니다.



  1. Installation von Saraswati auf SBC-Systemen (Debian), mit Upload per rsync oder FTP - BOB-Anleitungen - Hiveeyes ↩︎

  2. Panodata Map Panel for Grafana - The workbench - Panodata Community ↩︎

  3. Interpolating missing time-series values - Tutorials - CrateDB Community ↩︎

  4. 설치된 플러그인.

    ↩︎
1개의 좋아요

각주 플러그인은 모바일에서 읽기가 다소 까다로울 수 있습니다. 가독성을 높이기 위해 여기에도 목록을 추가할게요. :+1: (나에게는 명확한 충돌이 보이지 않지만, 다른 누군가는 무언가를 발견할 수도 있겠네요)

설치된 플러그인:

1개의 좋아요

다시 인사드립니다.

updateTOCSidebar:210에 대한 참조를 따르면, Firefox에서는 다음 코드가 표시됩니다.

210: var distance = Math.abs(_domUtils.default.offset(heading).top - (0, _offsetCalculator.headerOffset)() - window.scrollY);

구문 오류가 있을 수 있음을 나타내는 표시기가 함께 표시됩니다.

image

반면, 원래 코드는 다음과 같습니다.

이것이 REFACTOR: General component overhaul - Pull Request #19%EB%A1%9C - discourse/DiscoTOC - GitHub 인한 초기 문제일 가능성이 극히 낮다고 생각하시나요, @pmusaraj?

이 문제는 공개된 Discourse 인스턴스에서, 예를 들어 Installation von Saraswati auf SBC-Systemen (Debian), mit Upload per rsync oder FTP - BOB-Anleitungen - Hiveeyes 페이지에서 확인해 볼 수 있습니다.

감사합니다.
Andreas.

/cc @eviltrout, @cvx, @j.jaffeux

1개의 좋아요

1월 18일 리팩토링 이후 DiscoTOC에서 사용되고 있는 headerOffset이 12월 21일의 2.8.0.beta10과 1월 13일의 2.8.0.beta11 사이인 1월 7일에 이 커밋에서 app/assets/javascripts/discourse/app/lib/offset-calculator.js에 등장하는 것으로 보입니다.

2개의 좋아요

그러면 Discourse를 업그레이드하거나, 리팩토링 이전 버전으로 DiscoTOC를 다운그레이드해야 하는 것이 맞나요? 감사합니다!

1개의 좋아요

네.

버그를 보고하기 전에 항상 해야 할 한 가지는, 최신 {tests-passed|stable} 버전에서 해당 문제가 여전히 존재하는지 확인해 보는 것입니다.

5개의 좋아요

네, 잘 알겠습니다. 정말 감사합니다!

하지만 이 맥락에서 버그 보고에 대해 제가 가지고 있는 또 다른 관점을 공유하고 싶습니다. 검색 엔진에 인덱싱되도록 하기 위해서, 동일한 오류를 겪고 있는 다른 사람들에게 문제를 처리하고 완화하는 방법을 안내하는 지침을 제공하기 위함입니다.

예를 들어: 여기서 무슨 일이 일어나고 있지? 브라우저 콘솔에 »Uncaught TypeError« 가 뜬다? 바로 검색창에 이 내용을 붙여넣어 보자. 아, 맞다, 여기 있네 – 아, 그냥 Discourse를 업그레이드하거나 DiscoTOC를 다운그레이드하면 되는 거구나. 고마워, 안녕.


빠른 지원에 진심으로 감사드립니다, Richard! 정말 감사하게 생각합니다.

다시 인사드립니다.

Discourse 2.9.0.beta2로 업그레이드한 후 모든 것이 정상으로 돌아왔음을 보고드립니다.

감사드리며, 정중히 인사드립니다.
안드레아스 드림.

2개의 좋아요