English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
# Übersetzungswarnung
Dieses Dokument wurde automatisch übersetzt. Wenn es Übersetzungsfehler gibt, öffnen Sie bitte
einen Pull Request im
Projekt und fügen Sie die übersetzte Datei zu docs/{ISO 639-1 Code}.md
hinzu.
MJML ist eine Markup-Sprache, die speziell entwickelt wurde, um den Prozess der Erstellung von responsiven E-Mails zu vereinfachen. Ihre semantische Syntax sorgt für Einfachheit und Übersichtlichkeit, während die umfangreiche Bibliothek von Standardkomponenten die Entwicklung beschleunigt und die Komplexität Ihres E-Mail-Codes reduziert. Die Open-Source-Engine von MJML generiert qualitativ hochwertiges, responsives HTML, das den Best Practices entspricht. Wenn Sie die Frustrationen bei der Arbeit mit Outlook erlebt haben, ist dieses Paket genau das Richtige für Sie.
Unsere MJML-Implementierung dient als Wrapper für die offizielle MJML-API. Sie ermöglicht die bequeme Kompilierung von MJML in HTML direkt innerhalb von PHP, ohne die Notwendigkeit von NodeJS. Dieses Paket ist ideal für PHP-Anwendungen, die MJML integrieren möchten, ohne den Aufwand der Installation von NodeJS und der MJML-CLI.
// Ohne Laravel(new MJML)->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Minifiziertes 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>'); // Mit LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // Mit Laravel und minifiziertem HTMLMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>');
Fügen Sie zunächst das Folgende zu Ihrer composer.json
Datei hinzu, um unser Paket anzuweisen, die richtigen Binärdateien für Ihr Betriebssystem zu ziehen, wenn unser Paket installiert wird. Die Binärdateien werden nach dem Ausführen von install
, update
oder dump-autoload
heruntergeladen.
{ "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]}
Die MJML-Binärdatei wird von unserem CDN bezogen und während der Installation oder Aktualisierung von Composer im "bin"-Ordner dieses Pakets gespeichert. Stellen Sie sicher, dass Sie die notwendigen Binärdateien sowohl für Ihre lokale als auch für Ihre Produktionsumgebung geladen haben.
Standardmäßig zieht all
alle von uns unterstützten Binärdateien. Wir empfehlen, dies auf die Betriebssysteme und Architekturen einzugrenzen, die Sie benötigen, um Bandbreite und Installationszeiten zu sparen. Die folgenden Binärdateien sind verfügbar.
Betriebssystem | Architektur | Composer Post Update Befehl |
---|---|---|
Alle | Alle | 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 |
Installieren Sie als Nächstes das PHP-Paket, indem Sie den folgenden Composer-Befehl ausführen:
composer require defectivecode/mjml
Das war's! Wenn Sie Laravel verwenden, wird unser Paket automatisch mit der Paketentdeckung von Laravel installiert.
Siehe die Verwendung mit Laravel unten, wenn Sie Laravel verwenden.
Um MJML zu rendern, übergeben Sie einfach Ihren MJML-String an die render
Methode:
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>');
Um MJML zu validieren, übergeben Sie einfach Ihren MJML-String an die isValid
Methode:
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>');
Um MJML zu rendern, übergeben Sie einfach Ihren MJML-String an die render
Methode der MJML-Fassade:
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>');
Um MJML zu validieren, übergeben Sie einfach Ihren MJML-String an die isValid
Methode der MJML-Fassade:
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>');
Sie können die Konfigurationsdatei mit dem folgenden Befehl veröffentlichen:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Dies erstellt eine mjml.php
Konfigurationsdatei in Ihrem config
Ordner. Alle in der Konfigurationsdatei aufgeführten Optionen werden an das config
Objekt übergeben, wenn Sie die MJML-Fassade verwenden.
Alle Konfigurationsoptionen können durch Aufrufen der folgenden Methoden direkt auf dem MJML-Objekt gesetzt werden.
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>' );
Unser Paket folgt der gleichen Konfiguration wie das offizielle MJML-Paket, außer den folgenden:
preprocessors
- Diese Option ist nicht verfügbar. Bitte öffnen Sie einen Pull-Request, wenn Sie diese Option hinzufügen möchten.minifyOptions
- Wir verwenden html-minifier-terser
, während das offizielle Paket html-minifier
zur Minifizierung verwendet. Wir haben uns entschieden, den Prozessor zu wechseln, da html-minifier
nicht mehr gepflegt wird und einige Sicherheitsprobleme damit verbunden sind.Unser Paket verwendet standardmäßig die folgenden Schriftarten:
Sie können die Schriftarten mit den folgenden Methoden ändern:
addFont(string $font, string $url)
- Fügt eine Schriftart zur Liste der Schriftarten hinzu.removeFont(string $font)
- Entfernt eine Schriftart aus der Liste der Schriftarten.setFonts(array $fonts)
- Setzt die Liste der Schriftarten. Sie sollten ein Array von Schriftarten in diesem Format angeben: ['font-name' => 'font-url']
.Kommentare werden standardmäßig beibehalten. Wenn Sie Kommentare entfernen möchten, können Sie die Methode removeComments()
verwenden.
Sie können die removeComments()
-Methode auch rückgängig machen, indem Sie die Methode keepComments()
aufrufen.
Standardmäßig wird unser Paket alle mj-include
-Tags einbeziehen. Sie können dieses Verhalten anpassen, indem Sie die Methode ignoreIncludes(bool $ignore)
aufrufen.
Unser Paket wird das HTML mit js-beautify
mit den folgenden Standardoptionen verschönern:
Während
js-beautify
snake_case zur Bereitstellung von Optionen verwendet, sollten Sie camelCase verwenden, wenn Sie unser Paket verwenden. Wir haben diese Wahl getroffen, um unser Paket konsistent mit den restlichen Konfigurationsoptionen zu halten. Unser Paket wird die camelCase-Optionen automatisch in snake_case umwandeln.
Sie können diese Optionen überschreiben, indem Sie eine gültige js-beautify
-Konfiguration mit den folgenden Methoden bereitstellen:
setBeautifyOptions(array $options)
- Setzt die js-beautify
-Optionen.addBeautifyOption(string $option, mixed $value)
- Fügt eine js-beautify
-Option hinzu.removeBeautifyOption(string $option)
- Entfernt eine js-beautify
-Option.Unser Paket wird das HTML mit html-minifier-terser
mit den folgenden Standardoptionen minifizieren:
Sie können diese Optionen überschreiben, indem Sie eine gültige html-minifier-terser
-Konfiguration mit den folgenden Methoden bereitstellen:
setMinifyOptions(array $options)
- Setzt die html-minifier-terser
-Optionen.addMinifyOption(string $option, mixed $value)
- Fügt eine html-minifier-terser
-Option hinzu.removeMinifyOption(string $option)
- Entfernt eine html-minifier-terser
-Option.Unser Paket wird das MJML standardmäßig mit der soft
-Validierungsstufe validieren. Sie können dies ändern, indem Sie die Methode validationLevel(ValidationLevel $validationLevel)
verwenden. Die folgenden Validierungsstufen sind verfügbar:
strict
- Ihr Dokument wird validiert und nicht gerendert, wenn es Fehler enthält.soft
- Ihr Dokument wird validiert und gerendert, auch wenn es Fehler enthält.skip
- Ihr Dokument wird ohne Validierung gerendert.Unser Paket verwendet standardmäßig das Verzeichnis .
. Sie können dies ändern, indem Sie die Methode filePath(string $path)
aufrufen.
Wir bieten standardmäßig keine Juice-Optionen an. Sie können Juice-Optionen hinzufügen, indem Sie die folgenden Methoden verwenden:
setJuiceOptions(array $options)
- Setzt die Juice-Optionen.addJuiceOption(string $option, mixed $value)
- Fügt eine Juice-Option hinzu.removeJuiceOption(string $option)
- Entfernt eine Juice-Option.setJuicePreserveTags(array $tags)
- Setzt die Juice-Preserve-Tags.addJuicePreserveTag(string $tag, mixed $value)
- Fügt ein Juice-Preserve-Tag hinzu.removeJuicePreserveTag(string $tag)
- Entfernt ein Juice-Preserve-Tag.Danke, dass Sie sich für unser Open-Source-Paket entschieden haben! Bitte nehmen Sie sich einen Moment Zeit, um diese Unterstützungsrichtlinien zu lesen. Sie helfen Ihnen, das Beste aus unserem Projekt herauszuholen.
Unser Open-Source-Projekt wird von unserer großartigen Community angetrieben. Wenn Sie Fragen haben oder Unterstützung benötigen, sind StackOverflow und andere Online-Ressourcen Ihre besten Anlaufstellen.
Die Realität der Verwaltung eines Open-Source-Projekts bedeutet, dass wir nicht jeden gemeldeten Fehler oder Feature-Anfrage sofort bearbeiten können. Wir priorisieren Probleme in der folgenden Reihenfolge:
Fehler, die unsere kostenpflichtigen Produkte betreffen, haben immer oberste Priorität. In einigen Fällen beheben wir möglicherweise nur Fehler, die uns direkt betreffen.
Wenn Sie einen Fehler identifiziert haben und eine Lösung haben, reichen Sie bitte einen Pull-Request ein. Nach den Problemen, die unsere Produkte betreffen, geben wir diesen Community-getriebenen Korrekturen die nächsthöhere Priorität. Nach der Überprüfung und Genehmigung werden wir Ihre Lösung zusammenführen und Ihren Beitrag anerkennen.
Für Probleme außerhalb der genannten Kategorien können Sie deren Lösung finanziell unterstützen. Jedes offene Problem ist mit einem Bestellformular verknüpft, über das Sie finanziell beitragen können. Wir priorisieren diese Probleme basierend auf dem bereitgestellten Finanzierungsbetrag.
Open Source gedeiht, wenn seine Community aktiv ist. Auch wenn Sie keine Fehler beheben, sollten Sie in Erwägung ziehen, durch Code-Verbesserungen, Dokumentationsaktualisierungen, Tutorials oder durch Unterstützung anderer in Community-Kanälen beizutragen. Wir ermutigen alle, als Gemeinschaft, die Open-Source-Arbeit zu unterstützen.
Um es noch einmal zu wiederholen: DefectiveCode wird Fehler basierend darauf priorisieren, wie sie unsere kostenpflichtigen Produkte betreffen, Community-Pull-Requests und die erhaltene finanzielle Unterstützung für Probleme.
Copyright © Defective Code, LLC. Alle Rechte vorbehalten
Hiermit wird unentgeltlich jeder Person, die eine Kopie dieser Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, die Erlaubnis erteilt, in der Software uneingeschränkt zu handeln, einschließlich und ohne Einschränkung der Rechte zur Nutzung, Kopie, Änderung, Zusammenführung, Veröffentlichung, Verteilung, Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software zur Verfügung gestellt wird, dies zu erlauben, vorbehaltlich der folgenden Bedingungen:
Der obige Urheberrechtshinweis und dieser Erlaubnishinweis müssen in allen Kopien oder wesentlichen Teilen der Software enthalten sein.
DIE SOFTWARE WIRD "WIE BESEHEN" BEREITGESTELLT, OHNE JEGLICHE GEWÄHRLEISTUNG, AUSDRÜCKLICH ODER IMPLIZIERT, EINSCHLIESSLICH ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT, EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND NICHTVERLETZUNG. IN KEINEM FALL SIND DIE AUTOREN ODER URHEBERRECHTSINHABER FÜR JEGLICHE ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNGEN VERANTWORTLICH, OB IN EINEM VERTRAG, EINER UNERLAUBTEN HANDLUNG ODER ANDERWEITIG, DIE AUS, AUS ODER IM ZUSAMMENHANG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN IN DER SOFTWARE ENTSTEHEN.