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のインストールやMJML CLIの手間をかけずに、MJMLをHTMLに便利にコンパイルすることができます。
// 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を使用してHTMLを最小化MJML::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 バイナリは、composer のインストールまたはアップデート時に当パッケージの "bin" フォルダに CDN から取得され、保存されます。ローカル環境と本番環境の両方で必要なバイナリがロードされていることを確認してください。
デフォルトでは、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ファサードの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"
これにより、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-minifer
がメンテナンスされていないため、いくつかのセキュリティ上の問題があるため、プロセッサを切り替えることにしました。当パッケージは、デフォルトで次のフォントを使用します。
次のメソッドを使用してフォントを変更できます。
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
はオプションを提供するためにsnake_caseを使用しますが、当パッケージではキャメルケースを使用する必要があります。この選択は、当パッケージを他の設定オプションと一貫させるために行いました。当パッケージは、キャメルケースのオプションを自動的にsnake_caseに変換します。
これらのオプションのいずれかを上書きするには、有効なjs-beautify
構成を提供する次のメソッドを使用します。
setBeautifyOptions(array $options)
- js-beautify
オプションを設定します。addBeautifyOption(string $option, mixed $value)
- js-beautify
オプションを追加します。removeBeautifyOption(string $option)
- js-beautify
オプションを削除します。当パッケージは、デフォルトでhtml-minifier-terser
を使用してHTMLを最小化します。デフォルトのオプションは次のとおりです。
これらのオプションのいずれかを上書きするには、有効なhtml-minifier-terser
構成を提供する次のメソッドを使用します。
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オプションは提供されません。次のメソッドを使用して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. All rights reserved
このソフトウェアおよび関連するドキュメントファイル(以下、「ソフトウェア」という)の複製を入手するすべての人に対して、以下の条件に従って、ソフトウェアを制限なく取り扱うことを許可します。
上記の著作権表示およびこの許諾表示は、ソフトウェアのすべての複製または重要な部分に含まれるものとします。
ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害についての保証を含め、いかなる種類の保証もなしに提供されます。著作権者または著作権の保持者は、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく