매우 좋은 소식과 함께 다소 답답한 소식도 있습니다.
첫째, 퍼널을 추가하면 해당 파일들이 올바른 위치에 배치된다는 점에 대해 완전히 맞습니다. 제 브랜치에 퍼널을 추가했는데, 이제 CDN 의존성 없이도 완벽하게 작동합니다. ![]()
불행히도 현재는 당신의 코드를 실행할 수 없습니다. 수식이 포함된 페이지로 이동할 때마다 수식이 타입셋(typeset)되지 않고, 콘솔에 다음 오류 메시지가 표시됩니다:
Uncaught (in promise) Error: State EXPLORER already exists
이전에 당신의 코드가 정상적으로 작동했던 것을 분명히 기억하고 있으므로, 제가 무언가를 잘못한 것 같습니다. 하지만 분명히 하기 위해, macOS에서 개발용 Discourse 설치에 설명된 기법을 사용하여 완전히 새로운 디렉터리를 처음부터 시작했습니다.
git clone https://github.com/discourse/discourse.git ./discourse
cd ./discourse
bundle install
pnpm install
bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
# 한 터미널에서
bundle exec rails server
# 다른 터미널에서
bin/ember-cli
그 후 다음 명령으로 당신의 코드를 가져왔습니다.
git checkout 71ad0305f812311f2a4570edf7c33f97de46c457
git switch -c mathjax-sam
이러한 새로운 설정에서도 여전히 오류가 발생합니다.
이 시점에서 저는 제 코드 버전에 대해 꽤 만족하고 있지만, 당신의 코드에서 무슨 일이 일어나고 있는지 여전히 궁금합니다. 다만, 휴가를 위해 이 작업에서 잠시 벗어나야 합니다. 며칠 후 다시 확인해 보겠습니다.
마지막으로 한 가지 더: 제가 아는 한,
await import("tex-mml-chtml.js") // 이후
await import("input/asciimath.js")
은 작동하지 않아야 합니다. 이것이 당신의 코드가 실제로 수행하는 일이라고 생각합니다.
여기서 경로를 정확히 표현하지는 않았지만, 제 지점은 연속적인 동적 import 호출이 올바른 MathJax 구조를 생성하는지 확신할 수 없다는 것입니다. MathJax 컴포넌트 로딩은 꽤 복잡하고, MathJax 객체와 관련된 상세한 로딩 프로세스가 있는 이유도 바로 그 때문이라고 생각합니다.
도와주셔서 그리고 인내심을 가져주셔서 정말 감사합니다 @sam!