سياق السطر لروابط GitHub في onebox

إذا تم تحديد سطر واحد لارتباط GitHub، فإن onebox يعرض هذا السطر مع السياق:

https://github.com/guildai/guildai/blob/master/examples/get-started/mnist_mlp.py#L16

إذا تم تحديد أسطر متعددة، فإن onebox يعرضها دون سياق:

https://github.com/guildai/guildai/blob/master/examples/get-started/mnist_mlp.py#L16-L18

أفهم المنطق وراء هذا الاختلاف. ومع ذلك، أود إظهار السياق لنطاق الأسطر. هل هناك حيلة غريبة للقيام بذلك؟

أيضًا، هل توجد طريقة لتكوين عدد أسطر السياق المعروضة؟

أظن أن الأمر يعتمد على عدد الأسطر التي تحدد (5؟ 500؟)، لكنني أوافق على أن الأمر غير متسق بعض الشيء.

هذا غير قابل للتكوين في الوقت الحالي. لكنني أتساءل، لماذا نتعسف في استخدام السياق إذا كان بإمكانك ببساطة طلب L12-L20؟

هذا يشبه طلبين للميزات في طلب واحد :slight_smile: أظن أنك تريد “تسليط الضوء” على الصفوف ثم إضافة السياق حولها؟ أعتقد أن هذا قد يكون مفيدًا لاختيار يتراوح بين سطرين وخمسة أسطر، لكن كتلة ضخمة باللون الأصفر ستكون صاخبة جدًا.

في هذه الحالة، أقوم بتوجيه القارئ عبر سلسلة من التغييرات على ملف. السياق مهم في كل حالة، سواء كنت أسلط الضوء على سطر واحد أو عدة أسطر.

المكون يسلط الضوء بالفعل على سطر واحد مع سياق. الحالة التي لدي هنا تود تطبيق نفس السلوك مع أسطر متعددة.

أرى منطق المخطط الحالي، لكنني أعتقد أن هناك حجة قوية لدعم التظليل متعدد الأسطر مع السياق أيضًا.

إذا لم يكن Onebox قابلًا للتكوين حاليًا بما يتجاوز الرابط نفسه، فسيكون ذلك ضروريًا. ربما شيء مثل هذا؟

<span
  data-onebox-highlight="true"
  data-onebox-context="5"
  >https://github.com/.../get-started/mnist_mlp.py#L16-L18</span>

لا يوجد الكثير من الجديد هنا سوى تكوين ما يقوم المكون بتنسيقه وعرضه.

بشكل بدائي، يبدو أن هذا سيكون تغييرًا في الخلفية فقط. ضع في اعتبارك الفروقات بين استجابتَي onebox.json التاليتين:

كما هو متوقع، يحتوي أحدهما على سياق مع سطر highlight بينما الآخر لا يحتوي عليه.

إذا كان الخادم الخلفي قابلًا للتكوين حسب الطلب، فإن الأمر يتعلق بتطبيق قواعد التنسيق الحالية. أرى أن التطبيق يفترض سطرًا واحدًا للتظليل. التغيير لدعم نطاق أسطر هو بسيط (على سبيل المثال، استخدام مصفوفة من الأسطر المراد تظليلها والتحقق من العضوية).

ربما يعمل شيء مثل هذا في هذه الحالات، إذا كانت حالات شاذة بنسبة 100%، والمشكلة هي أنه يتعارض مع GitHub، وهو أمر غير جيد.

https://github.com/.../get-started/mnist_mlp.py?#L16-L18-context-3

أو ربما يمكن ببساطة تضمين السياق افتراضيًا إذا كانت المنطقة تتكون من 4 أسطر أو أقل.

شخصيًا، سأتجنب السلوك الضمني. لدي بالفعل مثال يسلط الضوء على خمس سطور :slight_smile:

طبقت حلاً بديلاً لهذه المشكلة، يستخدم مكونًا للثيم يبحث عن عنصر div مغلف يحتوي على إعدادات لروابط GitHub المغلفة. ينتظر المكون حدث تعديل DOM لمعرفة متى يتم استبدال الرابط بسطور الكود، ثم يعمل على حالة li.selected للاختيار. هذا الحيلة لا يغير السطور المسترجعة، لذا لا يمكنه إضافة أو إزالة سياق.

أعتقد أن وجود طريقة صريحة للتحكم في السلوك أفضل من تغيير أي من الإعدادات الافتراضية أو محاولة جعل المكون أكثر ذكاءً.

قد يكون نقل الإعدادات/التكوين عبر عنوان URL نفسه خيارًا، لكنه يقوض الدلالة الدلالية للرابط. إذا لم يكن استخدام وسم مغلف خيارًا، فأفترض أنك تريد على الأقل إزالة الإعدادات الخاصة بـ onebox.