Html-react-parser: لا تغير حالة العلامات

تم إنشاؤها على ٢٣ يوليو ٢٠١٨  ·  11تعليقات  ·  مصدر: remarkablemark/html-react-parser

لقد لاحظت أن المحلل اللغوي يغير كل شيء إلى أحرف صغيرة ، وهو أمر سيء بالنسبة لي لأن لدي بعض العلامات الحساسة لحالة الأحرف.

هل هناك طريقة لمنع هذا؟

التعليق الأكثر فائدة

أنا أعمل على هذه المشكلة ، فأنا أقوم حاليًا بترميز شوكة نظيفة من htmlparser2 و parse5 للانضمام إلى كل من الخوارزمية ، وستتمكن بعد ذلك من استخدام محول dom رد فعل parse5 الذي سيعتمد على قاعدة الكود هذه

ال 11 كومينتر

هل يمكنني أن أسأل عن مثال لهذه المشكلة؟ من الناحية الفنية ، ألا يجب أن تكون علامات وسمات HTML حساسة لحالة الأحرف ؟

ولكن فيما يتعلق بالسؤال المطروح ، يقوم المحلل اللغوي بتقليل الأحرف الصغيرة للسمات لتسهيل تحويلها إلى عناصر React (انظر هنا ).

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

في الواقع ، يتم تقليل السمات عند تحويل سلسلة HTML إلى عقد DOM. يأتي هذا من html-dom-parser ، والذي يستخدم htmlparser2 تحت الغطاء (عند استخدامه مع Node.js).

أنا منفتح على جعل هذه الخيارات قابلة للتكوين.

آسف لإحياء هذه المشكلة ، لكني أستخدم هذه الحزمة وأحتاج إلى العلامات لتكون علبة الجمل ، لأن C # ستحللها لاحقًا (أعلم ، أنها فوضوية ، وليس الكود الخاص بي ولا يمكنني تغييره) ... لقد قرأت المستندات htmlparser2 وهناك خيار lowerCaseTags ، هل يكفي لمنع العلامات من أن تكون منخفضة الأحرف؟

thismarcoantonio هناك

لإعطائك تحديثًا thismarcoantonio ، اتضح أن رقم 79 انتهى به الأمر إلى عدم الاندماج.

فيما يتعلق بسؤالك حول العلامات التي تكون حالة الجمل ، هل تشير إلى ترميز HTML الأولي الذي يتم تمريره إلى المحلل اللغوي؟

نعم ، هذه العلامات مثل: <someText: someOtherCodeHere /> . أعلم أنه أمر غريب ، لكن في حالتي ، أستخدم المحلل اللغوي للحصول على هذه العلامات في React ثم استخدم renderToString من react-dom/server للحصول على كود الإخراج الخاص بي ، وانتهى بي الأمر بـ <sometext: someothercodehere></sometext: someothercodehere> . في ملحق React chrome ، يكون عنصري شيئًا مثل: createElement('sometext: someothercodehere')

مشكلة أخرى تتعلق بهذا: تحليل سلسلة تحتوي على سمات onclick أو viewbox ، هذه السمات غير صالحة في React لأن React تستخدم onClick و viewBox بدلاً من ذلك ، لذلك في تحويل السمات من سلسلة html إلى مكونات React ، يجب تحويلها إلى حالة الجمل أو كسروا. سيكون من الجيد أن تحدث هذه التحويلات بشكل افتراضي ، ولكن بدلاً من ذلك ، إذا كان بإمكانك توفير خيار لاستبدال السمات التي من شأنها أن تعمل.

remarkablemark هل من تحديثات بخصوص هذه المسألة؟

أواجه مشكلة مماثلة ولكن في حالتي ، فإن السلسلة المطلوب تحليلها تشبه
Hello world <HighlightMe>Text to be highlighted</HighlightMe>
حيث HighlightMe مكون مخصص.

في الأساس ، أحتاج إلى مساعدة في تحليل السلسلة التي تحتوي على مكونات مخصصة.

أنا أعمل على هذه المشكلة ، فأنا أقوم حاليًا بترميز شوكة نظيفة من htmlparser2 و parse5 للانضمام إلى كل من الخوارزمية ، وستتمكن بعد ذلك من استخدام محول dom رد فعل parse5 الذي سيعتمد على قاعدة الكود هذه

في html-react-parser v0.12.0 ، يمكنك تمرير خيارات htmlparser2 عند التحليل على جانب الخادم (Node.js):

$ node
> const parse = require('html-react-parser');
> parse('<FooBar>baz</FooBar>', { htmlparser2: { lowerCaseTags: false } });
{
  '$$typeof': Symbol(react.element),
  type: 'FooBar',
  key: null,
  ref: null,
  props: { children: 'baz' },
  _owner: null,
  _store: {}
}

راجع README.md أو Repl.it demo أو سحب الطلب # 161 لمزيد من المعلومات.

لقد قمت أيضًا بتحديث الأسئلة الشائعة لـ README

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات