Discourse Math

بالتأكيد، الكود سيكون مفيدًا جدًا هنا، ربما قم بعمل تفرع (fork) لـ discourse ثم ادفع تغييراتك إلى فرع (branch)، وبعد ذلك يمكنني سحب التغييرات من فرعك إلى طلب السحب (PR).

سعيد جدًا لأنك تحقق تقدمًا، وأحاول تشخيص هذه المشكلة.

هل يمكنك أيضًا سحب آخر التحديثات (pull latest)، لقد قمت بجولة من التنظيف.

إعجاب واحد (1)

حسنًا، إليك الكود:

لكن احذر، لم أعمل مباشرة من آخر تثبيت (commit) لك. لقد بدأت مباشرة من Discourse main وأجريت التغييرات من هناك. وبالتالي، تعلمت قدرًا لا بأس به من عملك ولكن الهيكل العام مختلف.

أعتقد أنه يمكنك تلخيص الاختلاف الرئيسي على النحو التالي: حيث تستخدم (بشكل طبيعي) ميزات Discourse الموروثة من Ember لتنسيق التوقيتات المرتبطة بأشياء مثل التحميل والتنسيق، أنا أستخدم ميزات MathJax. وبالتالي، فإن حزم load-mathjax و mathjax الخاصة بي (واحدة لـ svg والأخرى لـ chtml) أبسط بكثير من حزمك. يتم تنسيق التحميل بالكامل عبر الكائن window.MathJax في discourse-math-mathjax.

ما زلت أواجه نفس المشكلة التي وصفتها سابقًا، وهي أن هذا المُحمّل المعطّل لا يعمل؛ يجب عليّ استخدام إصدار CDN هذا بدلاً من ذلك. أنا حقًا لا أعرف السبب.

أعتقد أن الكود الخاص بك يعاني من نفس المشكلة. لهذا السبب لا يبدو أن AsciiMath يعمل.

إعجاب واحد (1)

هل يمكنك التحقق مرة أخرى من آخر تثبيت (commit) لي، أعتقد أنني أضفت قمعًا (funnel) لـ ember، لذا فإن بناء ember يضع جميع الملفات في المكان الصحيح الآن.

إعجابَين (2)

حسنًا، لدي أخبار جيدة جدًا وأخبار محبطة.

أولاً، أنت على حق تمامًا في أن إضافة القمع يضع تلك الملفات في المكان الصحيح. لقد أضفت القمع إلى الفرع الخاص بي وهو يعمل الآن بشكل رائع دون الاعتماد على شبكة توصيل المحتوى (CDN). :tada:

لسوء الحظ، لا يمكنني تشغيل الكود الخاص بك في الوقت الحالي. كلما انتقلت إلى صفحة تحتوي على معادلات رياضية، لا يتم تنسيق المعادلات وأرى رسالة الخطأ التالية في وحدة التحكم (console):
Uncaught (in promise) Error: State EXPLORER already exists

أنا متأكد من أن الكود الخاص بك كان يعمل من قبل، لذا أفترض أنه شيء فعلته. ولكن للتوضيح، لقد بدأت للتو دليلًا جديدًا تمامًا باستخدام التقنيات الموضحة في تثبيت Discourse على نظام macOS للتطوير.

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)