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 | 中文

# 번역 경고

이 문서는 자동으로 번역되었습니다. 번역 오류가 있는 경우 프로젝트의 pull request를 열고 번역된 파일을 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 파일에 다음을 추가하여 패키지가 설치될 때 운영 체제에 맞는 바이너리를 가져오도록 지시합니다. 바이너리는 install, update 또는 dump-autoload를 실행한 후 다운로드됩니다.

    {
    "post-autoload-dump": ["DefectiveCode\\MJML\\PullBinary::all"]
    }

    MJML 바이너리는 우리의 CDN에서 가져와서 composer의 설치 또는 업데이트 중에 이 패키지의 "bin" 폴더에 저장됩니다. 로컬 및 프로덕션 환경 모두에 필요한 바이너리가 로드되었는지 확인하십시오.

    기본적으로 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` 메서드에 전달하면 됩니다:
 
```php
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 객체에서 직접 다음 메서드를 호출하여 설정할 수 있습니다.
 
```php
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를 사용하지만, 우리 패키지를 사용할 때는 camelCase를 사용해야 합니다. 나머지 구성 옵션과 일관성을 유지하기 위해 이 선택을 했습니다. 우리 패키지는 camelCase 옵션을 자동으로 snake_case로 변환합니다.

다음 메서드를 사용하여 유효한 js-beautify 구성을 제공함으로써 이러한 옵션을 재정의할 수 있습니다:

최소화

우리 패키지는 다음 기본 옵션으로 html-minifier-terser를 사용하여 HTML을 최소화합니다:

다음 메서드를 사용하여 유효한 html-minifier-terser 구성을 제공함으로써 이러한 옵션을 재정의할 수 있습니다:

유효성 검사 수준

우리 패키지는 기본적으로 soft 유효성 검사 수준을 사용하여 MJML을 유효성 검사합니다. validationLevel(ValidationLevel $validationLevel) 메서드를 사용하여 이를 변경할 수 있습니다. 다음 유효성 검사 수준이 제공됩니다:

파일 경로

우리 패키지는 기본적으로 . 디렉토리를 사용합니다. filePath(string $path) 메서드를 호출하여 이를 변경할 수 있습니다.

주스

기본적으로 주스 옵션을 제공하지 않습니다. 다음 메서드를 사용하여 주스 옵션을 추가할 수 있습니다:

# 지원 지침
 
저희 오픈 소스 패키지를 선택해 주셔서 감사합니다! 이 지원 지침을 확인해 주시면 프로젝트를 최대한 활용하는 데 도움이 될 것입니다.
 
## 커뮤니티 주도 지원
 
저희 오픈 소스 프로젝트는 멋진 커뮤니티에 의해 운영됩니다. 질문이 있거나 도움이 필요하시면 StackOverflow 및 기타 온라인 리소스를 이용하는 것이 가장 좋습니다.
 
## 버그 및 기능 우선순위
 
오픈 소스 프로젝트를 관리하는 현실은 모든 보고된 버그나 기능 요청을 즉시 처리할 수 없다는 것입니다. 우리는 다음 순서로 문제를 우선시합니다:
 
### 1. 유료 제품에 영향을 미치는 버그
 
유료 제품에 영향을 미치는 버그는 항상 최우선 순위가 됩니다. 어떤 경우에는 저희에게 직접 영향을 미치는 버그만 처리할 수도 있습니다.
 
### 2. 커뮤니티 풀 리퀘스트
 
버그를 발견하고 해결책을 찾으셨다면 풀 리퀘스트를 제출해 주세요. 저희 제품에 영향을 미치는 문제 다음으로 이러한 커뮤니티 주도의 수정 사항에 높은 우선순위를 부여합니다. 검토 및 승인 후, 귀하의 해결책을 병합하고 기여를 인정하겠습니다.
 
### 3. 재정적 지원
 
언급된 카테고리 외의 문제에 대해서는 해결을 위해 자금을 지원할 수 있습니다. 각 오픈 이슈는 재정적 기여를 할 수 있는 주문 양식과 연결되어 있습니다. 우리는 제공된 자금의 양에 따라 이러한 문제를 우선시합니다.
 
### 커뮤니티 기여
 
오픈 소스는 커뮤니티가 활발할 때 번성합니다. 버그를 수정하지 않더라도 코드 개선, 문서 업데이트, 튜토리얼 작성 또는 커뮤니티 채널에서 다른 사람을 돕는 방식으로 기여하는 것을 고려해 보세요. 우리는 모든 사람이 커뮤니티로서 오픈 소스 작업을 지원하는 것을 적극 권장합니다.
 
_다시 말해, DefectiveCode는 유료 제품에 미치는 영향, 커뮤니티 풀 리퀘스트, 문제에 대한 재정적 지원을 기준으로 버그를 우선시할 것입니다._
# 라이선스 - MIT 라이선스
 
저작권 © Defective Code, LLC. 모든 권리 보유
 
본 소프트웨어 및 관련 문서 파일(이하 "소프트웨어")의 사본을 취득하는 모든 사람에게 사용, 복사, 수정, 병합, 출판, 배포, 서브라이선스 및/또는 소프트웨어의 사본을 판매할 권리를 포함하되 이에 국한되지 않고 소프트웨어를 제한 없이 다룰 수 있는 권한을 무료로 부여합니다. 또한 소프트웨어가 제공된 사람에게 다음 조건에 따라 이를 허용합니다:
 
**위의 저작권 고지 및 이 허가 고지는 소프트웨어의 모든 사본 또는 상당 부분에 포함되어야 합니다.**
 
본 소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해에 대한 보증을 포함하되 이에 국한되지 않고 명시적이거나 묵시적인 어떠한 종류의 보증도 제공되지 않습니다. 어떠한 경우에도 저자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 행위로 인해 발생하는 소프트웨어 또는 소프트웨어 사용 또는 기타 거래와 관련된 모든 청구, 손해 또는 기타 책임에 대해 책임을 지지 않습니다.
MJML - Defective Code