English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
# Çeviri Uyarısı
Bu belge otomatik olarak çevrilmiştir. Eğer çeviri hataları varsa, lütfen projede bir
pull request açın ve çevrilmiş dosyayı docs/{ISO 639-1 Code}.md
dosyasına ekleyin.
MJML, duyarlı e-postaların kodlanma sürecini basitleştirmek için özel olarak tasarlanmış bir işaretleme dilidir. Anlamsal sözdizimi kolaylık ve sadelik sağlar, geniş standart bileşen kütüphanesi ise geliştirmeyi hızlandırır ve e-posta kod tabanınızın karmaşıklığını azaltır. MJML'nin açık kaynak motoru, en iyi uygulamalara uygun yüksek kaliteli, duyarlı HTML üretir. Outlook ile çalışmanın getirdiği hayal kırıklıklarını yaşadıysanız, bu paket tam size göre.
MJML uygulamamız, resmi MJML API'si için bir sarmalayıcı olarak hizmet eder. MJML'yi doğrudan PHP içinde HTML'ye derlemeyi kolaylaştırır, NodeJS'ye ihtiyaç duymadan. Bu paket, NodeJS ve MJML CLI'yi kurma zahmeti olmadan MJML'yi entegre etmek isteyen PHP uygulamaları için idealdir.
// 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>'); // Minimize edilmiş 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 ve minimize edilmiş HTML ileMJML::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 yüklendiğinde işletim sisteminiz için doğru ikili dosyaları çekmesini sağlamak için composer.json
dosyanıza aşağıdakileri ekleyin. İkili dosyalar install
, update
veya dump-autoload
komutlarını çalıştırdıktan sonra indirilecektir.
{ "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}
MJML ikili dosyası, composer'ın kurulumu veya güncellemesi sırasında CDN'imizden 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üklü olduğundan emin olun.
Varsayılan olarak, all
desteklediğimiz tüm ikili dosyaları çekecektir. Bant genişliği ve kurulum sürelerinden tasarruf etmek için bunu ihtiyaç duyduğunuz işletim ve mimari sistemlerle sınırlandırmanızı öneririz. Mevcut ikili dosyalar aşağıdaki gibidir.
İşletim Sistemi | Mimari | Composer Güncelleme 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 |
Sonraki adımda, aşağıdaki composer komutunu çalıştırarak PHP paketini yükleyin:
composer require defectivecode/mjml
İşte bu kadar! Laravel kullanıyorsanız, paketimiz Laravel'in paket keşfi kullanılarak otomatik olarak yüklenecektir.
Laravel kullanıyorsanız, aşağıdaki Laravel ile kullanıma bakın.
MJML'yi render etmek için, MJML stringinizi render
metoduna 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'yi doğrulamak için, MJML stringinizi isValid
metoduna 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'yi render etmek için, MJML facade'ındaki render
metoduna MJML stringinizi geçmeniz yeterlidir:
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'yi doğrulamak için, MJML facade'ındaki isValid
metoduna MJML stringinizi geçmeniz yeterlidir:
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>');
Konfigürasyon dosyasını aşağıdaki komutu kullanarak yayınlayabilirsiniz:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Bu, config
klasörünüzde bir mjml.php
konfigürasyon dosyası oluşturacaktır. Konfigürasyon dosyasında listelenen tüm seçenekler, MJML facade'ını kullandığınızda config
nesnesine aktarılır.
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, resmi MJML paketi ile aynı yapılandırmayı takip eder, ancak aşağıdaki istisnalar dışında:
preprocessors
- Bu seçenek mevcut değildir. Bu seçeneği eklemek isterseniz lütfen bir pull request açın.minifyOptions
- Biz html-minifier
yerine html-minifier-terser
kullanıyoruz. html-minifier
artık bakımda olmadığı ve bazı güvenlik sorunları olduğu için işlemciyi değiştirmeye karar verdik.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ı tipi listesine bir yazı tipi ekler.removeFont(string $font)
- Yazı tipi listesinden bir yazı tipini kaldırır.setFonts(array $fonts)
- Yazı tipi listesini ayarlar. Yazı tiplerini şu formatta bir dizi olarak sağlamalısınız: ['font-name' => 'font-url']
.Yorumlar varsayılan olarak saklanır. Yorumları kaldırmak isterseniz removeComments()
yöntemini kullanabilirsiniz.
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ışı ignoreIncludes(bool $ignore)
yöntemini çağırarak ayarlayabilirsiniz.
Paketimiz, aşağıdaki varsayılan seçeneklerle js-beautify
kullanarak HTML'yi güzelleştirir:
js-beautify
seçenekleri sağlamak için snake_case kullanırken, paketimizi kullanırken camelCase kullanmalısınız. Bu seçimi, paketimizin geri kalan yapılandırma seçenekleriyle tutarlı olmasını sağlamak için yaptık. Paketimiz camelCase seçeneklerini otomatik olarak snake_case'e dönüştürecektir.
Bu seçeneklerin herhangi birini geçersiz kılmak için aşağıdaki yöntemleri kullanarak geçerli bir js-beautify
yapılandırması sağlayabilirsiniz:
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, aşağıdaki varsayılan seçeneklerle html-minifier-terser
kullanarak HTML'yi küçültür:
Bu seçeneklerin herhangi birini geçersiz kılmak için geçerli bir html-minifier-terser
yapılandırması sağlayabilirsiniz:
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 seviyesi kullanarak MJML'yi doğrular. Bunu validationLevel(ValidationLevel $validationLevel)
yöntemini kullanarak değiştirebilirsiniz. Mevcut doğrulama seviyeleri şunlardır:
strict
- Belgeniz doğrulamadan geçer ve herhangi bir hata varsa render edilmezsoft
- Belgeniz doğrulamadan geçer ve hatalar olsa bile render edilirskip
- Belgeniz doğrulamadan geçmeden render edilir.Paketimiz varsayılan olarak .
dizinini kullanır. Bunu filePath(string $path)
yöntemini çağırarak değiştirebilirsiniz.
Varsayılan olarak herhangi bir juice seçeneği sağlamıyoruz. Juice seçeneklerini aşağıdaki yöntemleri kullanarak 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 koruma etiketlerini ayarlar.
addJuicePreserveTag(string $tag, mixed $value)
- Bir juice koruma etiketi ekler.
removeJuicePreserveTag(string $tag)
- Bir juice koruma etiketini kaldırır.
Açık kaynak paketimizi seçtiğiniz için teşekkürler! Lütfen bu destek yönergelerini incelemek için bir dakikanızı 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 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çekliği, bildirilen her hatayı veya özellik talebini hemen ele alamayacağımız anlamına gelir. Sorunları şu sırayla önceliklendiriyoruz:
Ücretli ürünlerimizi etkileyen hatalar her zaman en yüksek önceliğimiz olacaktır. Bazı durumlarda, yalnızca bizi doğrudan etkileyen hataları ele alabiliriz.
Bir hata tespit ettiyseniz ve bir çözümünüz varsa, lütfen bir çekme isteği gönderin. Ürünlerimizi etkileyen sorunlardan sonra, bu topluluk odaklı düzeltmelere en yüksek önceliği veriyoruz. İncelendikten ve onaylandıktan sonra, çözümünüzü birleştirir ve katkınızı kredi olarak veririz.
Belirtilen kategorilerin dışındaki sorunlar için, çözümün finanse edilmesini tercih edebilirsiniz. Her açık sorun, mali olarak katkıda bulunabileceğiniz bir sipariş formuna bağlıdır. Bu sorunları sağlanan finansman miktarına göre önceliklendiriyoruz.
Açık kaynak, topluluğu aktif olduğunda gelişir. Hataları düzeltmeseniz bile, kod iyileştirmeleri, dokümantasyon güncellemeleri, eğitimler veya topluluk kanallarında başkalarına yardımcı olarak katkıda bulunmayı düşünün. Herkesi, topluluk olarak, açık kaynak çalışmasını desteklemeye teşvik ediyoruz.
Tekrar belirtmek gerekirse, DefectiveCode hataları ücretli ürünlerimizi nasıl etkilediğine, topluluk çekme isteklerine ve sorunlar için alınan mali desteğe göre önceliklendirecektir.
Telif Hakkı © Defective Code, LLC. Tüm hakları saklıdır
Bu yazılımın ve ilişkili dokümantasyon dosyalarının ("Yazılım") bir kopyasını edinen herhangi bir kişiye, Yazılım'ı kısıtlama olmaksızın kullanma, kopyalama, değiştirme, birleştirme, yayımlama, dağıtma, alt lisans verme ve/veya Yazılım'ın kopyalarını satma hakları dahil olmak üzere, Yazılım ile ilgilenme izni ücretsiz olarak verilir ve bu kişilere Yazılım'ın sağlandığı kişilere bu hakları vermesine izin verilir, aşağıdaki koşullara tabi olarak:
Yukarıdaki telif hakkı bildirimi ve bu izin bildirimi, Yazılım'ın tüm kopyalarına veya önemli bölümlerine dahil edilmelidir.
YAZILIM "OLDUĞU GİBİ" SAĞLANMAKTADIR, HERHANGİ BİR TÜRDE GARANTİ VERİLMEMEKTEDİR, AÇIK VEYA ZIMNİ OLARAK, PAZARLANABİLİRLİK, BELİRLİ BİR AMACA UYGUNLUK VE İHLAL ETMEME GARANTİLERİ DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE. HİÇBİR DURUMDA YAZARLAR VEYA TELİF HAKKI SAHİPLERİ, SÖZLEŞME, HAKSIZ FİİL VEYA BAŞKA BİR ŞEKİLDE, YAZILIMDAN VEYA YAZILIMIN KULLANIMINDAN VEYA DİĞER İŞLEMLERDEN KAYNAKLANAN HERHANGİ BİR TALEP, ZARAR VEYA DİĞER YÜKÜMLÜLÜKLERDEN SORUMLU OLMAYACAKTIR.