Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions public/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -140,3 +140,34 @@ footer {
#preview.column {
white-space: normal;
}

#divider {
width: 5px;
background-color: #ccc;
cursor: ew-resize;
}

#printer-button {
margin-right: 32px;
}

#load-button {
margin-left: 48px;
}

#save-button {
margin-left: 16px;
}

.code-copy-button {
position: absolute;
top: 6px;
right: 6px;
background-color: transparent;
border: none;
cursor: pointer;
width: 16px;
height: 16px;
background-image: url('data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 width=%2224%22 height=%2224%22 fill=%22none%22 stroke=%22DarkSlateGray%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22 class=%22feather feather-copy%22 viewBox=%220 0 24 24%22%3E%3Crect x=%229%22 y=%229%22 width=%2213%22 height=%2213%22 rx=%222%22 ry=%222%22%3E%3C/rect%3E%3Cpath d=%22M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1%22%3E%3C/path%3E%3C/svg%3E');
background-size: cover;
}
76 changes: 76 additions & 0 deletions public/iframe-pdf.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="content-language" content="en">
<meta http-equiv="content-script-type" content="text/javascript">
<meta http-equiv="content-style-type" content="text/css">

<link rel="stylesheet" type="text/css" href="css/style.css">
<link rel="stylesheet" type="text/css" href="css/github-markdown-light.css">

<title>PDF Document</title>

<style type="text/css">
@media print {
html, body {
height: auto; /* Pastikan body diatur ke auto saat cetak */
overflow: visible !important; /* Hilangkan overflow saat cetak */
}

/* Hilangkan elemen tertentu (misalnya navigasi atau iklan) jika perlu */
.no-print {
display: none;
}
}
</style>

</head>
<body>

<div id="preview"></div>
</body>
<script>
function wait(cfg){
if(cfg.until()){cfg.then(); return;}
if(cfg.interval == null){cfg.interval = 100}
setTimeout(function(){wait(cfg)},cfg.interval);
return (cfg['return'] != null ? cfg['return'] : cfg);
}

function getRandomChar(size,cfg) {
size = size || 10;
var out = '1';
var chr = 'ABCDEFGHKMNPRSTUVWXYZ23456789';
var chr_len = chr.length;
while (out.match(/[0-9]/)){
out = chr.charAt(Math.floor(Math.random() * chr_len))
}
let ctr = 0;
while (ctr < size) {
out += chr.charAt(Math.floor(Math.random() * chr_len));
ctr += 1;
}
return (cfg ? out.toLowerCase() : out);
}

async function generatePrinter(margin,paperSize,orientation) {
const htmlContent = parent.document.getElementById('preview').innerHTML;

const div = document.getElementById('preview');
var rnd = getRandomChar();
div.innerHTML = htmlContent + '<div style="visibility:hidden;position:relative" id="'+rnd+'"></div>';

wait({
until: function(){return document.getElementById(rnd).parentNode},
then: function(){
top.document.title = parent.currentFileName.replace(/\.md$/i,'.pdf');
window.print();
top.document.title = 'Markdown Live Preview';
}
});
}

</script>

</html>
15 changes: 15 additions & 0 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
<link rel="icon" type="image/png" href="favicon.png">

<script type="text/javascript" src="js/marked.min.js"></script>
<script type="text/javascript" src="js/mermaid.min.js"></script>
<script type="text/javascript" src="js/purify.min.js"></script>
<script type="text/javascript" src="js/ace/ace.js"></script>
<script type="text/javascript" src="js/ace/mode-markdown.js"></script>
Expand Down Expand Up @@ -39,7 +40,15 @@
<div id="reset-button"><a href="#">Reset</a></div>
<div id="copy-button"><a href="#">Copy</a></div>
<div id="sync-button"><input type="checkbox" id="sync-scroll-checkbox"><label for="sync-scroll-checkbox">Sync scroll</label></div>
<div id="load-button"><a href="#">Load MD</a></div>
<div id="save-button"><a href="#">Save MD</a></div>
</div>


<div id="menu-items" style="margin-left: auto;">
<div id="printer-button" ><a href="#">Print or PDF</a></div>
</div>

<div id="github"><a href="https://github.com/tanabe/markdown-live-preview"><img src="image/GitHub-Mark-Light-32px.webp"></a></div>
</header>

Expand All @@ -50,6 +59,7 @@
<div id="editor"></div>
</div>
</div>
<div id="divider"></div>
<div id="preview" class="column">
<div id="preview-wrapper">
<div id="output" class="content markdown-body"></div>
Expand All @@ -59,5 +69,10 @@

<footer></footer>

<iframe name="iframe-pdf"
src="iframe-pdf.html"
style="position:fixed;left:-500000px"
></iframe>

</body>
</html>
Loading