| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="utf-8"> |
| | <title>GrapesJS with Forms Plugin</title> |
| | <link rel="stylesheet" href="https://unpkg.com/grapesjs/dist/css/grapes.min.css"> |
| | <script src="https://unpkg.com/grapesjs"></script> |
| | <script src="https://unpkg.com/grapesjs-plugin-forms"></script> |
| | <script src="https://unpkg.com/grapesjs-custom-code"></script> |
| | <style> |
| | |
| | body, html { |
| | height: 100%; |
| | margin: 0; |
| | } |
| | .image-container { |
| | display: flex; |
| | justify-content: space-between; |
| | margin-top: 20px; |
| | } |
| | .image-container img { |
| | width: 30%; |
| | height: auto; |
| | margin: 0 10px; |
| | } |
| | @media (max-width: 768px) { |
| | .image-container { |
| | flex-direction: column; |
| | } |
| | .image-container img { |
| | width: 100%; |
| | margin: 10px 0; |
| | } |
| | } |
| | |
| | .controls-container { |
| | background-color: #302f2f; |
| | padding: 15px 0; |
| | text-align: center; |
| | } |
| | .controls-container label, |
| | .controls-container button { |
| | margin-left: 15px; |
| | } |
| | |
| | #export-html { |
| | background-color: #ccc; |
| | color: #000; |
| | border: none; |
| | padding: 10px 15px; |
| | font-size: 16px; |
| | cursor: pointer; |
| | border-radius: 5px; |
| | transition: background-color 0.3s ease; |
| | } |
| | #export-html:hover { |
| | background-color: #bbb; |
| | } |
| | |
| | .controls-container label { |
| | color: #fff; |
| | } |
| | </style> |
| | </head> |
| | <body> |
| | <div id="gjs" style="height:0px; overflow:hidden;"> |
| | |
| | <div class="panel"> |
| | <h1 class="welcome">Добро пожаловать!</h1> |
| | <div class="big-title"> |
| | <img class="logo" src="https://via.placeholder.com/70x70.png?text=Logo" alt="Logo"> |
| | <span>Конструктор лендингов и подписных ВК</span> |
| | </div> |
| | <div class="description"> |
| | В связке с WhatsMasterCRM, VK Mini Apps, Автопилот. Ботхелп. Тильда, Геткурс. |
| | </div> |
| | <form class="centered-form"> |
| | <input type="text" name="name" placeholder="Имя"> |
| | <input type="email" name="email" placeholder="Email"> |
| | <input type="tel" name="phone" placeholder="Телефон"> |
| | <label class="checkbox-label"><input type="checkbox" name="subscribe" autocomplete="off"> I agree to the newsletter</label> |
| | </form> |
| | <button class="add-button">Зарегистрироваться</button> |
| | <div class="image-container"> |
| | <img src="https://via.placeholder.com/150" alt="Placeholder Image 1"> |
| | <img src="https://via.placeholder.com/150" alt="Placeholder Image 2"> |
| | <img src="https://via.placeholder.com/150" alt="Placeholder Image 3"> |
| | </div> |
| | </div> |
| | <style> |
| | .panel { |
| | width: 90%; |
| | max-width: 700px; |
| | border-radius: 3px; |
| | padding: 30px 20px; |
| | margin: 150px auto 0px; |
| | background-color: #d983a6; |
| | box-shadow: 0px 3px 10px 0px rgba(0,0,0,0.25); |
| | color: rgba(255,255,255,0.75); |
| | font: caption; |
| | font-weight: 100; |
| | text-align: center; |
| | } |
| | .welcome { |
| | text-align: center; |
| | font-weight: 100; |
| | margin: 0px; |
| | } |
| | .logo { |
| | width: 70px; |
| | height: 70px; |
| | vertical-align: middle; |
| | border-radius: 50%; |
| | } |
| | .big-title { |
| | text-align: center; |
| | font-size: 3.5rem; |
| | margin: 15px 0; |
| | } |
| | .description { |
| | text-align: justify; |
| | font-size: 1rem; |
| | line-height: 1.5rem; |
| | } |
| | .centered-form { |
| | display: inline-block; |
| | text-align: left; |
| | } |
| | .centered-form input { |
| | display: block; |
| | width: 100%; |
| | margin-bottom: 10px; |
| | } |
| | .checkbox-label { |
| | display: flex; |
| | align-items: center; |
| | margin-bottom: 10px; |
| | padding: 0; |
| | } |
| | .checkbox-label input[type="checkbox"] { |
| | margin: 0; |
| | width: 100%; |
| | height: 100%; |
| | flex-basis: 0; |
| | autocomplete: off; |
| | } |
| | .checkbox-label span { |
| | margin-left: 15px; |
| | } |
| | .add-button { |
| | display: block; |
| | margin: 20px auto 0; |
| | padding: 10px 20px; |
| | font-size: 1rem; |
| | color: #fff; |
| | background-color: #007bff; |
| | border: none; |
| | border-radius: 5px; |
| | cursor: pointer; |
| | } |
| | </style> |
| | </div> |
| |
|
| | |
| | <div class="controls-container"> |
| | <label><input type="checkbox" id="script1-checkbox" value="https://example.com/your-additional-script1.js" checked> Соб. хост</label> |
| | <label><input type="checkbox" id="script2-checkbox" value="https://example.com/your-additional-script2.js"> ВК + АП</label> |
| | <label><input type="checkbox" id="script3-checkbox" value="https://example.com/your-additional-script3.js"> Виджет Тильда</label> |
| | <label><input type="checkbox" id="script4-checkbox" value="https://example.com/your-additional-script4.js"> Виджет Геткурс</label> |
| | <button id="export-html">Скачать HTML</button> |
| | </div> |
| |
|
| | <script type="text/javascript" src="https://huggingface.co/spaces/DMTuit/psy_vk/resolve/main/js/sav_html.js"></script> |
| |
|
| | <script type="text/javascript"> |
| | var editor = grapesjs.init({ |
| | showOffsets: 1, |
| | noticeOnUnload: 0, |
| | container: '#gjs', |
| | height: '100%', |
| | fromElement: true, |
| | storageManager: { autoload: 0 }, |
| | plugins: ['grapesjs-plugin-forms', 'grapesjs-custom-code'], |
| | pluginsOpts: { |
| | 'grapesjs-plugin-forms': { |
| | |
| | }, |
| | 'grapesjs-custom-code': { |
| | blockCustomCode: { |
| | label: 'Custom Code', |
| | category: 'Extra', |
| | attributes: { class: 'fa fa-code' } |
| | }, |
| | modalTitle: 'Insert your code', |
| | buttonLabel: 'Save', |
| | placeholderScript: '// Your JavaScript code here', |
| | codeViewOptions: { |
| | theme: 'hopscotch', |
| | readOnly: 0 |
| | } |
| | } |
| | } |
| | }); |
| | |
| | |
| | document.getElementById('export-html').addEventListener('click', function() { |
| | var html = editor.getHtml(); |
| | var css = editor.getCss(); |
| | var js = editor.getJs(); |
| | var fullHtml = ` |
| | <!DOCTYPE html> |
| | <html lang="en"> |
| | <head> |
| | <meta charset="UTF-8"> |
| | <title>Exported Page</title> |
| | <style>${css}</style> |
| | </head> |
| | <body> |
| | ${html} |
| | <script>${js}</script> |
| | </body> |
| | </html> |
| | `; |
| | var blob = new Blob([fullHtml], { type: 'text/html' }); |
| | saveAs(blob, 'exported-page.html'); |
| | }); |
| | </script> |
| |
|
| | |
| |
|
| | </body> |
| | </html> |