Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文

# অনুবাদ সতর্কতা

এই নথিটি স্বয়ংক্রিয়ভাবে অনুবাদ করা হয়েছে। যদি অনুবাদে কোনো ত্রুটি থাকে, অনুগ্রহ করে প্রকল্পে একটি পুল রিকোয়েস্ট খুলুন এবং অনুবাদিত ফাইলটি docs/{ISO 639-1 Code}.md এ যোগ করুন।

পরিচিতি

MJML একটি মার্কআপ ভাষা যা রেসপন্সিভ ইমেইল কোডিং প্রক্রিয়াকে সহজ করার জন্য বিশেষভাবে ডিজাইন করা হয়েছে। এর সেমান্টিক সিনট্যাক্স সহজতা এবং সরলতা নিশ্চিত করে, যখন এর বিস্তৃত স্ট্যান্ডার্ড কম্পোনেন্ট লাইব্রেরি উন্নয়নকে ত্বরান্বিত করে এবং আপনার ইমেইল কোডবেসের জটিলতা কমায়। MJML এর ওপেন-সোর্স ইঞ্জিন উচ্চ-মানের, রেসপন্সিভ HTML তৈরি করে যা সেরা প্র্যাকটিস অনুসরণ করে। যদি আপনি আউটলুক নিয়ে কাজ করার সময় হতাশা অনুভব করে থাকেন, তাহলে এই প্যাকেজটি আপনার জন্য তৈরি।

আমাদের MJML ইমপ্লিমেন্টেশন অফিসিয়াল MJML API এর জন্য একটি র‍্যাপার হিসেবে কাজ করে। এটি PHP এর মধ্যে সরাসরি MJML কে HTML এ কম্পাইল করার সুবিধা প্রদান করে, NodeJS এর প্রয়োজন ছাড়াই। এই প্যাকেজটি PHP অ্যাপ্লিকেশনগুলির জন্য আদর্শ যা NodeJS এবং MJML CLI ইনস্টল করার ঝামেলা ছাড়াই MJML অন্তর্ভুক্ত করতে চায়।

উদাহরণ

// Laravel ছাড়া
(new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// মিনিফাইড HTML
(new MJML)->minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Laravel সহ
MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
 
// Laravel এবং মিনিফাইড HTML সহ
MJML::minify()->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
# ইনস্টলেশন
  1. প্রথমে আপনার composer.json ফাইলে নিম্নলিখিত কোডটি যোগ করুন যাতে আমাদের প্যাকেজ আপনার অপারেটিং সিস্টেমের জন্য সঠিক বাইনারি ফাইলগুলি টেনে আনে যখন আমাদের প্যাকেজটি ইনস্টল করা হয়। আপনি install, update, বা dump-autoload চালানোর পরে বাইনারি ফাইলগুলি ডাউনলোড হবে।

    {
    "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]
    }

    MJML বাইনারি ফাইলটি আমাদের CDN থেকে প্রাপ্ত হবে এবং কম্পোজারের ইনস্টলেশন বা আপডেটের সময় এই প্যাকেজের "bin" ফোল্ডারে সংরক্ষিত হবে। নিশ্চিত করুন যে আপনার স্থানীয় এবং প্রোডাকশন উভয় পরিবেশের জন্য প্রয়োজনীয় বাইনারি ফাইলগুলি লোড করা আছে।

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

    অপারেটিং সিস্টেম আর্কিটেকচার কম্পোজার পোস্ট আপডেট কমান্ড
    সব সব DefectiveCode\MJML\PullBinary::all
    ডারউইন (ম্যাকওএস) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64
    ডারউইন (ম্যাকওএস) x64 DefectiveCode\MJML\PullBinary::darwin-x64
    লিনাক্স arm64 DefectiveCode\MJML\PullBinary::linux-arm64
    লিনাক্স x64 DefectiveCode\MJML\PullBinary::linux-x64
  2. পরবর্তী, নিম্নলিখিত কম্পোজার কমান্ডটি চালিয়ে PHP প্যাকেজটি ইনস্টল করুন:

    composer require defectivecode/mjml
  3. এটাই! যদি আপনি লারাভেল ব্যবহার করেন, আমাদের প্যাকেজটি লারাভেলের প্যাকেজ ডিসকভারি ব্যবহার করে স্বয়ংক্রিয়ভাবে ইনস্টল হবে।

    ব্যবহার (লারাভেল ছাড়া)

আপনি যদি লারাভেল ব্যবহার করেন তবে নিচে লারাভেলের সাথে ব্যবহারের নির্দেশনা দেখুন।

এমজেএমএল রেন্ডার করা

এমজেএমএল রেন্ডার করতে, আপনার এমজেএমএল স্ট্রিংটি render মেথডে পাস করুন:

use DefectiveCode\MJML;
 
$html = (new MJML)->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

এমজেএমএল যাচাই করা

এমজেএমএল যাচাই করতে, আপনার এমজেএমএল স্ট্রিংটি isValid মেথডে পাস করুন:

use DefectiveCode\MJML;
 
$isValid = (new MJML)->isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);
# ব্যবহারের নিয়ম (ল্যারাভেলের সাথে)

এমজেএমএল রেন্ডার করা

এমজেএমএল রেন্ডার করতে, আপনার এমজেএমএল স্ট্রিংটি এমজেএমএল ফ্যাসাদের render মেথডে পাস করুন:

use DefectiveCode\MJML\Facades\MJML;
 
$html = MJML::render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

এমজেএমএল যাচাই করা

এমজেএমএল যাচাই করতে, আপনার এমজেএমএল স্ট্রিংটি এমজেএমএল ফ্যাসাদের isValid মেথডে পাস করুন:

use DefectiveCode\MJML\Facades\MJML;
 
$isValid = MJML::isValid(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

কনফিগারেশন

আপনি নিম্নলিখিত কমান্ড ব্যবহার করে কনফিগারেশন ফাইলটি প্রকাশ করতে পারেন:

php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"

এটি আপনার config ফোল্ডারে একটি mjml.php কনফিগারেশন ফাইল তৈরি করবে। কনফিগারেশন ফাইলে তালিকাভুক্ত সমস্ত অপশনগুলি এমজেএমএল ফ্যাসাদ ব্যবহার করার সময় config অবজেক্টে পাস করা হয়।

কনফিগারেশন

সমস্ত কনফিগারেশন অপশনগুলি MJML অবজেক্টে সরাসরি নিম্নলিখিত পদ্ধতিগুলি কল করে সেট করা যেতে পারে।

use DefectiveCode\MJML;
 
$html = (new MJML)
->setMinify(true)
->setBeautify(false)
->render(
'<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'
);

আমাদের প্যাকেজটি অফিসিয়াল MJML প্যাকেজের একই কনফিগারেশন অনুসরণ করে নিম্নলিখিতগুলি ব্যতীত:

ফন্ট

আমাদের প্যাকেজ ডিফল্টরূপে নিম্নলিখিত ফন্টগুলি ব্যবহার করে:

আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে ফন্টগুলি পরিবর্তন করতে পারেন:

মন্তব্য

মন্তব্যগুলি ডিফল্টরূপে রাখা হয়। আপনি যদি মন্তব্যগুলি সরাতে চান, আপনি removeComments() পদ্ধতিটি ব্যবহার করতে পারেন।

আপনি keepComments() পদ্ধতিটি কল করে removeComments() পুনরুদ্ধার করতে পারেন।

অন্তর্ভুক্তিগুলি উপেক্ষা করুন

ডিফল্টরূপে, আমাদের প্যাকেজটি কোনও mj-include ট্যাগগুলি অন্তর্ভুক্ত করবে। আপনি ignoreIncludes(bool $ignore) পদ্ধতিটি কল করে এই আচরণটি সামঞ্জস্য করতে পারেন।

বিউটিফাই

আমাদের প্যাকেজটি নিম্নলিখিত ডিফল্ট অপশনগুলির সাথে js-beautify ব্যবহার করে HTML বিউটিফাই করবে:

যদিও js-beautify অপশনগুলি প্রদান করতে snake_case ব্যবহার করে, আপনি আমাদের প্যাকেজটি ব্যবহার করার সময় camelCase ব্যবহার করা উচিত। আমরা আমাদের প্যাকেজটি বাকি কনফিগারেশন অপশনগুলির সাথে সামঞ্জস্যপূর্ণ রাখতে এই পছন্দটি করেছি। আমাদের প্যাকেজটি স্বয়ংক্রিয়ভাবে camelCase অপশনগুলি snake_case এ রূপান্তর করবে।

আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে কোনও বৈধ js-beautify কনফিগারেশন প্রদান করে এই অপশনগুলির কোনওটি ওভাররাইড করতে পারেন:

মিনিফাই

আমাদের প্যাকেজটি নিম্নলিখিত ডিফল্ট অপশনগুলির সাথে html-minifier-terser ব্যবহার করে HTML মিনিফাই করবে:

আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে কোনও বৈধ html-minifier-terser কনফিগারেশন প্রদান করে এই অপশনগুলির কোনওটি ওভাররাইড করতে পারেন:

বৈধতা স্তর

আমাদের প্যাকেজটি ডিফল্টরূপে soft বৈধতা স্তর ব্যবহার করে MJML বৈধতা করবে। আপনি validationLevel(ValidationLevel $validationLevel) পদ্ধতিটি ব্যবহার করে এটি পরিবর্তন করতে পারেন। নিম্নলিখিত বৈধতা স্তরগুলি উপলব্ধ:

ফাইল পাথ

আমাদের প্যাকেজটি ডিফল্টরূপে . ডিরেক্টরি ব্যবহার করবে। আপনি filePath(string $path) পদ্ধতিটি কল করে এটি পরিবর্তন করতে পারেন।

জুস

আমরা ডিফল্টরূপে কোনও জুস অপশন প্রদান করি না। আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে জুস অপশনগুলি যোগ করতে পারেন:

আমাদের ওপেন সোর্স প্যাকেজ বেছে নেওয়ার জন্য ধন্যবাদ! দয়া করে এই সমর্থন নির্দেশিকাগুলি দেখার জন্য একটি মুহূর্ত নিন। এগুলি আপনাকে আমাদের প্রকল্প থেকে সর্বাধিক সুবিধা পেতে সহায়তা করবে।

সম্প্রদায় চালিত সমর্থন

আমাদের ওপেন সোর্স প্রকল্পটি আমাদের অসাধারণ সম্প্রদায় দ্বারা চালিত। আপনার যদি প্রশ্ন থাকে বা সহায়তার প্রয়োজন হয়, StackOverflow এবং অন্যান্য অনলাইন সংস্থানগুলি আপনার সেরা বাজি।

বাগ এবং বৈশিষ্ট্য অগ্রাধিকার

একটি ওপেন সোর্স প্রকল্প পরিচালনার বাস্তবতা হল আমরা প্রতিটি রিপোর্ট করা বাগ বা বৈশিষ্ট্য অনুরোধ অবিলম্বে সমাধান করতে পারি না। আমরা নিম্নলিখিত ক্রমে সমস্যাগুলিকে অগ্রাধিকার দিই:

১. আমাদের প্রদত্ত পণ্যগুলিকে প্রভাবিত করে এমন বাগ

বাগগুলি যা আমাদের প্রদত্ত পণ্যগুলিকে প্রভাবিত করে তা সর্বদা আমাদের শীর্ষ অগ্রাধিকার হবে। কিছু ক্ষেত্রে, আমরা শুধুমাত্র সেই বাগগুলি সমাধান করতে পারি যা আমাদের সরাসরি প্রভাবিত করে।

২. সম্প্রদায়ের পুল রিকোয়েস্ট

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

৩. আর্থিক সমর্থন

উল্লিখিত বিভাগগুলির বাইরের সমস্যাগুলির জন্য, আপনি তাদের সমাধানের জন্য অর্থায়ন করতে পারেন। প্রতিটি খোলা সমস্যা একটি অর্ডার ফর্মের সাথে লিঙ্ক করা থাকে যেখানে আপনি আর্থিকভাবে অবদান রাখতে পারেন। আমরা প্রদত্ত অর্থের পরিমাণের উপর ভিত্তি করে এই সমস্যাগুলিকে অগ্রাধিকার দিই।

সম্প্রদায়ের অবদান

ওপেন সোর্স তখনই সফল হয় যখন এর সম্প্রদায় সক্রিয় থাকে। এমনকি আপনি যদি বাগগুলি ঠিক না করেন, কোড উন্নতি, ডকুমেন্টেশন আপডেট, টিউটোরিয়াল বা সম্প্রদায় চ্যানেলগুলিতে অন্যদের সহায়তার মাধ্যমে অবদান রাখার কথা বিবেচনা করুন। আমরা সবাইকে, একটি সম্প্রদায় হিসাবে, ওপেন সোর্স কাজকে সমর্থন করতে অত্যন্ত উৎসাহিত করি।

পুনরাবৃত্তি করতে, DefectiveCode আমাদের প্রদত্ত পণ্যগুলিকে প্রভাবিত করে এমন বাগ, সম্প্রদায়ের পুল রিকোয়েস্ট এবং সমস্যাগুলির জন্য প্রাপ্ত আর্থিক সমর্থনের উপর ভিত্তি করে বাগগুলিকে অগ্রাধিকার দেবে।

# লাইসেন্স - এমআইটি লাইসেন্স

কপিরাইট © ডিফেক্টিভ কোড, এলএলসি। সর্বস্বত্ব সংরক্ষিত

এই সফটওয়্যার এবং সংশ্লিষ্ট ডকুমেন্টেশন ফাইলগুলি ( "সফটওয়্যার" ) এর একটি কপি প্রাপ্ত যে কোনও ব্যক্তিকে বিনামূল্যে, বিনা খরচে, অনুমতি দেওয়া হচ্ছে, সফটওয়্যারটি ব্যবহার করার জন্য, কপি করার জন্য, পরিবর্তন করার জন্য, একত্রিত করার জন্য, প্রকাশ করার জন্য, বিতরণ করার জন্য, সাবলাইসেন্স করার জন্য এবং/অথবা সফটওয়্যারটির কপি বিক্রি করার জন্য, এবং যাদের কাছে সফটওয়্যারটি সরবরাহ করা হয়েছে তাদেরকে এই কাজগুলি করার অনুমতি দেওয়া হচ্ছে, নিম্নলিখিত শর্তসাপেক্ষে:

উপরের কপিরাইট নোটিশ এবং এই অনুমতি নোটিশটি সফটওয়্যারটির সমস্ত কপি বা উল্লেখযোগ্য অংশে অন্তর্ভুক্ত থাকতে হবে।

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

MJML - Defective Code