|
<!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> |