-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
91 lines (82 loc) · 2.4 KB
/
Copy pathindex.html
File metadata and controls
91 lines (82 loc) · 2.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Markdown to HTML Copy Tool</title>
<!-- Marked.js (CDN) to parse Markdown -->
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<style>
body {
font-family: Arial, sans-serif;
margin: 20px;
max-width: 600px;
}
h1 {
margin-bottom: 0.5em;
}
textarea {
width: 100%;
height: 150px;
font-family: monospace;
margin-bottom: 10px;
}
button {
margin: 5px 0;
padding: 6px 12px;
cursor: pointer;
}
#preview {
margin-top: 20px;
border: 1px solid #ccc;
padding: 10px;
min-height: 100px;
}
</style>
</head>
<body>
<h1>Markdown to HTML Copy Tool</h1>
<p>Paste your Markdown below, then render and copy the result as HTML.</p>
<textarea id="mdInput">
</textarea>
<br>
<button id="renderBtn">Render Preview</button>
<button id="copyBtn">Copy as HTML</button>
<div id="preview"></div>
<script>
// 1) Render button
document.getElementById('renderBtn').addEventListener('click', function() {
var rawMD = document.getElementById('mdInput').value;
// Convert Markdown -> HTML
var html = marked.parse(rawMD);
// Display in preview div
document.getElementById('preview').innerHTML = html;
});
// 2) Copy button
document.getElementById('copyBtn').addEventListener('click', async function() {
var rawMD = document.getElementById('mdInput').value;
var html = marked.parse(rawMD);
// Check if Clipboard API is available
if (navigator.clipboard && navigator.clipboard.write) {
try {
// We'll copy two formats:
// text/html for rich text
// text/plain for fallback
var blobHtml = new Blob([html], { type: 'text/html' });
var blobText = new Blob([rawMD], { type: 'text/plain' });
var clipboardItem = new ClipboardItem({
'text/html': blobHtml,
'text/plain': blobText
});
await navigator.clipboard.write([clipboardItem]);
alert('Copied rendered HTML to clipboard!');
} catch (err) {
console.error('Copy failed', err);
alert('Failed to copy: ' + err);
}
} else {
alert('Clipboard API not supported in this browser. Try Chrome, Edge, etc.');
}
});
</script>
</body>
</html>