Defective Code Logo

Total Downloads Latest Stable Version Latest Stable Version

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>'
);

インストール

  1. まず、composer.json ファイルに以下を追加してください。これにより、当パッケージがインストールされる際に正しいバイナリがオペレーティングシステムから取得されます。バイナリは、installupdate、または 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
  2. 次に、以下の composer コマンドを実行して PHP パッケージをインストールします。

    composer require defectivecode/mjml
  3. 以上です!Laravel を使用している場合、当パッケージは自動的に Laravel のパッケージディスカバリを使用してインストールされます。

使用方法(Laravelを使用しない場合)

Laravelを使用している場合は、下記のLaravelの使用方法を参照してください。

MJMLのレンダリング

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を検証するには、単純に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>'
);

使用方法(Laravelと共に)

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を検証するには、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パッケージと同じ設定に従いますが、以下の点が異なります。

フォント

当パッケージは、デフォルトで次のフォントを使用します。

次のメソッドを使用してフォントを変更できます。

コメント

コメントはデフォルトで保持されます。コメントを削除する場合は、removeComments()メソッドを使用できます。

removeComments()を元に戻すには、keepComments()メソッドを呼び出すこともできます。

インクルードの無視

デフォルトでは、当パッケージはmj-includeタグを含めます。この動作を調整するには、ignoreIncludes(bool $ignore)メソッドを呼び出します。

美しさ

当パッケージは、デフォルトでjs-beautifyを使用してHTMLを美しくします。デフォルトのオプションは次のとおりです。

js-beautifyはオプションを提供するためにsnake_caseを使用しますが、当パッケージではキャメルケースを使用する必要があります。この選択は、当パッケージを他の設定オプションと一貫させるために行いました。当パッケージは、キャメルケースのオプションを自動的にsnake_caseに変換します。

これらのオプションのいずれかを上書きするには、有効なjs-beautify構成を提供する次のメソッドを使用します。

最小化

当パッケージは、デフォルトでhtml-minifier-terserを使用してHTMLを最小化します。デフォルトのオプションは次のとおりです。

これらのオプションのいずれかを上書きするには、有効なhtml-minifier-terser構成を提供する次のメソッドを使用します。

検証レベル

当パッケージは、デフォルトでsoft検証レベルを使用してMJMLを検証します。これを変更するには、validationLevel(ValidationLevel $validationLevel)メソッドを使用します。次の検証レベルが使用できます。

ファイルパス

当パッケージは、デフォルトで.ディレクトリを使用します。これを変更するには、filePath(string $path)メソッドを呼び出します。

Juice

デフォルトでは、juiceオプションは提供されません。次のメソッドを使用してjuiceオプションを追加できます。

サポートガイドライン

当社のオープンソースパッケージを選んでいただきありがとうございます!サポートガイドラインをご確認いただき、プロジェクトを最大限に活用していただけるようお願いいたします。

コミュニティによるサポート

当社のオープンソースプロジェクトは、素晴らしいコミュニティに支えられています。質問やサポートが必要な場合は、StackOverflowやその他のオンラインリソースが最適です。

バグと機能の優先順位

オープンソースプロジェクトを管理する現実的な問題により、すべての報告されたバグや機能リクエストにすぐに対応することはできません。以下の順序で問題を優先します。

1. 有料製品に影響を与えるバグ

有料製品に影響を与えるバグは常に最優先です。一部の場合、直接に影響を与えるバグのみを対応することがあります。

2. コミュニティによるプルリクエスト

バグを特定し、解決策を持っている場合は、プルリクエストを提出してください。製品に影響を与える問題に続いて、これらのコミュニティによる修正に次の最高の優先順位を与えます。レビューおよび承認後、解決策をマージし、貢献者としてクレジットします。

3. 財務的なサポート

上記のカテゴリに該当しない問題については、解決策の資金提供を選択することができます。各オープンな問題は、資金提供が行われた金額に基づいて優先順位付けされます。

コミュニティの貢献

オープンソースは、コミュニティが活発であるときに発展します。バグ修正を行わなくても、コードの改善、ドキュメントの更新、チュートリアルの作成、またはコミュニティチャンネルで他の人をサポートすることによって貢献することを検討してください。私たちは、コミュニティ全体としてオープンソースの取り組みをサポートすることを強くお勧めします。

再度強調しますが、DefectiveCodeは、有料製品にどのように影響するかに基づいてバグの優先順位を付け、コミュニティによるプルリクエスト、および問題に対する財務的なサポートを受けます。

ライセンス - MITライセンス

著作権© Defective Code, LLC. All rights reserved

このソフトウェアおよび関連するドキュメントファイル(以下、「ソフトウェア」という)の複製を入手するすべての人に対して、以下の条件に従って、ソフトウェアを制限なく取り扱うことを許可します。

上記の著作権表示およびこの許諾表示は、ソフトウェアのすべての複製または重要な部分に含まれるものとします。

ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定目的への適合性、および非侵害についての保証を含め、いかなる種類の保証もなしに提供されます。著作権者または著作権の保持者は、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく、請求、損害、またはその他の責任について、契約、不法行為、またはその他の行為に基づく

MJML - Defective Code