حاجة مساعدة في تفعيل ميزة إعداد "تفعيل الإضافة"

أعمل على إضافة markdown وأواجه مشكلة في إضافة إعداد موقع يسمح لك بتعطيل الميزة. لقد قمت بكتابة الإضافة باتباع هيكلية https://meta.discourse.org/t/discourse-footnote/84533، والتي تحتوي على إعداد يسمح لك بتعطيل تلك الإضافة. قمت بتثبيت إضافة التذييل (footnote) وتأكدت من إمكانية تعطيلها من واجهة المستخدم وأن الاختبار المقابل لها يمر بنجاح. ومع ذلك، فإن تعطيل إضافتي من إعدادات الموقع لا يترك أي أثر، ويؤكد اختبار الوحدة ذلك بالفشل.

لست متأكدًا مما أفعله بشكل مختلف مقارنة بإضافة التذييل. من الممكن أن يكون استخدامي لـ opts.features خاطئًا تمامًا أو أنني أقوم بافتراضات غير صحيحة، لأنه مثلما في كل مكان آخر، قمت ببساطة باستبدال “footnotes” بـ “ruby”. أي مساعدة ستكون محل تقدير.

المستودع موجود هنا: GitHub - seanblue/discourse-ruby: Adds ruby markdown support to Discourse · GitHub


تشمل الجوانب الرئيسية المتعلقة بإعداد الموقع ما يلي:

وهذا هو الاختبار الذي يستمر في الفشل (غير موجود في المستودع بعد):

  it "can be disabled" do
    SiteSetting.enable_markdown_ruby = false

    markdown = <<~MD
      Here is some text: {漢字|かん|じ}.
    MD

    html = <<~HTML
      <p>Here is some text: {漢字|かん|じ}.</p>
    HTML

    cooked = PrettyText.cook markdown.strip
    expect(cooked).to eq(html.strip)
  end

ليس من المستغرب أن يشير الفشل إلى أنه يحصل على النص المطبوخ وكأن تنسيق markdown لا يزال مطبقًا.

expected: "<p>Here is some text: {漢字|かん|じ}.</p>"
     got: "<p>Here is some text: <ruby>漢<rt>かん</rt>字<rt>じ</rt></ruby>.</p>"

ما أفعله عادةً في مثل هذه الحالات هو البدء في طباعة الأشياء.

هل جربت إضافة بعض عبارات console.log الداخلية لطباعة المتغيرات؟ قد تساعد في توضيح الصورة هنا. أعتقد حقًا أن الإعدادات تُرسَل إلى محرك الماركداون، واختبارك يبدو شرعيًا.

لقد مرّ وقت منذ أن قمت بتجربة تصحيح الأخطاء باستخدام console log كما كان في العادة. سأجرب ذلك.

أنا حقًا مصحح أخطاء باستخدام puts، فهي الآلية التي أجد نفسي أعود إليها في معظم الأوقات.

لقد عرفت المشكلة. كانت في الواقع مشكلة في كيفية استخدامي لـ opts.features كما كنت أظن. بعد الاطلاع على كود markdown الأساسي، أدركت أن اسم الميزة يعتمد على اسم الملف. لقد كان ملفي يحمل اسم markdown-ruby.js.es6، لذا كان اسم الميزة ضمنيًا markdown-ruby رغم أنني كنت أقوم بتعيين ميزة ruby في كودي. أدى إعادة تسمية الملف إلى ruby.js.es6 إلى حل المشكلة.

لا يزال الأمر غير واضح تمامًا بالنسبة لي ما إذا كانت opts.features التي أقوم بتعديلها تمثل جميع الميزات أم مجرد مجموعة ميزات markdown. إذا كانت تمثل جميع الميزات، فإن ruby تبدو قصيرة جدًا/غامضة بعض الشيء، وقد أعيد تسمية الملف والميزة إلى markdown-ruby فقط لضمان السلامة.