আমি এই প্রশ্নটি আকর্ষণীয় পেয়েছি, তাই আমি কিছু বন্ধ করার সিদ্ধান্ত নিয়েছি (কেবলমাত্র প্রতিস্থাপন strong
এবং italic
মার্কডাউন ট্যাগগুলি)। রেজিক্সগুলি ব্যবহার করে সমাধানের চেষ্টা করতে এক ঘন্টা ব্যয় করে আমি হাল ছেড়ে দিয়ে নিম্নলিখিতটি দিয়ে শেষ করেছি, যা মনে হয় সুন্দরভাবে কাজ করে। এটি বলেছিল, এটি অবশ্যই আরও অনুকূলিত করা যেতে পারে এবং বাস্তব রূপের দৃili়তাটি এই রূপে ঠিক কী হবে তা সম্পর্কে আমি নিশ্চিত নই:
function mdToHtml(str) {
var tempStr = str;
while(tempStr.indexOf("**") !== -1) {
var firstPos = tempStr.indexOf("**");
var nextPos = tempStr.indexOf("**",firstPos + 2);
if(nextPos !== -1) {
var innerTxt = tempStr.substring(firstPos + 2,nextPos);
var strongified = '<strong>' + innerTxt + '</strong>';
tempStr = tempStr.substring(0,firstPos) + strongified + tempStr.substring(nextPos + 2,tempStr.length);
} else {
tempStr = tempStr.replace('**','');
}
}
while(tempStr.indexOf("*") !== -1) {
var firstPos = tempStr.indexOf("*");
var nextPos = tempStr.indexOf("*",firstPos + 1);
if(nextPos !== -1) {
var innerTxt = tempStr.substring(firstPos + 1,nextPos);
var italicized = '<i>' + innerTxt + '</i>';
tempStr = tempStr.substring(0,firstPos) + italicized + tempStr.substring(nextPos + 2,tempStr.length);
} else {
tempStr = tempStr.replace('*','');
}
}
return tempStr;
}
পরীক্ষার কোড:
var s = "This would be *italicized* text and this would be **bold** text, This would be *italicized* text and this would be **bold** text, This would be *italicized* text and this would be **bold** text";
alert(mdToHtml(s));
আউটপুট:
This would be <i>italicized</i>text and this would be <strong>bold</strong> text, This would be <i>italicized</i>text and this would be <strong>bold</strong> text, This would be <i>italicized</i>text and this would be <strong>bold</strong> text
সম্পাদনা: ভি 0.04 এ নতুন - নিরীক্ষিত মার্কডাউন ট্যাগগুলি স্বয়ংক্রিয়ভাবে অপসারণ