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를 사용하는 번거로움 없이 PHP 내에서 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 파일에 다음을 추가하여 패키지가 설치될 때 올바른 이진 파일을 가져오도록 지시합니다. 이진 파일은 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
  2. 다음으로, 다음 composer 명령어를 실행하여 PHP 패키지를 설치합니다:

    composer require defectivecode/mjml
  3. 그게 다입니다! 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>'
);

사용법 (라라벨과 함께)

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()를 호출하여 removeComments()를 되돌릴 수도 있습니다.

포함 무시

기본적으로 우리의 패키지는 mj-include 태그를 포함합니다. ignoreIncludes(bool $ignore) 메서드를 호출하여 이 동작을 조정할 수 있습니다.

Beautify

우리의 패키지는 다음 기본 옵션을 사용하여 js-beautify를 사용하여 HTML을 예쁘게 만듭니다:

js-beautify는 옵션을 제공하기 위해 snake_case를 사용하지만, 패키지를 사용할 때는 camelCase를 사용해야 합니다. 이 선택은 패키지의 나머지 구성 옵션과 일관성을 유지하기 위해 한 것입니다. 패키지는 자동으로 camelCase 옵션을 snake_case로 변환합니다.

다음 메서드를 사용하여 이러한 옵션 중 하나를 재정의할 수 있습니다:

Minify

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

다음 메서드를 사용하여 이러한 옵션 중 하나를 재정의할 수 있습니다:

유효성 검사 수준

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

파일 경로

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

Juice

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

지원 가이드라인

저희 오픈 소스 패키지를 선택해 주셔서 감사합니다! 이 지원 가이드라인을 확인하시면 저희 프로젝트를 최대한 활용할 수 있습니다.

커뮤니티 기반 지원

저희 오픈 소스 프로젝트는 멋진 커뮤니티에 의해 지원됩니다. 질문이나 도움이 필요한 경우, StackOverflow나 다른 온라인 자료들이 가장 좋은 선택입니다.

버그 및 기능 우선순위

오픈 소스 프로젝트를 관리하는 현실적인 문제로 인해 모든 버그나 기능 요청에 즉시 대응할 수는 없습니다. 우리는 다음과 같은 우선순위로 문제를 처리합니다:

1. 유료 제품에 영향을 주는 버그

유료 제품에 영향을 주는 버그는 항상 최우선 순위입니다. 경우에 따라 저희에게 직접적인 영향을 주는 버그만 처리할 수도 있습니다.

2. 커뮤니티 기여 Pull Request

버그를 발견하고 해결책을 가지고 있다면, Pull Request를 제출해 주세요. 제품에 영향을 주는 문제 이후로는 이러한 커뮤니티 기여에 다음으로 높은 우선순위를 부여합니다. 검토 및 승인 후에는 당신의 솔루션을 병합하고 기여를 인정해 드립니다.

3. 재정적 지원

위에서 언급한 범주 이외의 문제에 대해서는 해결을 위해 재정적인 지원을 선택할 수 있습니다. 각각의 오픈 이슈는 재정적인 기여를 할 수 있는 주문 양식과 연결되어 있습니다. 우리는 제공된 재정적인 기여 금액에 따라 이러한 문제에 우선순위를 부여합니다.

커뮤니티 기여

오픈 소스는 커뮤니티가 활발할 때 번영합니다. 버그를 수정하지 않더라도, 코드 개선, 문서 업데이트, 튜토리얼 작성 또는 커뮤니티 채널에서 다른 사람들을 도와주는 등의 기여를 고려해 보세요. 우리는 모두가 커뮤니티로서 오픈 소스 작업을 지원하는 것을 적극적으로 장려합니다.

다시 말씀드리지만, DefectiveCode는 유료 제품에 영향을 주는 버그, 커뮤니티 기여 Pull Request 및 문제에 대한 재정적인 지원을 기반으로 버그에 우선순위를 부여할 것입니다.

라이선스 - MIT 라이선스

저작권 © Defective Code, LLC. All rights reserved

이 소프트웨어 및 관련 문서 (이하 "소프트웨어")의 사본을 획득하는 모든 사람에게 무료로 제공되며, 다음 조건에 따라 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 재실시권 및/또는 판매 사본을 허용하고 소프트웨어를 제공받은 사람들에게도 동일한 조건으로 허용합니다.

위의 저작권 고지와 이 허용 고지는 모든 사본 또는 중요한 부분에 포함되어야 합니다.

소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해성에 대한 어떠한 보증도 포함하지 않습니다. 저작권자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 소프트웨어와 관련하여 발생하는 어떠한 청구, 손해 또는 기타 책임에 대해서도 책임지지 않습니다.

MJML - Defective Code