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を必要とせずに、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を使用し、最小化された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バイナリは、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
  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文字列を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文字列を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パッケージと同じ設定に従いますが、以下の点が異なります:

フォント

私たちのパッケージはデフォルトで以下のフォントを使用します:

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

コメント

コメントはデフォルトで保持されます。コメントを削除したい場合は、removeComments()メソッドを使用してください。

removeComments()を元に戻すには、keepComments()メソッドを呼び出します。

インクルードの無視

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

ビューティファイ

私たちのパッケージは、以下のデフォルトオプションでjs-beautifyを使用してHTMLをビューティファイします:

js-beautifyはオプションを提供する際にスネークケースを使用しますが、私たちのパッケージを使用する際にはキャメルケースを使用する必要があります。これは、他の設定オプションと一貫性を保つための選択です。私たちのパッケージはキャメルケースのオプションを自動的にスネークケースに変換します。

以下のメソッドを使用して、これらのオプションを上書きできます:

ミニファイ

私たちのパッケージは、以下のデフォルトオプションでhtml-minifier-terserを使用してHTMLをミニファイします:

以下のメソッドを使用して、これらのオプションを上書きできます:

検証レベル

私たちのパッケージはデフォルトでsoft検証レベルを使用してMJMLを検証します。これを変更するには、validationLevel(ValidationLevel $validationLevel)メソッドを使用します。以下の検証レベルが利用可能です:

ファイルパス

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

ジュース

デフォルトでは、juiceオプションは提供していません。以下のメソッドを使用してジュースオプションを追加できます:

# サポートガイドライン
 
オープンソースパッケージを選んでいただきありがとうございます!このサポートガイドラインを一読いただければ、プロジェクトを最大限に活用するのに役立ちます。
 
## コミュニティ主導のサポート
 
私たちのオープンソースプロジェクトは素晴らしいコミュニティによって支えられています。質問や支援が必要な場合は、StackOverflowやその他のオンラインリソースが最適です。
 
## バグと機能の優先順位付け
 
オープンソースプロジェクトを管理する現実として、報告されたすべてのバグや機能リクエストに即座に対応することはできません。以下の順序で問題を優先します:
 
### 1. 有料製品に影響を与えるバグ
 
有料製品に影響を与えるバグは常に最優先事項です。場合によっては、私たちに直接影響を与えるバグのみを修正することがあります。
 
### 2. コミュニティのプルリクエスト
 
バグを特定し、解決策を見つけた場合は、プルリクエストを提出してください。私たちの製品に影響を与える問題の次に、これらのコミュニティ主導の修正に最優先で対応します。レビューと承認が完了次第、あなたの解決策をマージし、貢献をクレジットします。
 
### 3. 金銭的サポート
 
上記のカテゴリに該当しない問題については、その解決に資金を提供することができます。各オープンイシューには注文フォームがリンクされており、金銭的に貢献することができます。提供された資金額に基づいてこれらの問題を優先します。
 
### コミュニティの貢献
 
オープンソースはコミュニティが活発であるときに繁栄します。バグを修正しなくても、コードの改善、ドキュメントの更新、チュートリアルの作成、またはコミュニティチャネルで他の人を支援することで貢献を検討してください。オープンソースの作業をサポートするために、コミュニティ全体としての貢献を強く奨励します。
 
_繰り返しになりますが、DefectiveCodeは有料製品に影響を与えるバグ、コミュニティのプルリクエスト、および問題に対する金銭的サポートに基づいてバグを優先します。_
# ライセンス - MITライセンス
 
Copyright © Defective Code, LLC. All rights reserved
 
本ソフトウェアおよび関連するドキュメントファイル(以下「ソフトウェア」)のコピーを取得したすべての人に対し、無償で、以下の条件に従い、ソフトウェアを制限なく使用、コピー、改変、統合、公開、配布、サブライセンス、および/または販売する権利を許可します。また、ソフトウェアが提供された人々にこれを行うことを許可します。
 
**上記の著作権表示およびこの許可表示は、ソフトウェアのすべてのコピーまたは重要な部分に含まれるものとします。**
 
ソフトウェアは「現状のまま」提供され、明示または黙示を問わず、商品性、特定の目的への適合性、および非侵害についての保証を含むがこれに限定されない、いかなる種類の保証もありません。著者または著作権者は、契約行為、不法行為、またはその他の行為に起因または関連して生じるいかなる請求、損害、またはその他の責任についても責任を負いません。
MJML - Defective Code