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 کی ضرورت کے بغیر۔ یہ پیکیج NodeJS اور MJML CLI کو انسٹال کرنے کے پریشانی کے بغیر PHP ایپلیکیشنز کے لئے مثالی ہے جو MJML کو شامل کرنا چاہتے ہیں۔
// بغیر لاراول(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" لهذه الحزمة أثناء تثبيت أو تحديث composer. تأكد من تحميل الثنائيات اللازمة لكل من بيئتك المحلية والإنتاجية.
بشكل افتراضي ، سيقوم all
بسحب جميع الثنائيات التي ندعمها. نوصي بتحديد نطاق هذا الأمر لأنظمة التشغيل والهندسة المعمارية التي تحتاجها لتوفير النطاق الترددي وأوقات التثبيت. فيما يلي الثنائيات المتاحة.
نظام التشغيل | الهندسة المعمارية | أمر تحديث ما بعد Composer |
---|---|---|
الكل | الكل | DefectiveCode\MJML\PullBinary::all |
Darwin (MacOS) | arm64 | DefectiveCode\MJML\PullBinary::darwin-arm64 |
Darwin (MacOS) | x64 | DefectiveCode\MJML\PullBinary::darwin-x64 |
Linux | arm64 | DefectiveCode\MJML\PullBinary::linux-arm64 |
Linux | x64 | DefectiveCode\MJML\PullBinary::linux-x64 |
بعد ذلك ، قم بتثبيت حزمة PHP عن طريق تشغيل الأمر composer التالي:
composer require defectivecode/mjml
هذا كل شيء! إذا كنت تستخدم Laravel ، فسيتم تثبيت حزمتنا تلقائيًا باستخدام اكتشاف الحزم في Laravel.
اگر لاراول استعمال کر رہے ہیں تو نیچے دیے گئے لاراول کے ساتھ استعمال کا طریقہ دیکھیں۔
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 سٹرنگ کو 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
کو پاس کریں:
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
میتھڈ کو پاس کریں:
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
- این گزینه در دسترس نیست. اگر میخواهید این گزینه را اضافه کنید، لطفاً یک درخواست pull ارسال کنید.minifyOptions
- ما از html-minifier-terser
استفاده میکنیم در حالی که بسته رسمی از html-minifier
برای کوچک کردن استفاده میکند. ما تصمیم گرفتیم که پردازنده را تغییر دهیم زیرا html-minifer
دیگر توسعه داده نمیشود و چندین مشکل امنیتی با آن مرتبط است.بسته ما به طور پیش فرض از فونتهای زیر استفاده میکند:
میتوانید فونتها را با استفاده از متدهای زیر تغییر دهید:
addFont(string $font, string $url)
- اضافه کردن یک فونت به لیست فونتها.removeFont(string$font)
- حذف یک فونت از لیست فونتها.setFonts(array $fonts)
- تنظیم لیست فونتها. باید یک آرایه از فونتها را در این فرمت ارائه دهید: ['نام-فونت' => 'آدرس-فونت']
.نظرات به طور پیش فرض حفظ میشوند. اگر میخواهید نظرات را حذف کنید، میتوانید از متد removeComments()
استفاده کنید.
همچنین میتوانید با فراخوانی متد keepComments()
نیز removeComments()
را بازگردانید.
به طور پیش فرض، بسته ما هر برچسب mj-include
را شامل میشود. شما میتوانید این رفتار را با استفاده از متد ignoreIncludes(bool $ignore)
تنظیم کنید.
بسته ما HTML را با استفاده از js-beautify
با گزینههای پیش فرض زیر زیبا میکند:
در حالی که
js-beautify
از snake_case برای ارائه گزینهها استفاده میکند، باید از camelCase استفاده کنید هنگام استفاده از بسته ما. ما این تصمیم را گرفتیم تا بسته ما با بقیه گزینههای تشکیلات سازگار باشد. بسته ما به طور خودکار گزینههای camelCase را به snake_case تبدیل میکند.
میتوانید هر یک از این گزینهها را با استفاده از متدهای زیر تغییر دهید:
setBeautifyOptions(array $options)
- تنظیم گزینههای js-beautify
.addBeautifyOption(string $option, mixed $value)
- اضافه کردن یک گزینه js-beautify
.removeBeautifyOption(string $option)
- حذف یک گزینه js-beautify
.بسته ما HTML را با استفاده از html-minifier-terser
با گزینههای پیش فرض زیر کوچک میکند:
میتوانید هر یک از این گزینهها را با استفاده از متدهای زیر تغییر دهید:
setMinifyOptions(array $options)
- تنظیم گزینههای html-minifier-terser
.addMinifyOption(string $option, mixed $value)
- اضافه کردن یک گزینه html-minifier-terser
.removeMinifyOption(string $option)
- حذف یک گزینه html-minifier-terser
.بسته ما به طور پیش فرض سطح اعتبارسنجی را با سطح اعتبارسنجی soft
تنظیم میکند. میتوانید این را با استفاده از متد validationLevel(ValidationLevel $validationLevel)
تغییر دهید. سطحهای اعتبارسنجی زیر در دسترس هستند:
strict
- سند شما در حال اعتبارسنجی است و اگر هر گونه خطا داشته باشد، رندر نمیشودsoft
- سند شما در حال اعتبارسنجی است و رندر میشود، حتی اگر خطاهایی داشته باشدskip
- سند شما بدون اعتبارسنجی رندر میشود.بسته ما به طور پیش فرض از مسیر .
استفاده میکند. میتوانید این را با استفاده از فراخوانی متد filePath(string $path)
تغییر دهید.
به طور پیش فرض هیچ گزینه juice را ارائه نمیدهیم. میتوانید گزینههای juice را با استفاده از متدهای زیر اضافه کنید:
setJuiceOptions(array $options)
- تنظیم گزینههای juice.addJuiceOption(string $option, mixed $value)
- اضافه کردن یک گزینه juice.removeJuiceOption(string $option)
- حذف یک گزینه juice.setJuicePreserveTags(array $tags)
- تنظیم برچسبهای حفظ شده juice.addJuicePreserveTag(string $tag, mixed $value)
- اضافه کردن یک برچسب حفظ شده juice.removeJuicePreserveTag(string $tag)
- حذف یک برچسب حفظ شده juice.ہمارے اوپن سورس پیکیج کا انتخاب کرنے کے لئے شکریہ! براہ کرم ان حمایتی رہنماؤں کا جائزہ لیں۔ یہ آپ کو ہمارے منصوبے سے سب سے زیادہ فائدہ حاصل کرنے میں مدد کریں گے۔
ہمارا اوپن سورس منصوبہ ہماری شاندار کمیونٹی کی طاقت سے چلتا ہے۔ اگر آپ کے پاس کوئی سوال ہو یا مدد کی ضرورت ہو تو StackOverflow اور دیگر آن لائن وسائل آپ کی بہترین توقعات ہیں۔
اوپن سورس منصوبے کو منظم کرنے کی حقیقت یہ ہے کہ ہم ہر رپورٹ کی گئی بگ یا خصوصیت کو فوری طور پر حل نہیں کر سکتے۔ ہم مندرجہ ذیل ترتیب میں مسائل کو ترجیح دیتے ہیں:
ہمارے پیڈ پروڈکٹس پر اثر انداز ہونے والی بگز ہمیشہ ہماری سب سے اہمیت کی حامل ہوں گی۔ کچھ صورتوں میں، ہم صرف ان بگز کو حل کریں گے جو ہمیں براہ راست متاثر کرتی ہیں۔
اگر آپ نے کوئی بگز شناخت کی ہے اور آپ کے پاس اس کا حل ہے، براہ کرم ایک پل پریکوئست جمع کروائیں۔ ہمارے پروڈکٹس کو متاثر کرنے والے مسائل کے بعد، ہم اس کمیونٹی کی حمایت کے حلوں کو اگلی بلند تر ترجیح دیتے ہیں۔ جب براہ کرم جائزہ لیا جائے اور منظوری مل جائے، ہم آپ کے حل کو مرج کریں گے اور آپ کی شراکت کو منسلک کریں گے۔
مذکورہ بالا زمرے کے علاوہ مسائل کے لئے، آپ ان کی حل کیلئے مالی امداد کرنے کا اختیار رکھتے ہیں۔ ہر کھلی مسئلہ کو ایک آرڈر فارم سے منسلک کیا گیا ہے جہاں آپ مالی طور پر تعاون کر سکتے ہیں۔ ہم ان مسائل کو فنڈنگ کی رقم کے مطابق ترتیب دیتے ہیں۔
اوپن سورس کمیونٹی کی فعالیت سے ہی بڑھتی ہے۔ حتی کہ آپ بگز کو نہیں درست کر رہے ہیں، کوڈ کی بہتری، دستاویزات کی تازہ کاری، ٹیوٹوریلز یا کمیونٹی چینلز میں دوسروں کی مدد کرتے ہوئے تعاون کرنے کا خیال رکھیں۔ ہم ہر شخص کو بلند تر ترجیح دیتے ہیں کہ وہ کمیونٹی کے طور پر اوپن سورس کام کی حمایت کریں۔
دوبارہ کہنے کے لئے، DefectiveCode بگز کی ترتیب کو اس کے پیڈ پروڈکٹس پر کیسے اثر انداز کرتی ہیں، کمیونٹی کی پل پریکوئسٹس کو اور مسائل کے لئے مالی حمایت کی رقم کو ترجیح دیتا ہے۔
کاپی رائٹ © Defective Code، LLC. تمام حقوق محفوظ ہیں
اس سافٹ ویئر اور متعلقہ دستاویزات (سافٹ ویئر) کا کاپی حاصل کرنے والے کسی بھی شخص کو مفت میں اجازت ہے، سافٹ ویئر کے بغیر کسی پابندی کے، بمع متعلقہ دستاویزات کے ساتھ کام کرنے کی۔ یہ حقوق ہیں:
اوپر دیئے گئے کاپی رائٹ نوٹس اور یہ اجازت نوٹس سافٹ ویئر کے تمام کاپیوں یا زیادہ تر حصوں میں شامل ہونا چاہئے۔
سافٹ ویئر "جیسا ہے" فراہم کیا جاتا ہے، کوئی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضمانت کے بغیر، صرفیت کی ضمانت، مخصوص مقصد کی صلاحیت اور کسی بھی طرح کی ضم