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実装は、公式のMJML APIのラッパーとして機能します。これにより、NodeJSを必要とせずに、PHP内で直接MJMLをHTMLにコンパイルすることができます。このパッケージは、NodeJSとMJML CLIをインストールする手間をかけずにMJMLを組み込みたいPHPアプリケーションに最適です。
// 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>'); // Laravelを使用する場合MJML::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 |
次に、以下のcomposerコマンドを実行してPHPパッケージをインストールします:
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文字列をMJMLファサードのrender
メソッドに渡します:
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文字列をMJMLファサードのisValid
メソッドに渡します:
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"
これにより、config
フォルダにmjml.php
設定ファイルが作成されます。設定ファイルに記載されているすべてのオプションは、MJMLファサードを使用する際にconfig
オブジェクトに渡されます。
すべての設定オプションは、以下のメソッドを直接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
を使用しているのに対し、私たちはhtml-minifier-terser
を使用しています。html-minifier
はもはやメンテナンスされておらず、いくつかのセキュリティ問題があるため、プロセッサを変更しました。私たちのパッケージはデフォルトで以下のフォントを使用します:
以下のメソッドを使用してフォントを変更できます:
addFont(string $font, string $url)
- フォントをフォントリストに追加します。removeFont(string$font)
- フォントをフォントリストから削除します。setFonts(array $fonts)
- フォントリストを設定します。この形式でフォントの配列を提供する必要があります:['font-name' => 'font-url']
。コメントはデフォルトで保持されます。コメントを削除したい場合は、removeComments()
メソッドを使用してください。
removeComments()
を元に戻すには、keepComments()
メソッドを呼び出します。
デフォルトでは、私たちのパッケージはすべてのmj-include
タグを含めます。この動作を調整するには、ignoreIncludes(bool $ignore)
メソッドを呼び出します。
私たちのパッケージは、以下のデフォルトオプションでjs-beautify
を使用してHTMLをビューティファイします:
js-beautify
はオプションを提供する際にスネークケースを使用しますが、私たちのパッケージを使用する際にはキャメルケースを使用する必要があります。これは、他の設定オプションと一貫性を保つための選択です。私たちのパッケージはキャメルケースのオプションを自動的にスネークケースに変換します。
以下のメソッドを使用して、これらのオプションを上書きできます:
setBeautifyOptions(array $options)
- js-beautify
のオプションを設定します。addBeautifyOption(string $option, mixed $value)
- js-beautify
のオプションを追加します。removeBeautifyOption(string $option)
- js-beautify
のオプションを削除します。私たちのパッケージは、以下のデフォルトオプションでhtml-minifier-terser
を使用してHTMLをミニファイします:
以下のメソッドを使用して、これらのオプションを上書きできます:
setMinifyOptions(array $options)
- html-minifier-terser
のオプションを設定します。addMinifyOption(string $option, mixed $value)
- html-minifier-terser
のオプションを追加します。removeMinifyOption(string $option)
- html-minifier-terser
のオプションを削除します。私たちのパッケージはデフォルトでsoft
検証レベルを使用してMJMLを検証します。これを変更するには、validationLevel(ValidationLevel $validationLevel)
メソッドを使用します。以下の検証レベルが利用可能です:
strict
- ドキュメントは検証を通過し、エラーがある場合はレンダリングされませんsoft
- ドキュメントは検証を通過し、エラーがあってもレンダリングされますskip
- ドキュメントは検証を通過せずにレンダリングされます。私たちのパッケージはデフォルトで.
ディレクトリを使用します。これを変更するには、filePath(string $path)
メソッドを呼び出します。
デフォルトでは、juiceオプションは提供していません。以下のメソッドを使用してジュースオプションを追加できます:
setJuiceOptions(array $options)
- ジュースオプションを設定します。addJuiceOption(string $option, mixed $value)
- ジュースオプションを追加します。removeJuiceOption(string $option)
- ジュースオプションを削除します。setJuicePreserveTags(array $tags)
- ジュース保存タグを設定します。addJuicePreserveTag(string $tag, mixed $value)
- ジュース保存タグを追加します。removeJuicePreserveTag(string $tag)
- ジュース保存タグを削除します。# サポートガイドライン オープンソースパッケージを選んでいただきありがとうございます!このサポートガイドラインを一読いただければ、プロジェクトを最大限に活用するのに役立ちます。 ## コミュニティ主導のサポート 私たちのオープンソースプロジェクトは素晴らしいコミュニティによって支えられています。質問や支援が必要な場合は、StackOverflowやその他のオンラインリソースが最適です。 ## バグと機能の優先順位付け オープンソースプロジェクトを管理する現実として、報告されたすべてのバグや機能リクエストに即座に対応することはできません。以下の順序で問題を優先します: ### 1. 有料製品に影響を与えるバグ 有料製品に影響を与えるバグは常に最優先事項です。場合によっては、私たちに直接影響を与えるバグのみを修正することがあります。 ### 2. コミュニティのプルリクエスト バグを特定し、解決策を見つけた場合は、プルリクエストを提出してください。私たちの製品に影響を与える問題の次に、これらのコミュニティ主導の修正に最優先で対応します。レビューと承認が完了次第、あなたの解決策をマージし、貢献をクレジットします。 ### 3. 金銭的サポート 上記のカテゴリに該当しない問題については、その解決に資金を提供することができます。各オープンイシューには注文フォームがリンクされており、金銭的に貢献することができます。提供された資金額に基づいてこれらの問題を優先します。 ### コミュニティの貢献 オープンソースはコミュニティが活発であるときに繁栄します。バグを修正しなくても、コードの改善、ドキュメントの更新、チュートリアルの作成、またはコミュニティチャネルで他の人を支援することで貢献を検討してください。オープンソースの作業をサポートするために、コミュニティ全体としての貢献を強く奨励します。 _繰り返しになりますが、DefectiveCodeは有料製品に影響を与えるバグ、コミュニティのプルリクエスト、および問題に対する金銭的サポートに基づいてバグを優先します。_
# ライセンス - MITライセンス Copyright © Defective Code, LLC. All rights reserved 本ソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対し、無償で、以下の条件に従い、ソフトウェアを制限なく使用、コピー、改変、統合、公開、配布、サブライセンス、および/または販売する権利を許可します。また、ソフトウェアが提供された人々にこれを行うことを許可します。 **上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。** ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定の目的への適合性、および非侵害についての保証を含むがこれに限定されない、いかなる種類の保証もありません。著者または著作権者は、契約行為、不法行為、またはその他の行為に起因または関連して生じるいかなる請求、損害、またはその他の責任についても責任を負いません。