English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Bu belge otomatik olarak çevrilmiştir. Eğer çeviri hataları varsa, lütfen projeye bir pull request açın ve docs/{ISO 639-1 Kodu}.md
dosyasını ekleyin.
MJML, duyarlı e-postaların kodlanma sürecini basitleştirmek için özel olarak tasarlanmış bir işaretleme dilidir. Semantik sözdizimi kolaylık ve basitlik sağlarken, standart bileşenlerin geniş kütüphanesi geliştirme sürecini hızlandırır ve e-posta kod tabanının karmaşıklığını azaltır. MJML'in açık kaynaklı motoru, en iyi uygulamalara uygun, yüksek kaliteli, duyarlı HTML üretir. Outlook ile çalışmanın zorluklarını yaşadıysanız, bu paket sizin için özel olarak tasarlanmıştır.
MJML uygulamamız, resmi MJML API'si için bir sarmalayıcı olarak hizmet vermektedir. Bu paket, MJML'i NodeJS ve MJML CLI'sini kurma zorluğu olmadan doğrudan PHP içinde HTML'e derlemeyi sağlar.
// Laravel olmadan(new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Sıkıştırılmış 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 ileMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Laravel ile sıkıştırılmış HTMLMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
İlk olarak, paketimizin kurulduğunda doğru ikili dosyaları indirmesi için composer.json
dosyanıza aşağıdakileri ekleyin. İkili dosyalar, install
, update
veya dump-autoload
komutunu çalıştırdıktan sonra indirilecektir.
{ "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}
MJML ikili dosyası, composer'ın kurulum veya güncelleme sırasında CDN'den alınacak ve bu paketin "bin" klasörüne kaydedilecektir. Hem yerel hem de üretim ortamlarınız için gerekli ikili dosyaların yüklendiğinden emin olun.
Varsayılan olarak, all
tüm desteklediğimiz ikili dosyaları alır. Bant genişliği ve kurulum sürelerinden tasarruf etmek için işletim ve mimari sistemlerini daraltmanızı öneririz. Aşağıdaki tabloda mevcut olan ikili dosyalar bulunmaktadır.
İşletim Sistemi | Mimarisi | Composer Güncelleme Sonrası Komutu |
---|---|---|
Tümü | Tümü | 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 |
Ardından, aşağıdaki composer komutunu çalıştırarak PHP paketini kurun:
composer require defectivecode/mjml
Bu kadar! Laravel kullanıyorsanız, paketimiz otomatik olarak Laravel'in paket keşfi kullanılarak kurulacaktır.
Laravel kullanıyorsanız aşağıdaki Laravel kullanımına bakın.
MJML'i renderlamak için, MJML stringinizi render
methoduna geçirin:
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'i doğrulamak için, MJML stringinizi isValid
methoduna geçirin:
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'i render etmek için, MJML string'inizi MJML facade'inin render
metoduna geçirmeniz yeterlidir:
use DefectiveCode\MJML\Facades\MJML; $html = MJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Merhaba Dünya</mj-text></mj-column></mj-section></mj-body></mjml>');
MJML'i doğrulamak için, MJML string'inizi MJML facade'inin isValid
metoduna geçirmeniz yeterlidir:
use DefectiveCode\MJML\Facades\MJML; $isValid = MJML::isValid( '<mjml><mj-body><mj-section><mj-column><mj-text>Merhaba Dünya</mj-text></mj-column></mj-section></mj-body></mjml>');
Aşağıdaki komutu kullanarak yapılandırma dosyasını yayınlayabilirsiniz:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Bu, config
klasörünüzde bir mjml.php
yapılandırma dosyası oluşturacaktır. Yapılandırma dosyasında listelenen tüm seçenekler, MJML facade'ini kullandığınızda config
nesnesine geçirilir.
Tüm yapılandırma seçenekleri, MJML nesnesi üzerinde doğrudan aşağıdaki yöntemleri çağırarak ayarlanabilir.
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>' );
Paketimiz, aşağıdaki dışında, resmi MJML paketiyle aynı yapılandırmayı takip eder:
preprocessors
- Bu seçenek mevcut değildir. Bu seçeneği eklemek isterseniz bir pull talebi açın.minifyOptions
- Minify işlemi için html-minifier-terser
kullanırken, resmi paket html-minifier
kullanır. Minify işlemcimizi değiştirmeye karar verdik çünkü html-minifer
artık bakılmamakta ve bazı güvenlik sorunlarıyla ilişkilidir.Paketimiz varsayılan olarak aşağıdaki yazı tiplerini kullanır:
Yazı tiplerini aşağıdaki yöntemleri kullanarak değiştirebilirsiniz:
addFont(string $font, string $url)
- Yazı tipini yazı tipi listesine ekler.removeFont(string$font)
- Yazı tipini yazı tipi listesinden kaldırır.setFonts(array $fonts)
- Yazı tipi listesini ayarlar. Yazı tiplerini aşağıdaki formatta bir dizi olarak sağlamanız gerekmektedir: ['yazı-tipi-adı' => 'yazı-tipi-url']
.Varsayılan olarak yorumlar korunur. Yorumları kaldırmak isterseniz removeComments()
yöntemini kullanabilirsiniz.
Ayrıca removeComments()
işlemini geri almak için keepComments()
yöntemini çağırabilirsiniz.
Varsayılan olarak, paketimiz herhangi bir mj-include
etiketini dahil eder. Bu davranışı ayarlamak için ignoreIncludes(bool $ignore)
yöntemini kullanabilirsiniz.
Paketimiz, HTML'yi aşağıdaki varsayılan seçeneklerle js-beautify
kullanarak güzel gösterir:
js-beautify
, seçenekleri sağlamak için snake_case kullanırken, paketimizi kullanırken camelCase kullanmalısınız. Bu seçimi, paketimizi diğer yapılandırma seçenekleriyle tutarlı tutmak için yaptık. Paketimiz, camelCase seçeneklerini otomatik olarak snake_case'e dönüştürecektir.
Bu seçeneklerden herhangi birini geçerli bir js-beautify
yapılandırması sağlayarak geçersiz kılabilirsiniz:
setBeautifyOptions(array $options)
- js-beautify
seçeneklerini ayarlar.addBeautifyOption(string $option, mixed $value)
- Bir js-beautify
seçeneği ekler.removeBeautifyOption(string $option)
- Bir js-beautify
seçeneğini kaldırır.Paketimiz, HTML'yi aşağıdaki varsayılan seçeneklerle html-minifier-terser
kullanarak küçültür:
Bu seçeneklerden herhangi birini geçerli bir html-minifier-terser
yapılandırması sağlayarak geçersiz kılabilirsiniz:
setMinifyOptions(array $options)
- html-minifier-terser
seçeneklerini ayarlar.addMinifyOption(string $option, mixed $value)
- Bir html-minifier-terser
seçeneği ekler.removeMinifyOption(string $option)
- Bir html-minifier-terser
seçeneğini kaldırır.Paketimiz, varsayılan olarak soft
doğrulama seviyesini kullanarak MJML'yi doğrular. Bunun için validationLevel(ValidationLevel $validationLevel)
yöntemini kullanabilirsiniz. Aşağıdaki doğrulama seviyeleri mevcuttur:
strict
- Belgeniz doğrulamadan geçiyor ve hata içeriyorsa render edilmezsoft
- Belgeniz doğrulamadan geçiyor ve hata içerse bile render edilirskip
- Belgeniz doğrulamadan geçmeden render edilir.Paketimiz varsayılan olarak .
dizinini kullanır. Bunun için filePath(string $path)
yöntemini çağırarak bunu değiştirebilirsiniz.
Varsayılan olarak herhangi bir juice seçeneği sağlamıyoruz. Aşağıdaki yöntemleri kullanarak juice seçenekleri ekleyebilirsiniz:
setJuiceOptions(array $options)
- Juice seçeneklerini ayarlar.addJuiceOption(string $option, mixed $value)
- Bir juice seçeneği ekler.removeJuiceOption(string $option)
- Bir juice seçeneğini kaldırır.setJuicePreserveTags(array $tags)
- Juice korunan etiketleri ayarlar.addJuicePreserveTag(string $tag, mixed $value)
- Bir juice korunan etiket ekler.removeJuicePreserveTag(string $tag)
- Bir juice korunan etiketi kaldırır.Açık kaynak paketimizi seçtiğiniz için teşekkür ederiz! Lütfen bu destek ilkelerini kontrol etmek için bir an ayırın. Bu, projemizden en iyi şekilde yararlanmanıza yardımcı olacaktır.
Açık kaynak projemiz, harika topluluğumuz tarafından desteklenmektedir. Sorularınız varsa veya yardıma ihtiyacınız varsa, StackOverflow ve diğer çevrimiçi kaynaklar en iyi seçeneklerinizdir.
Açık kaynak bir projeyi yönetmenin gerçeği, her bildirilen hatayı veya özellik isteğini hemen ele alamayacağımız anlamına gelir. Sorunları aşağıdaki sıraya göre önceliklendiriyoruz:
Ücretli ürünlerimizi etkileyen hatalar her zaman en öncelikli konumuz olacaktır. Bazı durumlarda, sadece bizi etkileyen hatalara çözüm bulabiliriz.
Bir hatayı tespit ettiniz ve bir çözümünüz varsa, lütfen bir pull isteği gönderin. Ürünlerimizi etkileyen sorunlardan sonra, bu topluluk destekli düzeltmelere en yüksek önceliği veriyoruz. İncelemeye alındıktan ve onaylandıktan sonra, çözümünüzü birleştirecek ve katkınızı takdir edeceğiz.
Yukarıda belirtilen kategoriler dışındaki sorunlar için çözümlerinin finanse edilmesini tercih edebilirsiniz. Her açık sorun, finansal olarak katkıda bulunabileceğiniz bir sipariş formuna bağlıdır. Bu sorunları, sağlanan finansal destek miktarına göre önceliklendiriyoruz.
Açık kaynak, topluluğu aktif olduğunda gelişir. Hataları düzeltmiyor olsanız bile, kod geliştirmeleri, belge güncellemeleri, öğreticiler veya topluluk kanallarında diğer insanlara yardımcı olarak katkıda bulunmayı düşünün. Herkesi, bir topluluk olarak, açık kaynak çalışmalarını desteklemeye teşvik ediyoruz.
Söz konusu DefectiveCode, hataları ücretli ürünlerimize nasıl etkilediklerine göre önceliklendirecek, topluluk pull isteklerine ve sorunlar için alınan mali desteklere göre önceliklendirecektir.
Telif Hakkı © Defective Code, LLC. Tüm hakları saklıdır.
Bu yazılımın ve ilişkili belgelendirme dosyalarının (bundan sonra "Yazılım" olarak anılacaktır) bir kopyasını elde eden herhangi bir kişiye, Yazılım'ı herhangi bir kısıtlama olmaksızın kullanma, kopyalama, değiştirme, birleştirme, yayınlama, dağıtma, alt lisanslama ve/veya Yazılım'ın kopyalarını satma izni ücretsiz olarak verilir ve Yazılım'ı sağlayan kişilere aşağıdaki koşullara tabi olarak bunu yapma izni verilir:
Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, tüm kopyaların veya önemli bölümlerinin Yazılım'a dahil edilmesi gerekmektedir.
YAZILIM "OLDUĞU GİBİ" SAĞLANIR, HİÇBİR GARANTİ VERİLMEDEN, AÇIKÇA VEYA ZIMNEN, SATILABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VEYA İHLAL ETMEME GARANTİLERİ DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE HİÇBİR GARANTİ VERİLMEDEN SAĞLANIR. HERHANGİ BİR DURUMDA YAZARLAR VEYA TELİF HAKKI SAHİPLERİ, SÖZLEŞME, HAKSIZ FİİL VEYA DİĞER EYLEMLERDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER SORUMLULUK İÇİN, YAZILIM VEYA YAZILIMIN KULLANIMI VEYA DİĞER İLİŞKİLİ İŞLEMLERDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER SORUMLULUK İÇİN HİÇBİR SORUMLULUK KABUL ETMEZ.