Discourse Math

Absolument, le code sera très utile ici, peut-être créer une fourche (fork) de Discourse et ensuite pousser vos modifications vers une branche, puis je pourrai récupérer les modifications de votre branche dans la PR.

Tellement heureux que vous progressiez, en essayant de diagnostiquer ce problème.

Pouvez-vous également récupérer les dernières modifications (pull latest), j’ai fait une série de nettoyages.

1 « J'aime »

OK, voici le code :

Attention cependant, je n’ai pas travaillé directement à partir de votre dernier commit. J’ai commencé directement à partir de Discourse main et j’ai fait des modifications à partir de là. Ainsi, j’ai beaucoup appris de votre travail mais la structure globale est différente.

Je pense que vous pourriez résumer la principale différence comme suit : Là où vous utilisez (naturellement) les fonctionnalités de Discourse héritées d’Ember pour coordonner les timings associés au chargement et à la composition, j’utilise les fonctionnalités de MathJax. Ainsi, mes bundles load-mathjax et mathjax (un pour svg et un pour chtml) sont beaucoup plus simples que les vôtres. Le chargement est entièrement coordonné via l’objet window.MathJax dans discourse-math-mathjax.

J’ai toujours le même problème que celui que j’ai décrit auparavant, à savoir que ce chargeur commenté ne fonctionne pas ; je dois utiliser cette version CDN à la place. Je ne sais vraiment pas pourquoi.

Je pense que votre code souffre du même problème. C’est pourquoi AsciiMath ne semble pas fonctionner.

1 « J'aime »

pouvez-vous vérifier ma dernière validation (commit), je pense avoir ajouté un entonnoir (funnel) pour ember, donc la construction (build) ember place maintenant tous les fichiers au bon endroit.

2 « J'aime »

OK, j’ai de très bonnes nouvelles et des nouvelles frustrantes.

Premièrement, vous avez absolument raison, l’ajout de l’entonnoir place ces fichiers au bon endroit. J’ai ajouté l’entonnoir à ma branche et cela fonctionne maintenant très bien sans la dépendance CDN. :tada:

Malheureusement, je suis incapable d’exécuter votre code pour le moment. Chaque fois que je navigue vers une page contenant des mathématiques, les mathématiques ne sont pas typographiées et je vois le message d’erreur suivant dans la console :
Uncaught (in promise) Error: State EXPLORER already exists

Je suis certain que votre code fonctionnait avant, donc je suppose que c’est quelque chose que j’ai fait. Pour être clair, j’ai littéralement commencé avec un répertoire entièrement neuf en utilisant les techniques décrites dans 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

# Dans un terminal
bundle exec rails server

# Dans un autre terminal
bin/ember-cli

J’ai ensuite récupéré votre code avec

git checkout 71ad0305f812311f2a4570edf7c33f97de46c457
git switch -c mathjax-sam

Même à partir de cette nouvelle configuration, j’obtiens l’erreur.


À ce stade, je suis assez satisfait de ma version du code mais toujours curieux de ce qui se passe avec le vôtre. Je dois faire une pause là-dessus pour les vacances, cependant. Je serai ravi d’y jeter un autre coup d’œil dans quelques jours.

Un dernier point, cependant : pour autant que je sache,

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

ne devrait pas fonctionner, ce qui est effectivement ce que fait votre code, je crois.

Je suis imprécis avec les chemins là-bas, mais mon point est que je ne sais pas si des appels dynamiques consécutifs à import mènent à la structure MathJax correcte. Je pense que le chargement des composants MathJax est assez compliqué et c’est pourquoi ils ont un processus de chargement aussi détaillé avec l’objet MathJax et tout.

Merci beaucoup pour votre aide et votre patience @sam !

1 « J'aime »