English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- उन्नयन
- परिचय
- स्थापना
- उपयोग (बिना Laravel)
- उपयोग (Laravel के साथ)
- कॉन्फ़िगरेशन
- समर्थन दिशानिर्देश
- लाइसेंस - MIT लाइसेंस
उन्नयन
यदि आप पिछले संस्करण से उन्नयन कर रहे हैं, तो कृपया उन्नयन गाइड देखें जिसमें तोड़ने वाले परिवर्तन और माइग्रेशन चरण शामिल हैं।
परिचय
MJML एक मार्कअप भाषा है जिसे विशेष रूप से उत्तरदायी ईमेल कोडिंग की प्रक्रिया को सरल बनाने के लिए डिज़ाइन किया गया है। इसकी सेमांटिक सिंटैक्स आसानी और सरलता सुनिश्चित करती है, जबकि इसके मानक घटकों की व्यापक लाइब्रेरी विकास को तेज़ बनाती है और आपके ईमेल कोडबेस की जटिलता को कम करती है। MJML का ओपन-सोर्स इंजन उच्च गुणवत्ता, उत्तरदायी HTML उत्पन्न करता है जो सर्वोत्तम प्रथाओं के अनुसार होता है। अगर आपने आउटलुक के साथ काम करते समय निराशाओं का अनुभव किया है, तो यह पैकेज आपके लिए तैयार किया गया है।
हमारा MJML कार्यान्वयन आधिकारिक MJML API के लिए एकWrapper के रूप में कार्य करता है। यह PHP के भीतर सीधे MJML को HTML में सुविधाजनक रूप से संकलित करने की अनुमति देता है, NodeJS की आवश्यकता के बिना। यह पैकेज PHP अनुप्रयोगों के लिए आदर्श है जो NodeJS और MJML 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>'); // Laravel के साथMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Laravel के साथ और संकुचित 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 -
बस इतना ही! यदि आप 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 स्ट्रिंग को 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\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 मिनिफायर द्वारा उपयोग नहीं किया जाता है।
फॉन्ट्स
हमारा पैकेज डिफ़ॉल्ट रूप से निम्नलिखित फ़ॉन्ट्स का उपयोग करता है:
- 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 टैग को अनदेखा करता है। यह 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 में परिवर्तित कर देगा।
आप निम्नलिखित मेथड्स का उपयोग करके इन विकल्पों में से किसी को भी ओवरराइड कर सकते हैं:
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पैकेज का उपयोग नहीं करता है। यह पैकेज अभी भी संस्करण 2.x में प्रस्तुत आउटपुट व्यवहार को बनाए रखने के लिए PHP में संकुचन बनाए रखता है। यदि आपको 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 और अन्य ऑनलाइन संसाधन आपके लिए सबसे अच्छे विकल्प हैं।
बग और विशेषता प्राथमिकता
एक ओपन-सोर्स प्रोजेक्ट का प्रबंधन करने की वास्तविकता का मतलब है कि हम तुरंत हर रिपोर्ट की गई बग या विशेषता अनुरोध को संबोधित नहीं कर सकते। हम मुद्दों को निम्नलिखित क्रम में प्राथमिकता देते हैं:
1. हमारे भुगतान किए गए उत्पादों को प्रभावित करने वाले बग
जो बग हमारे भुगतान किए गए उत्पादों को प्रभावित करते हैं, वे हमेशा हमारी सर्वोच्च प्राथमिकता होंगे। कुछ मामलों में, हम केवल उन बग को संबोधित कर सकते हैं जो हमें सीधे प्रभावित करते हैं।
2. सामुदायिक पुल अनुरोध
यदि आपने एक बग पहचाना है और एक समाधान है, तो कृपया एक पुल अनुरोध जमा करें। हमारे उत्पादों को प्रभावित करने वाले मुद्दों के बाद, हम इन सामुदायिक संचालित सुधारों को अगली उच्चतम प्राथमिकता देते हैं। एक बार समीक्षित और अनुमोदित होने के बाद, हम आपके समाधान को मिलाएंगे और आपके योगदान को मान्यता देंगे।
3. वित्तीय समर्थन
उक्त श्रेणियों के बाहर के मुद्दों के लिए, आप उनके समाधान के लिए धन देने का विकल्प चुन सकते हैं। प्रत्येक खुले मुद्दे को एक आदेश फॉर्म से जोड़ा गया है जहाँ आप वित्तीय रूप से योगदान कर सकते हैं। हम प्रदान किए गए धनराशि के आधार पर इन मुद्दों को प्राथमिकता देते हैं।
सामुदायिक योगदान
ओपन सोर्स तब फलता-फूलता है जब इसका समुदाय सक्रिय होता है। भले ही आप बग ठीक नहीं कर रहे हों, कोड सुधार, दस्तावेज़ अपडेट, ट्यूटोरियल के माध्यम से या सामुदायिक चैनलों में अन्य लोगों की सहायता करके योगदान करने पर विचार करें। हम हर किसी को, एक समुदाय के रूप में, ओपन-सोर्स कार्य का समर्थन करने के लिए बहुत प्रोत्साहित करते हैं।
दोहराने के लिए, DefectiveCode हमारे भुगतान किए गए उत्पादों पर प्रभाव, सामुदायिक पुल अनुरोध और मुद्दों के लिए प्राप्त वित्तीय समर्थन के आधार पर बग को प्राथमिकता देगा.
लाइसेंस - MIT लाइसेंस
कॉपीराइट © डेफेक्टिव कोड, एलएलसी। सर्वाधिकार सुरक्षित
इस सॉफ़्टवेयर और संबंधित दस्तावेज़ फ़ाइलों (जिसे "सॉफ़्टवेयर" कहा जाता है) की एक प्रति प्राप्त करने वाले किसी भी व्यक्ति को बिना किसी शुल्क के समझौता किया जाता है, सॉफ़्टवेयर में बिना किसी रोक-टोक के, जिसमें बिना सीमा के निम्नलिखित अधिकार शामिल हैं: उपयोग करने, कॉपी करने, संशोधित करने, विलय करने, प्रकाशित करने, वितरित करने, उप-लाइसेंस देने और/या सॉफ़्टवेयर की प्रतियों को बेचने के लिए, और उन व्यक्तियों को अनुमति देने के लिए जिन्हें सॉफ़्टवेयर प्रदान किया गया है कि वे ऐसा कर सकें, निम्नलिखित शर्तों के अधीन:
उपरोक्त कॉपीराइट सूचना और यह अनुमति सूचना सभी प्रतियों या सॉफ़्टवेयर के महत्वपूर्ण भागों में शामिल की जानी चाहिए।
सॉफ़्टवेयर "जैसा है" प्रदान किया गया है, बिना किसी प्रकार की वारंटी के, स्पष्ट या अंतर्निहित, जिसमें वाणिज्यिकता, किसी विशेष उद्देश्य के लिए उपयुक्तता और अवमानना की वारंटी शामिल नहीं हैं, लेकिन इनमें सीमित नहीं हैं। किसी भी स्थिति में लेखकों या कॉपीराइट धारकों को किसी भी दावे, क्षति या अन्य दायित्व के लिए उत्तरदायी नहीं ठहराया जाएगा, चाहे वह अनुबंध, टॉर्ट या अन्यथा में हो, जो सॉफ़्टवेयर या सॉफ़्टवेयर के उपयोग या अन्य लेन-देन से उत्पन्न हो।