English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- الترقية
- مقدمة
- التثبيت
- الاستخدام (بدون Laravel)
- الاستخدام (مع Laravel)
- التكوين
- إرشادات الدعم
- الترخيص - MIT License
الترقية
إذا كنت تقوم بالتحديث من إصدار سابق، يرجى مراجعة دليل الترقية للتغييرات المكسورة وخطوات الترحيل.
مقدمة
MJML هي لغة ترميز مصممة خصيصًا لتبسيط عملية ترميز البريد الإلكتروني المتجاوب. تضمن بنية الجملة الدلالية سهولة وبساطة، بينما تسهم مكتبتها الواسعة من المكونات القياسية في تسريع عملية التطوير وتقليل تعقيد قاعدة شفرة البريد الإلكتروني الخاصة بك. يُنتج محرك MJML مفتوح المصدر HTML عالي الجودة، متجاوب يتماشى مع أفضل الممارسات. إذا كنت قد واجهت إحباطات العمل مع Outlook، فإن هذه الحزمة مصممة خصيصًا لك.
تعمل تنفيذية MJML لدينا كغطاء لـ API الرسمي لـ MJML.تمكنك من تجميع MJML بسهولة إلى HTML مباشرة داخل PHP، دون الحاجة إلى NodeJS. هذه الحزمة مثالية لتطبيقات PHP التي ترغب في دمج MJML دون عناء تثبيت NodeJS و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>'); // مع LaravelMJML::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>');
التثبيت
-
أولاً، أضف التالي إلى ملف
composer.jsonالخاص بك لتعليم حزمنا بسحب الثنائيات الصحيحة لنظام التشغيل الخاص بك عند تثبيت حزمنا. ستقوم الثنائيات بالتنزيل بعد تشغيلك لـinstall،update، أوdump-autoload.{"post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}سيتم الحصول على ثنائية MJML من CDN الخاص بنا وحفظها في مجلد "bin" لهذه الحزمة أثناء تثبيت Composer أو تحديثه. تأكد من تحميل الثنائيات اللازمة لكلاً من بيئاتك المحلية والإنتاجية.
بشكل افتراضي، ستقوم
allبسحب جميع الثنائيات التي ندعمها. ننصح بتقليص ذلك لأنظمة التشغيل والمعمارية التي تحتاجها لتوفير النطاق الترددي ووقت التثبيت. الثنائيات المتاحة هي كما يلي.نظام التشغيل المعمارية أمر تحديث Composer بعد التثبيت الكل الكل 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 التالي:
composer require defectivecode/mjml -
هذا كل شيء! إذا كنت تستخدم Laravel، ستقوم حزمنا بتثبيت تلقائي باستخدام اكتشاف الحزم لدى Laravel.
الاستخدام (بدون Laravel)
راجع الاستخدام مع Laravel أدناه إذا كنت تستخدم Laravel.
عرض MJML
لعرض MJML، ما عليك سوى تمرير سلسلة MJML الخاصة بك إلى طريقة render:
use DefectiveCode\MJML\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\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>');
الاستخدام (مع Laravel)
عرض 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"
سيؤدي ذلك إلى إنشاء ملف تكوين mjml.php في مجلد config الخاص بك. جميع الخيارات المدرجة في ملف التكوين
تكون متاحة لك عند استخدام واجهة MJML.
التكوين
يمكن تعيين جميع خيارات التكوين عن طريق استدعاء طرق معينة مباشرة على كائن MJML.
use DefectiveCode\MJML\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 لضمان توافق المخرجات. يقوم المصغر بإزالة التعليقات (باستثناء الشرطيات الخاصة بـ Outlook)، ويقلص المسافات البيضاء، ويزيل المسافات البيضاء بين العلامات.sanitizeStylesوtemplateSyntaxوallowMixedSyntax- هذه الخيارات من MJML 5 تنطبق على مسار تصغير htmlnano/cssnano الأصلي لـ MJML. لا تستخدمها هذه الحزمة المصغر في PHP.
الخطوط
تستخدم حزمنا الخطوط التالية بشكل افتراضي:
- Open Sans: 'https://fonts.googleapis.com/css?family=Open+Sans:300,400,500,700
- Droid Sans: 'https://fonts.googleapis.com/css?family=Droid+Sans:300,400,500,700
- Lato: https://fonts.googleapis.com/css?family=Lato:300,400,500,700
- Roboto: https://fonts.googleapis.com/css?family=Roboto:300,400,500,700
- Ubuntu: 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 tags. يتماشى هذا مع
الإعداد الافتراضي الأكثر أمانًا في MJML 5. يمكنك تمكين الشموليات عن طريق استدعاء ignoreIncludes(false).
عند تمكين الشموليات، استخدم filePath(string $path) كمجلد أساسي و includePath(string|array|null $path) للسماح بمجلدات شمولية إضافية.
تحسين الشكل
ستقوم حزمنا بتحسين HTML باستخدام js-beautify. تستخدم MJML 5.2 أيضًا
js-beautify داخليًا، لكن هذه الحزمة تحافظ على تحسين المستوى الخارجي بحيث تستمر خيارات PHP المخصص
beautifyOptions في العمل. الخيارات الافتراضية هي:
- indentSize: 2
- wrapAttributesIndentSize: 2
- maxPreserveNewline: 0
- preserveNewlines: false
بينما تستخدم
js-beautifysnake_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 عند تفعيل هذا الخيار. performs the following:
- إزالة تعليقات HTML (تحافظ على الشرطيات الشرطية في Outlook مثل
<!--[if mso]>) - تضييق عدة أحرف بيضاء إلى مسافات فردية
- إزالة المسافات البيضاء بين علامات HTML
يمكنك تفعيل أو تعطيل التصغير عن طريق استدعاء طريقة minify(bool $minify).
لماذا التصغير المعتمد على PHP؟ لم تعد MJML 5 تستخدم الحزمة القديمة الضعيفة
html-minifier. لا تزال هذه الحزمة تحتفظ بعملية التصغير في PHP للحفاظ على سلوك المخرجات الذي تم تقديمه في الإصدار 2.x. إذا كنت بحاجة إلى خيارات التصغير الأصلية لـ MJML 5، افتح مشكلة مع شكل الخيار المطلوب.
مستوى التحقق
ستقوم حزمنا بالتحقق من MJML باستخدام مستوى التحقق soft بشكل افتراضي. يمكنك تغيير ذلك باستخدام
طريقة 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 وغيرها من الموارد عبر الإنترنت هي أفضل الخيارات لديك.
الأخطاء، وأولوية الميزات
حقيقة إدارة مشروع مفتوح المصدر تعني أنه لا يمكننا معالجة كل خطأ أو طلب ميزة مبلّغ عنه على الفور. نحن نحدد أولويات المشكلات بالترتيب التالي:
1. الأخطاء التي تؤثر على منتجاتنا المدفوعة
الأخطاء التي تؤثر على منتجاتنا المدفوعة ستكون دائمًا أولويتنا القصوى. في بعض الحالات، قد نعمل فقط على معالجة الأخطاء التي تؤثر علينا بشكل مباشر.
2. طلبات السحب من المجتمع
إذا كنت قد حددت خطأ ولديك حل، يرجى تقديم طلب سحب. بعد معالجة المشكلات التي تؤثر على منتجاتنا، نمنح الأولوية الأعلى لهذه الإصلاحات المدفوعة من المجتمع. بمجرد مراجعة الحل والموافقة عليه، سنقوم بدمجه وسنُعطيك الفضل لمساهمتك.
3. الدعم المالي
بالنسبة للمشكلات خارج الفئات المذكورة، يمكنك اختيار تمويل حلها. كل مشكلة مفتوحة مرتبطة بنموذج طلب يمكنك من خلاله المساهمة ماليًا. نحن نحدد أولويات هذه المشكلات بناءً على المبلغ المالي المقدم.
مساهمات المجتمع
تزدهر المصادر المفتوحة عندما يكون المجتمع نشطًا. حتى لو لم تكن تصلح الأخطاء، فكر في المساهمة من خلال تحسينات الكود، أو تحديث الوثائق، أو إنشاء دروس، أو بمساعدة الآخرين في قنوات المجتمع. نحن نشجع بشكل كبير الجميع، كمجتمع، على تقديم الدعم للعمل المفتوح المصدر.
لإعادة التأكيد، ستحظى DefectiveCode بأولوية الأخطاء استنادًا إلى كيفية تأثيرها على منتجاتنا المدفوعة، وطلبات سحب المجتمع، والدعم المالي الذي تم تلقيه للمشكلات.
الترخيص - MIT License
حقوق الطبع والنشر © Defective Code, LLC. جميع الحقوق محفوظة
يتم منح الإذن بموجب هذا، مجانًا، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة (الـ"برنامج")، للتعامل في البرنامج دون قيود، بما في ذلك بدون حصر الحقوق في الاستخدام والنسخ والتعديل والدمج والنشر والتوزيع والتراخيص الفرعية و/أو بيع نسخ من البرنامج، والسماح للأشخاص الذين تم تقديم البرنامج لهم بذلك، بشرط الالتزام بالشروط التالية:
يجب تضمين إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الجوهرية من البرنامج.
يتم توفير البرنامج "كما هو"، دون أي ضمان من أي نوع، صريح أو ضمني، بما في ذلك ولكن لا تقتصر على ضمانات القابلية للتسويق، والملاءمة لغرض معين وعدم الانتهاك. في أي حال من الأحوال، لا يتحمل المؤلفون أو أصحاب حقوق الطبع المسؤولية عن أي مطالبة أو أضرار أو مسؤوليات أخرى، سواء كانت في إطار عقد أو ضرر أو خلاف ذلك، ناشئة عن أو نتيجة عن أو تتعلق بالبرنامج أو الاستخدام أو التعاملات الأخرى في البرنامج.