Skip to content

Commit 8f87741

Browse files
authored
Allow gist navigation (#140)
1 parent a55c0ec commit 8f87741

File tree

2 files changed

+19
-1
lines changed

2 files changed

+19
-1
lines changed

client/index.html

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,12 @@
184184
clearInterval(sendSources);
185185
}, { once: true });
186186

187+
window.addEventListener("message", function(event) {
188+
if (event.data && event.data.gistId && /^[0-9a-f]+$/.test(event.data.gistId)) {
189+
window.location.search = "gist=" + event.data.gistId;
190+
}
191+
});
192+
187193
return $iframe;
188194
}
189195
</script>

client/js/frame.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,13 +27,25 @@
2727
};
2828
}
2929

30+
var parent;
31+
3032
document.addEventListener("DOMContentLoaded", function() {
3133
window.addEventListener("message", function(event) {
32-
event.source.postMessage("trypurescript", "*");
34+
parent = event.source;
35+
parent.postMessage("trypurescript", "*");
3336
var file = evalSources(event.data)("<file>");
3437
if (file.main && typeof file.main === "function") {
3538
file.main();
3639
}
3740
}, { once: true });
3841
}, { once: true });
42+
43+
document.addEventListener("click", function(event) {
44+
if (parent && event.target.nodeName === "A" && event.target.hostname === "gist.github.com") {
45+
event.preventDefault();
46+
parent.postMessage({
47+
gistId: event.target.pathname.split("/").slice(-1)[0]
48+
}, "*");
49+
}
50+
}, false);
3951
})();

0 commit comments

Comments
 (0)