Skip to content

Instantly share code, notes, and snippets.

@Joseph-N
Last active August 29, 2015 13:58
Show Gist options
  • Save Joseph-N/10228765 to your computer and use it in GitHub Desktop.
Save Joseph-N/10228765 to your computer and use it in GitHub Desktop.
Code snippets on how to load Github embedded gists with turbolinks - Tutorial link http://josephndungu.com/tutorials/using-github-embedded-gists-with-turbolinks
<!-- before -->
<script src="https://gist.github.com/username/gist_id.js"></script>
<script src="https://gist.github.com/username/gist_id.js?file=file_name"></script>
<!-- after -->
<div class="gist" data-src="https://gist.github.com/username/gist_id.json"></div>
<div class="gist" data-src="https://gist.github.com/username/gist_id.json" data-file="file_name"></div>
var loadGist, loadGists;
$(function() {
loadGists();
return $(document).on('page:load', loadGists);
});
loadGists = function() {
return $('.gist').each(function() {
return loadGist($(this));
});
};
loadGist = function($gist) {
var callbackName, script;
callbackName = 'c' + Math.random().toString(36).substring(7);
window[callbackName] = function(gistData) {
var html;
delete window[callbackName];
html = '<link rel="stylesheet" href="' + encodeURI(gistData.stylesheet) + '"></link>';
html += gistData.div;
$gist.html(html);
return script.parentNode.removeChild(script);
};
script = document.createElement('script');
script.setAttribute('src', [
$gist.data('src'), $.param({
callback: callbackName,
file: $gist.data('file') || ''
})
].join('?'));
return document.body.appendChild(script);
};
$ ->
loadGists()
$(document).on 'page:load', loadGists
loadGists = ->
$('.gist').each ->
loadGist $(this)
loadGist = ($gist) ->
callbackName = 'c' + Math.random().toString(36).substring(7)
window[callbackName] = (gistData) ->
delete window[callbackName]
html = '<link rel="stylesheet" href="' + encodeURI(gistData.stylesheet) + '"></link>'
html += gistData.div
$gist.html html
script.parentNode.removeChild script
script = document.createElement 'script'
script.setAttribute 'src', [
$gist.data('src'),
$.param(
callback: callbackName
file: $gist.data('file') || ''
)
].join '?'
document.body.appendChild script
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment