forked from max-mapper/requirebin
-
Notifications
You must be signed in to change notification settings - Fork 0
/
embed.js
44 lines (33 loc) · 1.22 KB
/
embed.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
var jsonp = require('jsonp')
var url = require('url')
var parsedURL = url.parse(window.location.href, true)
var gistID = parsedURL.query.gist
var binURL = "/?gist=" + gistID
var link = document.querySelector('.requirebin-link')
if (link) link.setAttribute('href', binURL)
if (gistID.indexOf('/') > -1) gistID = gistID.split('/')[1]
loadFromAPI(gistID)
function loadFromAPI(gistID) {
jsonp('https://api.github.com/gists/' + gistID, function(err, gist) {
if (err) return console.log(err)
var files = gist.data.files
var headFile = files['page-head.html']
if (!headFile) headFile = files['head.html']
if (headFile) var head = headFile.content
var minFile = files['minified.js']
if (minFile) var bundle = minFile.content
render(head, bundle)
})
}
function loadRaw(gistID) {
var bundleURL = "https://gist.githubusercontent.com/" + gistID + "/raw/minified.js"
var script = document.createElement('script')
script.setAttribute('src', bundleURL)
document.head.appendChild(script)
}
function render(head, bundle) {
if (head) document.head.innerHTML += head
if (!bundle) bundle = "document.body.innerHTML += 'not a valid requirebin gist - missing minified.js'"
_eval = eval
_eval(bundle)
}