English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- अपग्रेडिंग
- परिचय
- स्थापना
- उपयोग (बिना लारावेल)
- उपयोग (लारावेल के साथ)
- कॉन्फ़िगरेशन
- समर्थन दिशानिर्देश
- लाइसेंस - MIT लाइसेंस
अपग्रेडिंग
यदि आप पिछले संस्करण से अपग्रेड कर रहे हैं, तो कृपया अपग्रेड गाइड को ब्रेकिंग चेंजेस और माइग्रेशन स्टेप्स के लिए देखें।
परिचय
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" फ़ोल्डर में संग्रहीत किया जाएगा Composer के इंस्टॉलेशन या अपडेट के दौरान। सुनिश्चित करें कि आपके स्थानीय और उत्पादन वातावरण के लिए आवश्यक बाइनरी लोडेड हैं।
डिफ़ॉल्ट रूप से,
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 -
अगले, निम्नलिखित Composer कमांड को चलाकर 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- हम आउटपुट संगतता के लिए 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विकल्प प्रदान करने के लिए स्नेक_case का उपयोग करता है, आपको हमारे पैकेज का उपयोग करते समय camelCase का उपयोग करना चाहिए। हमने इस चुनाव को सभी कॉन्फ़िगरेशन विकल्पों के साथ अपने पैकेज को सुसंगत रखने के लिए बनाया। हमारा पैकेज स्वचालित रूप से camelCase विकल्पों को स्नेक_case में परिवर्तित करेगा।
आप निम्नलिखित विधियों का उपयोग करके इन विकल्पों में से किसी को भी ओवरराइड कर सकते हैं:
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 संकुचन विकल्पों की आवश्यकता है, तो आवश्यक विकल्प रूप के साथ एक मुद्दा खोलें।
उद्धरण स्तर
हमारा पैकेज डिफ़ॉल्ट रूप से 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 लाइसेंस
कॉपीराइट © डेफेक्टिव कोड, एलएलसी। सर्वाधिकार सुरक्षित
इस सॉफ़्टवेयर और संबंधित दस्तावेज़ फ़ाइलों (जिसे "सॉफ़्टवेयर" कहा जाता है) की एक प्रति प्राप्त करने वाले किसी भी व्यक्ति को बिना किसी शुल्क के समझौता किया जाता है, सॉफ़्टवेयर में बिना किसी रोक-टोक के, जिसमें बिना सीमा के निम्नलिखित अधिकार शामिल हैं: उपयोग करने, कॉपी करने, संशोधित करने, विलय करने, प्रकाशित करने, वितरित करने, उप-लाइसेंस देने और/या सॉफ़्टवेयर की प्रतियों को बेचने के लिए, और उन व्यक्तियों को अनुमति देने के लिए जिन्हें सॉफ़्टवेयर प्रदान किया गया है कि वे ऐसा कर सकें, निम्नलिखित शर्तों के अधीन:
उपरोक्त कॉपीराइट सूचना और यह अनुमति सूचना सभी प्रतियों या सॉफ़्टवेयर के महत्वपूर्ण भागों में शामिल की जानी चाहिए।
सॉफ़्टवेयर "जैसा है" प्रदान किया गया है, बिना किसी प्रकार की वारंटी के, स्पष्ट या अंतर्निहित, जिसमें वाणिज्यिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और अवमानना की वारंटी शामिल नहीं हैं, लेकिन इनमें सीमित नहीं हैं। किसी भी स्थिति में लेखकों या कॉपीराइट धारकों को किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं ठहराया जाएगा, चाहे वह अनुबंध, टॉर्ट या अन्यथा में हो, जो सॉफ़्टवेयर या सॉफ़्टवेयर के उपयोग या अन्य लेन-देन से उत्पन्न हो।