Initializing
Liveweave
Web
expand_more
home
Home
data_object
CSS Explorer
arrow_outward
Palette
Color Explorer
arrow_outward
Polyline
Graphics Editor
arrow_outward
outbox_alt
Generative AI
arrow_outward
frame_source
Python Playground
New
arrow_outward
build
Tools
expand_more
restart_alt
Load "Hello Weaver!"
post_add
Generate Lorem ipsum...
code
Format HTML
code_blocks
Format CSS
data_object
Format JavaScript
library_add
Library
expand_more
A
Algolia JS
Animate CSS
Apex Charts JS
B
Bulma CSS
Bootstrap
C
Chart JS
Chartist
Create JS
D
D3
Dojo
F
Foundation
Fullpage JS
G
Granim JS
Google Charts
H
Halfmoon
J
jQuery
M
Materialize
Moment JS
Masonry JS
Milligram CSS
P
Pure CSS
Primer CSS
Popper JS
Pattern CSS
Picnic CSS
R
React JS
Raphael JS
Raisin CSS
S
Semantic UI
Skeleton CSS
Spectre CSS
Tachyons CSS
T
Tailwind
Three JS
U
UI Kit
Vis JS
W
Water CSS
download
Download
expand_more
developer_mode
Download as HTML
folder_zip
Download as .ZIP
cloud_upload
Save
account_circle
Login
settings
Settings
expand_more
14
px
Live mode
Night mode
Line number
Mini map
Word wrap
sync_alt
Reset Settings
smart_display
Run
<!doctype html> <html> <head> <meta charset="utf-8"> <title>CodeMirror: Save as Image</title> <meta name='viewport' content='initial-scale=1.0'> <meta http-equiv='X-UA-Compatible' content='IE=9' /> <script src='http://codemirror.net/lib/codemirror.js'></script> <script src='http://codemirror.net/mode/xml/xml.js'></script> <script src='http://codemirror.net/mode/javascript/javascript.js'></script> <script src='http://codemirror.net/mode/css/css.js'></script> <script src='http://codemirror.net/mode/htmlmixed/htmlmixed.js'></script> <link rel='stylesheet' href='http://codemirror.net/lib/codemirror.css'> <link rel='stylesheet' href='http://codemirror.net/doc/docs.css'> <script src="http://codemirror.net/mode/htmlmixed/htmlmixed.js"></script> <script src="http://codemirror.net/addon/edit/closetag.js"></script> <script src="http://codemirror.net/addon/edit/matchbrackets.js"></script> <script src="http://codemirror.net/addon/selection/active-line.js"></script> <script src="https://raw.github.com/niklasvh/html2canvas/gh-pages/build/html2canvas.js"></script> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> <link type='text/css' rel='stylesheet' href='http://necolas.github.io/normalize.css/3.0.1/normalize.css' /> </head> <body> <div align="center"> <p> <button id="saveimg"> Save as Image </button> </p> </div> <textarea id="code" name="code"><!doctype html> <html> <head> <meta charset=utf-8> <title>HTML5 canvas demo</title> <style>p {font-family: monospace;}</style> </head> <body> <p>Canvas pane goes here:</p> <canvas id=pane width=300 height=200></canvas> <script> var canvas = document.getElementById('pane'); var context = canvas.getContext('2d'); context.fillStyle = 'rgb(250,0,0)'; context.fillRect(10, 10, 55, 50); context.fillStyle = 'rgba(0, 0, 250, 0.5)'; context.fillRect(30, 30, 55, 50); </script> </body> </html></textarea> <iframe id="preview"></iframe> <div id="imgprev"></div> <canvas id="mycanvas"></canvas> </body> </html>
.CodeMirror { float: left; width: 50%; border: 1px solid #000; } iframe { width: 49%; float: left; height: 300px; border: 1px solid #000; border-left: 0; }
$(document).ready(function() { $("#saveimg").click(function() { html2canvas($("#preview"), { onrendered: function(canvas) { var myImage = canvas.toDataURL("image/png"); $("#imgprev").html("<img src='"+ myImage +"' />"); } }); }); }); var delay; // Initialize CodeMirror editor var editor = CodeMirror.fromTextArea(document.getElementById('code'), { mode: 'text/html', tabMode: 'indent', styleActiveLine: true, lineNumbers: true, lineWrapping: true, autoCloseTags: true }); // Live preview editor.on("change", function() { clearTimeout(delay); delay = setTimeout(updatePreview, 300); }); function updatePreview() { var previewFrame = document.getElementById('preview'); var preview = previewFrame.contentDocument || previewFrame.contentWindow.document; preview.open(); preview.write(editor.getValue()); preview.close(); } setTimeout(updatePreview, 300);