Personalizar Markdown
Comprar curso

199. Personalizar Markdown

Descubre cómo personalizar el motor de plantillas Markdown en Laravel. Ajusta tus correos electrónicos a tus necesidades y mejora la calidad de tu comunicación.


3 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 1 año Destacado

    El motor de plantillas Markdown en Laravel es una herramienta poderosa que te permite dar formato a tus correos electrónicos de manera rápida y sencilla. Sin embargo, puede que desees personalizar aún más el motor de plantillas Markdown para ajustar tus correos electrónicos a tus necesidades específicas y mejorar la calidad de tu comunicación con tus clientes. En este artículo, te mostraremos cómo personalizar el motor de plantillas Markdown en Laravel.

    Lo primero que debes hacer es crear una clase personalizada que implemente la interfaz MarkdownInterface de Laravel. Esta interfaz tiene un solo método, toHtml, que se utiliza para convertir el texto de Markdown en HTML. Para crear la clase personalizada, puedes utilizar el siguiente código:

    use Illuminate\Mail\MarkdownInterface;
    use League\CommonMark\CommonMarkConverter;
    class CustomMarkdown implements MarkdownInterface
    {
       protected $converter;
       public function __construct(CommonMarkConverter $converter)
       {
           $this->converter = $converter;
       }
       public function toHtml($markdown)
       {
           return $this->converter->convertToHtml($markdown);
       }
    }

    En este ejemplo, estamos utilizando la biblioteca CommonMark para convertir el texto de Markdown en HTML. Estamos pasando una instancia de CommonMarkConverter al constructor de la clase CustomMarkdown, lo que nos permite personalizar la forma en que se convierte el Markdown en HTML.

    Una vez que hayas creado la clase personalizada, debes registrarla en tu aplicación Laravel. Para hacerlo, debes agregar el siguiente código al método register en tu archivo AppServiceProvider:

    use Illuminate\Mail\Markdown;
    public function register()
    {
       $this->app->singleton(Markdown::class, function ($app) {
           return new Markdown(new CustomMarkdown(new CommonMarkConverter()));
       });
    }

    En este ejemplo, estamos registrando la clase CustomMarkdown como la implementación personalizada de la interfaz MarkdownInterface. Estamos utilizando el método singleton de la clase App de Laravel para asegurarnos de que solo se cree una instancia de la clase personalizada en toda la aplicación.

    Una vez que hayas registrado la clase personalizada, puedes utilizarla en tus correos electrónicos. Para hacerlo, simplemente debes utilizar la clase Mail de Laravel para enviar el correo electrónico y pasar la vista del correo electrónico como un objeto de la clase Mailable. Por ejemplo, si tienes una vista de correo electrónico llamada bienvenida.blade.php, puedes enviar el correo electrónico utilizando el siguiente código:

    use App\Mail\Bienvenida;
    use Illuminate\Support\Facades\Mail;
    Mail::to($user->email)->send(new Bienvenida($user));

    En este ejemplo, estamos utilizando la clase Mail de Laravel para enviar el correo electrónico y pasando la vista del correo electrónico bienvenida.blade.php como un objeto de la clase Bienvenida.

    En resumen, personalizar el motor de plantillas Markdown en Laravel es una forma poderosa de ajustar tus correos electrónicos a tus necesidades específicas y mejorar la calidad de tu comunicación con tus clientes. Al crear una clase personalizada que implemente la interfaz MarkdownInterface de Laravel y registrarla en tu aplicación Laravel, puedes utilizar tu propia implementación de Markdown en tus correos electrónicos y personalizar completamente la forma en que se formatea el texto de Markdown en HTML.

  • José Daniel Mejias

    José Daniel Mejias hace 1 año

    hola victor estoy intentando pasar una imagen como logo ubicada en la carpeta public/assets/images pero no importa como la importo no me llega al correo no se si me puedas ayudar <img src={{ asset('assets/images/LOGO_AYUNTAMIENTO_COLOR.png') }} class="logo" alt="Ayuntamiento de dos hermanas">

     

    • Victor Arana Flores hace 1 año

      Hola Jose, debes tener en consideracion que cuando usas el helper asset, este te crea una url a partir del proyecto que estas usando.

      Si te encuentras en local, te generaría una url similar a este: prueba.test/imagen.png

      y es una url a la que mailtrap no podrá ingresar y por tanto mostrar. Te recomiendo que mientras estes en local puedas usar una imagen cualquiera, y ya en producción si pones la imagen que quieres.

    • José Daniel Mejias hace 1 año

      entiendo muchas gracias 

  • Ing. Alexander Barajas

    Ing. Alexander Barajas hace 1 año

    Victor buen día, tus cursos son buenos pero dedicas mucho tiempo a maquetar, perdiendose el objetivo de la clase. Te sugiero que inviertas mas el tiempo en mostrar temas de markdown no de css.