ما هي أسهل طريقة لتحويل علامة Wiki إلى HTML؟

StackOverflow https://stackoverflow.com/questions/45991

  •  09-06-2019
  •  | 
  •  

سؤال

أقوم بإنشاء موقع ويب يتطلب إمكانات ترميزية أساسية جدًا.لا يمكنني استخدام أي مكونات إضافية تابعة لجهات خارجية، لذا أحتاج فقط إلى طريقة بسيطة لتحويل العلامات إلى HTML.قد يكون لدي إجمالي 3 علامات سأسمح بها.

ما هي أفضل طريقة للتحويل ==Heading== ل <h2>Heading</h2>, ، أو --bold-- ل <b>bold</b>؟هل يمكن القيام بذلك ببساطة باستخدام Regex، أم أن شخصًا ما لديه وظيفة بسيطة؟

أنا أكتب هذا بلغة C#، ولكن من المحتمل أن تنجح الأمثلة من اللغات الأخرى.

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

string html = Regex.Replace("==This will be inside h2==", "==([^=]*)==", "< h2>$1< /h2>")

استخدامات .NET $1 التدوين بدلا من \1 التدوين الذي يستخدم في لغات أخرى.

هل كانت مفيدة؟

المحلول

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

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

على سبيل المثال

replace the pattern ==([^=]*)== with <h2>\1</h2>

نصائح أخرى

هنالك أيضا وحدة بيرل و أ مشروع PHP لفعل هذا.قد يكون الكود المصدري لأي منهما مفيدًا في تطوير الحل الخاص بك.

أستخدم Markdown (نفس لغة الترميز خفيفة الوزن المستخدمة في هذا الموقع).بالنسبة لـ C#، يتوفر قدر جيد جدًا من كود المصدر هنا.وهو يدعم Markdown بشكل كامل، على الرغم من أنه لا يبدو أنه تمت صيانته.لكن في الوقت الحالي فهو يعمل بشكل جيد وهو مجاني ومفتوح المصدر.

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

يعتمد هذا حقًا على بناء جملة Wiki الذي تستخدمه نظرًا لوجود العديد من القواعد المختلفة.من الواضح أن برنامج الويكي لديه هذه الوظيفة في مكان ما؛إذا لم تتمكن من العثور على حزمة برامج تقوم بذلك نيابةً عنك، فيمكنك البدء في البحث عن الكود ذي الصلة في برنامج wiki الخاص بك.

ربما هذا هو ما تحتاجه.

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

من المحتمل أن تكون مبالغة في استخدام علاماتك الثلاثة، ولكن إذا تحول الأمر إلى لغة ترميزية كاملة، وبدأ التعبير العادي يبدو مخيفًا، فقد ترغب في التفكير antlr

كما قال جوزيف فإن Markdown هو الحل الأفضل لحل مشكلة تحويل النص إلى html.

يعد MarkdownSharp خفيف الوزن وسهل الاستخدام وتم اختباره جيدًا لأنه تطبيق Stackoverflow!

new Markdown().Transform("**markdown text**");

http://blog.stackoverflow.com/2009/12/introducing-markdownsharp/

المزيد عن بناء جملة Markdown - http://en.wikipedia.org/wiki/Markdown

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top