diff --git a/src/theme/book.css b/src/theme/book.css
index 355d7603..8c093abb 100644
--- a/src/theme/book.css
+++ b/src/theme/book.css
@@ -827,3 +827,22 @@ table thead td {
word-wrap: break-word /* Internet Explorer 5.5+ */;
}
}
+.tooltiptext {
+ visibility: hidden;
+ background-color: #000;
+ color: #fff;
+ opacity: 0.8;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
+ filter: alpha(opacity=80);
+ text-align: center;
+ border-radius: 6px;
+ padding: 5px 8px;
+ margin: 5px;
+ left: -250%;
+ bottom: 100%;
+ position: absolute;
+ z-index: 1000;
+}
+.tooltipped .tooltiptext {
+ visibility: visible;
+}
diff --git a/src/theme/book.js b/src/theme/book.js
index 424bac56..20661baa 100644
--- a/src/theme/book.js
+++ b/src/theme/book.js
@@ -191,15 +191,35 @@ $( document ).ready(function() {
buttons = pre_block.find(".buttons");
}
buttons.prepend("");
+ buttons.prepend("");
buttons.find(".play-button").click(function(e){
run_rust_code(pre_block);
});
+ buttons.find(".clip-button").mouseout(function(e){
+ e.currentTarget.setAttribute('class', 'fa fa-copy clip-button');
+ });
});
+ var clipboardSnippets = new Clipboard('.clip-button', {
+ text: function(trigger) {
+ return trigger.parentElement.parentElement.textContent;
+ }
+ });
+ clipboardSnippets.on('success', function(e) {
+ e.clearSelection();
+ showTooltip(e, "Copied!");
+ });
+ clipboardSnippets.on('error', function(e) {
+ showTooltip(e, "Clipboard error!");
+ });
});
+function showTooltip(elem, msg) {
+ elem.trigger.firstChild.innerText=msg;
+ elem.trigger.setAttribute('class', 'fa fa-copy tooltipped');
+}
function run_rust_code(code_block) {
var result_block = code_block.find(".result");
diff --git a/src/theme/index.hbs b/src/theme/index.hbs
index b3985fbc..5e5387f4 100644
--- a/src/theme/index.hbs
+++ b/src/theme/index.hbs
@@ -24,6 +24,9 @@
+
+
+