English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- আপগ্রেড
- পরিচিতি
- ইনস্টলেশন
- ব্যবহার (লারাভেল ছাড়া)
- ব্যবহার (লারাভেলের সাথে)
- কনফিগারেশন
- সমর্থন নির্দেশিকা
- লাইসেন্স - MIT লাইসেন্স
আপগ্রেড
যদি আপনি পূর্বের সংস্করণ থেকে আপগ্রেড করছেন, তবে দয়া করে আপগ্রেড গাইড দেখুন ভেঙে পড়া পরিবর্তন এবং মাইগ্রেশন পদক্ষেপগুলির জন্য।
পরিচিতি
MJML একটি মার্কআপ ভাষা যা স্পষ্টভাবে প্রতিক্রিয়া emails কোড করার প্রক্রিয়াকে সহজ করার জন্য ডিজাইন করা হয়েছে। এর অর্থবহ সিনট্যাক্স ব্যবহার সহজ এবং সরলতা নিশ্চিত করে, যখন এর ব্যাপক মানের স্ট্যান্ডার্ড উপাদানের লাইব্রেরি উন্নয়ন দ্রুত করে এবং আপনার ইমেইল কোডবেসের জটিলতা হ্রাস করে। MJML এর ওপেন-সোর্স ইঞ্জিন উচ্চ-মানের, প্রতিক্রিয়াশীল HTML তৈরি করে যা সেরা চর্চার সাথে সঙ্গতিপূর্ণ। যদি আপনি আউটলুকের সাথে কাজ করতে অসুবিধাগুলোর সম্মুখীন হন, তবে এই প্যাকেজটি আপনার জন্য তৈরি করা হয়েছে।
আমাদের MJML বাস্তবায়ন সরকারী MJML API এর জন্য একটি র্যাপার হিসাবে কাজ করে। এটি PHP এর মধ্যে সরাসরি MJML কে HTML তে রূপান্তর করতে সুবিধাজনক সংকলন সক্ষম করে, NodeJS এর প্রয়োজন ছাড়াই। এই প্যাকেজটি PHP অ্যাপ্লিকেশনের জন্য উপযুক্ত যা MJML অন্তর্ভুক্ত করতে চায় NodeJS এবং MJML CLI ইনস্টল করার ঝামেলা ছাড়াই।
উদাহরণ
// লারাভেল ছাড়া(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>'); // লারাভেলের সঙ্গেMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // লারাভেল এবং মিনিফাইড HTML এর সঙ্গেMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
ইনস্টলেশন
-
প্রথমত, আপনার
composer.jsonফাইলে নিম্নলিখিতটি যোগ করুন যাতে আমাদের প্যাকেজটি ইনস্টল করার সময় আপনার অপারেটিং সিস্টেমের জন্য সঠিক বাইনারিগুলি আনতে নির্দেশ পায়।install,update, বাdump-autoloadচালানোর পরে বাইনারিগুলি ডাউনলোড হবে।{"post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}MJML বাইনারিটি আমাদের CDN থেকে প্রাপ্ত হবে এবং কম্পোজারের ইনস্টলেশন বা আপডেটের সময় এই প্যাকেজের "bin" ফোল্ডারে সংরক্ষিত হবে। নিশ্চিত করুন যে আপনার স্থানীয় এবং উৎপাদন পরিবেশের জন্য প্রয়োজনীয় বাইনারিগুলি লোড হয়েছে।
ডিফল্টরূপে,
allআমাদের সমর্থন করা সমস্ত বাইনারি আনবে। ব্যাণ্ডউইথ এবং ইনস্টলেশনের সময় সঞ্চয় করতে আপনাকে প্রয়োজনীয় অপারেটিং এবং আর্কিটেকচার সিস্টেমে এটি সীমাবদ্ধ করার পরামর্শ দেওয়া হয়। উপলব্ধ বাইনারিগুলি হল:অপারেটিং সিস্টেম আর্কিটেকচার Composer পোস্ট আপডেট কমান্ড সমস্ত সমস্ত DefectiveCode\MJML\PullBinary::allডারউইন (ম্যাকওএস) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64ডারউইন (ম্যাকওএস) x64 DefectiveCode\MJML\PullBinary::darwin-x64লিনাক্স (glibc) arm64 DefectiveCode\MJML\PullBinary::linux-arm64লিনাক্স (glibc) x64 DefectiveCode\MJML\PullBinary::linux-x64লিনাক্স (musl) arm64 DefectiveCode\MJML\PullBinary::linux-arm64-muslলিনাক্স (musl) x64 DefectiveCode\MJML\PullBinary::linux-x64-musl -
এরপর, নিম্নলিখিত কমান্ড চালিয়ে PHP প্যাকেজটি ইনস্টল করুন:
composer require defectivecode/mjml -
এটিই! যদি লারাভেল ব্যবহার করেন, তবে আমাদের প্যাকেজটি লারাভেলের প্যাকেজ আবিষ্কারের মাধ্যমে স্বয়ংক্রিয়ভাবে ইনস্টল হবে।
ব্যবহার (লারাভেল ছাড়া)
আপনি যদি লারাভেল ব্যবহার করেন তবে নিচে লারাভেল সহ ব্যবহারের জন্য দেখুন।
MJML রেন্ডারিং
MJML রেন্ডার করতে, আপনার MJML স্ট্রিংটি 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>');
MJML যাচাই করা
MJML যাচাই করতে, আপনার 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>');
ব্যবহার (লারাভেলের সাথে)
MJML রেন্ডারিং
MJML রেন্ডার করতে, MJML ফ্যাসেডের render পদ্ধতিতে আপনার MJML স্ট্রিংটি পাস করুন:
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>');
MJML যাচাই করা
MJML যাচাই করতে, MJML ফ্যাসেডের isValid পদ্ধতিতে আপনার MJML স্ট্রিংটি পাস করুন:
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 কনফিগারেশন ফাইল তৈরি করবে। কনফিগারেশন ফাইলে উল্লিখিত সমস্ত বিকল্পগুলি MJML ফ্যাসেড ব্যবহার করার সময় 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 প্যাকেজের সাথে সম্পর্কিত, শুধুমাত্র নিম্নলিখিত ব্যতিক্রম:
preprocessors- এই অপশনটি পাওয়া যায় না। আপনি যদি এই অপশনটি যোগ করতে চান তবে একটি পুল রিকোয়েস্ট খুলুন।minifyOptions- আমরা আউটপুট সমর্থনের জন্য PHP তে মিনিফিকেশন রাখি। মিনিফায়ার মন্তব্যগুলি (আউটলুক শর্তাবলী ব্যতীত) মুছে ফেলে, স্থানহীনতা সংকুচিত করে এবং ট্যাগগুলির মধ্যে স্থান মুছে ফেলে।sanitizeStyles,templateSyntax, এবংallowMixedSyntax- এই MJML 5 বিকল্পগুলি MJML এর একটি স্বদেশি htmlnano/cssnano মিনিফিকেশন পথে প্রযোজ্য। এগুলি এই প্যাকেজের PHP মিনিফায়ারে ব্যবহৃত হয় না।
ফন্ট
আমাদের প্যাকেজ ডিফল্টরূপে নিম্নলিখিত ফন্টগুলি ব্যবহার করে:
- ওপেন সান্স: 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,700
- ড্রয়েড সান্স: 'https://fonts.googleapis.com/css?family=Droid+Sans:300,400,500,700
- ল্যাটো: https://fonts.googleapis.com/css?family=Lato:300,400,500,700
- রোবটো: https://fonts.googleapis.com/css?family=Roboto:300,400,500,700
- উবুন্টু: https://fonts.googleapis.com/css?family=Ubuntu:300,400,500,700
আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে ফন্টগুলি পরিবর্তন করতে পারেন:
addFont(string $font, string $url)- ফন্টের তালিকায় একটি ফন্ট যুক্ত করুন।removeFont(string $font)- ফন্টের তালিকা থেকে একটি ফন্ট সরান।setFonts(array $fonts)- ফন্টগুলির তালিকা সেট করুন। আপনাকে এই ফরম্যাটে ফন্টগুলির এটি বস্তু প্রদান করতে হবে:['font-name' => 'font-url']।
মন্তব্য
ডিফল্টরূপে মন্তব্যগুলি ধারণ করা হয়। আপনি যদি মন্তব্যগুলি মুছে ফেলতে চান তবে আপনি removeComments() পদ্ধতি ব্যবহার করতে পারেন।
আপনি removeComments() ফিরিয়ে আনতে keepComments() পদ্ধতি কল করেও করতে পারেন।
অন্তর্ভুক্ত উপেক্ষা করা
ডিফল্টরূপে, আমাদের প্যাকেজ mj-include ট্যাগগুলি উপেক্ষা করে। এটি MJML 5 এর নিরাপদ ডিফল্টের সাথে মেলে। আপনি ignoreIncludes(false) কল করে অন্তর্ভুক্তগুলি সক্রিয় করতে পারেন।
অন্তর্ভুক্তগুলি সক্ষম করার সময়, বেস ডিরেক্টরি হিসাবে filePath(string $path) ব্যবহার করুন এবং অতিরিক্ত অন্তর্ভুক্ত ডিরেক্টরি অনুমতি দিতে includePath(string|array|null $path) ব্যবহার করুন।
বিউটিফাই
আমাদের প্যাকেজ js-beautify ব্যবহার করে HTML সুন্দর করবে। MJML 5.2 অভ্যন্তরীণভাবে js-beautify ব্যবহার করে, তবে এই প্যাকেজটি কাস্টম PHP beautifyOptions কার্যকর থাকতে র্যাপারের স্তরের বিউটিফিকেশন রাখে। ডিফল্ট বিকল্পগুলি হল:
- indentSize: 2
- wrapAttributesIndentSize: 2
- maxPreserveNewline: 0
- preserveNewlines: false
যখন
js-beautifyবিকল্পগুলি প্রদান করতে snake_case ব্যবহার করে, আপনি আমাদের প্যাকেজ ব্যবহার করার সময় camelCase ব্যবহার করা উচিত। আমাদের প্যাকেজটি কনফিগারেশনের অন্যান্য বিকল্পের সাথে সামঞ্জস্য রাখা নিশ্চিত করতে আমরা এই পছন্দটি গ্রহণ করেছি। আমাদের প্যাকেজ স্বয়ংক্রিয়ভাবে camelCase বিকল্পগুলি snake_case এ রূপান্তর করবে।
আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে বৈধ js-beautify কনফিগারেশন প্রদান করে এই বিকল্পগুলির যেকোনোটা অতিক্রম করতে পারেন:
setBeautifyOptions(array $options)-js-beautifyবিকল্পগুলি সেট করুন।addBeautifyOption(string $option, mixed $value)- একটিjs-beautifyবিকল্প যুক্ত করুন।removeBeautifyOption(string $option)- একটিjs-beautifyবিকল্প সরান।
মিনিফাই
আমাদের প্যাকেজ সক্ষম হলে HTML আউটপুট মিনিফাই করবে। মিনিফিকেশন নিম্নলিখিত কাজগুলি করে:
- HTML মন্তব্যগুলি মুছে ফেলে (আউটলুক শর্তাধীন মন্তব্যগুলি যেমন
<!--[if mso]>সংরক্ষণ করে) - একাধিক স্থানহীন চরিত্রগুলিকে একক স্থানে সংকুচিত করে
- HTML ট্যাগগুলির মধ্যে স্থান মুছে ফেলে
আপনি minify(bool $minify) পদ্ধতি কল করে মিনিফিকেশন সক্ষম বা অক্ষম করতে পারেন।
কেন PHP ভিত্তিক মিনিফিকেশন? MJML 5 যুক্ত দুর্বল
html-minifierপ্যাকেজটি আর ব্যবহার করে না। এই প্যাকেজটি এখনও PHP তে মিনিফিকেশন রাখে যাতে সংস্করণ 2.x তে পরিচিত আউটপুট আচরণটি সংরক্ষিত থাকে। যদি আপনার MJML 5 এর স্থানীয় htmlnano/cssnano মিনিফিকেশন অপশনগুলির প্রয়োজন হয়, তবে প্রয়োজনীয় অপশন আকৃতির সাথে একটি সমস্যা খোলুন।
যাচাইকরণ স্তর
আমাদের প্যাকেজটি ডিফল্টরূপে soft যাচাইকরণ স্তর ব্যবহার করে MJML যাচাই করবে। আপনি validationLevel(ValidationLevel $validationLevel) পদ্ধতি ব্যবহার করে এটি পরিবর্তন করতে পারেন। উপলব্ধ যাচাইকরণ স্তরগুলি হল:
strict- আপনার নথিটি যাচাইয়ের মাধ্যমে যাচ্ছেন এবং এটি যদি কোনও ত্রুটি থাকে তবে রেন্ডার করা হয় নাsoft- আপনার নথিটি যাচাইয়ের মাধ্যমে যাচ্ছেন এবং এটি যদি ত্রুটি থাকে তবে রেন্ডার করা হয়skip- আপনার নথিটি যাচাইকরণের মাধ্যমে না গিয়ে রেন্ডার করা হয়।
ফাইল পথ
আমাদের প্যাকেজটি ডিফল্টরূপে . ডিরেক্টরি ব্যবহার করবে। আপনি filePath(string $path) পদ্ধতি কল করে এটি পরিবর্তন করতে পারেন।
MJML 5 filePath কে অন্তর্ভুক্ত স্যান্ডবক্স বেস হিসাবে চিকিত্সা করে। যদি অন্তর্ভুক্ত থাকুক, filePath এর বাইরে থাকা পথগুলি অস্বীকার করা হয়েছে যতক্ষণ না তা includePath(string|array|null $path) দিয়ে স্পষ্টভাবে অনুমোদন করা না হয়।
জুস
আমরা ডিফল্টরূপে কোন জুস অপশন সরবরাহ করি না। আপনি নিম্নলিখিত পদ্ধতিগুলি ব্যবহার করে জুস অপশনগুলি যোগ করতে পারেন:
setJuiceOptions(array $options)- জুস অপশনগুলি সেট করুন।addJuiceOption(string $option, mixed $value)- একটি জুস অপশন যুক্ত করুন।removeJuiceOption(string $option)- একটি জুস অপশন সরান।setJuicePreserveTags(array $tags)- জুস প্রিজার্ভ ট্যাগগুলি সেট করুন।addJuicePreserveTag(string $tag, mixed $value)- একটি জুস প্রিজার্ভ ট্যাগ যুক্ত করুন।removeJuicePreserveTag(string $tag)- একটি জুস প্রিজার্ভ ট্যাগ সরান।
সমর্থন নির্দেশিকা
আমাদের ওপেন সোর্স প্যাকেজটি নির্বাচন করার জন্য ধন্যবাদ! দয়া করে এই সমর্থন নির্দেশিকাগুলি অন্বেষণ করতে একটি মুহূর্ত নিন। এগুলি আপনাকে আমাদের প্রকল্প থেকে সর্বাধিক উপকার পেতে সহায়তা করবে।
সম্প্রদায়ের দ্বারা পরিচালিত সমর্থন
আমাদের ওপেন-সোর্স প্রকল্পটি আমাদের অসাধারণ সম্প্রদায় দ্বারা চালিত। আপনার যদি প্রশ্ন থাকে অথবা সহায়তার প্রয়োজন হয়, StackOverflow এবং অন্যান্য অনলাইন সম্পদ আপনার জন্য সেরা।
ত্রুটি এবং বৈশিষ্ট্য অগ্রাধিকার
একটি ওপেন-সোর্স প্রকল্প পরিচালনার বাস্তবতা মানে আমরা প্রতিবেদন করা প্রতিটি ত্রুটি বা বৈশিষ্ট্য অনুরোধ অবিলম্বে সমাধান করতে পারি না। আমরা সমস্যা সমাধানে নিম্নলিখিত ক্রমে অগ্রাধিকার দিই:
১. আমাদের অর্থপ্রদান করা পণ্যগুলি প্রভাবিতকারী ত্রুটি
যে ত্রুটিগুলি আমাদের অর্থপ্রদান করা পণ্যে প্রভাব ফেলে সেগুলি সর্বদা আমাদের শীর্ষ অগ্রাধিকার। কিছু ক্ষেত্রে, আমরা শুধু সেই ত্রুটিগুলি সমাধান করতে পারি যা আমাদের সরাসরি প্রভাবিত করে।
২. সম্প্রদায়ের পুল রিকুইস্ট
যদি আপনি একটি ত্রুটি সনাক্ত করেছেন এবং তার সমাধান আছে, তাহলে দয়া করে একটি পুল রিকুইস্ট জমা দিন। আমাদের পণ্যগুলিকে প্রভাবিতকারী সমস্যাগুলোর পরে, আমরা এই সম্প্রদায়-চালিত সমাধানগুলিতে পরবর্তী সর্বাধিক অগ্রাধিকার দিই। একবার পর্যালোচনা করে অনুমোদিত হলে, আমরা আপনার সমাধানটি একত্রিত করবো এবং আপনার অবদানের জন্য কৃতিত্ব দেবো।
৩. আর্থিক সমর্থন
উল্লেখিত বিভাগগুলির বাইরের সমস্যার জন্য, আপনি তাদের সমাধানের জন্য অর্থায়ন করতে পারেন। প্রতিটি ওপেন ইস্যু একটি অর্ডার ফরমের সাথে সংযুক্ত, যেখানে আপনি আর্থিকভাবে অবদান রাখতে পারেন। আমরা প্রদত্ত অর্থায়ন পরিমাণ অনুযায়ী এই সমস্যাগুলিতে অগ্রাধিকার দিই।
সম্প্রদায়ের অবদান
ওপেন সোর্স তখনই পুষ্টি পায় যখন এর সম্প্রদায় সক্রিয় থাকে। আপনি যদি ত্রুটি সমাধান না-ও করেন, তবুও কোড উন্নয়ন, ডকুমেন্টেশন আপডেট, টিউটোরিয়াল, অথবা সম্প্রদায়ের চ্যানেলে অন্যদের সহায়তা করার মাধ্যমে অবদান রাখার কথা বিবেচনা করুন। আমরা সবাইকে, একটি সম্প্রদায় হিসেবে, ওপেন-সোর্স কাজ সমর্থনে সহায়তা করতে তীব্রভাবে উৎসাহিত করি।
আবার উল্লেখ করতে, DefectiveCode আমাদের অর্থপ্রদান করা পণ্যগুলিতে ত্রুটিগুলির প্রভাব, সম্প্রদায়ের পুল রিকুইস্ট এবং সমস্যার জন্য প্রাপ্ত আর্থিক সমর্থনের ভিত্তিতে ত্রুটিগুলিকে অগ্রাধিকার দেবে.
লাইসেন্স - MIT লাইসেন্স
কপিরাইট © Defective Code, LLC। সকল অধিকার সংরক্ষিত
এই সফ্টওয়্যার এবং সংশ্লিষ্ট ডকুমেন্টেশন ফাইল (যাকে "সফ্টওয়্যার" বলা হয়) এর একটি কপি প্রাপ্ত যেকোনো ব্যক্তিকে বিনা শর্তে, বিনামূল্যে, সফ্টওয়্যারটি ব্যবহার, কপি, পরিবর্তন, মিশ্রণ, প্রকাশ, বিতরণ, উপলাইসেন্স এবং/অথবা সফ্টওয়্যার-এর কপি বিক্রি করার অধিকার দেওয়া হয়, এবং যাদের কাছে সফ্টওয়্যারটি প্রদান করা হয় তাদের এটি করতে অনুমতি দেওয়া হয়, নিম্নলিখিত শর্তাবলীর অধীনে:
উপরে উল্লিখিত কপিরাইট নোটিস এবং এই অনুমতি নোটিস সমস্ত কপি বা সফ্টওয়্যার-এর গুরুত্বপূর্ণ অংশে অন্তর্ভুক্ত করা হবে।
সফ্টওয়্যারটি "যেমন আছে" প্রদান করা হয়, কোন প্রকারের গ্যারান্টি ছাড়া, স্পষ্ট বা অভ্যাসগত, যার মধ্যে আছে কিন্তু সীমিত নয় বাণিজ্যযোগ্যতা, নির্দিষ্ট উদ্দেশ্যের জন্য উপযুক্ততা এবং অধিকার লঙ্ঘনের গ্যারান্টি। কোনো পরিস্থিতিতেই লেখক বা কপিরাইট অধিকারীরা সফ্টওয়্যার বা সফ্টওয়্যার ব্যবহারের সাথে সংশ্লিষ্ট যেকোনো দাবি, ক্ষতি বা অন্যান্য দায়বদ্ধতার জন্য দায়ী থাকবে না, তা চুক্তির একটি পদক্ষেপ, অপ্রীতিকর বা অন্যথায় হোক।