এইচটিএমএল 5 মন্তব্য করার জন্য মান পরিবর্তন করে?


131

সম্প্রতি আমি দেখতে পেয়েছি যে সম্ভবত HTML5 এ মন্তব্য করার একটি নতুন উপায় রয়েছে।

<!-- -->আমি যে সাধারণ মাল্টি লাইন মন্তব্যটি পড়েছি তার পরিবর্তে , আমি ভেবেছিলাম যে আমি লক্ষ্য করেছি যে আমার আইডিই একটি নিয়মিত <!div >মন্তব্য করেছে। তাই আমি এটি পরীক্ষা করে দেখেছি, এবং আমার আশ্চর্যরূপে ক্রোম সেই ট্যাগটি সম্পর্কে মন্তব্য করেছিল। এটি কেবল ট্যাগটির বাইরে মন্তব্য করেছিল, ডিভের বিষয়বস্তু নয়, তাই <!/div>অন্যান্য ডিভগুলি বন্ধ না করার জন্য আমাকে আরও কাছাকাছি মন্তব্য করতে হয়েছিল ।

আমি অন্যটি পরীক্ষা করে দেখেছি যে কোনও ট্যাগের উদ্বোধনের সামনে সাধারণত একটি বিস্ময়বোধক চিহ্নিতকারী এই চিহ্নটি এই <ট্যাগটিকে মন্তব্য করে।

এটি কি আসলেই নতুন? এটা কি খারাপ অভ্যাস? এটি আসলে খুব সুবিধাজনক, তবে এটি কি এখনও বাস্তব (নতুন না হলে)?

অতিরিক্ত বিশদ সম্পাদনা করুন: যদিও সিনট্যাক্স ত্রুটি বা এই নির্দিষ্ট বাক্যটির ভুল ব্যাখ্যা করা একটি ভাল কারণ, ক্রোম আসলে কীভাবে তাদের সম্পূর্ণ মন্তব্য হিসাবে উপস্থাপন করে?

কোডটি লিখিত রয়েছে :

<!div displayed> some text here that is still displayed <!/div>

এবং তারপরে এটি রেন্ডার করা হয় :

<!--div displayed--> some text here that is still displayed <!--/div-->

19
সম্ভবত এটি কেবল একটি বাক্য গঠন ত্রুটি এবং / অথবা বাজে ট্যাগ এবং তাই উপেক্ষা করা হয়।
ছদ্মবেশ

@ অনুগ্রহ করে আমি কিছুটা প্রত্যাশা করেছিলাম যেহেতু ব্রাউজারগুলি কম কড়া নিয়ম অনুসারে কীভাবে এইচটিএমএল রেন্ডার করে তা নিয়ে হালকা হতে পারে।
অ্যান্ড্রু

1
@ লেমনি-অ্যান্ড্রু কী আইডিই তা করে? নির্বাচিত উত্তর অনুসারে, আমরা এটি একটি সমস্যা হিসাবে রিপোর্ট করতে পারি (বা ওপেন সোর্স হলে এটি ঠিক করতে পারি) fix
ডেরিকসন

1
@ ডেরিকসনসিত সরকারী উত্তর দেওয়ার পরে আমি আমার আইডিই ডাবল চেক করেছিলাম যাতে আমার চোখ আমাকে প্রতারণা করছে না তা নিশ্চিত করার জন্য। এটি ঘটেছে যে এটি ডি ফ্যাক্টোর বাইরে মন্তব্য করা হয়নি, তবে এটি নিয়মিত পাঠ্যের রঙ যা একই ছিল। এই সব ছিল সুযোগে।
অ্যান্ড্রু

উত্তর:


196

এইচটিএমএল 5 এ মন্তব্য করার জন্য কোনও নতুন মান নেই। শুধুমাত্র বৈধ মন্তব্য বাক্য গঠন এখনও <!-- -->ডাব্লু 3 সি এইচটিএমএল 5 এর 8.1.6 বিভাগ থেকে :

মন্তব্যগুলি অবশ্যই চারটি অক্ষরের অনুক্রম U + 003C স্বল্প চিহ্নের চেয়ে কম, ইউ + 0021 এক্সক্লিমেশন মার্ক, ইউ + 002 ডি হাইফেন-মাইনাস, ইউ + 002 ডি হাইফেন-মাইনাস ( <!--) দিয়ে শুরু করা উচিত।

<!যার SGML DTD মার্কআপ, যা HTML5 এর অংশ নয় সিনট্যাক্স উত্পন্ন হয়। এইচটিএমএল 5 এ এটি মন্তব্য, সিডিএটিএ বিভাগ এবং ডক্টইপিই ঘোষণার জন্য সংরক্ষিত। সুতরাং এই বিকল্পটি খারাপ অভ্যাস কিনা তা নির্ভর করে আপনি অপ্রচলিত মার্কআপকে খারাপ অভ্যাস হিসাবে বিবেচনা করছেন কিনা (বা আরও খারাপের উপর নির্ভরতা)।

ভ্যালিডেটর ডান্নু আপনার যা আছে তাকে কল করে "বোগাস মন্তব্য"। - যার অর্থ এটি বৈধ মন্তব্য না হওয়া সত্ত্বেও এটি একটি মন্তব্যের মতো আচরণ করা। এটি সম্ভবত প্রাক-এইচটিএমএল 5 এর সাথে পিছনের সামঞ্জস্যের জন্য, যা ছিল এসজিএমএল-ভিত্তিক, এবং মার্কআপ ঘোষণা ছিল যা রূপ নিয়েছিল <!FOO>, তাই আমি এইটিকে নতুন বলব না। কারণে তারা চিকিত্সা করছি মত মন্তব্য নেই কারণ যার SGML মার্কআপ ঘোষণা বিশেষ ঘোষণা না বোঝানো রেন্ডার করা ছিল, কিন্তু যেহেতু তারা HTML5 এর মধ্যে অর্থহীন হয় (উপরে ব্যাতিক্রম আছে), যতটা HTML5 এর করে DOM সংশ্লিষ্ট হয় তারা হয় কিছুই মন্তব্য চেয়ে বেশি ।

8.2.4 বিভাগের মধ্যে নিম্নলিখিত পদক্ষেপগুলি এই উপসংহারে নিয়ে যায়, যা ক্রোম চিঠির অনুসরণ করে বলে মনে হচ্ছে:

  1. 8.2.4.1 তথ্য স্থিতি :

    পরবর্তী ইনপুট অক্ষর গ্রহণ করুন:

    "<" (U + 003C)
    ট্যাগ ওপেন অবস্থায় স্যুইচ করুন।

  2. 8.2.4.8 ট্যাগ খোলা রাষ্ট্র :

    পরবর্তী ইনপুট অক্ষর গ্রহণ করুন:

    "!" (U + 0021)
    মার্কআপ ডিক্লেয়ারেশন ওপেন স্টেটে স্যুইচ করুন।

  3. 8.2.4.45 মার্কআপ ঘোষণা মুক্ত রাষ্ট্র :

    যদি পরবর্তী দুটি অক্ষর উভয়ই "-" (U + 002D) অক্ষর হয় তবে এই দুটি অক্ষর গ্রাস করুন, একটি মন্তব্য টোকেন তৈরি করুন যার ডেটা খালি স্ট্রিং, এবং মন্তব্য শুরু করার স্থিতিতে স্যুইচ করুন।

    অন্যথায়, যদি পরবর্তী সাতটি অক্ষর যদি "DOCTYPE" শব্দের জন্য একটি ASCII কেস-সংবেদনশীল মিল হয় তবে এই অক্ষরগুলিকে গ্রাস করুন এবং ডক্টিপিইপি স্থিতিতে স্যুইচ করুন।

    অন্যথায়, যদি সামঞ্জস্য করা বর্তমান নোড থাকে এবং এটি এইচটিএমএল নেমস্পেসে কোনও উপাদান না হয় এবং পরবর্তী সাতটি অক্ষর "[সিডিএটিএ" "স্ট্রিংয়ের জন্য কেস-সংবেদনশীল মিল হয় (পাঁচটি বড় অক্ষর" সিডিএটিএ "ইউ + এর সাথে থাকে) 005B এর আগে এবং পরে বাম স্কয়ার ব্র্যাকেট অক্ষর), তারপরে এই অক্ষরগুলি গ্রাস করুন এবং সিডিএটিএ বিভাগের স্থিতিতে স্যুইচ করুন।

    অন্যথায়, এটি একটি পার্স ত্রুটি। বগাস মন্তব্য স্থিতিতে স্যুইচ করুন। পরবর্তী চরিত্রটি যা গ্রাস করা হয়, তা যদি হয় তবে প্রথম চরিত্রটি মন্তব্যে থাকবে।

    লক্ষ্য করুন যে এটি মন্তব্যগুলির সূচনা স্থিতিতে সরে যেতে বলেছে কেবলমাত্র অক্ষরের ক্রম যদি আসে তবে <!--অন্যথায় এটি একটি জাল মন্তব্য। এটি উপরের ৮.১..6 অনুচ্ছেদে বর্ণিত প্রতিফলিত করে।

  4. 8.2.4.44 বোগাস মন্তব্য রাষ্ট্র :

    প্রথম ">" (ইউ + 003 ই) অক্ষর বা ফাইলের শেষ (ইওএফ) অন্তর্ভুক্ত প্রতিটি অক্ষর গ্রহণ করুন, যেটি প্রথমে আসে। একটি মন্তব্য টোকেন প্রেরণ করুন যার ডেটা হ'ল সমস্ত চরিত্রের সংমিশ্রণ এবং সেই চরিত্রটি যা রাষ্ট্রীয় মেশিনকে বোগাস মন্তব্য অবস্থায় স্যুইচ করতে বাধ্য করেছিল, শেষ পাতানো চরিত্রের অবধি অবধি চরিত্রটি অন্তর্ভুক্ত করে (অর্থাত্ চরিত্র পর্যন্ত) ইউ + 003E বা ইওএফ অক্ষরের ঠিক আগে), তবে ইউ + এফএফএফডি রিপ্লেসমেন্ট চরিত্রের দ্বারা প্রতিস্থাপিত যে কোনও ইউ +0000 নুল অক্ষর রয়েছে। (যদি মন্তব্যটি ফাইলের (ইওএফ) এর শেষে শুরু করা হয়েছিল, টোকেনটি খালি রয়েছে, একইভাবে, টোকনটি যদি স্ট্রিং দ্বারা উত্পন্ন হয় তবে এটি খালি <!>"))

    প্লেইন ইংরেজিতে এই পালাক্রমে <!div displayed>মধ্যে <!--div displayed-->এবং <!/div>মধ্যে <!--/div-->, ঠিক যেমন প্রশ্নে বর্ণনা করেছেন।

একটি চূড়ান্ত নোটে, আপনি সম্ভবত অন্যান্য এইচটিএমএল 5-অনুগত পার্সারদের ক্রোমের মতো আচরণ করার আশা করতে পারেন।


11
এই ঘটনার পিছনে সরকারী যুক্তি খুঁজে পেতে সময় দেওয়ার জন্য আপনাকে ধন্যবাদ। এটি জিনিসগুলি বেশ কিছুটা সাফ করে এবং আমার ভুল অনুমানকে প্রচুর বৈধতা দেয়।
অ্যান্ড্রু

2
"অবৈধ" সামগ্রী প্রক্রিয়াকরণের কীভাবে এইচটিএমএল 5 স্পেশনের বিধি রয়েছে তা অদ্ভুত। যদি এটি অবৈধ হয় তবে এটি মোটেই প্রক্রিয়া করা উচিত নয়।
আর্টুরো টরেস সানচেজ

2
ওয়েল, এটি এইচটিএমএল এবং ওয়েব ভাষাগুলি ব্যবহৃত হত - কঠোর। কারণটির অনুপযুক্ত কোড কাঠামোটি এতটা ভাল মানের সাইটের জন্য লেনেন্টালি প্রক্রিয়াজাত করা হয়। কোনও ব্রাউজার যত বেশি ওয়েবসাইট দেখতে এবং সঠিক সিনট্যাক্স সহ সঠিকভাবে দেখতে পারে, তাদের শেষ ব্যবহারকারীরা তত বেশি খুশি হবেন। সাধারণ ওয়েব-স্ট্যান্ডার্ড লেখক (বেশিরভাগ ডাব্লু 3 অন্যজন নয়) বুঝতে পেরেছিলেন যে ব্রাউজার বিক্রেতারা এর কারণে গাইডলাইন অনুসরণ করছেন না। এইচটিএমএল 5 এসেছিল এবং ডিজাইনের আনুষ্ঠানিকভাবে আরও হালকা করার জন্য কেবল এই ধারণার উপর নির্মিত।
অ্যান্ড্রু 23

3
@ আর্টুরো টরেস সানচেজ: এক্সএইচটিএমএল "অবৈধ সামগ্রী = ত্রুটি" পদ্ধতির চেষ্টা করেছে এবং খারাপভাবে ব্যর্থ হয়েছে। তদ্ব্যতীত, বিধিগুলি মূলত বলেছে "এই বোগাস মন্তব্যটি বিশ্লেষণ করবেন না, কেবল এটিকে মন্তব্য হিসাবে বিবেচনা করুন এবং পরবর্তী যে বৈধ জিনিস আপনি খুঁজে পেয়েছেন তা পার্স করুন"। সুতরাং আপনার দৃষ্টিকোণের উপর নির্ভর করে এইচটিএমএল 5 আপনি যা চান তা করেন না কারণ আপনি যা চান তা সফল হয় বা HTML5 আপনি যা চান ঠিক তেমন করে।
slebetman

1
@ আর্টুরো টরেস সানচেজ: icallyতিহাসিকভাবে, এইচটিএমএল সার্ভারগুলি আশা করে যে কোনও ধরণের ব্রাউজারে অক্ষরগুলির একই ক্রমটি পরিবেশন করা হবে; যদিও দলিল বিন্যাসটি এমনভাবে নকশা করা সম্ভব হয়েছে যাতে পুরনো পার্সাররা নথিগুলি পৃথক করতে সক্ষম হন যা "alচ্ছিক" নতুন বৈশিষ্ট্যগুলি ব্যবহার করে যা পুরনো পার্সাররা উপেক্ষা করতে পারে, যে নথিগুলি অত্যাবশ্যকীয় নতুন বৈশিষ্ট্য ব্যবহার করে এবং ব্রাউজারগুলির দ্বারা তা প্রত্যাখ্যান করা উচিত তাদের সমর্থন করে না, এবং দস্তাবেজগুলি যা কেবল সাধারণ অবৈধ, এই জাতীয় কাজটি তার গঠনমূলক বছরগুলিতে করা হয়নি।
সুপারক্যাট

12

আমি মনে করি না যে এটি গ্রহণ করা ভাল অভ্যাস যেহেতু <!মার্কআপ ঘোষণার মতো <!DOCTYPE। সুতরাং আপনি মনে করেন এটি মন্তব্য করেছে (ভাল ... ব্রাউজার এটি ব্যাখ্যা করার চেষ্টা করবে)।

এটি প্রদর্শিত না হলেও এটি HTML কোড মন্তব্য করার জন্য সঠিক বাক্য গঠন বলে মনে হচ্ছে না।


যদিও এটি সত্য হতে পারে, কীভাবে ক্রোম আসবে those ট্যাগগুলিকে মন্তব্য করেছে তবে এখন ডকটাইপ।
অ্যান্ড্রু

4
পরামর্শ (আমি নিশ্চিত নই, কেবল অনুমান করছি): মন্তব্য করতে পারে না> মন্তব্য করতে চেষ্টা করে?
ইয়ভেস ল্যাঙ্গ

এটা আমার কাছে যথেষ্ট যুক্তিসঙ্গত মনে হয়।
এন্ড্রু 6

আবার (জোর দিয়ে দুঃখিত), তবে সচেতন থাকুন যে এটি কেবল অনুমান!
ইয়ভেস ল্যাঞ্জ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.