summaryrefslogtreecommitdiff
path: root/public/vendor/gist-embed.js
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--public/vendor/gist-embed.js183
1 files changed, 0 insertions, 183 deletions
diff --git a/public/vendor/gist-embed.js b/public/vendor/gist-embed.js
deleted file mode 100644
index a1e923b7..00000000
--- a/public/vendor/gist-embed.js
+++ /dev/null
@@ -1,183 +0,0 @@
-// author: Blair Vanderhoof
-// https://github.com/blairvanderhoof/gist-embed
-// version 2.0
-(function($) {
-
- function getLineNumbers(lineRangeString) {
- var lineNumbers = [], range, lineNumberSections;
-
- if (typeof lineRangeString === 'number') {
- lineNumbers.push(lineRangeString);
- } else {
- lineNumberSections = lineRangeString.split(',');
-
- for (var i = 0; i < lineNumberSections.length; i++) {
- range = lineNumberSections[i].split('-');
- if (range.length === 2) {
- for (var j = parseInt(range[0], 10); j <= range[1]; j++) {
- lineNumbers.push(j);
- }
- } else if (range.length === 1) {
- lineNumbers.push(parseInt(range[0], 10));
- }
- }
- }
- return lineNumbers;
- }
-
- $.fn.gist = function(callback) {
- return this.each(function() {
- var $elem = $(this),
- id,
- url,
- file,
- lines,
- highlightLines,
- hideFooterOption,
- hideLineNumbersOption,
- showLoading,
- data = {};
-
- // make block level so loading text shows properly
- $elem.css('display', 'block');
-
- id = $elem.data('gist-id') || '';
- file = $elem.data('gist-file');
- hideFooterOption = $elem.data('gist-hide-footer') === true;
- hideLineNumbersOption = $elem.data('gist-hide-line-numbers') === true;
- lines = $elem.data('gist-line');
- highlightLines = $elem.data('gist-highlight-line');
- showLoading = $elem.data('gist-show-loading') !== undefined ?
- $elem.data('gist-show-loading') : true;
-
- if (file) {
- data.file = file;
- }
-
- // if the id doesn't exist, then ignore the code block
- if (!id) return false;
-
- url = 'https://gist.github.com/' + id + '.json';
-
- // loading
- if (showLoading) {
- $elem.html('Loading gist ' + url + (data.file ? ', file: ' + data.file : '') + '...');
- }
-
- // request the json version of this gist
- $.ajax({
- url: url,
- data: data,
- dataType: 'jsonp',
- timeout: 10000,
- success: function(response) {
- var linkTag,
- head,
- lineNumbers,
- highlightLineNumbers,
- $responseDiv;
-
- // the html payload is in the div property
- if (response && response.div) {
- // github returns /assets/embed-id.css now, but let's be sure about that
- if (response.stylesheet && response.stylesheet.indexOf('http') !== 0) {
- // add leading slash if missing
- if (response.stylesheet.indexOf('/') !== 0) {
- response.stylesheet = '/' + response.stylesheet;
- }
- response.stylesheet = 'https://gist.github.com' + response.stylesheet;
- }
-
- // add the stylesheet if it does not exist
- if (response.stylesheet && $('link[href="' + response.stylesheet + '"]').length === 0) {
- linkTag = document.createElement('link');
- head = document.getElementsByTagName('head')[0];
-
- linkTag.type = 'text/css';
- linkTag.rel = 'stylesheet';
- linkTag.href = response.stylesheet;
- head.insertBefore(linkTag, head.firstChild);
- }
-
- // refernce to div
- $responseDiv = $(response.div);
-
- // remove id for uniqueness constraints
- $responseDiv.removeAttr('id');
-
- $elem.html('').append($responseDiv);
-
- // option to highlight lines
- if (highlightLines) {
- highlightLineNumbers = getLineNumbers(highlightLines);
-
- // we need to set the line-data td to 100% so the highlight expands the whole line
- $responseDiv.find('td.line-data').css({
- 'width': '100%'
- });
-
- // find all .line divs (acutal code lines) that match the highlightLines and add the highlight class
- $responseDiv.find('.line').each(function(index) {
- if ($.inArray(index + 1, highlightLineNumbers) !== -1) {
- $(this).css({
- 'background-color': 'rgb(255, 255, 204)'
- });
- }
- });
- }
-
- // if user provided a line param, get the line numbers baesed on the criteria
- if (lines) {
- lineNumbers = getLineNumbers(lines);
-
- // find all .line divs (acutal code lines) and remove them if they don't exist in the line param
- $responseDiv.find('.line').each(function(index) {
- if (($.inArray(index + 1, lineNumbers)) === -1) {
- $(this).remove();
- }
- });
-
- // find all .line-number divs (numbers on the gutter) and remove them if they don't exist in the line param
- $responseDiv.find('.line-number').each(function(index) {
- if (($.inArray(index + 1, lineNumbers)) === -1) {
- $(this).remove();
- }
- });
- }
-
- // option to remove footer
- if (hideFooterOption) {
- $responseDiv.find('.gist-meta').remove();
-
- // present a uniformed border when footer is hidden
- $responseDiv.find('.gist-data').css("border-bottom", "0px");
- $responseDiv.find('.gist-file').css("border-bottom", "1px solid #ddd");
- }
-
- // option to remove
- if (hideLineNumbersOption) {
- $responseDiv.find('.line-numbers').remove();
- }
-
- } else {
- $elem.html('Failed loading gist ' + url);
- }
- },
- error: function(jqXHR, textStatus) {
- $elem.html('Failed loading gist ' + url + ': ' + textStatus);
- },
- complete: function() {
- if(callback)
- callback();
- }
- });
-
- });
- };
-
- $(function() {
- // find all elements containing "data-gist-id" attribute.
- $('[data-gist-id]').gist();
- });
-
-})(jQuery);