Skip to content

Commit fde94c3

Browse files
committed
add copy button for .edp & .md examples
1 parent 8d17563 commit fde94c3

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

source/_static/css/examples.css

+5
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,11 @@
1616
width:100%;
1717
}
1818

19+
#ExampleCopyButton {
20+
display: inline-block;
21+
position: relative;
22+
}
23+
1924
#checkbox-markdown-toggle {
2025
margin-right: 2em;
2126
}

source/_static/js/examples.js

+34-1
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ let viewMarkdown = true
1313

1414
let iscurrentfilemd = false
1515

16+
let mdsource = ""
17+
1618
toggleExamples = (mode) => {
1719
if (mode) {
1820
subnav.children[1].style.display = 'block'
@@ -58,12 +60,13 @@ loadExamplefromGitHub = (name, dir, editor) => {
5860
}
5961
examplecode.style.display = 'flex'
6062
examplewelcome.style.display = 'none'
63+
showExample(viewMarkdown)
6164
editor.setValue(data)
6265
highlightKeyword(editor)
63-
showExample(viewMarkdown)
6466
}
6567

6668
function loadmd(data) {
69+
mdsource = data;
6770
iscurrentfilemd = true;
6871
var byClass = document.getElementsByClassName("strip-button");
6972
for (var i = 0; i < byClass.length; i++) {
@@ -331,6 +334,36 @@ fetch('/_static/json/all_examples.json')
331334
})
332335
})
333336

337+
var copybutton = document.createElement('button')
338+
copybutton.className = 'copy-button'
339+
copybutton.style.top = '0rem'
340+
copybutton.innerHTML = '<span class="clipboard-message">.edp copied to clipboard</span><i class="far fa-clone"></i>'
341+
copybutton.onclick = function (e) {
342+
const textarea = document.createElement('textarea')
343+
if (iscurrentfilemd && viewMarkdown) {
344+
copybutton.innerHTML = '<span class="clipboard-message">.md copied to clipboard</span><i class="far fa-clone"></i>'
345+
textarea.value = mdsource
346+
}
347+
else {
348+
copybutton.innerHTML = '<span class="clipboard-message">.edp copied to clipboard</span><i class="far fa-clone"></i>'
349+
textarea.value = editor.getValue()
350+
}
351+
textarea.setAttribute('readonly', '')
352+
textarea.style.position = 'absolute'
353+
textarea.style.left = '-9999px'
354+
document.body.appendChild(textarea)
355+
textarea.select()
356+
document.execCommand('copy')
357+
document.body.removeChild(textarea)
358+
359+
this.children[0].classList.toggle('clipboard-message--active')
360+
setTimeout(() => {
361+
this.children[0].classList.remove('clipboard-message--active')
362+
}, 2000)
363+
}
364+
const examplecopybutton = document.getElementById('ExampleCopyButton')
365+
examplecopybutton.appendChild(copybutton)
366+
334367
var bs1 = new ButtonStrip({
335368
id: 'buttonStrip1'
336369
});

source/_templates/layout.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
</ul>
2929
</div>
3030
<div id="exampleCode" spellcheck="false" style="display: none">
31-
<h2><div id='ExampleLinkToGitHub'></div><div id='markdowntoggle'></div><!-- input type="checkbox" id="checkbox-markdown-toggle"/> <!-- <span id="exampleSave">Save as EDP</span> --></h2>
31+
<h2><div id='ExampleLinkToGitHub'></div><div id='ExampleCopyButton'></div><div id='markdowntoggle'></div><!-- input type="checkbox" id="checkbox-markdown-toggle"/> <!-- <span id="exampleSave">Save as EDP</span> --></h2>
3232
<div id="mdout"></div>
3333
<textarea id="code"></textarea>
3434
</div>

0 commit comments

Comments
 (0)