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>');
먼저, 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 |
다음으로, 다음 composer 명령어를 실행하여 PHP 패키지를 설치합니다:
composer require defectivecode/mjml
그게 다입니다! 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 문자열을 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 퍼사드의 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 패키지와 동일한 구성을 따릅니다. 다음을 제외한 경우:
preprocessors
- 이 옵션은 사용할 수 없습니다. 이 옵션을 추가하려면 풀 리퀘스트를 열어주세요.minifyOptions
- 우리는 공식 패키지가 minification에 html-minifier
를 사용하는 반면, 우리는 html-minifier-terser
를 사용합니다.
우리는 html-minifer
가 더 이상 유지되지 않으며 몇 가지 보안 문제가 있기 때문에 프로세서를 전환하기로 결정했습니다.우리의 패키지는 기본적으로 다음 폰트를 사용합니다:
다음 메서드를 사용하여 폰트를 변경할 수 있습니다:
addFont(string $font, string $url)
- 폰트를 폰트 목록에 추가합니다.removeFont(string$font)
- 폰트를 폰트 목록에서 제거합니다.setFonts(array $fonts)
- 폰트 목록을 설정합니다. 이 형식으로 폰트의 배열을 제공해야 합니다: ['font-name' => 'font-url']
.기본적으로 주석은 유지됩니다. 주석을 제거하려면 removeComments()
메서드를 사용할 수 있습니다.
removeComments()
를 호출하여 removeComments()
를 되돌릴 수도 있습니다.
기본적으로 우리의 패키지는 mj-include
태그를 포함합니다.
ignoreIncludes(bool $ignore)
메서드를 호출하여 이 동작을 조정할 수 있습니다.
우리의 패키지는 다음 기본 옵션을 사용하여 js-beautify
를 사용하여 HTML을 예쁘게 만듭니다:
js-beautify
는 옵션을 제공하기 위해 snake_case를 사용하지만, 패키지를 사용할 때는 camelCase를 사용해야 합니다. 이 선택은 패키지의 나머지 구성 옵션과 일관성을 유지하기 위해 한 것입니다. 패키지는 자동으로 camelCase 옵션을 snake_case로 변환합니다.
다음 메서드를 사용하여 이러한 옵션 중 하나를 재정의할 수 있습니다:
setBeautifyOptions(array $options)
- js-beautify
옵션을 설정합니다.addBeautifyOption(string $option, mixed $value)
- js-beautify
옵션을 추가합니다.removeBeautifyOption(string $option)
- js-beautify
옵션을 제거합니다.우리의 패키지는 다음 기본 옵션을 사용하여 html-minifier-terser
를 사용하여 HTML을 최소화합니다:
다음 메서드를 사용하여 이러한 옵션 중 하나를 재정의할 수 있습니다:
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 preserve 태그를 설정합니다.addJuicePreserveTag(string $tag, mixed $value)
- juice preserve 태그를 추가합니다.removeJuicePreserveTag(string $tag)
- juice preserve 태그를 제거합니다.저희 오픈 소스 패키지를 선택해 주셔서 감사합니다! 이 지원 가이드라인을 확인하시면 저희 프로젝트를 최대한 활용할 수 있습니다.
저희 오픈 소스 프로젝트는 멋진 커뮤니티에 의해 지원됩니다. 질문이나 도움이 필요한 경우, StackOverflow나 다른 온라인 자료들이 가장 좋은 선택입니다.
오픈 소스 프로젝트를 관리하는 현실적인 문제로 인해 모든 버그나 기능 요청에 즉시 대응할 수는 없습니다. 우리는 다음과 같은 우선순위로 문제를 처리합니다:
유료 제품에 영향을 주는 버그는 항상 최우선 순위입니다. 경우에 따라 저희에게 직접적인 영향을 주는 버그만 처리할 수도 있습니다.
버그를 발견하고 해결책을 가지고 있다면, Pull Request를 제출해 주세요. 제품에 영향을 주는 문제 이후로는 이러한 커뮤니티 기여에 다음으로 높은 우선순위를 부여합니다. 검토 및 승인 후에는 당신의 솔루션을 병합하고 기여를 인정해 드립니다.
위에서 언급한 범주 이외의 문제에 대해서는 해결을 위해 재정적인 지원을 선택할 수 있습니다. 각각의 오픈 이슈는 재정적인 기여를 할 수 있는 주문 양식과 연결되어 있습니다. 우리는 제공된 재정적인 기여 금액에 따라 이러한 문제에 우선순위를 부여합니다.
오픈 소스는 커뮤니티가 활발할 때 번영합니다. 버그를 수정하지 않더라도, 코드 개선, 문서 업데이트, 튜토리얼 작성 또는 커뮤니티 채널에서 다른 사람들을 도와주는 등의 기여를 고려해 보세요. 우리는 모두가 커뮤니티로서 오픈 소스 작업을 지원하는 것을 적극적으로 장려합니다.
다시 말씀드리지만, DefectiveCode는 유료 제품에 영향을 주는 버그, 커뮤니티 기여 Pull Request 및 문제에 대한 재정적인 지원을 기반으로 버그에 우선순위를 부여할 것입니다.
저작권 © Defective Code, LLC. All rights reserved
이 소프트웨어 및 관련 문서 (이하 "소프트웨어")의 사본을 획득하는 모든 사람에게 무료로 제공되며, 다음 조건에 따라 소프트웨어를 제한 없이 사용, 복사, 수정, 병합, 게시, 배포, 재실시권 및/또는 판매 사본을 허용하고 소프트웨어를 제공받은 사람들에게도 동일한 조건으로 허용합니다.
위의 저작권 고지와 이 허용 고지는 모든 사본 또는 중요한 부분에 포함되어야 합니다.
소프트웨어는 "있는 그대로" 제공되며, 상품성, 특정 목적에의 적합성 및 비침해성에 대한 어떠한 보증도 포함하지 않습니다. 저작권자 또는 저작권 보유자는 계약, 불법 행위 또는 기타 소프트웨어와 관련하여 발생하는 어떠한 청구, 손해 또는 기타 책임에 대해서도 책임지지 않습니다.