English | العربية | বাংলা | Bosanski | Deutsch | Español | Français | हिन्दी | Italiano | 日本語 | 한국어 | मराठी | Português | Русский | Kiswahili | தமிழ் | తెలుగు | Türkçe | اردو | Tiếng Việt | 中文
Этот документ был автоматически переведен. Если есть ошибки в переводе, пожалуйста, откройте
запрос на включение изменений в
проекте и добавьте переведенный файл в docs/{ISO 639-1 Code}.md
.
MJML - это язык разметки, специально разработанный для упрощения процесса создания отзывчивых электронных писем. Его семантический синтаксис обеспечивает простоту и легкость использования, а его обширная библиотека стандартных компонентов ускоряет разработку и упрощает кодирование электронной почты. Открытый исходный код движка MJML генерирует качественный и отзывчивый HTML, соответствующий лучшим практикам. Если вы столкнулись с проблемами при работе с Outlook, этот пакет создан специально для вас.
Наша реализация MJML служит оберткой для официального API MJML. Она позволяет удобно компилировать MJML в HTML непосредственно в PHP, без необходимости установки NodeJS. Этот пакет идеально подходит для PHP-приложений, которые хотят использовать MJML без неудобств установки NodeJS и MJML CLI.
// Без 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>'); // С LaravelMJML::render( '<mjml><mj-body><mj-section><mj-column><mj-text>Hello World</mj-text></mj-column></mj-section></mj-body></mjml>'); // С Laravel и сжатый HTMLMJML::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 |
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 |
Затем установите PHP-пакет, выполнив следующую команду composer:
composer require defectivecode/mjml
Вот и все! Если вы используете Laravel, наш пакет будет автоматически установлен с использованием механизма обнаружения пакетов Laravel.
См. ниже использование с Laravel, если вы используете Laravel.
Для рендеринга 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 в метод 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>');
Для рендеринга MJML просто передайте свою строку MJML в метод render
фасада MJML:
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 в метод isValid
фасада MJML:
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"
Это создаст файл конфигурации mjml.php
в вашей папке config
. Все параметры, перечисленные в файле конфигурации, передаются объекту config
, когда вы используете фасад MJML.
Все параметры конфигурации можно установить, вызвав соответствующие методы непосредственно в объекте 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, за исключением следующих:
preprocessors
- Этот параметр недоступен. Если вы хотите добавить этот параметр, пожалуйста, создайте запрос на добавление.minifyOptions
- Мы используем html-minifier-terser
, в то время как официальный пакет использует html-minifier
для минификации. Мы решили переключиться на html-minifier-terser
, потому что html-minifer
больше не поддерживается и имеет несколько проблем безопасности.Наш пакет по умолчанию использует следующие шрифты:
Вы можете изменить шрифты, используя следующие методы:
addFont(string $font, string $url)
- Добавить шрифт в список шрифтов.removeFont(string$font)
- Удалить шрифт из списка шрифтов.setFonts(array $fonts)
- Установить список шрифтов. Вы должны предоставить массив шрифтов в следующем формате: ['имя-шрифта' => 'url-шрифта']
.Комментарии сохраняются по умолчанию. Если вы хотите удалить комментарии, вы можете использовать метод removeComments()
.
Вы также можете отменить removeComments()
вызовом метода keepComments()
.
По умолчанию наш пакет будет включать любые теги mj-include
. Вы можете изменить это поведение, вызвав метод ignoreIncludes(bool $ignore)
.
Наш пакет будет форматировать HTML с использованием js-beautify
со следующими параметрами по умолчанию:
В то время как
js-beautify
использует snake_case для предоставления параметров, вы должны использовать camelCase при использовании нашего пакета. Мы сделали этот выбор, чтобы сделать наш пакет согласованным с остальными параметрами конфигурации. Наш пакет автоматически преобразует параметры camelCase в snake_case.
Вы можете переопределить любой из этих параметров, предоставив допустимую конфигурацию js-beautify
, используя следующие методы:
setBeautifyOptions(array $options)
- Установить параметры js-beautify
.addBeautifyOption(string $option, mixed $value)
- Добавить параметр js-beautify
.removeBeautifyOption(string $option)
- Удалить параметр js-beautify
.Наш пакет будет минифицировать HTML с использованием html-minifier-terser
со следующими параметрами по умолчанию:
Вы можете переопределить любой из этих параметров, предоставив допустимую конфигурацию html-minifier-terser
, используя следующие методы:
setMinifyOptions(array $options)
- Установить параметры html-minifier-terser
.addMinifyOption(string $option, mixed $value)
- Добавить параметр html-minifier-terser
.removeMinifyOption(string $option)
- Удалить параметр html-minifier-terser
.Наш пакет будет проверять MJML с использованием уровня проверки soft
по умолчанию. Вы можете изменить это, используя метод validationLevel(ValidationLevel $validationLevel)
. Доступны следующие уровни проверки:
strict
- Ваш документ проходит проверку и не отображается, если в нем есть ошибкиsoft
- Ваш документ проходит проверку и отображается, даже если в нем есть ошибкиskip
- Ваш документ отображается без прохождения проверки.Наш пакет будет использовать каталог .
по умолчанию. Вы можете изменить это, вызвав метод filePath(string $path)
.
Мы не предоставляем никаких параметров juice по умолчанию. Вы можете добавить параметры juice, используя следующие методы:
setJuiceOptions(array $options)
- Установить параметры juice.addJuiceOption(string $option, mixed $value)
- Добавить параметр juice.removeJuiceOption(string $option)
- Удалить параметр juice.setJuicePreserveTags(array $tags)
- Установить теги сохранения juice.addJuicePreserveTag(string $tag, mixed $value)
- Добавить тег сохранения juice.removeJuicePreserveTag(string $tag)
- Удалить тег сохранения juice.Благодарим вас за выбор нашего пакета с открытым исходным кодом! Пожалуйста, ознакомьтесь с этими руководствами по поддержке. Они помогут вам получить максимальную отдачу от нашего проекта.
Наш проект с открытым исходным кодом развивается благодаря нашему потрясающему сообществу. Если у вас есть вопросы или вам нужна помощь, лучше всего обратиться к StackOverflow и другим онлайн-ресурсам.
Реальность управления проектом с открытым исходным кодом означает, что мы не можем сразу же решить каждую сообщенную ошибку или запрос на функцию. Мы устанавливаем приоритеты проблем в следующем порядке:
Ошибки, которые влияют на наши платные продукты, всегда будут нашим главным приоритетом. В некоторых случаях мы можем решать только те ошибки, которые непосредственно затрагивают нас.
Если вы обнаружили ошибку и у вас есть решение, пожалуйста, отправьте запрос на слияние. После проблем, влияющих на наши продукты, мы приоритетно рассматриваем эти исправления, предложенные сообществом. После проверки и утверждения мы объединим ваше решение и укажем ваш вклад.
Для проблем, не относящихся к упомянутым категориям, вы можете решить финансово поддержать их решение. Каждая открытая проблема связана с формой заказа, где вы можете внести свой вклад финансово. Мы устанавливаем приоритеты для этих проблем на основе предоставленной суммы финансирования.
Открытый исходный код процветает, когда его сообщество активно. Даже если вы не исправляете ошибки, рассмотрите возможность внести свой вклад через улучшение кода, обновление документации, создание учебных пособий или помощь другим в сообществе. Мы настоятельно призываем всех, как сообщество, помогать поддерживать работу с открытым исходным кодом.
Повторим, DefectiveCode будет устанавливать приоритеты для ошибок в зависимости от того, как они влияют на наши платные продукты, запросы на слияние от сообщества и финансовую поддержку, полученную для проблем.
Авторское право © Defective Code, LLC. Все права защищены.
Настоящим предоставляется разрешение бесплатно и безвозмездно любому лицу, получающему копию данного программного обеспечения и связанных с ним файлов документации (далее - "Программное обеспечение"), осуществлять с Программным обеспечением любые действия без ограничений, включая, помимо прочего, право использования, копирования, изменения, объединения, публикации, распространения, сублицензирования и/или продажи копий Программного обеспечения, а также лицам, которым Программное обеспечение предоставляется, - осуществлять такие действия, при условии соблюдения следующих условий:
Вышеуказанное уведомление об авторском праве и это разрешение должны быть включены во все копии или существенные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ "КАК ЕСТЬ", БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИИ ТОВАРНОГО СОСТОЯНИЯ И ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННОЙ ЦЕЛИ, А ТАКЖЕ ОТСУТСТВИЯ НАРУШЕНИЯ ПРАВ. В НИКАКОМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ЗА ЛЮБЫЕ ПРЕТЕНЗИИ, УБЫТКИ ИЛИ ДРУГУЮ ОТВЕТСТВЕННОСТЬ, ВОЗНИКАЮЩИЕ В РЕЗУЛЬТАТЕ ДЕЙСТВИЙ ПО ДОГОВОРУ, ПРАВОНАРУШЕНИЮ ИЛИ ИНАЧЕ, В СВЯЗИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ.