Discourse Math

Absolutamente, el código será muy útil aquí, quizás bifurcar Discourse y luego enviar tus cambios a una rama, entonces podré obtener los cambios de tu rama para la PR.

Muy contento de que estés progresando, tratando de diagnosticar este problema.

¿Puedes también obtener la última versión? Hice una ronda de limpieza.

1 me gusta

OK, aquí está el código:

Sin embargo, ten cuidado, no trabajé directamente a partir de tu último commit. Empecé directamente desde el main de Discourse e hice cambios a partir de ahí. Por lo tanto, aprendí bastante de tu trabajo, pero la estructura general es diferente.

Creo que podrías resumir la principal diferencia de la siguiente manera: donde tú (naturalmente) usas características de Discourse heredadas de Ember para coordinar los tiempos asociados con cosas como la carga y el formateo, yo uso características de MathJax. Por lo tanto, mis paquetes load-mathjax y mathjax (uno para svg y otro para chtml) son mucho más simples que los tuyos. La carga se coordina a través del objeto window.MathJax en discourse-math-mathjax.

Todavía tengo el mismo problema que describí antes, a saber, que este cargador comentado no funciona; tengo que usar esta versión CDN en su lugar. Realmente no sé por qué.

Creo que tu código sufre del mismo problema. Por eso AsciiMath no parece funcionar.

1 me gusta

¿Puedes revisar mi último commit? Creo que añadí un funnel para Ember, así que la compilación de Ember pone todos los archivos en el lugar correcto.

2 Me gusta

OK, tengo muy buenas noticias y algunas frustrantes.

Primero, tienes toda la razón en que agregar el embudo coloca esos archivos en el lugar correcto. Agregué el embudo a mi rama y ahora funciona muy bien sin la dependencia de CDN. :tada:

Desafortunadamente, no puedo ejecutar tu código en este momento. Cada vez que navego a una página con matemáticas, estas no se componen y veo el siguiente mensaje de error en la consola:
Uncaught (in promise) Error: State EXPLORER already exists

Estoy seguro de que tu código funcionaba antes, así que supongo que es algo que hice. Para ser claro, literalmente comencé con un directorio completamente nuevo usando las técnicas descritas en Install Discourse on macOS for development.

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

# En una terminal
bundle exec rails server

# En otra terminal
bin/ember-cli

Luego tomé tu código con

git checkout 71ad0305f812311f2a4570edf7c33f97de46c457
git switch -c mathjax-sam

Incluso desde esa configuración nueva, obtengo el error.


Llegados a este punto, estoy bastante contento con mi versión del código, pero sigo sintiendo curiosidad por lo que está pasando con el tuyo. Necesito tomarme un descanso de esto por las vacaciones, sin embargo. Estaré encantado de echarle un vistazo en unos días.

Un último punto, sin embargo: hasta donde sé,

await import("tex-mml-chtml.js") // seguido de
await import("input/asciimath.js")

no debería funcionar, que es efectivamente lo que tu código está haciendo, creo.

Estoy siendo impreciso con las rutas ahí, pero mi punto es que no sé si las llamadas dinámicas consecutivas a import conducen a la estructura correcta de MathJax. Creo que cargar los componentes de MathJax es bastante complicado y por eso tienen un proceso de carga tan detallado con el objeto MathJax y todo lo demás.

¡Muchas gracias por tu ayuda y paciencia, @sam!

1 me gusta