تمييزات الكود تمنع عرض قيمة العنصر النائب في كتلة الكود

لقد واجهت هذه المشكلة خلال الأيام القليلة الماضية قبل أن أكتشف ما هي المشكلة. تم الإبلاغ عنها هنا: Placeholder Forms - #48 by jericson.

يبدو أن المشكلة لا تحدث (بعد الآن؟) في المثال المعطى في المنشور المرتبط، لذلك سأقوم بإعادة إنتاج المشكلة بنفسي هنا:

[wrap=placeholder key=TABLE description="table name" default="users"][/wrap]

```
SELECT * FROM =TABLE=;
```

يفعل:

SELECT * FROM =TABLE=;

المتغير غير معروف بسبب تمييز كتلة التعليمات البرمجية، والذي تم تعيينه تلقائيًا إلى SQL.

HTML الناتج هو:

<code class="hljs language-sql" data-highlighted="yes">
  <span class="hljs-keyword">SELECT</span>
  <span class="hljs-operator">*</span>
  <span class="hljs-keyword">FROM</span>
  <span class="hljs-operator">=</span>
  <span class="hljs-keyword">TABLE</span>
  <span class="hljs-operator">=</span>
  ;
</code>

إذا قمت بتحديد txt في كتلة التعليمات البرمجية، فسيتم عرض القيمة بشكل صحيح:

SELECT * FROM =TABLE=;

السلوك المتوقع هو عرض القيمة بغض النظر عن تمييز التعليمات البرمجية.

لا أعرف لماذا لم يتم تعيين كتلة التعليمات البرمجية تلقائيًا إلى SQL كما كان الحال بالأمس. إنها تجعل إعادة الإنتاج غير فعالة، لكنها تعمل على try.discourse.org لذا إليك لقطة شاشة:

بغض النظر عن الكشف التلقائي عن اللغة، فإن الحقيقة هي أن بعض تمييزات اللغة ستكسر السلسلة =VALUE= ولن يتم عرض القيمة، وهو أمر غير مرغوب فيه.

سيكون الإصلاح هنا معقدًا للغاية، إذا تم تحليل علامات العنصر النائب كأقسام مميزة بالتركيز، فعندما ننتقل إلى الاستبدال، لن نجدها.

الطريقة الصحيحة لحل هذه المشكلة هي إعادة تشغيل خط الأنابيب والقيام بالتمييز فقط بعد إجراء الاستبدال.

في الوقت الحالي، أقول إن هذا يندرج تحت قسم طلبات الميزات، لا أمانع في وضع علامة “pr-welcome” على هذا في حال تمكن شخص ما من إيجاد طريقة رخيصة وبسيطة لحل هذه المشكلة.

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