Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Laravel 5.4 wrongly mix HTML components in Markdown Mailable

I had ordinary Mailable that had some hardcoded content.

I've published mailable views, changed content to markdown and replaced ->view with ->markdown.

Now mail have nicely formated markdown.

However Laravel after compiling that markdown will pick HTML component definitions, for reasons I can not phantom. And that after it used Markdown version for message, so it's mixing both kinds in a single Mailable markdown view!

I've tried:

  • php artisan cache:clear
  • php artisan view:clear
  • adding markdown to html components - wont work, Laravel use them past markdown compilation step
  • changing ->markdown to ->markdown - yes it will give error about unexisting method

Using: PHP 7.0, Laravel 5.4.28

Q: Is there any Laravel global setting that would override ->markdown call? Any other ideas what may be wrong?

like image 708
przemo_li Avatar asked Aug 22 '17 23:08

przemo_li


1 Answers

Re reading the docs:

Markdown mailables support Blade templates. Blade support only ordinary html and blade syntax.

Individual components can use markdown compilers to parse some or all inputs. That's how @component('mail::table') works.

Update: Markdown versions are used to generate plain text mails. Where as blade templates are used to generate html versions. Again, markdown can be compiled explicitly in blade templates, but that's the extend of it's support.

like image 129
przemo_li Avatar answered Oct 09 '22 19:10

przemo_li