Discourse Math

好的,我有一个非常好的消息和一个令人沮丧的消息。

首先,你说得完全正确,添加 funnel 将这些文件放在了正确的位置。我在我的分支中添加了 funnel,现在它在没有 CDN 依赖的情况下运行得非常好。:tada:

不幸的是,我目前无法运行你的代码。每当我导航到包含数学内容的页面时,数学内容都不会被排版,并且我在控制台中看到了以下错误消息:
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

1 个赞