Skip to content

Commit 5f4d0b6

Browse files
committed
First pass at RunKit integration.
1 parent 586b423 commit 5f4d0b6

3 files changed

Lines changed: 43 additions & 7 deletions

File tree

docs/index.html.handlebars

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,5 +160,6 @@
160160
</main>
161161
<script src="dist/ramda.js"></script>
162162
<script src="main.js"></script>
163+
<script src = "https://embed.runkit.com"></script>
163164
</body>
164165
</html>

docs/main.js

Lines changed: 35 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -98,15 +98,43 @@
9898
}
9999

100100
function tryInREPL(event) {
101-
if (!event.target.matches('.try-repl')) {
101+
var target = event.target;
102+
103+
if (!target.matches('.try-repl')) {
102104
return;
103105
}
104-
var version = event.target.dataset && event.target.dataset.ramdaVersion;
105-
var versionParam = version ? '?v=' + version : '';
106-
var code = event.target.nextElementSibling.textContent;
107-
var encoded = fixedEncodeURIComponent(code);
108-
window.open(location.origin + '/repl/' +
109-
versionParam + '#;' + encoded);
106+
107+
if (!window.RunKit) {
108+
var version = event.target.dataset && event.target.dataset.ramdaVersion;
109+
var versionParam = version ? '?v=' + version : '';
110+
var code = event.target.nextElementSibling.textContent;
111+
var encoded = fixedEncodeURIComponent(code);
112+
window.open(location.origin + '/repl/' +
113+
versionParam + '#;' + encoded);
114+
}
115+
116+
var parent = target.parentNode;
117+
var ramdaVersion = target.dataset && "@" + target.dataset.ramdaVersion || "";
118+
var codeElement = target.nextElementSibling;
119+
120+
parent.removeChild(codeElement);
121+
parent.removeChild(target);
122+
parent.style.background = "transparent";
123+
124+
RunKit.createNotebook({
125+
element: parent,
126+
nodeVersion: '*',
127+
preamble: 'var R = require("ramda' + ramdaVersion + '")',
128+
source: codeElement.textContent,
129+
syntaxTheme: 'atom-dark-syntax',
130+
minHeight: "52px",
131+
onLoad: function(notebook) {
132+
var iframe = parent.lastElementChild;
133+
iframe.style.cssText = 'height:' + iframe.style.height
134+
iframe.classList.add('repl')
135+
notebook.evaluate()
136+
}
137+
});
110138
}
111139

112140

less/ramda.less

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,3 +41,10 @@
4141
aside.gitter-chat-embed {
4242
z-index: 1040;
4343
}
44+
45+
.repl {
46+
background-color: transparent;
47+
margin: 0 0 0 -75px;
48+
padding: 0;
49+
width: ~"calc(100% + 155px)";
50+
}

0 commit comments

Comments
 (0)