কীভাবে কোনও থিমের ডাব্লু 3 সি মান সম্মতি বজায় রাখা যায়


10

যখন আমি একটি থিম লিখেছিলাম, আমি নিশ্চিত করেছি যে এটি এক্সএইচটিএমএল 1.1 এবং সিএসএস 2.1 এর সাথে সম্মতিযুক্ত। তারপরে আমি প্লাগইনগুলি যুক্ত করেছি এবং থিমটি আর এক্সএইচটিএমএল 1.1 এর সাথে অনুগত নয়। তারপরে আমি আমার সিএসএসে গুগল এপিআই ফন্ট ব্যবহার করেছি এবং এটি সিএসএস 2.1 এর সাথে সামঞ্জস্যপূর্ণ।

প্লাগিনগুলি, ফন্ট ইত্যাদি থেকে মুক্তি না পেয়ে আমি সম্মতি রাখতে পারি এমন কোনও উপায় আছে বা বৈধতা ত্রুটিগুলি কেবল উপেক্ষা করা উচিত?

উত্তর:


5

কারেকশন, আপনার থিম এখনও এক্সএইচটিএমএল 1.1 এবং CSS 2.1 সঙ্গে সঙ্গতিশীল ছিল, কিন্তু প্ল্যাগ-ইনগুলি জুড়েছে ইনজেকশনের অতিরিক্ত কোড যে ছিল না অনুবর্তী।

দুর্ভাগ্যক্রমে, আপনি যদি প্লাগইনগুলি ব্যবহার করেন তবে সম্মতি বজায় রাখার সহজ উপায় নেই। আপনার থিমটি যা যা করা যায় তা যাচাই করা এবং আপনি যে ব্যক্তিগতভাবে ব্যক্তিগতভাবে দায়বদ্ধ সেই সমস্ত মার্কআপ, তারপরে আশা করি যে অন্য বিকাশকারীরা তাদের নিজস্ব কাজটি যাচাই করার জন্য সময় নিয়েছে।

বিকল্পটি আপনার পক্ষে আরও অনেক কাজ - আপনি এখনও প্লাগ-ইনগুলির মূল কার্যকারিতাটি ব্যবহার করতে পারেন, তবে ব্রাউজারে কোনও মার্কআপ আউটপুট দেওয়ার অনুমতি দেবেন না । আপনার নিজস্ব কাস্টম স্তর যুক্ত করুন যা প্লাগ-ইন স্পর্শ করে সমস্ত কিছুই অনাহূত করে এবং আপনার নিজস্ব আউটপুট বাফার তৈরি করে। এই শুধুমাত্র আপনি মার্কআপ শৈলী নিয়ন্ত্রণ ব্রাউজারে পাঠানো হচ্ছে থাকবে।

বেশ কয়েকটি প্লাগইন এইচটিএমএল 5 ব্যবহার শুরু করছে ... অন্যরা CSS3 ব্যবহার করার চেষ্টা করছে। আপনি যদি এই প্লাগইনগুলি ইনস্টল করেন এবং সেগুলির আউটপুট স্যানিটাইজ এবং বৈধকরণের পদক্ষেপ না নেন তবে আপনার সাইটটি যথাযথভাবে বৈধ হওয়া বন্ধ করবে।


1
ধন্যবাদ, আমি মনে করি না যে আমি এইচটিএমএলকে স্যানিটাইজ করার বিকল্পটি দিয়ে যেতে চাই। আমাকে কেবল আমার সাইট থেকে এই ডব্লু 3 সি ব্যাজগুলি সরিয়ে ফেলতে হতে পারে :)
জেমস

ওহ অগত্যা কোনও প্রয়োজন যেমন আপনি স্বয়ংক্রিয়ভাবে সম্মতি অর্জন করতে পারেন, নীচে আমার উত্তরটি দেখুন। আপনার থিম বা প্লাগইন আউটপুট নিয়ে ঝামেলা করার দরকার নেই :)
হ্যাক্রে

+1, আপনি কখনই অন্য ব্যক্তির কোডের উপর নির্ভর করতে পারবেন না, কেবল আশা করি তাদের কোডটি বৈধ এইচটিএমএলকে ছিটকে যাবে।
বেন ইভার্ডার্ড

8

প্রতিটি প্লাগইন যে কোডটি উত্পন্ন করতে চায় তা তৈরি করতে চলেছে এবং এর কিছুটি এক্সএইচটিএমএল 1.1 অনুসারে চলবে না। এটিকে সংশোধন করার একমাত্র যুক্তিযুক্ত উপায় হ'ল প্রতিটির নিরীক্ষণ করা এবং হয় অপরাধীদের সংশোধন করা বা বিকাশকারীকে প্যাচ হিসাবে আপনার পরিবর্তনগুলি পরিবর্তন করতে বা ব্যবহার করতে।

বিকল্প হিসাবে আপনি এটি পরিষ্কার করার জন্য একটি ফিল্টার লেখার চেষ্টা করতে পারেন তবে সমস্ত বিশেষ কেসটি চেষ্টা করার চেষ্টাটি আমার নিজের ব্যক্তিগত দুঃস্বপ্নের সংস্করণের মতো মনে হচ্ছে এবং এটি অদ্ভুত উপকারের জন্য কর্মক্ষমতাও প্রভাব ফেলবে।

আপনার কাছে এমন কোনও ক্লায়েন্ট / বস রয়েছে যিনি এটি চান, বা এটি কেবল " সুন্দর-সুন্দর " হিসাবে ধরে নেওয়া হয়েছে ? (হ্যাঁ, এমন কেউ কেউ আছেন যাঁর সম্পর্কে এটি দৃ strongly়ভাবে অনুভূত হয় I আমি তবে তাদের মধ্যে একজন নই))

এটি বলেছিল, এক্সএইচটিএমএল ওয়েবে তার " ফর্সা কেশিক শিশু " স্ট্যাটাসটি হারাচ্ছে ; এমনকি টিম বার্নার্স-লি 2006 সালে ফিরে বলেছিলেন :

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

আপনি এইচটিএমএল 1.0 পড়তে চাইতে পারেন এক্সএইচটিএমএল 1.0 এর চেয়ে অনেক সহজ লেখা। স্ট্যাকওভারফ্লোতে ওভার। এখানে তাদের সংক্ষিপ্তসার:

কেবল সিনট্যাক্স-ভিত্তিক, আপনি যখন HTML5 ব্যবহার করেন, আপনি ক্লিনার দিয়ে শেষ করেন, সহজেই মার্কআপ পড়তে সহজ হন যা সর্বদা মান মোডের জন্য প্রার্থনা করে। আপনি যখন এক্সএইচটিএমএল 1.0 ব্যবহার করেন (পাঠ্য / এইচটিএমএল হিসাবে পরিবেশন করা হয়), আপনি ব্রুডটি স্বয়ংক্রিয়ভাবে করবে যা ক্রুডগুলির একটি গুচ্ছ (একটি ক্র্প্পে ডিটিডিটির বিরুদ্ধে বৈধতা দেওয়ার জন্য) নির্দিষ্ট করে দিচ্ছেন।


এটি আমার ব্যক্তিগত ওয়েবসাইট এবং থিমটি নিজেই বেশ পুরানো। ওয়েব সাইট এবং থিম সবই আমার শখ। আমি একটি নতুন থিম লেখার সময়, আমাদের সম্ভবত সমস্ত বড় ব্রাউজারগুলিতে যুক্তিসঙ্গতভাবে ভাল HTML5 সমর্থন থাকবে। প্লাগইনগুলি নন-কমপ্লায়েন্ট মার্কআপ উত্পন্ন করা চালিয়ে যাচ্ছে। আমি অপরাধীকে সাফ করার চেষ্টা করতে পারি তবে প্লাগইন আপডেটগুলি আরও শক্ত হয়ে যায়। লিঙ্কগুলির জন্য ধন্যবাদ।
জেমস

হ্যাঁ, যদি এটি কোনও ব্যবসায়ের উদ্দেশ্যে না হয় বা এক্সএইচটিএমএল সম্মতি বজায় রাখার আপনার দক্ষতার বিষয়ে দক্ষতা না দেখায় আমি এ নিয়ে চিন্তা করব না।
মাইকচিন্কেল

আমি ওয়েব সাইট এবং সার্ভারগুলি শেখার সরঞ্জাম হিসাবে ব্যবহার করি। আমি কর্মক্ষেত্রে যা করি তার থেকে আলাদা এমন জিনিসগুলি শেখা।
জেমস

হতাশাজনক। আন-মজাদার কাজের মতো শোনাচ্ছে। পড়াশুনা আমার যা মনে হয় তা-ই! :)
মাইকচিনকেল

ওহ, কাজটি বেশ মজাদার তবে বেশিরভাগ উইন্ডোজ ভিত্তিক বিকাশ। এটি সি # :) থেকে বিরতির মতো
জেমস

2

মানগুলির সাথে সম্মতিটি কোনও গ্যারান্টি দেয় না যে আপনার ওয়েবসাইটটি সমস্ত ব্রাউজারে কাজ করবে। মান সম্মতি উপেক্ষা করুন এবং যতটা সম্ভব ব্রাউজারের সাথে পরীক্ষার উপর ফোকাস করুন।


1

আপনি আপনার সাইটের পুরো আউটপুটটি বাফার করতে পারেন এবং তারপরে এটি সাজাতে পারেন HTML এর সাথে। সর্বোত্তম, এটি সম্পূর্ণ স্বয়ংক্রিয়ভাবে করা যেতে পারে:

আপনি থিম থিম বা সম্পর্কিত হুকগুলিতে আউটপুট বাফারিং সক্ষম করতে পারেন (উদাঃ * সেটআপ_থমে * হুক)।

এখানে দুটি কোড টুকরা। প্রথমটি আপনাকে দেখায় যে আপনি আউটপুট বাফারিং শুরু করেছেন এবং পরে বাফারটি পড়বেন:

<?php
ob_start();
?><?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>

দ্বিতীয়টি কার্যকরভাবে কিছু কনফিগারেশন বিকল্প দেখায়:

/* Tiny Configuration */
$config["clean"]         = true;
$config["hide-comments"] = true;
$config["output-xhtml"]  = true;
$config["indent-spaces"] = 2;
$config["tab-size"]      = 2;
$config["wrap"]          = 0;

$buffer = ob_get_clean();
$tidy   = tidy_repair_string($buffer, $config);

echo $tidy;

আমি বাজি ধরছি এটি করার জন্য ইতিমধ্যে একটি বিদ্যমান ওয়ার্ডপ্রেস প্লাগইন রয়েছে। দেখা যাক:


মজাদার. আমি একবার চেষ্টা করবো।
জেমস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.