English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Dieses Dokument wurde automatisch übersetzt. Wenn es Übersetzungsfehler gibt, öffnen Sie bitte
einen Pull Request auf dem
Projekt und fügen Sie die übersetzte Datei zu docs/{ISO 639-1 Code}.md
hinzu.
MJML ist eine Auszeichnungssprache, die speziell entwickelt wurde, um den Prozess des Codierens von responsiven E-Mails zu vereinfachen. Die semantische Syntax gewährleistet Benutzerfreundlichkeit und Einfachheit, während die umfangreiche Bibliothek mit Standardkomponenten die Entwicklung beschleunigt und die Komplexität des E-Mail-Codebases reduziert. Der Open-Source-Engine von MJML generiert hochwertiges, responsives HTML, das bewährten Praktiken 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 eine bequeme Kompilierung von MJML in HTML direkt in PHP, ohne die Notwendigkeit von NodeJS. Dieses Paket eignet sich 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>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'); // Minimiertes HTML(new MJML)->minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'); // Mit LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>'); // Mit Laravel und minimiertem HTMLMJML::minify()->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>');
Fügen Sie zunächst Folgendes zu Ihrer composer.json
-Datei hinzu, um unserem Paket Anweisungen zum Herunterladen der richtigen Binärdateien für Ihr Betriebssystem zu geben, wenn unser Paket installiert wird. Die Binärdateien werden heruntergeladen, nachdem Sie install
, update
oder dump-autoload
ausgeführt haben.
{ "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 erforderlichen Binärdateien sowohl für Ihre lokale als auch für Ihre Produktionsumgebung geladen haben.
Standardmäßig werden mit all
alle Binärdateien abgerufen, die wir unterstützen. Wir empfehlen, dies auf die Betriebssysteme und Architektursysteme zu beschränken, die Sie benötigen, um Bandbreite und Installationszeiten zu sparen. Die folgenden Binärdateien stehen zur Verfügung.
Betriebssystem | Architektur | Composer-Befehl nach dem Update |
---|---|---|
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 anschließend 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 Paketerkennung von Laravel installiert.
Wenn Sie Laravel verwenden, sehen Sie sich die Verwendung mit Laravel unten an.
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>Hallo Welt</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>Hallo Welt</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>Hallo Welt</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>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>');
Sie können die Konfigurationsdatei mit folgendem Befehl veröffentlichen:
php artisan vendor:publish --provider="DefectiveCode\MJML\MJMLServiceProvider"
Dadurch wird eine mjml.php
-Konfigurationsdatei in Ihrem config
-Ordner erstellt. Alle in der Konfigurationsdatei aufgeführten Optionen werden dem config
-Objekt übergeben, wenn Sie die MJML-Fassade verwenden.
Alle Konfigurationsoptionen können direkt auf dem MJML-Objekt aufgerufen werden.
use DefectiveCode\MJML; $html = (new MJML) ->setMinify(true) ->setBeautify(false) ->render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hallo Welt</mj-text></mj-column></mj-section></mj-body></mjml>' );
Unser Paket folgt der gleichen Konfiguration wie das offizielle MJML-Paket, mit Ausnahme der folgenden Punkte:
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
für die Minifizierung verwendet. Wir haben uns entschieden, den Prozessor zu wechseln, da html-minifer
nicht mehr gewartet wird und mit einigen Sicherheitsproblemen verbunden ist.Unser Paket verwendet standardmäßig die folgenden Schriftarten:
Sie können die Schriftarten ändern, indem Sie die folgenden Methoden verwenden:
addFont(string $font, string $url)
- Fügen Sie eine Schriftart zur Liste der Schriftarten hinzu.removeFont(string$font)
- Entfernen Sie eine Schriftart aus der Liste der Schriftarten.setFonts(array $fonts)
- Legen Sie die Liste der Schriftarten fest. Sie sollten ein Array von Schriftarten in diesem Format bereitstellen: ['schriftart-name' => 'schriftart-url']
.Kommentare werden standardmäßig beibehalten. Wenn Sie Kommentare entfernen möchten, können Sie die Methode removeComments()
verwenden.
Sie können die removeComments()
auch durch Aufrufen der Methode keepComments()
rückgängig machen.
Standardmäßig werden in unserem Paket alle mj-include
-Tags eingefügt. Sie können dieses Verhalten anpassen, indem Sie die Methode ignoreIncludes(bool $ignore)
aufrufen.
Unser Paket verschönert den HTML-Code standardmäßig mit js-beautify
und den folgenden Standardoptionen:
Während
js-beautify
snake_case verwendet, um Optionen anzugeben, sollten Sie camelCase verwenden, wenn Sie unser Paket verwenden. Wir haben diese Entscheidung getroffen, um unser Paket konsistent mit den anderen Konfigurationsoptionen zu halten. Unser Paket konvertiert automatisch die camelCase-Optionen in snake_case.
Sie können eine der Optionen überschreiben, indem Sie eine gültige js-beautify
-Konfiguration mit den folgenden Methoden bereitstellen:
setBeautifyOptions(array $options)
- Setzen Sie 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 minifiziert den HTML-Code standardmäßig mit html-minifier-terser
und den folgenden Standardoptionen:
Sie können eine der Optionen überschreiben, indem Sie eine gültige html-minifier-terser
-Konfiguration mit den folgenden Methoden bereitstellen:
setMinifyOptions(array $options)
- Setzen Sie 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 validiert standardmäßig das MJML mit der Validierungsstufe soft
. 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 einen 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)
- Setzen Sie die Juice-Optionen.addJuiceOption(string $option, mixed $value)
- Fügt eine Juice-Option hinzu.removeJuiceOption(string $option)
- Entfernt eine Juice-Option.setJuicePreserveTags(array $tags)
- Setzen Sie die Juice-Preserve-Tags.addJuicePreserveTag(string $tag, mixed $value)
- Fügt ein Juice-Preserve-Tag hinzu.removeJuicePreserveTag(string $tag)
- Entfernt ein Juice-Preserve-Tag.Vielen Dank, dass Sie sich für unser Open-Source-Paket entschieden haben! Bitte nehmen Sie sich einen Moment Zeit, um diese Support-Richtlinien 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 folgender Reihenfolge:
Fehler, die sich auf unsere kostenpflichtigen Produkte auswirken, haben immer oberste Priorität. In einigen Fällen werden wir möglicherweise nur Fehler beheben, die uns direkt betreffen.
Wenn Sie einen Fehler identifiziert haben und eine Lösung haben, reichen Sie bitte einen Pull-Antrag ein. Nach Problemen, die unsere Produkte betreffen, geben wir den nächsten höchsten Stellenwert für diese von der Community getriebenen Fixes. Nach Ü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 sich dafür entscheiden, ihre Lösung finanziell zu 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 Betrag.
Open Source gedeiht, wenn seine Community aktiv ist. Auch wenn Sie keine Fehler beheben, sollten Sie in Betracht ziehen, durch Code-Verbesserungen, Aktualisierungen der Dokumentation, Tutorials oder durch Unterstützung anderer in Community-Kanälen beizutragen. Wir ermutigen alle, als Community, die Open-Source-Arbeit zu unterstützen.
Zur Klarstellung: DefectiveCode priorisiert Fehler basierend darauf, wie sie sich auf unsere kostenpflichtigen Produkte auswirken, Community-Pull-Anfragen und die finanzielle Unterstützung, die für Probleme erhalten wird.
Urheberrecht © Defective Code, LLC. Alle Rechte vorbehalten
Hiermit wird unentgeltlich jeder Person, die eine Kopie der Software und der zugehörigen Dokumentationsdateien (die "Software") erhält, die Erlaubnis erteilt, die Software uneingeschränkt zu nutzen, einschließlich und ohne Einschränkung der Rechte zur Verwendung, zum Kopieren, zur Änderung, zum Zusammenführen, zur Veröffentlichung, zur Verteilung, zur Unterlizenzierung und/oder zum Verkauf von Kopien der Software, und Personen, denen die Software bereitgestellt wird, dies unter den folgenden Bedingungen zu gestatten:
Der obige Urheberrechtsvermerk und dieser Genehmigungsvermerk sind in allen Kopien oder wesentlichen Teilen der Software enthalten.
DIE SOFTWARE WIRD "WIE SIE IST" ZUR VERFÜGUNG GESTELLT, OHNE JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNG, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE GEWÄHRLEISTUNG DER MARKTGÄNGIGKEIT, DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG. IN KEINEM FALL HAFTEN DIE AUTOREN ODER COPYRIGHT-INHABER FÜR ANSPRÜCHE, SCHÄDEN ODER ANDERE HAFTUNG, OB IN EINER VERTRAGS- ODER HAFTUNGSAKTION, DIE AUS ODER IN VERBINDUNG MIT DER SOFTWARE ODER DER VERWENDUNG ODER ANDEREN GESCHÄFTEN MIT DER SOFTWARE ENTSTEHT.