English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
- Upgrade
- परिचय
- स्थापना
- उपयोग (बिना Laravel के)
- उपयोग (Laravel के साथ)
- कॉन्फ़िगरेशन
- સપોર્ટ માર્ગદર્શિકા
- लायसन्स - MIT लायसन्स
Upgrade
अगर आप पिछले संस्करण से अपग्रेड कर रहे हैं, तो कृपया अपग्रेड गाइड को ब्रेकिंग बदलावों और माइग्रेशन चरणों के लिए देखें।
परिचय
MJML एक मार्कअप भाषा है जिसे उत्तरदायी ईमेल कोडिंग की प्रक्रिया को सरल बनाने के लिए विशेष रूप से डिज़ाइन किया गया है। इसका सेमांटिक सिंटैक्स आसानी और सरलता सुनिश्चित करता है, जबकि इसके मानक घटकों की व्यापक पुस्तकालय विकास को त्वरित करता है और आपके ईमेल कोडबेस की जटिलता को कम करता है। MJML का ओपन-सोर्स इंजन उच्च गुणवत्ता, उत्तरदायी HTML उत्पन्न करता है जो सर्वोत्तम प्रथाओं का पालन करता है। यदि आपने Outlook के साथ काम करते समय परेशानियों का अनुभव किया है, तो यह पैकेज आपके लिए बनाया गया है।
हमारा 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 और संकुचित 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 -
अगले, निम्नलिखित Composer आदेश चलाकर PHP पैकेज स्थापित करें:
composer require defectivecode/mjml -
बस इतना ही! यदि आप Laravel का उपयोग कर रहे हैं, तो हमारी पैकेज स्वचालित रूप से Laravel के पैकेज डिस्कवरी का उपयोग करके स्थापित होगी।
उपयोग (बिना Laravel के)
यदि आप Laravel का उपयोग कर रहे हैं, तो नीचे Laravel के साथ उपयोग देखें।
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>');
उपयोग (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; $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 पैकेज के Except निम्नलिखित है:
preprocessors- यह विकल्प उपलब्ध नहीं है। यदि आप इस विकल्प को जोड़ना चाहते हैं तो कृपया एक पुल अनुरोध खोलें।minifyOptions- हमhtml-minifierकी बजाय एक हल्का PHP-आधारित मिनिफायर का उपयोग करते हैं। मिनिफायर टिप्पणियों को हटाता है (Outlook की स्थिति को छोड़कर), सफेद स्थानों को संकुचित करता है, और टैग के बीच के सफेद स्थानों को हटाता है।
फ़ॉन्ट्स
हमारा पैकेज डिफ़ॉल्ट रूप से निम्नलिखित फ़ॉन्ट का उपयोग करता है:
- 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 टैग को शामिल करेगी। आप ignoreIncludes(bool $ignore) विधि को कॉल करके इस व्यवहार को समायोजित कर सकते हैं।
सुंदर बनाना
हमारा पैकेज js-beautify का उपयोग करके HTML को सुंदर बनाएगा, जिसमें निम्नलिखित डिफ़ॉल्ट विकल्प हैं:
- 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 टिप्पणियों को हटा देता है (Outlook की स्थिति जैसी टिप्पणियों को बनाए रखता है
<!--[if mso]>) - कई सफेद स्थानों को एकल स्थानों में संकुचित करता है
- HTML टैग के बीच के सफेद स्थान को हटा देता है
आप minify(bool $minify) विधि को कॉल करके संकुचन को सक्षम या अक्षम कर सकते हैं।
PHP-आधारित मिनिफिकेशन क्यों? आधिकारिक MJML पैकेज मिनिफिकेशन के लिए
html-minifierका उपयोग करता है, जिसमें एक ज्ञात ReDoS भेद्यता (CVE-2022-37620) है जिसका कोई सुधार नहीं है क्योंकि पैकेज का रखरखाव नहीं किया जा रहा है। कमजोर निर्भरताओं को बंडल करने से बचने के लिए, हमने PHP का उपयोग करके एक हल्की, सुरक्षित कार्यान्वयन का उपयोग करके संकुचन को स्थानांतरित कर दिया।
वैलिडेशन स्तर
हमारा पैकेज डिफ़ॉल्ट रूप से MJML को soft वैलिडेशन स्तर का उपयोग करके मान्य करेगा। आप इस स्थिति को validationLevel(ValidationLevel $validationLevel) विधि का उपयोग करके बदल सकते हैं। निम्नलिखित वैलिडेशन स्तर उपलब्ध हैं:
strict- आपका दस्तावेज़ मान्यता के माध्यम से जा रहा है और यदि इसमें कोई त्रुटि है तो इसे रेंडर नहीं किया जाता हैsoft- आपका दस्तावेज़ मान्यता के माध्यम से जा रहा है और यदि इसमें त्रुटियाँ हैं तो इसे रेंडर किया जाता हैskip- आपका दस्तावेज़ मान्यता के बिना रेंडर किया जाता है।
फ़ाइल पथ
हमारा पैकेज डिफ़ॉल्ट रूप से . निर्देशिका का उपयोग करेगा। आप filePath(string $path) विधि को कॉल करके इसे बदल सकते हैं।
जूस
हम डिफ़ॉल्ट रूप से कोई जूस विकल्प प्रदान नहीं करते हैं। आप निम्नलिखित विधियों का उपयोग करके जूस विकल्प जोड़ सकते हैं:
setJuiceOptions(array $options)- जूस विकल्प सेट करें।addJuiceOption(string $option, mixed $value)- एक जूस विकल्प जोड़ें।removeJuiceOption(string $option)- एक जूस विकल्प को हटा दें।setJuicePreserveTags(array $tags)- जूस संरक्षित टैग सेट करें।addJuicePreserveTag(string $tag, mixed $value)- एक जूस संरक्षित टैग जोड़ें।removeJuicePreserveTag(string $tag)- जूस संरक्षित टैग को हटा दें।
સપોર્ટ માર્ગદર્શિકા
આપણી ઓપન સોર્સ પેકેજ પસંદ કરવા માટે તમારો આભાર! કૃપા કરીને આ સેટેલાઈટ માર્ગદર્શિકાઓને ચકાસવા માટે થોડી મિનિટો પસાર કરો. આ પગલાં તમે અમારી યોજના પરથી વધુ સારી રીતે ઉપયોગી થવામાં મદદ કરશે.
સમુદાય ચલિત સહાયતા
અમારી ઓપન-સોર્સ યોજના અમારી શાનદાર સમુદાય દ્વારા ચલાવવામાં આવે છે. જો તમારી પાસે પ્રશ્નો છે અથવા સહાયતા જરૂર છે, તો સ્ટેકઓવરફ્લો અને અન્ય ઓનલાઈન સાધનો તમારા શ્રેષ્ઠ વિકલ્પ છે.
બગ્સ અને ફીચર પ્રાયોરિટાઈઝેશન
એક ઓપન-સોર્સ યોજના સંચાલિત કરવાનો વાસ્તવિકતાનો અર્થ એ છે કે દરેક નોંધાયેલા બગ અથવા ફીચર વિનંતી તરત ઠીક કરી શકતા નથી. અમે મુદ્દાઓને નીચેના ક્રમમાં પ્રાથમિકતા આપીએ છીએ:
1. અમારા પેઇડ ઉત્પાદનોને અસર કરતી બગ્સ
આપણાં પેઇડ ઉત્પાદનોને અસર કરતી બગ્સ હંમેશા અમારી ટોચની પ્રાથમિકતા રહેશે. કેટલીકવાર, અમે ફક્ત તે બગ્સને addressed કરીશું જે અમારો સીધો અસર કરે છે.
2. સમુદાય પુલ વિનંતીઓ
જો તમે એક બગ ઓળખી લીધો છે અને ત્યાં એક ઉકેલ છે, તો કૃપા કરીને પુલ વિનંતિ રજૂ કરો. અમારી ઉત્પાદનોને અસર કરતી મુદ્દા પછી, અમે આ સમુદાય ચલિત ઉકેલો માટે આગામી ઉંચી પ્રાથમિકતા પ્રદાન કરીએ છીએ. એક વાર સમીક્ષા અને મંજૂરી મેળવ્યા પછી, અમે તમારા ઉકેલને ઉમેરશું અને તમારી મુસદ્દાને માન આપશું.
3. નાણાની સહાયતા
ઉલ્લેખિત શ્રેણીઓની બહારના મુદ્દાઓ માટે, તમે તેમના સમાધાન માટે નાણાની સહાયતા આપવા માટે પસંદ કરી શકો છો. મોટી સમસ્યાઓ દરખાસ્તના ફોર્મ સાથે જોડાયેલી છે જયાં તમે નાણાંકીય રીતે ઇનામ આપી શકો છો. અમે આ મુદ્દાઓને આપવામાં આવેલા નાણાંની રકમના આધારે પ્રાથમિકતા આપીએ છીએ.
સમુદાયના યોગદાન
ઓપન સોર્સ ત્યારે જ જીવંત રહે છે જ્યારે તેની સમુદાય સક્રિય છે. જો તમે બગ્સને ઠીક નથી કરી રહ્યાં, તો કોડના સુધારા, દસ્તાવેજી અપડેટ, ટ્યુટોરિયલ્સ માધ્યમથી યોગદાન આપવાની ચૂકવણી કરો અથવા સમુદાય ચેનલોમાં અન્ય લોકોને મદદ કરે. અમે દરેકને બળાતમ ઉમેદવારી આપવાની ઉદ્બનકતામાં મદદરૃષ માટે ઉત્સાહિત કરીએ છીએ.
ફરીથી પુનરાવર્તન કરીએ, DefectiveCode બગ્સને અમારી પેઇડ ઉત્પાદનો પર કેવી રીતે અસર કરે છે તેના આધારે પ્રાથમિકતા આપશે, સમુદાય પુલ વિનંતીઓને, અને મુદ્દાઓ માટે મળેલ નાણાંકીય સહાયતા.
लायसन्स - MIT लायसन्स
कॉपीराइट © Defective Code, LLC. सर्व हक्क राखीव आहेत
या संगणक प्रोग्रामचा आणि संबंधित दस्तऐवज फाइल्स (या "सॉफ्टवेअर" म्हणून) एक प्रती मिळवणाऱ्या कोणत्याही व्यक्तीला, निर्बंधाशिवाय सॉफ्टवेअरमध्ये व्यवहार करण्याची परवानगी दिली जाते, ज्यात वापरण्याच्या, कॉपी करण्याच्या, सुधारित करण्याच्या, विलीन करण्याच्या, प्रकाशित करण्याच्या, वितरणाच्या, उपलायन करण्याच्या, आणि/किंवा सॉफ्टवेअरच्या प्रतींची विक्री करण्याच्या अधिकारांचा समावेश आहे, आणि ज्यांना सॉफ्टवेअर दिला जातो त्यांना असे करण्याची परवानगी देणे, खालील अटींच्या अधिन जातात:
वर उल्लेखित कॉपीराइट नोटिस आणि ही परवानगी नोटिस सर्व प्रतींमध्ये किंवा सॉफ्टवेअरच्या महत्त्वाच्या भागांमध्ये समाविष्ट केली जावी.
सॉफ्टवेअर "जसे आहे" दिले जाते, कोणत्याही प्रकारच्या वॉरन्टीशिवाय, स्पष्ट किंवा अप्रत्यक्ष, विक्रीसाठी तयार असणे, विशेष उद्देशासाठी योग्य असणे आणि कॉपीराइटचा भंग न करणारे यांचा समावेश, पण यापर्यंत सीमित नाही. लेखक किंवा कॉपीराइट धारक कोणत्याही दाव्यांसाठी, नुकसानांसाठी किंवा इतर जबाबदाऱ्याासाठी उत्तरदायी नाहीत, हे कॉन्ट्रॅक्ट, टॉर्ट किंवा इतर कोणत्याही प्रकारात असो, सॉफ्टवेअरशी संबंधित किंवा सॉफ्टवेअरसह किंवा इतर व्यवहारासंबंधी येणारे.