English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- اپ گریڈنگ
- تعارف
- تنصیب
- استعمال (بغیر لاراول)
- استعمال (لاراول کے ساتھ)
- تشکیل
- سپورٹ کی رہنمائی
- لائسنس - MIT لائسنس
اپ گریڈنگ
اگر آپ پچھلے ورژن سے اپ گریڈ کر رہے ہیں تو براہ کرم Upgrade Guide میں ٹوٹی ہوئی تبدیلیوں اور ہجرت کے مراحل کو دیکھیں۔
تعارف
MJML ایک مارک اپ زبان ہے جو خاص طور پر جوابی ای میلز کو کوڈ کرنے کے عمل کو آسان بنانے کے لئے ڈیزائن کی گئی ہے۔ اس کی معنائی نحوی اس کی آسانی اور سادگی کو یقینی بناتی ہے، جبکہ اس کے معیاری اجزاء کی وسیع لائبریری ترقی کو تیز کرتی ہے اور آپ کے ای میل کوڈ بیس کی پیچیدگی کو کم کرتی ہے۔ 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>'); // لاراول کے ساتھ اور منیفائیڈ HTMLMJML::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ان تمام بینریوں کو کھینچتا ہے جن کی ہم حمایت کرتے ہیں۔ ہم تجویز کرتے ہیں کہ اس کو آپریٹنگ اور آرکیٹیکچر سسٹمز کے دائرے میں محدود کریں جن کی آپ کو بینڈوڈتھ اور انسٹالیشن کے وقت کی بچت کے لئے ضرورت ہے۔ دستیاب بینریاں مندرجہ ذیل ہیں۔آپریٹنگ سسٹم آرکیٹیکچر کمپوزر پوسٹ اپ ڈیٹ کمانڈ تمام تمام DefectiveCode\MJML\PullBinary::allڈارون (MacOS) arm64 DefectiveCode\MJML\PullBinary::darwin-arm64ڈارون (MacOS) 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 اسٹرنگ کو 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>');
MJML کی توثیق کرنا
MJML کی توثیق کرنے کے لئے، اپنے MJML اسٹرنگ کو 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 تشکیل کی فائل تخلیق کرے گا۔ تشکیل کی فائل میں درج تمام اختیارات
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- ہمhtml-minifierکے بجائے ایک ہلکا پھلکا 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 ٹیکسٹ کو شامل کرے گا۔ آپ اس سلوک کو
ignoreIncludes(bool $ignore) طریقہ کو کال کرکے ایڈجسٹ کر سکتے ہیں۔
خوبصورت بنانا
ہمارا پیکیج HTML کو js-beautify کا استعمال کرتے ہوئے خوبصورت بنائے گا جس کے پاس درج ذیل
ڈیفالٹ اختیارات ہیں:
- 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-based منیفیکیشن؟ سرکاری MJML پیکیج منیفیکیشن کے لئے
html-minifierاستعمال کرتا ہے، جو کہ ایک جانا پہچانا ReDoS vulnerability (CVE-2022-37620) ہے جس کا کوئی حل دستیاب نہیں ہے کیونکہ یہ پیکیج غیرمینٹینڈ ہے۔ خطرناک انحصار کو باندھنے سے بچنے کے لئے، ہم نے PHP میں منیفیکشن منتقل کیا ہے ایک ہلکے پھلکے، محفوظ عمل درآمد کا استعمال کرتے ہوئے۔
توثیق کی سطح
ہمارا پیکیج ڈیفالٹ کے طور پر soft توثیق کی سطح کا استعمال کرتے ہوئے MJML کی توثیق کرے گا۔ آپ اسے استعمال کرکے
validationLevel(ValidationLevel $validationLevel) طریقے کے ذریعہ تبدیل کر سکتے ہیں۔ درج ذیل توثیق کی سطحیں دستیاب ہیں:
strict- آپ کا دستاویز توثیق کے ذریعے جا رہا ہے اور اگر اس میں کوئی غلطی ہے تو یہ نہیں رینڈر ہوگاsoft- آپ کا دستاویز توثیق کے ذریعے جا رہا ہے اور، اگر اس میں غلطیاں ہیں، تو یہ رینڈر ہو جاتا ہےskip- آپ کا دستاویز توثیق کے بغیر رینڈر ہوتا ہے۔
فائل کا راستہ
ہمارا پیکیج بنیادی طور پر . ڈائریکٹری کا استعمال کرے گا۔ آپ اسے تبدیل کر سکتے ہیں filePath(string $path) طریقے کے ذریعے۔
جوس
ہم بنیادی طور پر کوئی juice options فراہم نہیں کرتے۔ آپ درج ذیل طریقوں کا استعمال کرتے ہوئے جوس کے اختیارات شامل کر سکتے ہیں:
setJuiceOptions(array $options)- جوس کے اختیارات سیٹ کریں۔addJuiceOption(string $option, mixed $value)- ایک جوس کا اختیار شامل کریں۔removeJuiceOption(string $option)- ایک جوس کا اختیار ہٹا دیں۔setJuicePreserveTags(array $tags)- جوس کے محفوظ کردہ ٹیگ سیٹ کریں۔addJuicePreserveTag(string $tag, mixed $value)- ایک جوس محفوظ کردہ ٹیگ شامل کریں۔removeJuicePreserveTag(string $tag)- ایک جوس محفوظ کردہ ٹیگ ہٹا دیں۔
سپورٹ کی رہنمائی
ہمارے اوپن سورس پیکیج کا انتخاب کرنے کے لیے شکریہ! براہ کرم ان سپورٹ رہنما خطوط پر ایک لمحہ صرف کریں۔ یہ آپ کو ہمارے پروجیکٹ سے زیادہ سے زیادہ فائدہ اٹھانے میں مدد کریں گے۔
کمیونٹی کی بنیاد پر مدد
ہمارا اوپن سورس پروجیکٹ ہماری شاندار کمیونٹی کی مدد سے چلتا ہے۔ اگر آپ کے پاس سوالات ہیں یا مدد کی ضرورت ہے تو، StackOverflow اور دیگر آن لائن وسائل آپ کے بہترین دوست ہیں۔
کیڑے اور فیچر کی ترجیحات
اوپن سورس پروجیکٹ کا انتظام کرنے کی حقیقت یہ ہے کہ ہم ہر رپورٹ شدہ کیڑے یا فیچر کی درخواست کو فوری طور پر نہیں حل کر سکتے۔ ہم مسائل کو درج ذیل ترتیب میں ترجیح دیتے ہیں:
1. ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہونے والے کیڑے
وہ کیڑے جو ہماری ادائیگی شدہ مصنوعات پر اثر انداز ہوتے ہیں ہمیشہ ہماری پہلی ترجیح ہوں گے۔ کچھ معاملات میں، ہم صرف ان کیڑوں کو حل کریں گے جو براہ راست ہمیں متاثر کرتے ہیں۔
2. کمیونٹی کی طرف سے پول ریگسٹس
اگر آپ نے کسی کیڑے کی نشاندہی کی ہے اور آپ کے پاس حل ہے، تو براہ کرم پول ریگسٹس جمع کرائیں۔ اپنی مصنوعات سے متعلق مسائل کے بعد، ہم ان کمیونٹی کی بنیاد پر درستگیوں کو اگلی سب سے بڑی ترجیح دیتے ہیں۔ جائزہ لینے اور منظور ہونے کے بعد، ہم آپ کے حل کو ضم کریں گے اور آپ کی شراکت کو تسلیم کریں گے۔
3. مالی مدد
ذکر کردہ زمرے سے باہر کے مسائل کے لیے، آپ ان کا حل کرنے کے لئے مالی امداد فراہم کرنے کا انتخاب کر سکتے ہیں۔ ہر اوپن مسئلہ ایک آرڈر فارم سے منسلک ہے جہاں آپ مالی طور پر تعاون کر سکتے ہیں۔ ہم ان مسائل کو فراہم کردہ فنڈنگ کی رقم کی بنیاد پر ترجیح دیتے ہیں۔
کمیونٹی کی شراکتیں
اوپن سورس اس وقت بڑھتا ہے جب اس کی کمیونٹی فعال ہو۔ چاہے آپ کیڑے حل نہیں کر رہے ہوں، کوڈ کی بہتریوں، دستاویز کے اپ ڈیٹس، سبقیں، یا کمیونٹی چینلز میں دوسروں کی مدد کے ذریعے شراکت دینے پر غور کریں۔ ہم بالعموم سب کو، ایک کمیونٹی کے طور پر، اوپن سورس کام کی مدد کرنے کی ترغیب دیتے ہیں۔
دوہرانے کے لیے، DefectiveCode کیڑے کو اس بنیاد پر ترجیح دے گا کہ وہ ہمارے ادائیگی شدہ پروڈکٹس، کمیونٹی کی پول ریگسٹس اور مسائل کے لئے موصولہ مالی مدد پر کس طرح اثر انداز ہوتے ہیں۔
لائسنس - MIT لائسنس
کاپی رائٹ © Defective Code, LLC. تمام حقوق محفوظ ہیں
یہاں پر کسی بھی شخص کو یہ سافٹ ویئر اور اس سے وابستہ دستاویزات کی کاپی حاصل کرنے کی اجازت دی جاتی ہے (جسے "سافٹ ویئر" کہا جاتا ہے)، تاکہ وہ سافٹ ویئر میں کسی بھی پابندی کے بغیر کام کر سکے، بشمول بغیر کسی حد کے، استعمال کرنے، کاپی کرنے، ترمیم کرنے، یکجا کرنے، شائع کرنے، تقسیم کرنے، ذیلی لائسنس دینے اور/یا سافٹ ویئر کی کاپیوں کو بیچنے کے حقوق حاصل کرنے، اور ان لوگوں کو اجازت دینے کا کہ جنہیں سافٹ ویئر فراہم کیا گیا ہے، کہ وہ ایسا کرسکیں، مندرجہ ذیل شرائط کے تابع:
اوپر کا کاپی رائٹ نوٹس اور یہ اجازت نامہ سافٹ ویئر کی تمام کاپیوں یا اہم حصوں میں شامل کیا جائے گا۔
یہ سافٹ ویئر "جیسا ہے" فراہم کیا جاتا ہے، بغیر کسی قسم کی وارنٹی، واضح یا مضمر، بشمول لیکن محدود نہیں، مارکیٹ ایبیلٹی، کسی خاص مقصد کے لئے موزونیت اور خلاف ورزی کے وارنٹیوں کے۔ کسی بھی صورت میں مصنفین یا کاپی رائٹ ہولڈرز کسی بھی دعوے، نقصانات یا دیگر ذمہ داریوں کے لئے ذمہ دار نہیں ہوں گے، چاہے وہ معاہدے کے ایکشن، غلطی یا کسی اور طریقے سے ہو، جو سافٹ ویئر یا سافٹ ویئر کے استعمال یا دیگر معاملات سے پیدا ہو، یا اس سے متعلق ہو۔