Кастомный редактор с опцией, такой как SourceEditing для версии Vue3

У меня есть задача, связанная с редактором для vue3. Мне нужно сделать пользовательский функционал, чтобы я мог скопировать html-код (шаблон) и вставить его в сам редактор. После этого контент рендерился в нем. Еще мне нужно, чтобы код, который я вставляю, не обрезал некоторые теги. Потому что уже в готовых редакторах для vue3 почему-то обрезает заголовок html тегов (DOCTYPE, Head, html) Подскажите, есть ли у кого готовый функционал для vue3, или как решить эту проблему. Благодарю вас! введите сюда описание изображения

Пример шаблона:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional //EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml">
<head>
    <!--[if gte mso 9]><xml><o:OfficeDocumentSettings><o:AllowPNG/><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml><![endif]-->
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/>
    <meta content="width=device-width" name="viewport"/>
    <!--[if !mso]><!-->
    <meta content="IE=edge" http-equiv="X-UA-Compatible"/>
    <!--<![endif]-->
    <title></title>
    <!--[if !mso]><!-->
    <link href="https://fonts.googleapis.com/css?family=Roboto" rel="stylesheet" type="text/css"/>
    <!--<![endif]-->
    <style type="text/css">
    body {
        margin: 0;
        padding: 0;
    }

    table, td, tr {
        vertical-align: top;
        border-collapse: collapse;
    }

    * {
        line-height: inherit;
    }

    a[x-apple-data-detectors=true] {
        color: inherit !important;
        text-decoration: none !important;
    }
    </style>
    <style id="media-query" type="text/css">
    @media (max-width: 500px) {
        .block-grid, .col {
            min-width: 320px !important;
            max-width: 100% !important;
            display: block !important;
        }

        .block-grid {
            width: 100% !important;
        }

        .col {
            width: 100% !important;
        }

        .col > div {
            margin: 0 auto;
        }

        img.fullwidth, img.fullwidthOnMobile {
            max-width: 100% !important;
        }

        .no-stack .col {
            min-width: 0 !important;
            display: table-cell !important;
        }

        .no-stack.two-up .col {
            width: 50% !important;
        }

        .no-stack .col.num4 {
            width: 33% !important;
        }

        .no-stack .col.num8 {
            width: 66% !important;
        }

        .no-stack .col.num4 {
            width: 33% !important;
        }

        .no-stack .col.num3 {
            width: 25% !important;
        }

        .no-stack .col.num6 {
            width: 50% !important;
        }

        .no-stack .col.num9 {
            width: 75% !important;
        }

        .video-block {
            max-width: none !important;
        }

        .mobile_hide {
            min-height: 0px;
            max-height: 0px;
            max-width: 0px;
            display: none;
            overflow: hidden;
            font-size: 0px;
        }

        .desktop_hide {
            display: block !important;
            max-height: none !important;
        }
    }
    </style>
</head>

<body class="clean-body" style="margin: 0; padding: 0; -webkit-text-size-adjust: 100%; background-color: #ffffff;">
    <!--[if IE]><div class="ie-browser"><![endif]-->
    <table bgcolor="#ffffff" cellpadding="0" cellspacing="0" class="nl-container" role="presentation" style="table-layout: fixed; vertical-align: top; min-width: 320px; Margin: 0 auto; border-spacing: 0; border-collapse: collapse; mso-table-lspace: 0pt; mso-table-rspace: 0pt; background-color: #ffffff; width: 100%;" valign="top" width="100%">
        <tbody>
            <tr style="vertical-align: top;" valign="top">
                <td style="word-break: break-word; vertical-align: top;" valign="top">
                    <!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" style="background-color:#ffffff"><![endif]-->
                    <div style="background-color:transparent;">
                        <div class="block-grid" style="Margin: 0 auto; min-width: 320px; max-width: 480px; overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; background-color: #f5f5f5;">
                            <div style="border-collapse: collapse;display: table;width: 100%;background-color:#f5f5f5;">
                                <!--[if (mso)|(IE)]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="background-color:transparent;"><tr><td align="center"><table cellpadding="0" cellspacing="0" border="0" style="width:480px"><tr class="layout-full-width" style="background-color:#f5f5f5"><![endif]-->
                                <!--[if (mso)|(IE)]><td align="center" width="480" style="background-color:#f5f5f5;width:480px; border-top: 0px solid transparent; border-left: 0px solid transparent; border-bottom: 0px solid transparent; border-right: 0px solid transparent;" valign="top"><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 0px; padding-left: 0px; padding-top:30px; padding-bottom:55px;"><![endif]-->
                                <div class="col num12" style="min-width: 320px; max-width: 480px; display: table-cell; vertical-align: top; width: 480px;">
                                    <div style="width:100% !important;">
                                        <!--[if (!mso)&(!IE)]><!-->
                                        <div style="border-top:0px solid transparent; border-left:0px solid transparent; border-bottom:0px solid transparent; border-right:0px solid transparent; padding-top:30px; padding-bottom:55px; padding-right: 0px; padding-left: 0px;">
                                            <!--<![endif]-->
                                            <div align="center" class="img-container center autowidth" style="padding-right: 0px;padding-left: 0px;">
                                                <!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr style="line-height:0px"><td style="padding-right: 0px;padding-left: 0px;" align="center"><![endif]-->
                                                <a href="#host#?token=#token#" style="outline:none" tabindex="-1" target="_blank">
                                                    <img align="center" alt="" border="0" class="center autowidth" src="https://marketing-image-production.s3.amazonaws.com/uploads/20db5ce29e45f6b2db0092466a66c5005b2f411e1de50e61fb2b4502997b972f10cc70e8113772ed4383286715369e3e942d599bb4f0bd270dd8ab8eead745ad.png" style="text-decoration: none; -ms-interpolation-mode: bicubic; height: auto; border: none; width: 100%; max-width: 200px; display: block;" title="Slottica" width="200"/>
                                                </a>
                                                <div style="font-size:1px;line-height:35px"></div>
                                                <!--[if mso]></td></tr></table><![endif]-->
                                            </div>
                                           <!--[if mso]></td></tr></table><![endif]-->
                                            <!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 60px; padding-left: 60px; padding-top: 10px; padding-bottom: 25px; font-family: Tahoma, Verdana, sans-serif"><![endif]-->
                                            <div style="color:#000000;font-family:Roboto, Tahoma, Verdana, Segoe, sans-serif;line-height:1.8;padding-top:10px;padding-right:60px;padding-bottom:25px;padding-left:60px;">
                                                <div style="font-size: 14px; line-height: 1.8; color: #000000; font-family: Roboto, Tahoma, Verdana, Segoe, sans-serif; mso-line-height-alt: 25px;">
                                                    <p style="line-height: 1.8; word-break: break-word; text-align: center; mso-line-height-alt: NaNpx; margin: 0;">
                                                        <span style="color: #000000;">Salom, #login#!.</span>
                                                    </p>
                                                    <p style="line-height: 1.8; word-break: break-word; text-align: center; mso-line-height-alt: NaNpx; margin: 0;">
                                                        <span style="color: #000000;">&nbsp;</span>
                                                    </p>
                                                    <p style="line-height: 1.8; word-break: break-word; text-align: center; mso-line-height-alt: NaNpx; margin: 0;">
                                                        <span style="color: #000000;">Klubdagi oʻyin hisobingiz #amount# ga toʻldirildi</span>
                                                    </p>
                                                    <p style="line-height: 1.8; word-break: break-word; text-align: center; mso-line-height-alt: NaNpx; margin: 0;">
                                                        <span style="color: #000000;">&nbsp;</span>
                                                    </p>
                                                    <p style="line-height: 1.8; word-break: break-word; text-align: center; mso-line-height-alt: NaNpx; margin: 0;">
                                                        <span style="color: #000000;">Sizga chin dildan omad va yangi gʻalabalar tilaymiz. Barcha imtiyozlardan foydalaning va hoziroq menejerdan shaxsiy bonuslar haqida soʻrang.</span>
                                                    </p>

                                                </div>
                                            </div>
                                            <!--[if mso]></td></tr></table><![endif]-->
                                            <div align="center" class="button-container" style="padding-top:10px;padding-right:10px;padding-bottom:10px;padding-left:10px;">
                                                <!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-spacing: 0; border-collapse: collapse; mso-table-lspace:0pt; mso-table-rspace:0pt;"><tr><td style="padding-top: 10px; padding-right: 10px; padding-bottom: 10px; padding-left: 10px" align="center"><v:roundrect xmlns:v="urn:schemas-microsoft-com:vml" xmlns:w="urn:schemas-microsoft-com:office:word" href="#host#/reset-password?token=#token#" style="height:46.5pt; width:277.5pt; v-text-anchor:middle;" arcsize="97%" stroke="false" fillcolor="#0055bf"><w:anchorlock/><v:textbox inset="0,0,0,0"><center style="color:#ffffff; font-family:Tahoma, Verdana, sans-serif; font-size:16px"><![endif]-->
                                                <a href="#host#?token=#token#" style="-webkit-text-size-adjust: none; text-decoration: none; display: inline-block; color: #ffffff; background-color: #0055bf; border-radius: 60px; -webkit-border-radius: 60px; -moz-border-radius: 60px; width: auto; width: auto; border-top: 1px solid #0055bf; border-right: 1px solid #0055bf; border-bottom: 1px solid #0055bf; border-left: 1px solid #0055bf; padding-top: 15px; padding-bottom: 15px; font-family: 'Roboto', Tahoma, Verdana, Segoe, sans-serif; text-align: center; mso-border-alt: none; word-break: keep-all;" target="_blank">
                                                    <span style="padding-left:60px;padding-right:60px;font-size:16px;display:inline-block;">
                                                        <span style="font-size: 16px; line-height: 2; word-break: break-word; font-family: Roboto, Tahoma, Verdana, Segoe, sans-serif; mso-line-height-alt: 32px;">Saytga oʻtish</span>
                                                    </span>
                                                </a>
                                                <!--[if mso]></center></v:textbox></v:roundrect></td></tr></table><![endif]-->
                                            </div>
                                            <!--[if mso]><table width="100%" cellpadding="0" cellspacing="0" border="0"><tr><td style="padding-right: 60px; padding-left: 60px; padding-top: 25px; padding-bottom: 20px; font-family: Tahoma, Verdana, sans-serif"><![endif]-->
                                            <div style="color:#555555;font-family:Roboto, Tahoma, Verdana, Segoe, sans-serif;line-height:1.2;padding-top:25px;padding-right:60px;padding-bottom:20px;padding-left:60px;">
                                                <div style="line-height: 1.2; font-size: 12px; color: #555555; font-family: Roboto, Tahoma, Verdana, Segoe, sans-serif; mso-line-height-alt: 14px;">
                                                    <p style="font-size: 12px; line-height: 1.2; word-break: break-word; text-align: center; mso-line-height-alt: 14px; margin: 0;">
                                                        <span style="font-size: 12px;">Viks Casino veb-saytida roʻyxatdan oʻtganingiz uchun ushbu xabarnomani oldingiz</span>
                                                    </p>
                                                </div>
                                            </div>
                                            <!--[if mso]></td></tr></table><![endif]-->
                                            <!--[if (!mso)&(!IE)]><!-->
                                        </div>
                                        <!--<![endif]-->
                                    </div>
                                </div>
                                <!--[if (mso)|(IE)]></td></tr></table><![endif]-->
                                <!--[if (mso)|(IE)]></td></tr></table></td></tr></table><![endif]-->
                            </div>
                        </div>
                    </div>
                    <!--[if (mso)|(IE)]></td></tr></table><![endif]-->
                </td>
            </tr>
        </tbody>
    </table>
    <!--[if (IE)]></div><![endif]-->
</body>
</html>

Ответы (0 шт):