Last active
January 25, 2017 20:48
-
-
Save bluetidepro/7029847 to your computer and use it in GitHub Desktop.
A copy of a page from https://github.com/bluetidepro/jQuery.blogRSS
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<ul id="blogPosts"></ul> | |
<style type="text/css" media="screen"> | |
.blog-entries-container { | |
display: block; | |
width: 100%; | |
padding: 0; | |
margin: 0 auto; | |
} | |
.blog-entries-container h1 {} | |
.blog-entries-container h2 { | |
border-bottom: 1px solid #bcbcbc; | |
padding: 0 0 20px 0; | |
margin-bottom: 20px; | |
} | |
.blog-entries { | |
list-style: none; | |
margin: 0; | |
padding: 0; | |
} | |
.blog-entries li { | |
padding: 12px 18px; | |
display: block; | |
margin: 0 0 20px 0; | |
background: #eee; | |
} | |
.blog-entry {} | |
.blog-entry h3 { | |
margin: 0 0 6px 0; | |
font-size: 20px; | |
font-weight: normal; | |
line-height: 1.45; | |
} | |
.blog-entry p { | |
margin: 0 0 8px 0; | |
font-size: 14px; | |
line-height: 1.3; | |
} | |
.blog-entry footer { | |
font-style: italic; | |
font-size: 12px; | |
color: #8f8d8e; | |
margin: 0 0 10px 0; | |
} | |
.blog-entry .entry-categories, | |
.blog-entry time { | |
font-weight: bold; | |
} | |
</style> | |
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> | |
<script type="text/javascript"> | |
/* =========================================================== | |
* jQuery.blogRSS v1.0 | |
* =========================================================== | |
* Copyright 2013 Zach Reed. | |
* http://www.iamzachreed.com | |
* | |
* Pull your RSS blog into website | |
* | |
* License: GPL v3 | |
* | |
* ========================================================== */ | |
!function($){ | |
/** | |
* Timeago | |
* | |
* @version 1.3.0 | |
* @requires jQuery v1.2.3+ | |
* @author Ryan McGeary | |
* @license MIT License - http://www.opensource.org/licenses/mit-license.php | |
* | |
* Copyright (c) 2008-2013, Ryan McGeary (ryan -[at]- mcgeary [*dot*] org) | |
*/ | |
(function(e){if(typeof define==="function"&&define.amd){define(["jquery"],e)}else{e(jQuery)}})(function(e){function r(){var n=i(this);var r=t.settings;if(!isNaN(n.datetime)){if(r.cutoff==0||o(n.datetime)<r.cutoff){e(this).text(s(n.datetime))}}return this}function i(n){n=e(n);if(!n.data("timeago")){n.data("timeago",{datetime:t.datetime(n)});var r=e.trim(n.text());if(t.settings.localeTitle){n.attr("title",n.data("timeago").datetime.toLocaleString())}else if(r.length>0&&!(t.isTime(n)&&n.attr("title"))){n.attr("title",r)}}return n.data("timeago")}function s(e){return t.inWords(o(e))}function o(e){return(new Date).getTime()-e.getTime()}e.timeago=function(t){if(t instanceof Date){return s(t)}else if(typeof t==="string"){return s(e.timeago.parse(t))}else if(typeof t==="number"){return s(new Date(t))}else{return s(e.timeago.datetime(t))}};var t=e.timeago;e.extend(e.timeago,{settings:{refreshMillis:6e4,allowFuture:false,localeTitle:false,cutoff:0,strings:{prefixAgo:null,prefixFromNow:null,suffixAgo:"ago",suffixFromNow:"from now",seconds:"less than a minute",minute:"about a minute",minutes:"%d minutes",hour:"about an hour",hours:"about %d hours",day:"a day",days:"%d days",month:"about a month",months:"%d months",year:"about a year",years:"%d years",wordSeparator:" ",numbers:[]}},inWords:function(t){function l(r,i){var s=e.isFunction(r)?r(i,t):r;var o=n.numbers&&n.numbers[i]||i;return s.replace(/%d/i,o)}var n=this.settings.strings;var r=n.prefixAgo;var i=n.suffixAgo;if(this.settings.allowFuture){if(t<0){r=n.prefixFromNow;i=n.suffixFromNow}}var s=Math.abs(t)/1e3;var o=s/60;var u=o/60;var a=u/24;var f=a/365;var c=s<45&&l(n.seconds,Math.round(s))||s<90&&l(n.minute,1)||o<45&&l(n.minutes,Math.round(o))||o<90&&l(n.hour,1)||u<24&&l(n.hours,Math.round(u))||u<42&&l(n.day,1)||a<30&&l(n.days,Math.round(a))||a<45&&l(n.month,1)||a<365&&l(n.months,Math.round(a/30))||f<1.5&&l(n.year,1)||l(n.years,Math.round(f));var h=n.wordSeparator||"";if(n.wordSeparator===undefined){h=" "}return e.trim([r,c,i].join(h))},parse:function(t){var n=e.trim(t);n=n.replace(/\.\d+/,"");n=n.replace(/-/,"/").replace(/-/,"/");n=n.replace(/T/," ").replace(/Z/," UTC");n=n.replace(/([\+\-]\d\d)\:?(\d\d)/," $1$2");return new Date(n)},datetime:function(n){var r=t.isTime(n)?e(n).attr("datetime"):e(n).attr("title");return t.parse(r)},isTime:function(t){return e(t).get(0).tagName.toLowerCase()==="time"}});var n={init:function(){var n=e.proxy(r,this);n();var i=t.settings;if(i.refreshMillis>0){this._timeagoInterval=setInterval(n,i.refreshMillis)}},update:function(n){var i=t.parse(n);e(this).data("timeago",{datetime:i});if(t.settings.localeTitle)e(this).attr("title",i.toLocaleString());r.apply(this)},updateFromDOM:function(){e(this).data("timeago",{datetime:t.parse(t.isTime(this)?e(this).attr("datetime"):e(this).attr("title"))});r.apply(this)},dispose:function(){if(this._timeagoInterval){window.clearInterval(this._timeagoInterval);this._timeagoInterval=null}}};e.fn.timeago=function(e,t){var r=e?n[e]:n.init;if(!r){throw new Error("Unknown function name '"+e+"' for timeago")}this.each(function(){r.call(this,t)});return this};document.createElement("abbr");document.createElement("time")}) | |
// Helpers | |
function debug(error) { | |
if (typeof console == 'object') console.log(error); | |
else if (typeof opera == 'object') opera.postError(error); | |
} | |
function debugAlert(error) { | |
alert('blogRSS ERROR: '+error); | |
} | |
function capitaliseFirstLetter(string) { | |
return string.charAt(0).toUpperCase() + string.slice(1); | |
} | |
// Plugin | |
var defaults = { | |
feedURL: '', // required | |
blogURL: '', // required | |
ulContainerID: '', // required | |
blogName: '', // overwrite RSS | |
blogDescription: '', // overwrite RSS | |
}; | |
$.fn.blogRSS = function(options){ | |
var settings = $.extend({}, defaults, options), | |
rss = $(this); | |
if (settings.feedURL == "") { | |
debugAlert("Please enter your RSS feed URL."); | |
} else if (settings.blogURL == "") { | |
debugAlert("Please enter your blog URL."); | |
} else if (settings.ulContainerID == "") { | |
debugAlert("Please enter your ul container ID."); | |
} else { | |
$(settings.ulContainerID).addClass('blog-entries'); | |
$.ajax({ | |
url: document.location.protocol + '//query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D\'' + encodeURIComponent(settings.feedURL) + '\'&format=json&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys', | |
dataType: 'json', | |
success: function(data) { | |
var data = data.query.results.rss.channel; | |
(settings.blogName ? settings.blogName : settings.blogName=capitaliseFirstLetter(data.title)); | |
$(settings.ulContainerID).wrap('<div class="blog-entries-container"></div>').before('<h1>'+settings.blogName+'</h1><h2>'+(settings.blogDescription ? settings.blogDescription : data.description)+'</h2>'); | |
$.each(data.item, function(key, value){ | |
categories = ''; | |
if (value.category) { | |
var total = $(value.category).length; | |
$.each(value.category, function(i, item) { | |
categories += item + ', '; | |
if (i === total - 1) { | |
categories += item; | |
} | |
}); | |
}; | |
entryHTML = '<header><h3><a href="'+value.link+'" target="_blank">'+value.title+'</a></h3></header>'; | |
entryHTML += '<footer>Posted <time title="'+value.pubDate+'" datetime="'+value.pubDate+'">'+jQuery.timeago(value.pubDate)+'</time>'+(categories ? ' in <span class="entry-categories">' + categories + '</span>' : '')+'</footer>'; | |
entryHTML += '<p>'+value.description+'</p>'; | |
$('<li class="blog-entry"><article>'+entryHTML+'</article></li>').appendTo(settings.ulContainerID); | |
}); | |
$('<li class="view-all-entries"><a href="'+settings.blogURL+'" title="'+settings.blogName+'">View full blog »</a></li>').appendTo(settings.ulContainerID); | |
} | |
}); | |
} | |
} | |
}(window.jQuery); | |
$(function () { | |
$("#posts").blogRSS({ | |
feedURL: 'http://blog.iamzachreed.com/rss', | |
blogURL: 'http://blog.iamzachreed.com', | |
ulContainerID: '#blogPosts', | |
blogName: 'IAMZACHREED Blog' | |
}); | |
}); | |
</script> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment