|
98 | 98 | } |
99 | 99 |
|
100 | 100 | function tryInREPL(event) { |
101 | | - if (!event.target.matches('.try-repl')) { |
| 101 | + var target = event.target; |
| 102 | + |
| 103 | + if (!target.matches('.try-repl')) { |
102 | 104 | return; |
103 | 105 | } |
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 | + }); |
110 | 138 | } |
111 | 139 |
|
112 | 140 |
|
|
0 commit comments