إزالة تعليقات HTML من الشفرة مع الحفاظ على التنسيق
أزل ملاحظات المسودة والمقاطع المعطلة من صفحات HTML: صفحة فيها تعليقان تعود بلا أي تعليق وبعدد 2، بينما تبقى الوسوم والمسافات البادئة وفواصل الأسطر خارجها كما هي تمامًا. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
تزيل هذه الأداة كل كتلة مكتملة من تعليقات HTML في النص المرسل، ثم تعيد النص المنظف وعدد التعليقات المحذوفة معًا. تفيدكم عند احتواء التعليقات على ملاحظات مسودة أو إشارات بناء أو مقاطع معطلة أو تذكيرات داخلية ينبغي ألا تنتقل إلى HTML المنشور. العملية حتمية؛ فكل ما يقع خارج محددات التعليق يبقى كما ورد تمامًا، أما التعليق غير المكتمل فينتج خطأ إدخال واضحًا بدل أن يحذف بقية المستند بصمت.
نظفوا الشفرة من دون تغيير تنسيقها
تحلل أدوات كثيرة لتنظيف HTML المستند ثم تعيد تسلسله، وقد يؤدي ذلك إلى تغيير ترتيب السمات أو توحيد المسافات أو تبديل علامات الاقتباس أو إصلاح الوسوم المعيبة. يفيد هذا السلوك في بعض الأعمال، لكنه غير ضروري عندما يكون المطلوب إزالة التعليقات وحدها. تنفذ هذه الإمكانية عملية نصية محددة؛ فهي تبحث عن محدد فتح التعليق، وتنسخ كل ما يسبقه بلا تغيير، وتتجاوز المحتوى حتى محدد الإغلاق المقابل، ثم تتابع من الحرف التالي.
تبقى النصوص والوسوم والمسافات البادئة وفواصل الأسطر والكيانات وتعبيرات القوالب وتنسيق السمات خارج التعليقات كما هي بالضبط. لذلك تلائم مسارات العمل الخاضعة للتحكم في الإصدارات، حيث قد ينشئ المنسق العام فروقًا جانبية مزعجة. إذا لم توجد تعليقات، تعاد المادة الأصلية بلا تغيير ويكون العدد صفرًا، ولذلك يمكن إدراج العملية بأمان ضمن المعالجة الأولية المعتادة حتى عندما تختلف الملفات من تشغيل إلى آخر.
تعرفوا إلى حدود التعليقات وأخطائها
يبدأ تعليق HTML بالتسلسل الدقيق <!-- وينتهي عند أول تسلسل دقيق تالٍ -->. يحذف كل ما يقع بين المحددين، بما في ذلك الوسوم وفواصل الأسطر وعلامات الترقيم والسلاسل التي تبدو كمحدد فتح آخر. توفر هذه القاعدة حدًا عمليًا وحتميًا من دون تفسير المادة المحذوفة على أنها ترميز نشط.
أما محدد الإغلاق الذي لا يسبقه فتح فيعد نصًا عاديًا ويظل كما هو. في المقابل، يكون الفتح الذي لا يتبعه إغلاق ملتبسًا وخطرًا؛ إذ قد تؤدي معاملته كتعليق حتى نهاية الإدخال إلى حذف محتوى حقيقي من الصفحة. أضيفوا محدد الإغلاق الناقص ثم أرسلوا النص الكامل مرة أخرى.
استخدموا العدد في مسارات عمل موثوقة
يحول عدد التعليقات المحذوفة تعديلًا نصيًا بسيطًا إلى خطوة قابلة للتدقيق. يمكن لنص برمجي خاص بالنشر أن يشترط عدم وجود أي تعليق في HTML النهائي، أو يسجل عدد الملاحظات الداخلية التي أزيلت، أو يحذر عندما يتغير العدد على نحو غير متوقع بين عمليات البناء. ويمكن لترحيل المحتوى أن ينظف المقاطع المخزنة مع الاحتفاظ بمقياس يساعد المراجعين على تقدير حجم المادة المخفية.
تستطيع الاختبارات التحقق من الشفرة المنظفة بدقة ومن عدد العناصر المحذوفة معًا، وبذلك تكشف أي تغيير عرضي في الحدود أو المصدر. ولأن الخوارزمية لا تستخدم الشبكة أو النماذج أو العشوائية أو الساعة أو إعادة تسلسل المستند، فإن الإدخال المتطابق يعطي دائمًا ناتجًا متطابقًا. وعند معالجة مجموعات كبيرة، عالجوا كل مستند منفردًا كي تبقى الأخطاء والأعداد مرتبطة بمصدرها الصحيح.
حالات الاستخدام
إعداد HTML للنشر
أزيلوا الملاحظات التحريرية والمقاطع المعطلة قبل إرسال الشفرة إلى موقع الإنتاج.
تنظيف ناتج البناء
احذفوا إشارات أداة التوليد من دون تغيير بقية البايتات أو المسافات أو تنسيق الوسوم.
تدقيق الملاحظات المخفية
سجلوا عدد التعليقات المحذوفة لاكتشاف التغيرات غير المتوقعة أو تطبيق سياسة العدد الصفري.
الأسئلة الشائعة
هل تعيد الأداة تنسيق HTML أو تتحقق من صحته؟
لا؛ فهي تحفظ كل حرف خارج التعليقات ولا تحلل الشفرة أو تصلحها أو تضبط مسافاتها البادئة أو تعيد تسلسلها.
ماذا يحدث إذا لم يُغلق تعليق ما؟
لا يُحذف أي شيء، وتظهر رسالة تحدد الموضع الذي يبدأ فيه التعليق غير المكتمل. فمعاملته كتعليق حتى النهاية قد تمحو محتوى حقيقيًا من الصفحة، لذا أضف علامة الإغلاق ثم أعد المحاولة.
وماذا لو احتوى التعليق على علامة فتح أخرى؟
تُعامل جزءًا من التعليق. ينتهي كل تعليق عند أول علامة إغلاق تليه، ويُحذف كل ما قبلها معه، بما في ذلك الوسوم وفواصل الأسطر وعلامة الفتح الثانية.
هل تُحذف علامة إغلاق منفردة؟
لا. علامة الإغلاق التي لا تسبقها علامة فتح نص عادي وتبقى في مكانها. تُحذف فقط التعليقات المكتملة التي لها بداية ونهاية.
ما فائدة عدد التعليقات المحذوفة؟
يساعدك على التحقق من التنظيف. يمكن لعملية النشر أن تشترط صفر تعليقات في الصفحة النهائية، أو أن تسجل عدد الملاحظات الداخلية المحذوفة، أو أن تنبّه إذا تغير العدد فجأة بين نسختين. وإذا لم توجد تعليقات يعود النص كما هو بعدد صفر.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/text/remove-html-comments \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"<main><!-- draft note --><h1>Hello</h1></main>"}'const res = await fetch("https://api.kit.forhosting.com/text/remove-html-comments", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "<main><!-- draft note --><h1>Hello</h1></main>"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/remove-html-comments",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "<main><!-- draft note --><h1>Hello</h1></main>"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/remove-html-comments", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"<main><!-- draft note --><h1>Hello</h1></main>"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"<main><!-- draft note --><h1>Hello</h1></main>"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/remove-html-comments", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "<main><!-- draft note --><h1>Hello</h1></main>"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.remove_html_comments",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 200000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
نظفوا الشفرة من دون تغيير تنسيقها
تتضمن الاستجابة النص المنظف بوصفه القيمة الأساسية، كما تتضمن comments_removed للاستفادة منه في السجلات أو الاختبارات أو التقارير.
تعرفوا إلى حدود التعليقات وأخطائها
لذلك ترفض الإمكانية الطلب كاملًا بخطأ invalid_input يحدد موضع الحرف الذي بدأ عنده التعليق غير المكتمل، ولا تعيد نتيجة جزئية. هذا السلوك الصارم مهم في النشر الآلي، لأنه يوقف القالب التالف بوضوح بدل إنشاء مستند مبتور يبدو ناجحًا.
استخدموا العدد في مسارات عمل موثوقة
يشترك مشغل المتصفح وواجهة API في التطبيق النقي نفسه، فتتفق الفحوص التفاعلية والأتمتة. أرسلوا HTML في الحقل text واقرؤوا text وcomments_removed من الاستجابة. تبلغ تكلفة كل عنصر محدود عبر API مقدار $0.002.
أسئلة تقنية
ما الذي تعيده هذه الإمكانية؟
تعيد نص HTML المنظف وcomments_removed، وهو عدد كتل التعليقات المكتملة التي حُذفت.
ماذا يحدث إذا لم يُغلق التعليق؟
يفشل الطلب بخطأ invalid_input يبين موضع بداية تعليق HTML غير المكتمل.
ماذا يحدث إذا خلا الإدخال من التعليقات؟
يعاد النص الأصلي بلا تغيير وتكون قيمة comments_removed صفرًا.
ما تكلفة طلب API؟
يكلف كل طلب $0.002. تتوفر العملية الحتمية نفسها أيضًا في مشغل المتصفح.