Add syte-pelican, a theme based on Syte

This commit is contained in:
Samrat Man Singh
2012-07-07 08:28:26 +05:45
parent 3ba3e785dc
commit 705357519b
68 changed files with 6036 additions and 0 deletions

2
syte-pelican/.gitignore vendored Normal file
View File

@@ -0,0 +1,2 @@
*.swp
*.pyc

13
syte-pelican/README.md Normal file
View File

@@ -0,0 +1,13 @@
Syte theme for Pelican
======================
This theme is based on [Syte][syte] and is for Pelican. Right now, its a bit messy. But I'll clean this up later.
Anyway, you can [see this theme in action here][samrat].
![screenshot](https://github.com/samrat/syte-pelican/raw/master/screenshot.png)
To try this out, clone this repo and in your `settings.py`, set `THEME = /path/to/syte-pelican` and `MEDIA_URL= /path/to/syte-pelican/static`.
[syte]: http://rigoneri.github.com/syte/
[samrat]: http://samrat.github.com

91
syte-pelican/compress.py Normal file
View File

@@ -0,0 +1,91 @@
import os
import sys
import subprocess
import shlex
import traceback
path_to_here = os.path.abspath(os.path.dirname(__file__))
path_before_site = path_to_here[0:path_to_here.rfind('syte')]
sys.path.append(path_before_site)
#os.environ['DJANGO_SETTINGS_MODULE'] = 'syte.settings'
#from django.conf import settings
import settings
def compress_statics():
try:
#This won't work on windows.
subprocess.check_call(shlex.split('mkdir -p static/css static/js/min'))
except Exception:
print 'Make sure to create "syte > static > css" and "syte > static > js > min" before compressing statics.'
compress_styles()
compress_js()
def compress_styles():
less_path = 'static/less/styles.less'
css_path = 'static/css/'
try:
subprocess.check_call(shlex.split('lessc {0} {1}styles.min.css -yui-compress'.format(less_path, css_path)))
print 'CSS Styles Generated: styles.min.css'
except Exception:
exc_type, exc_value, exc_traceback = sys.exc_info()
stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback)
print stack_trace
def compress_js():
js_files = [
'libs/jquery.url.js',
'libs/require.js',
'libs/handlebars.js',
'libs/moment.min.js',
'libs/bootstrap-modal.js',
'libs/spin.min.js',
'libs/prettify.js',
'components/base.js',
'components/mobile.js',
'components/blog-posts.js',
'components/links.js',
]
if settings.TWITTER_INTEGRATION_ENABLED:
js_files.append('components/twitter.js')
if settings.GITHUB_INTEGRATION_ENABLED:
js_files.append('components/github.js')
if settings.DRIBBBLE_INTEGRATION_ENABLED:
js_files.append('components/dribbble.js')
if settings.INSTAGRAM_INTEGRATION_ENABLED:
js_files.append('components/instagram.js')
if settings.DISQUS_INTEGRATION_ENABLED:
js_files.append('components/disqus.js')
combined = ''
for js in js_files:
f = open('static/js/' + js, 'r')
combined += f.read()
f.close()
f = open('static/js/combined.js', 'w')
f.write(combined)
f.close()
try:
subprocess.check_call(shlex.split('uglifyjs -o static/js/min/scripts.min.js static/js/combined.js'))
subprocess.check_call(shlex.split('rm -f static/js/combined.js'))
print 'JavaScript Combined and Minified: scripts.min.js'
except Exception:
exc_type, exc_value, exc_traceback = sys.exc_info()
stack_trace = traceback.format_exception(exc_type, exc_value, exc_traceback)
print stack_trace
if __name__ == "__main__":
compress_statics()
sys.exit()

BIN
syte-pelican/screenshot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 120 KiB

9
syte-pelican/static/css/less-1.1.5.min.js vendored Executable file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -0,0 +1,32 @@
//Global configs and functions shared between js
function numberWithCommas(x) {
return x.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",");
}
require.config({
baseUrl: "/static/",
paths: {
"text": "js/libs/text",
"json": "js/libs/json"
},
waitSeconds: 15
});
var spin_opts = {
lines: 9,
length: 5,
width: 2,
radius: 4,
rotate: 9,
color: '#4c4c4c',
speed: 1.5,
trail: 40,
shadow: false,
hwaccel: false,
className: 'spinner',
zIndex: 2e9
};

View File

@@ -0,0 +1,143 @@
function fetchBlogPosts(post, tag) {
var blog_fetch_url = '/blog.json';
if (post)
blog_fetch_url = '/post/' + post;
else if (tag)
blog_fetch_url = '/tags/' + tag;
$.getJSON(blog_fetch_url, function(blog_posts) {
require(["text!templates/blog-post-text.html",
"text!templates/blog-post-photo.html",
"text!templates/blog-post-link.html",
"text!templates/blog-post-video.html",
"text!templates/blog-post-audio.html",
"text!templates/blog-post-quote.html"],
function(text_post_template, photo_post_template,
link_post_template, video_post_template, audio_post_template,
quote_post_template) {
var text_template = Handlebars.compile(text_post_template);
var photo_template = Handlebars.compile(photo_post_template);
var link_template = Handlebars.compile(link_post_template);
var video_template = Handlebars.compile(video_post_template);
var audio_template = Handlebars.compile(audio_post_template);
var quote_template = Handlebars.compile(quote_post_template);
$('.loading').remove();
$.each(blog_posts.response.posts, function(i, p) {
p.formated_date = moment(p.date).format('MMMM DD, YYYY')
if (p.type == 'text')
$('#blog-posts').append(text_template(p));
else if (p.type == 'photo')
$('#blog-posts').append(photo_template(p));
else if (p.type == 'link')
$('#blog-posts').append(link_template(p));
else if (p.type == 'video')
$('#blog-posts').append(video_template(p));
else if (p.type == 'audio')
$('#blog-posts').append(audio_template(p));
else if (p.type == 'quote')
$('#blog-posts').append(quote_template(p));
});
setupLinks();
adjustBlogHeaders();
prettyPrint();
setTimeout(setupBlogHeaderScroll, 1000);
adjustSelection('home-link');
});
});
}
function adjustBlogHeaders() {
if(isMobileView)
return;
$('.blog-section article hgroup').each(function(i, e) {
$(e).find('h3 a').css({
'margin-top': '-' + ($(e).height() + 100) + 'px'
}).addClass('adjusted');
});
}
function setupBlogHeaderScroll() {
if(isMobileView)
return;
var previousTarget,
activeTarget,
$window = $(window),
offsets = [],
targets = [],
$posts = $('.blog-section article hgroup h3 a').each(function() {
if (this.hash) {
targets.push(this.hash);
offsets.push($(this.hash).offset().top);
}
});
function processScroll(e) {
var scrollTop = $window.scrollTop(),
i = offsets.length;
for (i; i--;) {
if (activeTarget != targets[i] && scrollTop > offsets[i] && (!offsets[i + 1] || scrollTop < offsets[i + 1])) {
var hgroup = $(activeTarget).find("hgroup");
var margintop = '';
if (hgroup.length) {
margintop = '-' + ($(hgroup[0]).height() + 100) + 'px';
}
//set current target to be absolute
$("h3 a[href=" + activeTarget + "]").removeClass("active").css({
position: "absolute",
top: "auto",
'margin-top': margintop
});
//set new target to be fixed
activeTarget = targets[i];
$("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active");
}
if (activeTarget && activeTarget != targets[i] && scrollTop + 50 >= offsets[i] && (!offsets[i + 1] || scrollTop + 50 <= offsets[i + 1])) {
// if it's close to the new target scroll the current target up
$("h3 a[href=" + activeTarget + "]")
.removeClass("active")
.css({
position: "absolute",
top: ($(activeTarget).outerHeight(true) + $(activeTarget).offset().top - 50) + "px",
bottom: "auto"
});
}
if (activeTarget == targets[i] && scrollTop > offsets[i] - 50 && (!offsets[i + 1] || scrollTop <= offsets[i + 1] - 50)) {
// if the current target is not fixed make it fixed.
if (!$("h3 a[href=" + activeTarget + "]").hasClass("active")) {
$("h3 a[href=" + activeTarget + "]").attr('style', '').addClass("active");
}
}
}
}
$posts.click(function(e) {
if (!this.hash)
return;
$('html, body').stop().animate({
scrollTop: $(this.hash).offset().top
}, 500, 'linear');
processScroll();
e.preventDefault();
});
$window.scroll(processScroll).trigger("scroll");
}

View File

@@ -0,0 +1,53 @@
function setupDribbble(url, el) {
var href = el.href;
if ($('#dribbble-profile').length > 0) {
window.location = href;
return;
}
var params = url.attr('path').split('/').filter(function(w) {
if (w.length)
return true;
return false;
})
if (params.length == 1) {
var username = params[0];
var spinner = new Spinner(spin_opts).spin();
$('#dribbble-link').append(spinner.el);
require(["json!/dribbble/" + username, "text!templates/dribbble-view.html"],
function(dribbble_data, dribbble_view) {
if (dribbble_data.message || dribbble_data.length == 0) {
window.location = href;
return;
}
var template = Handlebars.compile(dribbble_view);
var user = dribbble_data.shots[0].player;
user.following_count = numberWithCommas(user.following_count);
user.followers_count = numberWithCommas(user.followers_count);
user.likes_count = numberWithCommas(user.likes_count);
var template_data = {
"user": user,
"shots": dribbble_data.shots
}
$(template(template_data)).modal().on('hidden', function () {
$(this).remove();
adjustSelection('home-link');
})
spinner.stop();
});
return;
}
window.location = href;
}

View File

@@ -0,0 +1,46 @@
function setupGithub(url, el) {
var href = el.href;
if ($('#github-profile').length > 0) {
window.location = href;
return;
}
var params = url.attr('path').split('/').filter(function(w) {
if (w.length)
return true;
return false;
})
if (params.length == 1) {
var username = params[0];
var spinner = new Spinner(spin_opts).spin();
$('#github-link').append(spinner.el);
require(["json!/github/" + username, "text!templates/github-view.html"],
function(github_data, github_view) {
if (github_data.error || github_data.length == 0) {
window.location = href;
return;
}
var template = Handlebars.compile(github_view);
github_data.user.following_count = numberWithCommas(github_data.user.following_count)
github_data.user.followers_count = numberWithCommas(github_data.user.followers_count)
$(template(github_data)).modal().on('hidden', function () {
$(this).remove();
adjustSelection('home-link');
})
spinner.stop();
});
return;
}
window.location = href;
}

View File

@@ -0,0 +1,66 @@
function setupInstagram(el) {
var href = el.href;
if($('#instagram-profile').length > 0) {
window.location = href;
return;
}
var spinner = new Spinner(spin_opts).spin();
$('#instagram-link').append(spinner.el);
require(["json!/instagram/",
"text!templates/instagram-view.html",
"text!templates/instagram-view-more.html"],
function(instagram_data, instagram_view, instagram_view_more) {
if (instagram_data.media == 0){
window.location = href;
return;
}
var template = Handlebars.compile(instagram_view);
var user_counts = instagram_data.user['counts'];
user_counts.media = numberWithCommas(user_counts.media);
user_counts.followed_by = numberWithCommas(user_counts.followed_by);
user_counts.follows = numberWithCommas(user_counts.follows);
$.each(instagram_data.media, function(i, p) {
p.formated_date = moment.unix(parseInt(p.created_time)).fromNow();
});
$(template(instagram_data)).modal().on('hidden', function () {
$(this).remove();
adjustSelection('home-link');
})
var more_template = Handlebars.compile(instagram_view_more);
$('#load-more-pics').click(function(e) {
next = $(this).attr('data-control-next');
var spinner = new Spinner(spin_opts).spin();
$('#load-more-pics').append(spinner.el);
$.getJSON('/instagram/' + next, function(data) {
$.each(data.media, function(i, p) {
p.formated_date = moment.unix(parseInt(p.created_time)).fromNow();
});
$('.instagram .profile-shots').append(more_template(data));
if (data.pagination && data.pagination['next_max_id'])
$('#load-more-pics').attr('data-control-next', data.pagination['next_max_id']);
else
$('#load-more-pics').remove();
spinner.stop();
});
})
spinner.stop();
});
}

View File

@@ -0,0 +1,67 @@
function setupLinks() {
$('a').click(function(e) {
e.preventDefault();
e.stopPropagation();
var url = $.url(this.href.replace('/#!', ''));
if (this.id == 'home-link' && window.location.pathname == '/') {
$('#github-profile').remove();
$('#dribbble-profile').remove();
$('#twitter-profile').remove();
$('#instagram-profile').remove();
$('.modal-backdrop').remove();
adjustSelection('home-link');
}
else if(this.id == 'instagram-link' && instagram_integration_enabled) {
$('#github-profile').remove();
$('#dribbble-profile').remove();
$('#twitter-profile').remove();
$('.modal-backdrop').remove();
adjustSelection('instagram-link');
setupInstagram(this);
}
else if (twitter_integration_enabled && (url.attr('host') == 'twitter.com' || url.attr('host') == 'www.twitter.com')) {
$('#github-profile').remove();
$('#dribbble-profile').remove();
$('#instagram-profile').remove();
$('.modal-backdrop').remove();
adjustSelection('twitter-link');
setupTwitter(url, this);
}
else if (github_integration_enabled && (url.attr('host') == 'github.com' || url.attr('host') == 'www.github.com')) {
$('#twitter-profile').remove();
$('#dribbble-profile').remove();
$('#instagram-profile').remove();
$('.modal-backdrop').remove();
adjustSelection('github-link');
setupGithub(url, this);
}
else if (dribbble_integration_enabled && (url.attr('host') == 'dribbble.com' || url.attr('host') == 'www.dribbble.com')) {
$('#twitter-profile').remove();
$('#github-profile').remove();
$('#instagram-profile').remove();
$('.modal-backdrop').remove();
adjustSelection('dribbble-link');
setupDribbble(url, this);
}
else {
window.location = this.href;
}
});
}
function adjustSelection(el) {
$('.main-nav').children('li').removeClass('sel');
$('#' + el).parent().addClass('sel');
}

View File

@@ -0,0 +1,15 @@
var isMobileView = false;
var mediaQuery = window.matchMedia("(max-width:600px)");
if (mediaQuery.matches) {
isMobileView = true;
}
$(function() {
$('#mobile-nav-btn').click(function() {
$('.main-section').toggleClass('nav-opened');
});
});

View File

@@ -0,0 +1,82 @@
function setupTwitter(url, el) {
var href = el.href;
if ($('#twitter-profile').length > 0) {
window.location = href;
return;
}
var params = url.attr('path').split('/').filter(function(w) {
if (w.length)
return true;
return false;
})
if (params.length == 1) {
var username = params[0];
var spinner = new Spinner(spin_opts).spin();
$('#twitter-link').append(spinner.el);
require(["json!/twitter/" + username, "text!templates/twitter-view.html"],
function(twitter_data, twitter_view) {
if (twitter_data.error || twitter_data.length == 0) {
window.location = href;
return;
}
var template = Handlebars.compile(twitter_view);
var tweets = [];
$.each(twitter_data, function(i, t) {
if (i > 3)
return;
//'ddd MMM DD HH:mm:ss ZZ YYYY'
t.formated_date = moment(t.created_at).fromNow();
t.f_text = twitterLinkify(t.text);
tweets.push(t);
});
var user = twitter_data[0].user;
user.statuses_count = numberWithCommas(user.statuses_count);
user.friends_count = numberWithCommas(user.friends_count);
user.followers_count = numberWithCommas(user.followers_count);
user.f_description = twitterLinkify(user.description);
var template_data = {
"user": user,
"tweets": tweets
}
$(template(template_data)).modal().on('hidden', function () {
$(this).remove();
adjustSelection('home-link');
})
spinner.stop();
});
return;
}
window.location = href;
}
function twitterLinkify(text) {
text = text.replace(/(https?:\/\/\S+)/gi, function (s) {
return '<a href="' + s + '">' + s + '</a>';
});
text = text.replace(/(^|) @(\w+)/gi, function (s) {
return '<a href="http://twitter.com/' + s + '">' + s + '</a>';
});
text = text.replace(/(^|) #(\w+)/gi, function (s) {
return '<a href="http://search.twitter.com/search?q=' + s.replace(/#/,'%23') + '">' + s + '</a>';
});
return text;
}

222
syte-pelican/static/js/libs/bootstrap-modal.js vendored Executable file
View File

@@ -0,0 +1,222 @@
/* =========================================================
* bootstrap-modal.js v2.0.3
* http://twitter.github.com/bootstrap/javascript.html#modals
* =========================================================
* Copyright 2012 Twitter, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* ========================================================= */
!function ($) {
"use strict"; // jshint ;_;
/* MODAL CLASS DEFINITION
* ====================== */
var Modal = function (content, options) {
this.options = options
this.$element = $(content)
.delegate('[data-dismiss="modal"]', 'click.dismiss.modal', $.proxy(this.hide, this))
}
Modal.prototype = {
constructor: Modal
, toggle: function () {
return this[!this.isShown ? 'show' : 'hide']()
}
, show: function () {
var that = this
, e = $.Event('show')
this.$element.trigger(e)
if (this.isShown || e.isDefaultPrevented()) return
$('body').addClass('modal-open')
this.isShown = true
escape.call(this)
backdrop.call(this, function () {
var transition = $.support.transition && that.$element.hasClass('fade')
if (!that.$element.parent().length) {
that.$element.appendTo(document.body) //don't move modals dom position
}
that.$element
.show()
if (transition) {
that.$element[0].offsetWidth // force reflow
}
//this mobile part is custom, im too lasy to extend this feature for this
if (isMobileView)
that.$element.css('top', (window.pageYOffset + 45) + 'px');
that.$element.addClass('in')
transition ?
that.$element.one($.support.transition.end, function () { that.$element.trigger('shown') }) :
that.$element.trigger('shown')
})
}
, hide: function (e) {
e && e.preventDefault()
var that = this
e = $.Event('hide')
this.$element.trigger(e)
if (!this.isShown || e.isDefaultPrevented()) return
this.isShown = false
$('body').removeClass('modal-open')
escape.call(this)
this.$element.removeClass('in')
$.support.transition && this.$element.hasClass('fade') ?
hideWithTransition.call(this) :
hideModal.call(this)
}
}
/* MODAL PRIVATE METHODS
* ===================== */
function hideWithTransition() {
var that = this
, timeout = setTimeout(function () {
that.$element.off($.support.transition.end)
hideModal.call(that)
}, 500)
this.$element.one($.support.transition.end, function () {
clearTimeout(timeout)
hideModal.call(that)
})
}
function hideModal(that) {
this.$element
.hide()
.trigger('hidden')
backdrop.call(this)
}
function backdrop(callback) {
var that = this
, animate = this.$element.hasClass('fade') ? 'fade' : ''
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
this.$backdrop = $('<div class="modal-backdrop ' + animate + '" />')
.appendTo(document.body)
if (this.options.backdrop != 'static') {
this.$backdrop.click($.proxy(this.hide, this))
}
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
this.$backdrop.addClass('in')
doAnimate ?
this.$backdrop.one($.support.transition.end, callback) :
callback()
} else if (!this.isShown && this.$backdrop) {
this.$backdrop.removeClass('in')
$.support.transition && this.$element.hasClass('fade')?
this.$backdrop.one($.support.transition.end, $.proxy(removeBackdrop, this)) :
removeBackdrop.call(this)
} else if (callback) {
callback()
}
}
function removeBackdrop() {
this.$backdrop.remove()
this.$backdrop = null
}
function escape() {
var that = this
if (this.isShown && this.options.keyboard) {
$(document).on('keyup.dismiss.modal', function ( e ) {
e.which == 27 && that.hide()
})
} else if (!this.isShown) {
$(document).off('keyup.dismiss.modal')
}
}
/* MODAL PLUGIN DEFINITION
* ======================= */
$.fn.modal = function (option) {
return this.each(function () {
var $this = $(this)
, data = $this.data('modal')
, options = $.extend({}, $.fn.modal.defaults, $this.data(), typeof option == 'object' && option)
if (!data) $this.data('modal', (data = new Modal(this, options)))
if (typeof option == 'string') data[option]()
else if (options.show) data.show()
})
}
$.fn.modal.defaults = {
backdrop: true
, keyboard: true
, show: true
}
$.fn.modal.Constructor = Modal
/* MODAL DATA-API
* ============== */
$(function () {
$('body').on('click.modal.data-api', '[data-toggle="modal"]', function ( e ) {
var $this = $(this), href
, $target = $($this.attr('data-target') || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '')) //strip for ie7
, option = $target.data('modal') ? 'toggle' : $.extend({}, $target.data(), $this.data())
e.preventDefault()
$target.modal(option)
})
})
}(window.jQuery);

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,162 @@
/*
* JQuery URL Parser plugin
* Developed and maintanined by Mark Perkins, mark@allmarkedup.com
* Source repository: https://github.com/allmarkedup/jQuery-URL-Parser
* Licensed under an MIT-style license. See https://github.com/allmarkedup/jQuery-URL-Parser/blob/master/LICENSE for details.
*/
;(function($, undefined) {
var tag2attr = {
a : 'href',
img : 'src',
form : 'action',
base : 'href',
script : 'src',
iframe : 'src',
link : 'href'
},
key = ["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","fragment"], // keys available to query
aliases = { "anchor" : "fragment" }, // aliases for backwards compatability
parser = {
strict : /^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/, //less intuitive, more accurate to the specs
loose : /^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/ // more intuitive, fails on relative paths and deviates from specs
},
querystring_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g, // supports both ampersand and semicolon-delimted query string key/value pairs
fragment_parser = /(?:^|&|;)([^&=;]*)=?([^&;]*)/g; // supports both ampersand and semicolon-delimted fragment key/value pairs
function parseUri( url, strictMode )
{
var str = decodeURI( url ),
res = parser[ strictMode || false ? "strict" : "loose" ].exec( str ),
uri = { attr : {}, param : {}, seg : {} },
i = 14;
while ( i-- )
{
uri.attr[ key[i] ] = res[i] || "";
}
// build query and fragment parameters
uri.param['query'] = {};
uri.param['fragment'] = {};
uri.attr['query'].replace( querystring_parser, function ( $0, $1, $2 ){
if ($1)
{
uri.param['query'][$1] = $2;
}
});
uri.attr['fragment'].replace( fragment_parser, function ( $0, $1, $2 ){
if ($1)
{
uri.param['fragment'][$1] = $2;
}
});
// split path and fragement into segments
uri.seg['path'] = uri.attr.path.replace(/^\/+|\/+$/g,'').split('/');
uri.seg['fragment'] = uri.attr.fragment.replace(/^\/+|\/+$/g,'').split('/');
// compile a 'base' domain attribute
uri.attr['base'] = uri.attr.host ? uri.attr.protocol+"://"+uri.attr.host + (uri.attr.port ? ":"+uri.attr.port : '') : '';
return uri;
};
function getAttrName( elm )
{
var tn = elm.tagName;
if ( tn !== undefined ) return tag2attr[tn.toLowerCase()];
return tn;
}
$.fn.url = function( strictMode )
{
var url = '';
if ( this.length )
{
url = $(this).attr( getAttrName(this[0]) ) || '';
}
return $.url( url, strictMode );
};
$.url = function( url, strictMode )
{
if ( arguments.length === 1 && url === true )
{
strictMode = true;
url = undefined;
}
strictMode = strictMode || false;
url = url || window.location.toString();
return {
data : parseUri(url, strictMode),
// get various attributes from the URI
attr : function( attr )
{
attr = aliases[attr] || attr;
return attr !== undefined ? this.data.attr[attr] : this.data.attr;
},
// return query string parameters
param : function( param )
{
return param !== undefined ? this.data.param.query[param] : this.data.param.query;
},
// return fragment parameters
fparam : function( param )
{
return param !== undefined ? this.data.param.fragment[param] : this.data.param.fragment;
},
// return path segments
segment : function( seg )
{
if ( seg === undefined )
{
return this.data.seg.path;
}
else
{
seg = seg < 0 ? this.data.seg.path.length + seg : seg - 1; // negative segments count from the end
return this.data.seg.path[seg];
}
},
// return fragment segments
fsegment : function( seg )
{
if ( seg === undefined )
{
return this.data.seg.fragment;
}
else
{
seg = seg < 0 ? this.data.seg.fragment.length + seg : seg - 1; // negative segments count from the end
return this.data.seg.fragment[seg];
}
}
};
};
})(jQuery);

View File

@@ -0,0 +1,42 @@
/*!
* RequireJS plugin for loading JSON files
* - depends on Text plugin and it was HEAVILY "inspired" by it as well.
*
* IMPORTANT: it only works on r.js optimizer after version 0.26+ 20011/09/27
*
* @author Miller Medeiros
* @version 0.0.1 (2011/06/10)
* Released under the WTFPL <http://sam.zoy.org/wtfpl/>
*/
define(['text'], function(text){
var jsonParse = (typeof JSON !== 'undefined' && typeof JSON.parse === 'function')? JSON.parse : function(val){
return eval('('+ val +')'); //quick and dirty
},
buildMap = {};
//API
return {
load : function(name, req, onLoad, config) {
text.get(req.toUrl(name), function(data){
if (config.isBuild) {
buildMap[name] = data;
onLoad(data);
} else {
onLoad(jsonParse(data));
}
});
},
//write method based on RequireJS official text plugin by James Burke
//https://github.com/jrburke/requirejs/blob/master/text.js
write : function(pluginName, moduleName, write){
if(moduleName in buildMap){
var content = buildMap[moduleName];
write('define("'+ pluginName +'!'+ moduleName +'", function(){ return '+ content +';});\n');
}
}
};
});

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,28 @@
var q=null;window.PR_SHOULD_USE_CONTINUATION=!0;
(function(){function L(a){function m(a){var f=a.charCodeAt(0);if(f!==92)return f;var b=a.charAt(1);return(f=r[b])?f:"0"<=b&&b<="7"?parseInt(a.substring(1),8):b==="u"||b==="x"?parseInt(a.substring(2),16):a.charCodeAt(1)}function e(a){if(a<32)return(a<16?"\\x0":"\\x")+a.toString(16);a=String.fromCharCode(a);if(a==="\\"||a==="-"||a==="["||a==="]")a="\\"+a;return a}function h(a){for(var f=a.substring(1,a.length-1).match(/\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\[0-3][0-7]{0,2}|\\[0-7]{1,2}|\\[\S\s]|[^\\]/g),a=
[],b=[],o=f[0]==="^",c=o?1:0,i=f.length;c<i;++c){var j=f[c];if(/\\[bdsw]/i.test(j))a.push(j);else{var j=m(j),d;c+2<i&&"-"===f[c+1]?(d=m(f[c+2]),c+=2):d=j;b.push([j,d]);d<65||j>122||(d<65||j>90||b.push([Math.max(65,j)|32,Math.min(d,90)|32]),d<97||j>122||b.push([Math.max(97,j)&-33,Math.min(d,122)&-33]))}}b.sort(function(a,f){return a[0]-f[0]||f[1]-a[1]});f=[];j=[NaN,NaN];for(c=0;c<b.length;++c)i=b[c],i[0]<=j[1]+1?j[1]=Math.max(j[1],i[1]):f.push(j=i);b=["["];o&&b.push("^");b.push.apply(b,a);for(c=0;c<
f.length;++c)i=f[c],b.push(e(i[0])),i[1]>i[0]&&(i[1]+1>i[0]&&b.push("-"),b.push(e(i[1])));b.push("]");return b.join("")}function y(a){for(var f=a.source.match(/\[(?:[^\\\]]|\\[\S\s])*]|\\u[\dA-Fa-f]{4}|\\x[\dA-Fa-f]{2}|\\\d+|\\[^\dux]|\(\?[!:=]|[()^]|[^()[\\^]+/g),b=f.length,d=[],c=0,i=0;c<b;++c){var j=f[c];j==="("?++i:"\\"===j.charAt(0)&&(j=+j.substring(1))&&j<=i&&(d[j]=-1)}for(c=1;c<d.length;++c)-1===d[c]&&(d[c]=++t);for(i=c=0;c<b;++c)j=f[c],j==="("?(++i,d[i]===void 0&&(f[c]="(?:")):"\\"===j.charAt(0)&&
(j=+j.substring(1))&&j<=i&&(f[c]="\\"+d[i]);for(i=c=0;c<b;++c)"^"===f[c]&&"^"!==f[c+1]&&(f[c]="");if(a.ignoreCase&&s)for(c=0;c<b;++c)j=f[c],a=j.charAt(0),j.length>=2&&a==="["?f[c]=h(j):a!=="\\"&&(f[c]=j.replace(/[A-Za-z]/g,function(a){a=a.charCodeAt(0);return"["+String.fromCharCode(a&-33,a|32)+"]"}));return f.join("")}for(var t=0,s=!1,l=!1,p=0,d=a.length;p<d;++p){var g=a[p];if(g.ignoreCase)l=!0;else if(/[a-z]/i.test(g.source.replace(/\\u[\da-f]{4}|\\x[\da-f]{2}|\\[^UXux]/gi,""))){s=!0;l=!1;break}}for(var r=
{b:8,t:9,n:10,v:11,f:12,r:13},n=[],p=0,d=a.length;p<d;++p){g=a[p];if(g.global||g.multiline)throw Error(""+g);n.push("(?:"+y(g)+")")}return RegExp(n.join("|"),l?"gi":"g")}function M(a){function m(a){switch(a.nodeType){case 1:if(e.test(a.className))break;for(var g=a.firstChild;g;g=g.nextSibling)m(g);g=a.nodeName;if("BR"===g||"LI"===g)h[s]="\n",t[s<<1]=y++,t[s++<<1|1]=a;break;case 3:case 4:g=a.nodeValue,g.length&&(g=p?g.replace(/\r\n?/g,"\n"):g.replace(/[\t\n\r ]+/g," "),h[s]=g,t[s<<1]=y,y+=g.length,
t[s++<<1|1]=a)}}var e=/(?:^|\s)nocode(?:\s|$)/,h=[],y=0,t=[],s=0,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=document.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);m(a);return{a:h.join("").replace(/\n$/,""),c:t}}function B(a,m,e,h){m&&(a={a:m,d:a},e(a),h.push.apply(h,a.e))}function x(a,m){function e(a){for(var l=a.d,p=[l,"pln"],d=0,g=a.a.match(y)||[],r={},n=0,z=g.length;n<z;++n){var f=g[n],b=r[f],o=void 0,c;if(typeof b===
"string")c=!1;else{var i=h[f.charAt(0)];if(i)o=f.match(i[1]),b=i[0];else{for(c=0;c<t;++c)if(i=m[c],o=f.match(i[1])){b=i[0];break}o||(b="pln")}if((c=b.length>=5&&"lang-"===b.substring(0,5))&&!(o&&typeof o[1]==="string"))c=!1,b="src";c||(r[f]=b)}i=d;d+=f.length;if(c){c=o[1];var j=f.indexOf(c),k=j+c.length;o[2]&&(k=f.length-o[2].length,j=k-c.length);b=b.substring(5);B(l+i,f.substring(0,j),e,p);B(l+i+j,c,C(b,c),p);B(l+i+k,f.substring(k),e,p)}else p.push(l+i,b)}a.e=p}var h={},y;(function(){for(var e=a.concat(m),
l=[],p={},d=0,g=e.length;d<g;++d){var r=e[d],n=r[3];if(n)for(var k=n.length;--k>=0;)h[n.charAt(k)]=r;r=r[1];n=""+r;p.hasOwnProperty(n)||(l.push(r),p[n]=q)}l.push(/[\S\s]/);y=L(l)})();var t=m.length;return e}function u(a){var m=[],e=[];a.tripleQuotedStrings?m.push(["str",/^(?:'''(?:[^'\\]|\\[\S\s]|''?(?=[^']))*(?:'''|$)|"""(?:[^"\\]|\\[\S\s]|""?(?=[^"]))*(?:"""|$)|'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$))/,q,"'\""]):a.multiLineStrings?m.push(["str",/^(?:'(?:[^'\\]|\\[\S\s])*(?:'|$)|"(?:[^"\\]|\\[\S\s])*(?:"|$)|`(?:[^\\`]|\\[\S\s])*(?:`|$))/,
q,"'\"`"]):m.push(["str",/^(?:'(?:[^\n\r'\\]|\\.)*(?:'|$)|"(?:[^\n\r"\\]|\\.)*(?:"|$))/,q,"\"'"]);a.verbatimStrings&&e.push(["str",/^@"(?:[^"]|"")*(?:"|$)/,q]);var h=a.hashComments;h&&(a.cStyleComments?(h>1?m.push(["com",/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,q,"#"]):m.push(["com",/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\n\r]*)/,q,"#"]),e.push(["str",/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,q])):m.push(["com",/^#[^\n\r]*/,
q,"#"]));a.cStyleComments&&(e.push(["com",/^\/\/[^\n\r]*/,q]),e.push(["com",/^\/\*[\S\s]*?(?:\*\/|$)/,q]));a.regexLiterals&&e.push(["lang-regex",/^(?:^^\.?|[!+-]|!=|!==|#|%|%=|&|&&|&&=|&=|\(|\*|\*=|\+=|,|-=|->|\/|\/=|:|::|;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|[?@[^]|\^=|\^\^|\^\^=|{|\||\|=|\|\||\|\|=|~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\s*(\/(?=[^*/])(?:[^/[\\]|\\[\S\s]|\[(?:[^\\\]]|\\[\S\s])*(?:]|$))+\/)/]);(h=a.types)&&e.push(["typ",h]);a=(""+a.keywords).replace(/^ | $/g,
"");a.length&&e.push(["kwd",RegExp("^(?:"+a.replace(/[\s,]+/g,"|")+")\\b"),q]);m.push(["pln",/^\s+/,q," \r\n\t\xa0"]);e.push(["lit",/^@[$_a-z][\w$@]*/i,q],["typ",/^(?:[@_]?[A-Z]+[a-z][\w$@]*|\w+_t\b)/,q],["pln",/^[$_a-z][\w$@]*/i,q],["lit",/^(?:0x[\da-f]+|(?:\d(?:_\d+)*\d*(?:\.\d*)?|\.\d\+)(?:e[+-]?\d+)?)[a-z]*/i,q,"0123456789"],["pln",/^\\[\S\s]?/,q],["pun",/^.[^\s\w"-$'./@\\`]*/,q]);return x(m,e)}function D(a,m){function e(a){switch(a.nodeType){case 1:if(k.test(a.className))break;if("BR"===a.nodeName)h(a),
a.parentNode&&a.parentNode.removeChild(a);else for(a=a.firstChild;a;a=a.nextSibling)e(a);break;case 3:case 4:if(p){var b=a.nodeValue,d=b.match(t);if(d){var c=b.substring(0,d.index);a.nodeValue=c;(b=b.substring(d.index+d[0].length))&&a.parentNode.insertBefore(s.createTextNode(b),a.nextSibling);h(a);c||a.parentNode.removeChild(a)}}}}function h(a){function b(a,d){var e=d?a.cloneNode(!1):a,f=a.parentNode;if(f){var f=b(f,1),g=a.nextSibling;f.appendChild(e);for(var h=g;h;h=g)g=h.nextSibling,f.appendChild(h)}return e}
for(;!a.nextSibling;)if(a=a.parentNode,!a)return;for(var a=b(a.nextSibling,0),e;(e=a.parentNode)&&e.nodeType===1;)a=e;d.push(a)}var k=/(?:^|\s)nocode(?:\s|$)/,t=/\r\n?|\n/,s=a.ownerDocument,l;a.currentStyle?l=a.currentStyle.whiteSpace:window.getComputedStyle&&(l=s.defaultView.getComputedStyle(a,q).getPropertyValue("white-space"));var p=l&&"pre"===l.substring(0,3);for(l=s.createElement("LI");a.firstChild;)l.appendChild(a.firstChild);for(var d=[l],g=0;g<d.length;++g)e(d[g]);m===(m|0)&&d[0].setAttribute("value",
m);var r=s.createElement("OL");r.className="linenums";for(var n=Math.max(0,m-1|0)||0,g=0,z=d.length;g<z;++g)l=d[g],l.className="L"+(g+n)%10,l.firstChild||l.appendChild(s.createTextNode("\xa0")),r.appendChild(l);a.appendChild(r)}function k(a,m){for(var e=m.length;--e>=0;){var h=m[e];A.hasOwnProperty(h)?window.console&&console.warn("cannot override language handler %s",h):A[h]=a}}function C(a,m){if(!a||!A.hasOwnProperty(a))a=/^\s*</.test(m)?"default-markup":"default-code";return A[a]}function E(a){var m=
a.g;try{var e=M(a.h),h=e.a;a.a=h;a.c=e.c;a.d=0;C(m,h)(a);var k=/\bMSIE\b/.test(navigator.userAgent),m=/\n/g,t=a.a,s=t.length,e=0,l=a.c,p=l.length,h=0,d=a.e,g=d.length,a=0;d[g]=s;var r,n;for(n=r=0;n<g;)d[n]!==d[n+2]?(d[r++]=d[n++],d[r++]=d[n++]):n+=2;g=r;for(n=r=0;n<g;){for(var z=d[n],f=d[n+1],b=n+2;b+2<=g&&d[b+1]===f;)b+=2;d[r++]=z;d[r++]=f;n=b}for(d.length=r;h<p;){var o=l[h+2]||s,c=d[a+2]||s,b=Math.min(o,c),i=l[h+1],j;if(i.nodeType!==1&&(j=t.substring(e,b))){k&&(j=j.replace(m,"\r"));i.nodeValue=
j;var u=i.ownerDocument,v=u.createElement("SPAN");v.className=d[a+1];var x=i.parentNode;x.replaceChild(v,i);v.appendChild(i);e<o&&(l[h+1]=i=u.createTextNode(t.substring(b,o)),x.insertBefore(i,v.nextSibling))}e=b;e>=o&&(h+=2);e>=c&&(a+=2)}}catch(w){"console"in window&&console.log(w&&w.stack?w.stack:w)}}var v=["break,continue,do,else,for,if,return,while"],w=[[v,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"],
"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"],F=[w,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"],G=[w,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"],
H=[G,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"],w=[w,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"],I=[v,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"],
J=[v,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"],v=[v,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"],K=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/,N=/\S/,O=u({keywords:[F,H,w,"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END"+
I,J,v],hashComments:!0,cStyleComments:!0,multiLineStrings:!0,regexLiterals:!0}),A={};k(O,["default-code"]);k(x([],[["pln",/^[^<?]+/],["dec",/^<!\w[^>]*(?:>|$)/],["com",/^<\!--[\S\s]*?(?:--\>|$)/],["lang-",/^<\?([\S\s]+?)(?:\?>|$)/],["lang-",/^<%([\S\s]+?)(?:%>|$)/],["pun",/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\S\s]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\S\s]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\S\s]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),
["default-markup","htm","html","mxml","xhtml","xml","xsl"]);k(x([["pln",/^\s+/,q," \t\r\n"],["atv",/^(?:"[^"]*"?|'[^']*'?)/,q,"\"'"]],[["tag",/^^<\/?[a-z](?:[\w-.:]*\w)?|\/?>$/i],["atn",/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^\s"'>]*(?:[^\s"'/>]|\/(?=\s)))/],["pun",/^[/<->]+/],["lang-js",/^on\w+\s*=\s*"([^"]+)"/i],["lang-js",/^on\w+\s*=\s*'([^']+)'/i],["lang-js",/^on\w+\s*=\s*([^\s"'>]+)/i],["lang-css",/^style\s*=\s*"([^"]+)"/i],["lang-css",/^style\s*=\s*'([^']+)'/i],["lang-css",
/^style\s*=\s*([^\s"'>]+)/i]]),["in.tag"]);k(x([],[["atv",/^[\S\s]+/]]),["uq.val"]);k(u({keywords:F,hashComments:!0,cStyleComments:!0,types:K}),["c","cc","cpp","cxx","cyc","m"]);k(u({keywords:"null,true,false"}),["json"]);k(u({keywords:H,hashComments:!0,cStyleComments:!0,verbatimStrings:!0,types:K}),["cs"]);k(u({keywords:G,cStyleComments:!0}),["java"]);k(u({keywords:v,hashComments:!0,multiLineStrings:!0}),["bsh","csh","sh"]);k(u({keywords:I,hashComments:!0,multiLineStrings:!0,tripleQuotedStrings:!0}),
["cv","py"]);k(u({keywords:"caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END",hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["perl","pl","pm"]);k(u({keywords:J,hashComments:!0,multiLineStrings:!0,regexLiterals:!0}),["rb"]);k(u({keywords:w,cStyleComments:!0,regexLiterals:!0}),["js"]);k(u({keywords:"all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes",
hashComments:3,cStyleComments:!0,multilineStrings:!0,tripleQuotedStrings:!0,regexLiterals:!0}),["coffee"]);k(x([],[["str",/^[\S\s]+/]]),["regex"]);window.prettyPrintOne=function(a,m,e){var h=document.createElement("PRE");h.innerHTML=a;e&&D(h,e);E({g:m,i:e,h:h});return h.innerHTML};window.prettyPrint=function(a){function m(){for(var e=window.PR_SHOULD_USE_CONTINUATION?l.now()+250:Infinity;p<h.length&&l.now()<e;p++){var n=h[p],k=n.className;if(k.indexOf("prettyprint")>=0){var k=k.match(g),f,b;if(b=
!k){b=n;for(var o=void 0,c=b.firstChild;c;c=c.nextSibling)var i=c.nodeType,o=i===1?o?b:c:i===3?N.test(c.nodeValue)?b:o:o;b=(f=o===b?void 0:o)&&"CODE"===f.tagName}b&&(k=f.className.match(g));k&&(k=k[1]);b=!1;for(o=n.parentNode;o;o=o.parentNode)if((o.tagName==="pre"||o.tagName==="code"||o.tagName==="xmp")&&o.className&&o.className.indexOf("prettyprint")>=0){b=!0;break}b||((b=(b=n.className.match(/\blinenums\b(?::(\d+))?/))?b[1]&&b[1].length?+b[1]:!0:!1)&&D(n,b),d={g:k,h:n,i:b},E(d))}}p<h.length?setTimeout(m,
250):a&&a()}for(var e=[document.getElementsByTagName("pre"),document.getElementsByTagName("code"),document.getElementsByTagName("xmp")],h=[],k=0;k<e.length;++k)for(var t=0,s=e[k].length;t<s;++t)h.push(e[k][t]);var e=q,l=Date;l.now||(l={now:function(){return+new Date}});var p=0,d,g=/\blang(?:uage)?-([\w.]+)(?!\S)/;m()};window.PR={createSimpleLexer:x,registerLangHandler:k,sourceDecorator:u,PR_ATTRIB_NAME:"atn",PR_ATTRIB_VALUE:"atv",PR_COMMENT:"com",PR_DECLARATION:"dec",PR_KEYWORD:"kwd",PR_LITERAL:"lit",
PR_NOCODE:"nocode",PR_PLAIN:"pln",PR_PUNCTUATION:"pun",PR_SOURCE:"src",PR_STRING:"str",PR_TAG:"tag",PR_TYPE:"typ"}})();

View File

@@ -0,0 +1,33 @@
/*
RequireJS 1.0.8 Copyright (c) 2010-2012, The Dojo Foundation All Rights Reserved.
Available via the MIT or new BSD license.
see: http://github.com/jrburke/requirejs for details
*/
var requirejs,require,define;
(function(r){function K(a){return O.call(a)==="[object Function]"}function G(a){return O.call(a)==="[object Array]"}function $(a,c,l){for(var j in c)if(!(j in L)&&(!(j in a)||l))a[j]=c[j];return d}function P(a,c,d){a=Error(c+"\nhttp://requirejs.org/docs/errors.html#"+a);if(d)a.originalError=d;return a}function aa(a,c,d){var j,k,t;for(j=0;t=c[j];j++){t=typeof t==="string"?{name:t}:t;k=t.location;if(d&&(!k||k.indexOf("/")!==0&&k.indexOf(":")===-1))k=d+"/"+(k||t.name);a[t.name]={name:t.name,location:k||
t.name,main:(t.main||"main").replace(fa,"").replace(ba,"")}}}function V(a,c){a.holdReady?a.holdReady(c):c?a.readyWait+=1:a.ready(!0)}function ga(a){function c(b,f){var g,m;if(b&&b.charAt(0)===".")if(f){q.pkgs[f]?f=[f]:(f=f.split("/"),f=f.slice(0,f.length-1));g=b=f.concat(b.split("/"));var a;for(m=0;a=g[m];m++)if(a===".")g.splice(m,1),m-=1;else if(a==="..")if(m===1&&(g[2]===".."||g[0]===".."))break;else m>0&&(g.splice(m-1,2),m-=2);m=q.pkgs[g=b[0]];b=b.join("/");m&&b===g+"/"+m.main&&(b=g)}else b.indexOf("./")===
0&&(b=b.substring(2));return b}function l(b,f){var g=b?b.indexOf("!"):-1,m=null,a=f?f.name:null,h=b,e,d;g!==-1&&(m=b.substring(0,g),b=b.substring(g+1,b.length));m&&(m=c(m,a));b&&(m?e=(g=n[m])&&g.normalize?g.normalize(b,function(b){return c(b,a)}):c(b,a):(e=c(b,a),d=G[e],d||(d=i.nameToUrl(b,null,f),G[e]=d)));return{prefix:m,name:e,parentMap:f,url:d,originalName:h,fullName:m?m+"!"+(e||""):e}}function j(){var b=!0,f=q.priorityWait,g,a;if(f){for(a=0;g=f[a];a++)if(!s[g]){b=!1;break}b&&delete q.priorityWait}return b}
function k(b,f,g){return function(){var a=ha.call(arguments,0),c;if(g&&K(c=a[a.length-1]))c.__requireJsBuild=!0;a.push(f);return b.apply(null,a)}}function t(b,f,g){f=k(g||i.require,b,f);$(f,{nameToUrl:k(i.nameToUrl,b),toUrl:k(i.toUrl,b),defined:k(i.requireDefined,b),specified:k(i.requireSpecified,b),isBrowser:d.isBrowser});return f}function p(b){var f,g,a,c=b.callback,h=b.map,e=h.fullName,ca=b.deps;a=b.listeners;var j=q.requireExecCb||d.execCb;if(c&&K(c)){if(q.catchError.define)try{g=j(e,b.callback,
ca,n[e])}catch(k){f=k}else g=j(e,b.callback,ca,n[e]);if(e)(c=b.cjsModule)&&c.exports!==r&&c.exports!==n[e]?g=n[e]=b.cjsModule.exports:g===r&&b.usingExports?g=n[e]:(n[e]=g,H[e]&&(T[e]=!0))}else e&&(g=n[e]=c,H[e]&&(T[e]=!0));if(x[b.id])delete x[b.id],b.isDone=!0,i.waitCount-=1,i.waitCount===0&&(J=[]);delete M[e];if(d.onResourceLoad&&!b.placeholder)d.onResourceLoad(i,h,b.depArray);if(f)return g=(e?l(e).url:"")||f.fileName||f.sourceURL,a=f.moduleTree,f=P("defineerror",'Error evaluating module "'+e+'" at location "'+
g+'":\n'+f+"\nfileName:"+g+"\nlineNumber: "+(f.lineNumber||f.line),f),f.moduleName=e,f.moduleTree=a,d.onError(f);for(f=0;c=a[f];f++)c(g);return r}function u(b,f){return function(g){b.depDone[f]||(b.depDone[f]=!0,b.deps[f]=g,b.depCount-=1,b.depCount||p(b))}}function o(b,f){var g=f.map,a=g.fullName,c=g.name,h=N[b]||(N[b]=n[b]),e;if(!f.loading)f.loading=!0,e=function(b){f.callback=function(){return b};p(f);s[f.id]=!0;A()},e.fromText=function(b,f){var g=Q;s[b]=!1;i.scriptCount+=1;i.fake[b]=!0;g&&(Q=!1);
d.exec(f);g&&(Q=!0);i.completeLoad(b)},a in n?e(n[a]):h.load(c,t(g.parentMap,!0,function(b,a){var c=[],e,m;for(e=0;m=b[e];e++)m=l(m,g.parentMap),b[e]=m.fullName,m.prefix||c.push(b[e]);f.moduleDeps=(f.moduleDeps||[]).concat(c);return i.require(b,a)}),e,q)}function y(b){x[b.id]||(x[b.id]=b,J.push(b),i.waitCount+=1)}function D(b){this.listeners.push(b)}function v(b,f){var g=b.fullName,a=b.prefix,c=a?N[a]||(N[a]=n[a]):null,h,e;g&&(h=M[g]);if(!h&&(e=!0,h={id:(a&&!c?O++ +"__p@:":"")+(g||"__r@"+O++),map:b,
depCount:0,depDone:[],depCallbacks:[],deps:[],listeners:[],add:D},B[h.id]=!0,g&&(!a||N[a])))M[g]=h;a&&!c?(g=l(a),a in n&&!n[a]&&(delete n[a],delete R[g.url]),a=v(g,!0),a.add(function(){var f=l(b.originalName,b.parentMap),f=v(f,!0);h.placeholder=!0;f.add(function(b){h.callback=function(){return b};p(h)})})):e&&f&&(s[h.id]=!1,i.paused.push(h),y(h));return h}function C(b,f,a,c){var b=l(b,c),d=b.name,h=b.fullName,e=v(b),j=e.id,k=e.deps,o;if(h){if(h in n||s[j]===!0||h==="jquery"&&q.jQuery&&q.jQuery!==
a().fn.jquery)return;B[j]=!0;s[j]=!0;h==="jquery"&&a&&W(a())}e.depArray=f;e.callback=a;for(a=0;a<f.length;a++)if(j=f[a])j=l(j,d?b:c),o=j.fullName,f[a]=o,o==="require"?k[a]=t(b):o==="exports"?(k[a]=n[h]={},e.usingExports=!0):o==="module"?e.cjsModule=k[a]={id:d,uri:d?i.nameToUrl(d,null,c):r,exports:n[h]}:o in n&&!(o in x)&&(!(h in H)||h in H&&T[o])?k[a]=n[o]:(h in H&&(H[o]=!0,delete n[o],R[j.url]=!1),e.depCount+=1,e.depCallbacks[a]=u(e,a),v(j,!0).add(e.depCallbacks[a]));e.depCount?y(e):p(e)}function w(b){C.apply(null,
b)}function F(b,f){var a=b.map.fullName,c=b.depArray,d=!0,h,e,i,l;if(b.isDone||!a||!s[a])return l;if(f[a])return b;f[a]=!0;if(c){for(h=0;h<c.length;h++){e=c[h];if(!s[e]&&!ia[e]){d=!1;break}if((i=x[e])&&!i.isDone&&s[e])if(l=F(i,f))break}d||(l=r,delete f[a])}return l}function z(b,a){var g=b.map.fullName,c=b.depArray,d,h,e,i;if(b.isDone||!g||!s[g])return r;if(g){if(a[g])return n[g];a[g]=!0}if(c)for(d=0;d<c.length;d++)if(h=c[d])if((e=l(h).prefix)&&(i=x[e])&&z(i,a),(e=x[h])&&!e.isDone&&s[h])h=z(e,a),b.depCallbacks[d](h);
return n[g]}function E(){var b=q.waitSeconds*1E3,b=b&&i.startTime+b<(new Date).getTime(),a="",c=!1,l=!1,k=[],h,e;if(i.pausedCount>0)return r;if(q.priorityWait)if(j())A();else return r;for(h in s)if(!(h in L)&&(c=!0,!s[h]))if(b)a+=h+" ";else if(l=!0,h.indexOf("!")===-1){k=[];break}else(e=M[h]&&M[h].moduleDeps)&&k.push.apply(k,e);if(!c&&!i.waitCount)return r;if(b&&a)return b=P("timeout","Load timeout for modules: "+a),b.requireType="timeout",b.requireModules=a,b.contextName=i.contextName,d.onError(b);
if(l&&k.length)for(a=0;h=x[k[a]];a++)if(h=F(h,{})){z(h,{});break}if(!b&&(l||i.scriptCount)){if((I||da)&&!X)X=setTimeout(function(){X=0;E()},50);return r}if(i.waitCount){for(a=0;h=J[a];a++)z(h,{});i.paused.length&&A();Y<5&&(Y+=1,E())}Y=0;d.checkReadyState();return r}var i,A,q={waitSeconds:7,baseUrl:"./",paths:{},pkgs:{},catchError:{}},S=[],B={require:!0,exports:!0,module:!0},G={},n={},s={},x={},J=[],R={},O=0,M={},N={},H={},T={},Z=0;W=function(b){if(!i.jQuery&&(b=b||(typeof jQuery!=="undefined"?jQuery:
null))&&!(q.jQuery&&b.fn.jquery!==q.jQuery)&&("holdReady"in b||"readyWait"in b))if(i.jQuery=b,w(["jquery",[],function(){return jQuery}]),i.scriptCount)V(b,!0),i.jQueryIncremented=!0};A=function(){var b,a,c,l,k,h;i.takeGlobalQueue();Z+=1;if(i.scriptCount<=0)i.scriptCount=0;for(;S.length;)if(b=S.shift(),b[0]===null)return d.onError(P("mismatch","Mismatched anonymous define() module: "+b[b.length-1]));else w(b);if(!q.priorityWait||j())for(;i.paused.length;){k=i.paused;i.pausedCount+=k.length;i.paused=
[];for(l=0;b=k[l];l++)a=b.map,c=a.url,h=a.fullName,a.prefix?o(a.prefix,b):!R[c]&&!s[h]&&((q.requireLoad||d.load)(i,h,c),c.indexOf("empty:")!==0&&(R[c]=!0));i.startTime=(new Date).getTime();i.pausedCount-=k.length}Z===1&&E();Z-=1;return r};i={contextName:a,config:q,defQueue:S,waiting:x,waitCount:0,specified:B,loaded:s,urlMap:G,urlFetched:R,scriptCount:0,defined:n,paused:[],pausedCount:0,plugins:N,needFullExec:H,fake:{},fullExec:T,managerCallbacks:M,makeModuleMap:l,normalize:c,configure:function(b){var a,
c,d;b.baseUrl&&b.baseUrl.charAt(b.baseUrl.length-1)!=="/"&&(b.baseUrl+="/");a=q.paths;d=q.pkgs;$(q,b,!0);if(b.paths){for(c in b.paths)c in L||(a[c]=b.paths[c]);q.paths=a}if((a=b.packagePaths)||b.packages){if(a)for(c in a)c in L||aa(d,a[c],c);b.packages&&aa(d,b.packages);q.pkgs=d}if(b.priority)c=i.requireWait,i.requireWait=!1,A(),i.require(b.priority),A(),i.requireWait=c,q.priorityWait=b.priority;if(b.deps||b.callback)i.require(b.deps||[],b.callback)},requireDefined:function(b,a){return l(b,a).fullName in
n},requireSpecified:function(b,a){return l(b,a).fullName in B},require:function(b,c,g){if(typeof b==="string"){if(K(c))return d.onError(P("requireargs","Invalid require call"));if(d.get)return d.get(i,b,c);c=l(b,c);b=c.fullName;return!(b in n)?d.onError(P("notloaded","Module name '"+c.fullName+"' has not been loaded yet for context: "+a)):n[b]}(b&&b.length||c)&&C(null,b,c,g);if(!i.requireWait)for(;!i.scriptCount&&i.paused.length;)A();return i.require},takeGlobalQueue:function(){U.length&&(ja.apply(i.defQueue,
[i.defQueue.length-1,0].concat(U)),U=[])},completeLoad:function(b){var a;for(i.takeGlobalQueue();S.length;)if(a=S.shift(),a[0]===null){a[0]=b;break}else if(a[0]===b)break;else w(a),a=null;a?w(a):w([b,[],b==="jquery"&&typeof jQuery!=="undefined"?function(){return jQuery}:null]);d.isAsync&&(i.scriptCount-=1);A();d.isAsync||(i.scriptCount-=1)},toUrl:function(b,a){var c=b.lastIndexOf("."),d=null;c!==-1&&(d=b.substring(c,b.length),b=b.substring(0,c));return i.nameToUrl(b,d,a)},nameToUrl:function(b,a,g){var l,
k,h,e,j=i.config,b=c(b,g&&g.fullName);if(d.jsExtRegExp.test(b))a=b+(a?a:"");else{l=j.paths;k=j.pkgs;g=b.split("/");for(e=g.length;e>0;e--)if(h=g.slice(0,e).join("/"),l[h]){g.splice(0,e,l[h]);break}else if(h=k[h]){b=b===h.name?h.location+"/"+h.main:h.location;g.splice(0,e,b);break}a=g.join("/")+(a||".js");a=(a.charAt(0)==="/"||a.match(/^[\w\+\.\-]+:/)?"":j.baseUrl)+a}return j.urlArgs?a+((a.indexOf("?")===-1?"?":"&")+j.urlArgs):a}};i.jQueryCheck=W;i.resume=A;return i}function ka(){var a,c,d;if(C&&C.readyState===
"interactive")return C;a=document.getElementsByTagName("script");for(c=a.length-1;c>-1&&(d=a[c]);c--)if(d.readyState==="interactive")return C=d;return null}var la=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/mg,ma=/require\(\s*["']([^'"\s]+)["']\s*\)/g,fa=/^\.\//,ba=/\.js$/,O=Object.prototype.toString,u=Array.prototype,ha=u.slice,ja=u.splice,I=!!(typeof window!=="undefined"&&navigator&&document),da=!I&&typeof importScripts!=="undefined",na=I&&navigator.platform==="PLAYSTATION 3"?/^complete$/:/^(complete|loaded)$/,
ea=typeof opera!=="undefined"&&opera.toString()==="[object Opera]",L={},D={},U=[],C=null,Y=0,Q=!1,ia={require:!0,module:!0,exports:!0},d,u={},J,y,v,E,o,w,F,B,z,W,X;if(typeof define==="undefined"){if(typeof requirejs!=="undefined")if(K(requirejs))return;else u=requirejs,requirejs=r;typeof require!=="undefined"&&!K(require)&&(u=require,require=r);d=requirejs=function(a,c,d){var j="_",k;!G(a)&&typeof a!=="string"&&(k=a,G(c)?(a=c,c=d):a=[]);if(k&&k.context)j=k.context;d=D[j]||(D[j]=ga(j));k&&d.configure(k);
return d.require(a,c)};d.config=function(a){return d(a)};require||(require=d);d.toUrl=function(a){return D._.toUrl(a)};d.version="1.0.8";d.jsExtRegExp=/^\/|:|\?|\.js$/;y=d.s={contexts:D,skipAsync:{}};if(d.isAsync=d.isBrowser=I)if(v=y.head=document.getElementsByTagName("head")[0],E=document.getElementsByTagName("base")[0])v=y.head=E.parentNode;d.onError=function(a){throw a;};d.load=function(a,c,l){d.resourcesReady(!1);a.scriptCount+=1;d.attach(l,a,c);if(a.jQuery&&!a.jQueryIncremented)V(a.jQuery,!0),
a.jQueryIncremented=!0};define=function(a,c,d){var j,k;typeof a!=="string"&&(d=c,c=a,a=null);G(c)||(d=c,c=[]);!c.length&&K(d)&&d.length&&(d.toString().replace(la,"").replace(ma,function(a,d){c.push(d)}),c=(d.length===1?["require"]:["require","exports","module"]).concat(c));if(Q&&(j=J||ka()))a||(a=j.getAttribute("data-requiremodule")),k=D[j.getAttribute("data-requirecontext")];(k?k.defQueue:U).push([a,c,d]);return r};define.amd={multiversion:!0,plugins:!0,jQuery:!0};d.exec=function(a){return eval(a)};
d.execCb=function(a,c,d,j){return c.apply(j,d)};d.addScriptToDom=function(a){J=a;E?v.insertBefore(a,E):v.appendChild(a);J=null};d.onScriptLoad=function(a){var c=a.currentTarget||a.srcElement,l;if(a.type==="load"||c&&na.test(c.readyState))C=null,a=c.getAttribute("data-requirecontext"),l=c.getAttribute("data-requiremodule"),D[a].completeLoad(l),c.detachEvent&&!ea?c.detachEvent("onreadystatechange",d.onScriptLoad):c.removeEventListener("load",d.onScriptLoad,!1)};d.attach=function(a,c,l,j,k,o){var p;
if(I)return j=j||d.onScriptLoad,p=c&&c.config&&c.config.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script"),p.type=k||c&&c.config.scriptType||"text/javascript",p.charset="utf-8",p.async=!y.skipAsync[a],c&&p.setAttribute("data-requirecontext",c.contextName),p.setAttribute("data-requiremodule",l),p.attachEvent&&!(p.attachEvent.toString&&p.attachEvent.toString().indexOf("[native code]")<0)&&!ea?(Q=!0,o?p.onreadystatechange=function(){if(p.readyState===
"loaded")p.onreadystatechange=null,p.attachEvent("onreadystatechange",j),o(p)}:p.attachEvent("onreadystatechange",j)):p.addEventListener("load",j,!1),p.src=a,o||d.addScriptToDom(p),p;else da&&(importScripts(a),c.completeLoad(l));return null};if(I){o=document.getElementsByTagName("script");for(B=o.length-1;B>-1&&(w=o[B]);B--){if(!v)v=w.parentNode;if(F=w.getAttribute("data-main")){if(!u.baseUrl)o=F.split("/"),w=o.pop(),o=o.length?o.join("/")+"/":"./",u.baseUrl=o,F=w.replace(ba,"");u.deps=u.deps?u.deps.concat(F):
[F];break}}}d.checkReadyState=function(){var a=y.contexts,c;for(c in a)if(!(c in L)&&a[c].waitCount)return;d.resourcesReady(!0)};d.resourcesReady=function(a){var c,l;d.resourcesDone=a;if(d.resourcesDone)for(l in a=y.contexts,a)if(!(l in L)&&(c=a[l],c.jQueryIncremented))V(c.jQuery,!1),c.jQueryIncremented=!1};d.pageLoaded=function(){if(document.readyState!=="complete")document.readyState="complete"};if(I&&document.addEventListener&&!document.readyState)document.readyState="loading",window.addEventListener("load",
d.pageLoaded,!1);d(u);if(d.isAsync&&typeof setTimeout!=="undefined")z=y.contexts[u.context||"_"],z.requireWait=!0,setTimeout(function(){z.requireWait=!1;z.scriptCount||z.resume();d.checkReadyState()},0)}})();

View File

@@ -0,0 +1,2 @@
//fgnass.github.com/spin.js#v1.2.5
(function(a,b,c){function g(a,c){var d=b.createElement(a||"div"),e;for(e in c)d[e]=c[e];return d}function h(a){for(var b=1,c=arguments.length;b<c;b++)a.appendChild(arguments[b]);return a}function j(a,b,c,d){var g=["opacity",b,~~(a*100),c,d].join("-"),h=.01+c/d*100,j=Math.max(1-(1-a)/b*(100-h),a),k=f.substring(0,f.indexOf("Animation")).toLowerCase(),l=k&&"-"+k+"-"||"";return e[g]||(i.insertRule("@"+l+"keyframes "+g+"{"+"0%{opacity:"+j+"}"+h+"%{opacity:"+a+"}"+(h+.01)+"%{opacity:1}"+(h+b)%100+"%{opacity:"+a+"}"+"100%{opacity:"+j+"}"+"}",0),e[g]=1),g}function k(a,b){var e=a.style,f,g;if(e[b]!==c)return b;b=b.charAt(0).toUpperCase()+b.slice(1);for(g=0;g<d.length;g++){f=d[g]+b;if(e[f]!==c)return f}}function l(a,b){for(var c in b)a.style[k(a,c)||c]=b[c];return a}function m(a){for(var b=1;b<arguments.length;b++){var d=arguments[b];for(var e in d)a[e]===c&&(a[e]=d[e])}return a}function n(a){var b={x:a.offsetLeft,y:a.offsetTop};while(a=a.offsetParent)b.x+=a.offsetLeft,b.y+=a.offsetTop;return b}var d=["webkit","Moz","ms","O"],e={},f,i=function(){var a=g("style");return h(b.getElementsByTagName("head")[0],a),a.sheet||a.styleSheet}(),o={lines:12,length:7,width:5,radius:10,rotate:0,color:"#000",speed:1,trail:100,opacity:.25,fps:20,zIndex:2e9,className:"spinner",top:"auto",left:"auto"},p=function q(a){if(!this.spin)return new q(a);this.opts=m(a||{},q.defaults,o)};p.defaults={},m(p.prototype,{spin:function(a){this.stop();var b=this,c=b.opts,d=b.el=l(g(0,{className:c.className}),{position:"relative",zIndex:c.zIndex}),e=c.radius+c.length+c.width,h,i;a&&(a.insertBefore(d,a.firstChild||null),i=n(a),h=n(d),l(d,{left:(c.left=="auto"?i.x-h.x+(a.offsetWidth>>1):c.left+e)+"px",top:(c.top=="auto"?i.y-h.y+(a.offsetHeight>>1):c.top+e)+"px"})),d.setAttribute("aria-role","progressbar"),b.lines(d,b.opts);if(!f){var j=0,k=c.fps,m=k/c.speed,o=(1-c.opacity)/(m*c.trail/100),p=m/c.lines;!function q(){j++;for(var a=c.lines;a;a--){var e=Math.max(1-(j+a*p)%m*o,c.opacity);b.opacity(d,c.lines-a,e,c)}b.timeout=b.el&&setTimeout(q,~~(1e3/k))}()}return b},stop:function(){var a=this.el;return a&&(clearTimeout(this.timeout),a.parentNode&&a.parentNode.removeChild(a),this.el=c),this},lines:function(a,b){function e(a,d){return l(g(),{position:"absolute",width:b.length+b.width+"px",height:b.width+"px",background:a,boxShadow:d,transformOrigin:"left",transform:"rotate("+~~(360/b.lines*c+b.rotate)+"deg) translate("+b.radius+"px"+",0)",borderRadius:(b.width>>1)+"px"})}var c=0,d;for(;c<b.lines;c++)d=l(g(),{position:"absolute",top:1+~(b.width/2)+"px",transform:b.hwaccel?"translate3d(0,0,0)":"",opacity:b.opacity,animation:f&&j(b.opacity,b.trail,c,b.lines)+" "+1/b.speed+"s linear infinite"}),b.shadow&&h(d,l(e("#000","0 0 4px #000"),{top:"2px"})),h(a,h(d,e(b.color,"0 0 1px rgba(0,0,0,.1)")));return a},opacity:function(a,b,c){b<a.childNodes.length&&(a.childNodes[b].style.opacity=c)}}),!function(){function a(a,b){return g("<"+a+' xmlns="urn:schemas-microsoft.com:vml" class="spin-vml">',b)}var b=l(g("group"),{behavior:"url(#default#VML)"});!k(b,"transform")&&b.adj?(i.addRule(".spin-vml","behavior:url(#default#VML)"),p.prototype.lines=function(b,c){function f(){return l(a("group",{coordsize:e+" "+e,coordorigin:-d+" "+ -d}),{width:e,height:e})}function k(b,e,g){h(i,h(l(f(),{rotation:360/c.lines*b+"deg",left:~~e}),h(l(a("roundrect",{arcsize:1}),{width:d,height:c.width,left:c.radius,top:-c.width>>1,filter:g}),a("fill",{color:c.color,opacity:c.opacity}),a("stroke",{opacity:0}))))}var d=c.length+c.width,e=2*d,g=-(c.width+c.length)*2+"px",i=l(f(),{position:"absolute",top:g,left:g}),j;if(c.shadow)for(j=1;j<=c.lines;j++)k(j,-2,"progid:DXImageTransform.Microsoft.Blur(pixelradius=2,makeshadow=1,shadowopacity=.3)");for(j=1;j<=c.lines;j++)k(j);return h(b,i)},p.prototype.opacity=function(a,b,c,d){var e=a.firstChild;d=d.shadow&&d.lines||0,e&&b+d<e.childNodes.length&&(e=e.childNodes[b+d],e=e&&e.firstChild,e=e&&e.firstChild,e&&(e.opacity=c))}):f=k(b,"animation")}(),a.Spinner=p})(window,document);

View File

@@ -0,0 +1,11 @@
/*
RequireJS text 1.0.8 Copyright (c) 2010-2011, The Dojo Foundation All Rights Reserved.
Available via the MIT or new BSD license.
see: http://github.com/jrburke/requirejs for details
*/
(function(){var k=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],m=/^\s*<\?xml(\s)+version=[\'\"](\d)*.(\d)*[\'\"](\s)*\?>/im,n=/<body[^>]*>\s*([\s\S]+)\s*<\/body>/im,i=typeof location!=="undefined"&&location.href,o=i&&location.protocol&&location.protocol.replace(/\:/,""),p=i&&location.hostname,q=i&&(location.port||void 0),j=[];define(function(){var e,l;e={version:"1.0.8",strip:function(a){if(a){var a=a.replace(m,""),c=a.match(n);c&&(a=c[1])}else a="";return a},jsEscape:function(a){return a.replace(/(['\\])/g,
"\\$1").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},createXhr:function(){var a,c,b;if(typeof XMLHttpRequest!=="undefined")return new XMLHttpRequest;else if(typeof ActiveXObject!=="undefined")for(c=0;c<3;c++){b=k[c];try{a=new ActiveXObject(b)}catch(f){}if(a){k=[b];break}}return a},parseName:function(a){var c=!1,b=a.indexOf("."),f=a.substring(0,b),a=a.substring(b+1,a.length),b=a.indexOf("!");b!==-1&&(c=a.substring(b+1,a.length),
c=c==="strip",a=a.substring(0,b));return{moduleName:f,ext:a,strip:c}},xdRegExp:/^((\w+)\:)?\/\/([^\/\\]+)/,useXhr:function(a,c,b,f){var d=e.xdRegExp.exec(a),g;if(!d)return!0;a=d[2];d=d[3];d=d.split(":");g=d[1];d=d[0];return(!a||a===c)&&(!d||d===b)&&(!g&&!d||g===f)},finishLoad:function(a,c,b,f,d){b=c?e.strip(b):b;d.isBuild&&(j[a]=b);f(b)},load:function(a,c,b,f){if(f.isBuild&&!f.inlineText)b();else{var d=e.parseName(a),g=d.moduleName+"."+d.ext,h=c.toUrl(g),r=f&&f.text&&f.text.useXhr||e.useXhr;!i||r(h,
o,p,q)?e.get(h,function(c){e.finishLoad(a,d.strip,c,b,f)}):c([g],function(a){e.finishLoad(d.moduleName+"."+d.ext,d.strip,a,b,f)})}},write:function(a,c,b){if(j.hasOwnProperty(c)){var f=e.jsEscape(j[c]);b.asModule(a+"!"+c,"define(function () { return '"+f+"';});\n")}},writeFile:function(a,c,b,f,d){var c=e.parseName(c),g=c.moduleName+"."+c.ext,h=b.toUrl(c.moduleName+"."+c.ext)+".js";e.load(g,b,function(){var b=function(a){return f(h,a)};b.asModule=function(a,b){return f.asModule(a,h,b)};e.write(a,g,
b,d)},d)}};if(e.createXhr())e.get=function(a,c){var b=e.createXhr();b.open("GET",a,!0);b.onreadystatechange=function(){b.readyState===4&&c(b.responseText)};b.send(null)};else if(typeof process!=="undefined"&&process.versions&&process.versions.node)l=require.nodeRequire("fs"),e.get=function(a,c){var b=l.readFileSync(a,"utf8");b.indexOf("\ufeff")===0&&(b=b.substring(1));c(b)};else if(typeof Packages!=="undefined")e.get=function(a,c){var b=new java.io.File(a),f=java.lang.System.getProperty("line.separator"),
b=new java.io.BufferedReader(new java.io.InputStreamReader(new java.io.FileInputStream(b),"utf-8")),d,e,h="";try{d=new java.lang.StringBuffer;(e=b.readLine())&&e.length()&&e.charAt(0)===65279&&(e=e.substring(1));for(d.append(e);(e=b.readLine())!==null;)d.append(f),d.append(e);h=String(d.toString())}finally{b.close()}c(h)};return e})})();

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,68 @@
body {
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
font-size: 15px;
color: @text-color;
}
::selection, ::-moz-selection {
background: @adjacent-color;
color: #fff;
text-shadow: none;
}
h1, .h1 { font-size: 30px; line-height: 35px; font-weight: 500; }
h2, .h2 { font-size: 24px; line-height: 30px; font-weight: 500; }
h3, .h3 { font-size: 18px; line-height: 25px; font-weight: 500; }
h4, .h4 { font-size: 16px; line-height: 20px; font-weight: 500; }
h5, .h5 { font-size: 16px; line-height: 20px; font-weight: 500; }
h6, .h6 { font-size: 14px; line-height: 20px; font-weight: 500; }
ul { margin: 0 0 15px 15px; }
ol { margin: 0 0 15px 20px;}
li { margin-bottom: 5px;
ul, ol { margin-bottom: 0; }
}
dl {
margin-bottom: 10px;
dt { font-weight: bold; }
dd { margin: 0 0 5px 10px; }
}
p {
line-height: 25px;
margin-top: 20px;
margin-bottom: 20px;
}
a {
color: @link-color;
text-decoration: none;
border-bottom: 1px solid @text-color;
&:hover {
color: @adjacent-color;
border-bottom: 1px solid @adjacent-color;
}
&.no-border {border-bottom: 0;}
}
blockquote {
margin-top: 20px 0;
padding: 0 0 0 20px;
border-left: 5px solid @adjacent-color;
p:first-child {
margin-top: 5px;
}
}
.descr {
display: block;
font-size: 12px;
line-height: 20px;
color: #7f7e7e;
}

View File

@@ -0,0 +1,27 @@
//Button
.btn {
display: inline-block;
padding: 4px 10px 4px;
font-size: 13px;
line-height: 18px;
color: #333;
text-align: center;
text-shadow: 0 1px 1px rgba(255,255,255,.75);
vertical-align: middle;
cursor: pointer;
.gradient(#fff, darken(#fff, 10%));
border: 1px solid #ccc;
border-bottom-color: darken(#ccc, 10%);
.border-radius(4px);
.box-shadow(~"inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05)");
}
.btn:hover {
color: #333;
text-decoration: none;
background-color: darken(#fff, 10%);
background-position: 0 -15px;
border-bottom-color: darken(#ccc, 10%);
.transition(background-position .1s linear);
}

View File

@@ -0,0 +1,86 @@
code, pre {
padding: 0 3px 2px;
color: #333;
.font-monospace();
.border-radius(3px);
}
// Inline code
code {
padding: 2px 4px;
color: @adjacent-color;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
.reset-code() {
padding: 0;
color: inherit;
background-color: transparent;
border: 0;
}
// Blocks of code
pre {
display: block;
padding: 8px;
margin: 0 0 9px;
word-break: break-all;
word-wrap: break-word;
white-space: pre;
white-space: pre-wrap;
background-color: #f5f5f5;
border: 1px solid #ccc; // IE8-
border: 1px solid rgba(0,0,0,.15);
.border-radius(4px);
&.prettyprint { margin-bottom: 20px; }
code {
.reset-code();
}
}
.pre-scrollable {
max-height: 340px;
overflow-y: scroll;
}
blockquote code {
.reset-code();
}
//Pretty print
.com { color: #93a1a1; }
.lit { color: #195f91; }
.pun, .opn, .clo { color: #93a1a1; }
.fun { color: #dc322f; }
.str, .atv { color: #da3f47; }
.kwd, .linenums .tag { color: #1e347b; }
.typ, .atn, .dec, .var { color: teal; }
.pln { color: #48484c; }
.prettyprint {
padding: 8px;
background-color: #f7f7f9;
border: 1px solid #e1e1e8;
}
.prettyprint.linenums {
@linenums-shadow: inset 40px 0 0 #fbfbfc, inset 41px 0 0 #ececf0;
.box-shadow(@linenums-shadow);
}
ol.linenums {
margin: 0 0 0 33px; /* IE indents via margin-left */
li {
padding-left: 12px;
color: #bebec5;
line-height: 18px;
text-shadow: 0 1px 0 #fff;
}
}

9
syte-pelican/static/less/less-1.1.5.min.js vendored Executable file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,250 @@
/* mixins.less
* CSS Reset and base mixinis for LESS based development.
* Inspired by bootstrap.less initially created by Mark Dotto
* https://github.com/markdotto/preboot.less
**/
// Clearfix for clearing floats
.clearfix() {
zoom: 1;
&:before, &:after {display: table; content: "";}
&:after {clear: both;}
}
// Center-align a block level element
.center-block() {
display: block;
margin: 0 auto;
}
// Sizing Shortcuts
.size(@width: 5px, @height: 5px) {
height: @height; width: @width;
}
.square(@size: 5px) {
.size(@size, @size);
}
// Fonts
.font(@weight: normal, @size: 14px, @lineHeight: 20px) {
font-size: @size;
font-weight: @weight;
line-height: @lineHeight;
}
.font-sans-serif(@weight: normal, @size: 14px, @lineHeight: 20px) {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
.font(@weight, @size, @lineHeight);
}
.font-serif(@weight: normal, @size: 14px, @lineHeight: 20px) {
font-family: "Georgia", Times New Roman, Times, serif;
.font(@weight, @size, @lineHeight);
}
.font-monospace(@weight: normal, @size: 12px, @lineHeight: 20px) {
font-family: "Monaco", Courier New, monospace;
.font(@weight, @size, @lineHeight);
}
// Border Radius
.border-radius(@radius: 5px) {
-webkit-border-radius: @radius;
-moz-border-radius: @radius;
border-radius: @radius;
}
// Box Shadows
.box-shadow(@shadow: 0 1px 3px rgba(0,0,0,.25)) {
-webkit-box-shadow: @shadow;
-moz-box-shadow: @shadow;
box-shadow: @shadow;
}
.reset-box-shadow() {
-webkit-box-shadow: 0 0 0;
-moz-box-shadow: 0 0 0;
box-shadow: 0 0 0;
}
// Transitions
.transition(@transition) {
-webkit-transition: @transition;
-moz-transition: @transition;
-o-transition: @transition;
transition: @transition;
}
.rotate(@rotation) {
-webkit-transform: rotate(@rotation);
-moz-transform: rotate(@rotation);
-ms-transform: rotate(@rotation);
-o-transform: rotate(@rotation);
transform: rotate(@rotation);
}
// Background Clipping
.background-clip(@clip) {
-webkit-background-clip: @clip;
-moz-background-clip: @clip;
background-clip: @clip;
}
// CSS3 Content Columns
.content-columns(@columnCount, @columnGap: 20px) {
-webkit-column-count: @columnCount;
-webkit-column-gap: @columnGap;
-moz-column-count: @columnCount;
-moz-column-gap: @columnGap;
column-count: @columnCount;
column-gap: @columnGap;
}
// Add a transparency value to a background
.alpha-background(@color: @white, @alpha: 1) {
background-color: @color;
background-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
}
// Add a transparency value to a border
.alpha-border(@color: @white, @alpha: 1) {
border-color: hsla(hue(@color), saturation(@color), lightness(@color), @alpha);
background-clip: padding-box;
}
// Gradients
.gradient(@startColor: #555, @endColor: #333) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, left bottom, from(@startColor), to(@endColor)); // Konqueror
background-image: -moz-linear-gradient(top, @startColor, @endColor); // FF 3.6+
background-image: -ms-linear-gradient(top, @startColor, @endColor); // IE10
background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(top, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(top, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(top, @startColor, @endColor); // The standard
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down
}
.horizontal-gradient(@startColor: #555, @endColor: #333) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -khtml-gradient(linear, left top, right top, from(@startColor), to(@endColor)); // Konqueror
background-image: -moz-linear-gradient(left, @startColor, @endColor); // FF 3.6+
background-image: -ms-linear-gradient(left, @startColor, @endColor); // IE10
background-image: -webkit-gradient(linear, left top, right top, color-stop(0%, @startColor), color-stop(100%, @endColor)); // Safari 4+, Chrome 2+
background-image: -webkit-linear-gradient(left, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(left, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(left, @startColor, @endColor); // Le standard
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=1)",@startColor,@endColor)); // IE9 and down
}
.directional-gradient(@startColor: #555, @endColor: #333, @deg: 45deg) {
background-color: @endColor;
background-repeat: repeat-x;
background-image: -moz-linear-gradient(@deg, @startColor, @endColor); // FF 3.6+
background-image: -ms-linear-gradient(@deg, @startColor, @endColor); // IE10
background-image: -webkit-linear-gradient(@deg, @startColor, @endColor); // Safari 5.1+, Chrome 10+
background-image: -o-linear-gradient(@deg, @startColor, @endColor); // Opera 11.10
background-image: linear-gradient(@deg, @startColor, @endColor); // The standard
}
.vertical-gradient-3(@startColor: #00b3ee, @midColor: #7a43b6, @colorStop: 50%, @endColor: #c3325f) {
background-color: @endColor;
background-repeat: no-repeat;
background-image: -webkit-gradient(linear, 0 0, 0 100%, from(@startColor), color-stop(@colorStop, @midColor), to(@endColor));
background-image: -webkit-linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-image: -moz-linear-gradient(top, @startColor, @midColor @colorStop, @endColor);
background-image: -ms-linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-image: -o-linear-gradient(@startColor, @midColor @colorStop, @endColor);
background-image: linear-gradient(@startColor, @midColor @colorStop, @endColor);
filter: e(%("progid:DXImageTransform.Microsoft.gradient(startColorstr='%d', endColorstr='%d', GradientType=0)",@startColor,@endColor)); // IE9 and down, gets no color-stop at all for proper fallback
}
.reset-ie-gradient() {
filter: e(%("progid:DXImageTransform.Microsoft.gradient(enabled = false)"));
}
// Opacity
.opacity(@opacity: 100) {
filter: e(%("alpha(opacity=%d)", @opacity));
-khtml-opacity: @opacity / 100;
-moz-opacity: @opacity / 100;
opacity: @opacity / 100;
}
// Word spacing wrap
.break-word() {
white-space: pre-wrap;
word-wrap: break-word;
}
// PATTERN ANIMATIONS
// ------------------
.fade {
.transition(opacity .15s linear);
opacity: 0;
&.in {
opacity: 1;
}
}
.user-select(@select) {
-webkit-user-select: @select;
-khtml-user-select: @select;
-moz-user-select: @select;
-o-user-select: @select;
user-select: @select;
}
//Arrows
.arrow-top(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) {
bottom: 0;
left: @arrow-location;
margin-left: -@arrow-size;
border-left: @arrow-size solid transparent;
border-right: @arrow-size solid transparent;
border-top: @arrow-size solid @arrow-color;
position: absolute;
width: 0;
height: 0;
}
.arrow-right(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) {
top: @arrow-location;
left: 0;
margin-top: -@arrow-size;
border-top: @arrow-size solid transparent;
border-bottom: @arrow-size solid transparent;
border-right: @arrow-size solid @arrow-color;
position: absolute;
width: 0;
height: 0;
}
.arrow-bottom(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) {
top: 0;
left: @arrow-location;
margin-left: -@arrow-size;
border-left: @arrow-size solid transparent;
border-right: @arrow-size solid transparent;
border-bottom: @arrow-size solid @arrow-color;
position: absolute;
width: 0;
height: 0;
}
.arrow-left(@arrow-size: 5px, @arrow-color: #000, @arrow-location: 50%) {
top: @arrow-location;
right: 0;
margin-top: -@arrow-size;
border-top: @arrow-size solid transparent;
border-bottom: @arrow-size solid transparent;
border-left: @arrow-size solid @arrow-color;
position: absolute;
width: 0;
height: 0;
}

View File

@@ -0,0 +1,67 @@
//Modals
.modal-backdrop {
position: fixed;
z-index: 1000;
top: 0;
right: 0;
bottom: 0;
left: 0;
background: #000;
&.fade, &.fade-large {
.transition(e('opacity .2s linear'));
.opacity(0);
}
}
.modal-backdrop, .modal-backdrop.fade.in {
.opacity(50);
}
.modal {
position: fixed;
top: 0;
left: 240px;
z-index: 1050;
overflow: auto;
width: 400px;
height: 100%;
background-color: #fff;
border-right: 1px solid @text-color;
.box-shadow(0 0 7px rgba(0,0,0,0.5));
}
.modal {
&.fade-large {
width: 700px;
.transition(e('left .4s ease-out'));
left: -1100px;
}
&.fade {
.transition(e('left .4s ease-out'));
left: -700px;
}
&.fade.in, &.fade-large.in { left: 240px; }
}
.close {
float: right;
font-size: 26px;
line-height: 30px;
font-weight: bold;
color: #000;
background-color: #fff;
text-shadow: 0 1px 0 rgba(255,255,255,1);
.opacity(20);
&:hover {
color: #000;
text-decoration: none;
cursor: pointer;
.opacity(40);
}
}

View File

@@ -0,0 +1,354 @@
//Profiles
.profile {
background: #E9E9E9 url('/static/imgs/b.png');
}
.profile-info {
position: relative;
padding: 15px;
background: #fff;
.close { line-height: 20px; }
.btn {
position: absolute;
right: 17px;
bottom: 20px;
}
}
.profile-avatar {
display: inline-block;
float: left;
border-bottom: 0;
img {
.square(52px);
border: 2px solid @adjacent-color;
}
}
.profile-avatar:hover {
border-bottom: 0;
}
.profile-name {
display: block;
float: left;
margin: 0 0 10px 10px;
h2 {
font-size: 22px;
line-height: 30px;
& a {
font-weight: 500;
color: @text-color;
border-bottom: 0;
}
}
h3 {
font-size: 16px;
line-height: 20px;
& a {
color: #777;
border-bottom: 0;
}
}
h2 a:hover, h3 a:hover
{ color: @adjacent-color; }
}
.profile-description {
clear: left;
font-size: 13px;
line-height: 18px;
font-style: italic;
color: #777;
margin: 0;
padding: 5px 0;
a { border-bottom: 0; }
}
.profile-location-url {
clear: left;
margin: 0;
span {
display: inline-block;
font-size: 13px;
line-height: 18px;
color: #777;
}
.divider {
padding: 0 4px;
color: #ccc;
}
a { border-bottom:0; }
}
.profile-stats {
margin: 0;
list-style: none;
overflow: hidden;
border-top: 1px solid #C2C2C2;
border-bottom: 1px solid #C2C2C2;
background: #fff;
li {
display: inline;
a, span {
float: left;
padding: 7px 15px;
color: #777;
font-size: 10px;
line-height: 16px;
text-transform: uppercase;
border-left: 1px solid #C2C2C2;
border-bottom: 0;
}
strong {
display: block;
color: @text-color;
font-size: 14px;
}
a:hover, a:hover strong {
color: @adjacent-color;
}
}
li:first-child span {
border-left: 0;
}
}
.profile-info-footer {
padding: 10px 15px;
border-bottom: 1px solid #c2c2c2;
}
//Profile Icons
.profile-icons(@bgicon) {
display: inline-block;
background: @bgicon;
margin-left: 10px;
padding-left: 20px;
}
.profile-watchers {
.profile-icons(~"url('/static/imgs/ico-watchers.png') no-repeat");
}
.profile-forks {
.profile-icons(~"url('/static/imgs/ico-forks.png') no-repeat");
}
.profile-comments {
.profile-icons(~"url('/static/imgs/ico-comments.png') no-repeat");
}
.profile-likes {
.profile-icons(~"url('/static/imgs/ico-likes.png') no-repeat");
}
//Twitter Profile
.profile.twitter {
overflow:hidden;
}
.profile-tweets {
list-style: none;
margin: 0;
background: #fff;
li {
padding: 10px 15px;
border-bottom: 1px solid #C2C2C2
}
}
.tweet-title {
border-bottom: 0;
position: relative;
padding-left: 45px;
img {
position: absolute;
left: 0;
width: 32px;
height: 32px;
border: 2px solid @adjacent-color;
}
span {
color: #777;
font-size: 13px;
padding-left: 3px;
}
}
.tweet-title:hover {
border-bottom: 0;
}
.tweet-text {
color: #777;
margin:0;
padding: 3px 0;
font-size: 13px;
line-height: 18px;
margin-left: 45px;
a { border-bottom: 0; }
}
.tweet-date {
margin: 0;
font-size: 13px;
line-height: 18px;
margin-left: 45px;
color: #999;
}
//Github Profile
.profile-repos {
list-style: none;
margin: 0;
background: #fff;
li {
padding: 10px 15px;
border-bottom: 1px solid #C2C2C2
}
}
.profile-repo-name {
border-bottom: 0;
font-weight: 500;
}
.profile-repo-name:hover {
border-bottom: 0;
}
.profile-repo-text {
color: #777;
margin:0;
padding: 5px 0;
font-size: 13px;
line-height: 18px;
}
.profile-repo-stats {
list-style: none;
margin: 0;
font-size: 13px;
line-height: 18px;
li {
padding: 0;
border: 0;
display: inline-block;
//ie7 inline-block hack
zoom: 1;
*display: inline;
}
a {
border-bottom: 0;
}
a:hover {
border-bottom: 0;
color: @adjacent-color;
}
}
//Dribbble & Instagram Profiles
.profile-shots {
list-style: none;
margin: 0;
padding: 15px 0;
> li {
float: left;
width: 300px;
padding: 10px;
margin: 0 0px 20px 20px;
background: #fff;
.box-shadow();
}
}
.profile-shot {
border-bottom: 0;
display: block;
img {
width: 300px;
height: 225px;
}
}
.profile-shot:hover {
border-bottom: 0;
}
.profile-shot-title {
display: block;
padding: 5px 0;
font-size: 13px;
line-height: 18px;
color: @alternate-text-color;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.profile-shot-stats {
list-style: none;
margin: 0;
font-size: 13px;
line-height: 18px;
li {
margin-bottom: 0;
padding: 0;
border: 0;
display: inline-block;
//ie7 inline-block hack
zoom: 1;
*display: inline;
}
li:first-child a, li:first-child span {
margin-left: 0;
}
a {
border-bottom: 0;
}
a:hover {
border-bottom: 0;
color: @adjacent-color;
}
}
.profile-shot-date {
float: right;
color: #999;
}
.instagram .profile-shot img {
width: 300px;
height: 300px;
}

View File

@@ -0,0 +1,24 @@
html, body {margin: 0; padding: 0;}
h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, cite, code, del, dfn, em, img, q, s, samp, small, strike, strong, sub, sup, tt, var, dd, dl, dt, li, ol, ul, fieldset, form, label, legend, button, table, caption, tbody, tfoot, thead, tr, th, td {margin: 0; padding: 0; border: 0; font-weight: normal; font-style: normal; font-size: 100%; font-family: inherit;}
strong, b {font-weight: bold;}
em, i {font-style:italic;}
body {line-height: 1;}
table {border-collapse: collapse; border-spacing: 0;}
q:before, q:after, blockquote:before, blockquote:after {content: "";}
html {overflow-y: scroll; font-size: 100%; -webkit-text-size-adjust: 100%; -ms-text-size-adjust: 100%;}
a:focus {outline: thin dotted;}
article, aside, details, figcaption, figure, footer, header, hgroup, nav, section {display: block;}
audio, canvas, video {display: inline-block; *display: inline; *zoom: 1;}
audio:not([controls]) {display: none;}
sub, sup {font-size: 75%; line-height: 0; position: relative; vertical-align: baseline;}
sup {top: -0.5em;}
sub {bottom: -0.25em;}
img {border: 0; -ms-interpolation-mode: bicubic;}
button, input, select, textarea {font-size: 100%; margin: 0; vertical-align: baseline; *vertical-align: middle;}
button, input {line-height: normal; *overflow: visible;}
button::-moz-focus-inner, input::-moz-focus-inner {border: 0;padding: 0;}
button, input[type="button"], input[type="reset"], input[type="submit"] {cursor: pointer; -webkit-appearance: button;}
input[type="search"] {-webkit-appearance: textfield; -webkit-box-sizing: content-box; -moz-box-sizing: content-box; box-sizing: content-box;}
input[type="search"]::-webkit-search-decoration {-webkit-appearance: none;}
textarea {overflow: auto; vertical-align: top;}

View File

@@ -0,0 +1,165 @@
@media (max-width: 600px) {
body {
background: #E9E9E9 url('/static/imgs/b.png');
overflow-x: hidden;
}
.mobile-nav {
display: block;
position: fixed;
top: 0;
height: 45px;
width: 100%;
z-index: 3000;
background: #E9E9E9 url('/static/imgs/b.png');
border-top: 3px solid @adjacent-color;
.box-shadow();
h3 {
float: right;
padding: 10px;
a {
border-bottom: 0;
font-weight: bold;
color: @text-color;
text-shadow: 0 1px 1px #f9f9f9;
}
}
.nav-btn {
float: left;
padding: 7px 10px 4px;
margin: 8px 10px;
.gradient(#404040, #333);
.border-radius(4px);
.box-shadow(0 1px 1px #f9f9f9);
}
.nav-btn-bar {
display: block;
width: 18px;
height: 2px;
margin-bottom: 3px;
background-color: #f9f9f9;
.border-radius(1px);
.box-shadow(0 1px 0 rgba(0, 0, 0, 0.25));
}
}
header.main-header {
position: absolute;
hgroup {
.picture a { margin: 60px 0 10px 10px; }
h1 {
font-size: 18px;
margin: 0 10px;
}
h2 {
margin: 0 10px 10px 10px;
}
}
nav {
margin: 20px 0;
}
.fork-me {
display: none;
}
}
.main-section {
margin: 45px 0 0 0;
position: relative;
min-height: 500px;
left: 0;
z-index: 2000;
background-color: #fff;
.box-shadow();
.transition(e('left .3s ease-out'));
&.nav-opened {
left: 240px;
}
}
.blog-section {
hgroup {
h2, h1 { .h2; margin: 10px 0 5px 0; }
h3 a {
position: static;
margin: 0;
padding: 5px 0;
border: 0;
font-weight: 300;
}
}
article {
width: 95%;
padding: 10px 10px 30px;
border-bottom: 1px solid #C2C2C2;
img { max-width: 300px; }
}
.loading {
padding: 15px;
}
}
.modal-backdrop {
z-index: 3500;
}
.modal {
position: absolute;
width: 100%;
height: 1500px;
z-index: 4000;
top: 45px;
&.fade-large { width: 100%; }
&.fade.in, &.fade-large.in { left: 0; }
}
.profile.twitter, .profile.github, .profile.dribbble, .profile.instagram {
overflow: scroll;
}
.profile-info .btn {
position: static;
margin-top: 5px;
}
.shots-likes-received, .shots-likes-given { display: none; }
.profile-shots { padding: 10px 0;
> li {
margin: 0 0 20px 10px;
width: 280px;
}
img {
width: 280px;
height: 210px;
}
}
.instagram .profile-shot img {
width: 280px;
height: 280px;
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,253 @@
@import 'reset.less';
@import 'mixins.less';
@import 'variables.less';
@import 'base.less';
@import 'buttons.less';
@import 'modals.less';
@import 'profiles.less';
@import 'code.less';
// Specific styles
.main-header {
position: fixed;
z-index: 1100;
top: 0;
left: 0;
width: 240px;
height: 100%;
min-height: 700px;
float: left;
border-right: 1px solid #c2c2c2;
background: #E9E9E9 url('/static/imgs/b.png');
hgroup {
.picture a {
display: inline-block;
.square(84px);
margin: 60px 35px 20px 35px;
border: 3px solid @adjacent-color;
background: #00000 url('https://twimg0-a.akamaihd.net/profile_images/1149409097/20101018060848_samrat94_6HR8FZ5V2JQDPU34ENIKCWBL0STAMO91XG7Y.jpg');
@pic-shadow:0 1px 1px #f9f9f9, inset 0 0 6px #000000;
.box-shadow(@pic-shadow);
}
h1 {
font-size: 24px;
margin: 0 35px;
text-shadow: 0 1px 1px #f9f9f9;
}
h2 {
margin: 10px 35px;
font-size: 14px;
font-weight: normal;
line-height: 25px;
color: @alternate-text-color;
}
}
nav {
margin: 65px 0;
ul { border-top: 1px solid #d2d2d2; list-style: none; margin-left: 0; }
li { margin-bottom: 0; }
a, a:hover { border-bottom: 1px solid #d2d2d2; }
a {
position: relative;
padding: 15px 30px;
color: @text-color;
display: block;
font-weight: 500;
text-shadow: 0 1px 1px #f9f9f9;
}
a:hover {
color: #fff;
background: @adjacent-color;
border-right: 0;
text-shadow: none;
}
.sel { border-right: 6px solid @adjacent-color; }
}
.spinner {
position: absolute !important;
right: 30px;
top: 23px;
}
.fork-me {
position: absolute;
left: 30px;
bottom: 20px;
font-size: 13px;
color: @alternate-text-color;
border-bottom: none;
}
.fork-me:hover {
color: @adjacent-color;
}
}
.main-section {
position: relative;
overflow: hidden;
margin-left: 241px;
padding: 35px;
}
.main-section h3.date {
width: 100%;
display: block;
margin-left: -34px;
padding: 20px 35px 30px 75px;
border-bottom: 1px solid #C2C2C2;
border-top: 1px solid #C2C2C2;
font-size: 16px;
font-weight: bold;
.alpha-background(#ffffff, 0.8);
color: @adjacent-color;
}
a.button_accent {
margin:40px 50px;
padding:10px 20px;
display:inline-block;
border:3px solid @adjacent-color;
border-radius:70px;
-moz-border-radius:70px;
-webkit-border-radius:70px;
text-transform:uppercase;
color:@adjacent-color;
font-size:17px;
font-weight:400;}
a.button_accent:link{color:#0e94ec;}
a.button_accent:hover{color:#ffffff;
background-color:@adjacent-color;
outline:0;}
a.button_accent:active{
color:#ffffff;
background-color:#333399;
outline:0;}
.blog-section {
padding: 0;
hgroup {
h2, h1 { .h1; line-height: 40px; margin: 50px 0 25px 0;}
h2 a {
border-bottom: 0;
font-weight: 500;
}
h3 a {
display: none;
}
h3 a.active {
position: fixed;
top: 0;
bottom: auto;
margin-top: 0;
}
}
article {
width: 700px;
overflow: hidden;
line-height: 25px;
padding: 5px 35px 50px 34px;
img {
padding: 2px;
border: 1px solid #C2C2C2;
margin: 0px 15px 5px 0px;
}
a.img-link {
border-bottom: 0;
&:hover img { border-color: @adjacent-color; }
}
}
footer {
padding-top: 10px;
h4 {
float: left;
text-transform: uppercase;
font-size: 13px;
line-height: 28px;
padding: 0px 15px 0px 0;
}
}
}
.tags {
list-style: none;
margin: 0;
li {
display: inline-block;
//ie7 inline-block hack
zoom: 1;
*display: inline;
}
a {
padding: 3px 10px;
font-size: 13px;
text-shadow: 0 1px 1px #F9F9F9;
background: #E9E9E9;
border: 1px solid #C2C2C2;
}
a:hover {
background: @adjacent-color;
color: #fff;
text-shadow: none;
border: 1px solid @adjacent-color;
}
}
.mobile-nav {
display: none;
}
.load-more-button {
display: inline-block;
margin: 0 20px 50px 20px;
padding: 10px 30px;
background-color: @adjacent-color;
color: #fff;
&:hover {
border: 1px solid @adjacent-color;
background: #fff;
color: @adjacent-color;
}
.spinner {
left: 140px;
top: -8px;
}
}
@media (max-width: 767px) {
header.main-header {
hgroup .picture a, nav { margin-top: 30px; }
}
.blog-section article {
width: 400px;
img { max-width: 400px; }
}
}
@import 'styles-mobile.less';

View File

View File

@@ -0,0 +1,6 @@
//variables
@adjacent-color: #333366;
@text-color: #404040;
@alternate-text-color: #4b4b4b;
@link-color: #000000;

View File

@@ -0,0 +1,252 @@
@import 'reset.less';
@import 'mixins.less';
@import 'variables.less';
@import 'base.less';
@import 'buttons.less';
@import 'modals.less';
@import 'profiles.less';
@import 'code.less';
// Specific styles
.main-header {
position: fixed;
z-index: 1100;
top: 0;
left: 0;
width: 240px;
height: 100%;
min-height: 700px;
float: left;
border-right: 1px solid #c2c2c2;
background: #E9E9E9 url('/static/imgs/b.png');
hgroup {
.picture a {
display: inline-block;
.square(84px);
margin: 60px 35px 20px 35px;
border: 3px solid @adjacent-color;
background: #00000 url('/static/imgs/pic.png');
@pic-shadow:0 1px 1px #f9f9f9, inset 0 0 6px #000000;
.box-shadow(@pic-shadow);
}
h1 {
font-size: 24px;
margin: 0 35px;
text-shadow: 0 1px 1px #f9f9f9;
}
h2 {
margin: 10px 35px;
font-size: 14px;
font-weight: normal;
line-height: 25px;
color: @alternate-text-color;
}
}
nav {
margin: 65px 0;
ul { border-top: 1px solid #d2d2d2; list-style: none; margin-left: 0; }
li { margin-bottom: 0; }
a, a:hover { border-bottom: 1px solid #d2d2d2; }
a {
position: relative;
padding: 15px 30px;
color: @text-color;
display: block;
font-weight: 500;
text-shadow: 0 1px 1px #f9f9f9;
}
a:hover {
color: #fff;
background: @adjacent-color;
border-right: 0;
text-shadow: none;
}
.sel { border-right: 6px solid @adjacent-color; }
}
.spinner {
position: absolute !important;
right: 30px;
top: 23px;
}
.fork-me {
position: absolute;
left: 30px;
bottom: 20px;
font-size: 13px;
color: @alternate-text-color;
border-bottom: none;
}
.fork-me:hover {
color: @adjacent-color;
}
}
.main-section {
position: relative;
overflow: hidden;
margin-left: 241px;
padding: 35px;
}
.main-section h3.date {
width: 100%;
display: block;
margin-left: -34px;
padding: 20px 35px 30px 75px;
border-bottom: 1px solid #C2C2C2;
border-top: 1px solid #C2C2C2;
font-size: 16px;
font-weight: bold;
.alpha-background(#ffffff, 0.8);
}
a.button_accent {
margin:40px 50px;
padding:10px 20px;
display:inline-block;
border:3px solid @adjacent-color;
border-radius:70px;
-moz-border-radius:70px;
-webkit-border-radius:70px;
text-transform:uppercase;
color:#000000;
font-size:17px;
font-weight:400;}
a.button_accent:link{color:#0e94ec;}
a.button_accent:hover{color:#ffffff;
background-color:@adjacent-color;
outline:0;}
a.button_accent:active{
color:#ffffff;
background-color:#0e94ec;
outline:0;}
.blog-section {
padding: 0;
hgroup {
h2, h1 { .h1; line-height: 40px; margin: 50px 0 25px 0;}
h2 a {
border-bottom: 0;
font-weight: 500;
}
h3 a {
display: none;
}
h3 a.active {
position: fixed;
top: 0;
bottom: auto;
margin-top: 0;
}
}
article {
width: 700px;
overflow: hidden;
line-height: 25px;
padding: 5px 35px 50px 34px;
img {
padding: 2px;
border: 1px solid #C2C2C2;
margin: 0px 15px 5px 0px;
}
a.img-link {
border-bottom: 0;
&:hover img { border-color: @adjacent-color; }
}
}
footer {
padding-top: 10px;
h4 {
float: left;
text-transform: uppercase;
font-size: 13px;
line-height: 28px;
padding: 0px 15px 0px 0;
}
}
}
.tags {
list-style: none;
margin: 0;
li {
display: inline-block;
//ie7 inline-block hack
zoom: 1;
*display: inline;
}
a {
padding: 3px 10px;
font-size: 13px;
text-shadow: 0 1px 1px #F9F9F9;
background: #E9E9E9;
border: 1px solid #C2C2C2;
}
a:hover {
background: @adjacent-color;
color: #fff;
text-shadow: none;
border: 1px solid @adjacent-color;
}
}
.mobile-nav {
display: none;
}
.load-more-button {
display: inline-block;
margin: 0 20px 50px 20px;
padding: 10px 30px;
background-color: @adjacent-color;
color: #fff;
&:hover {
border: 1px solid @adjacent-color;
background: #fff;
color: @adjacent-color;
}
.spinner {
left: 140px;
top: -8px;
}
}
@media (max-width: 767px) {
header.main-header {
hgroup .picture a, nav { margin-top: 30px; }
}
.blog-section article {
width: 400px;
img { max-width: 400px; }
}
}
@import 'styles-mobile.less';

View File

@@ -0,0 +1,10 @@
{% extends 'base.html' %}
{% block pagetitle %}500 Oops{% endblock %}
{% block main_section %}
<section class="main-section">
<article>
<h2>Oops!</h2>
<p>An error occurred. Please try again later.</p>
</article>
</section>
{% endblock %}

View File

@@ -0,0 +1,20 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="/post/{{ id }}">{{ artist }} - {{ track_name }}</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
{{{ player }}}
{{#if caption}}
{{{ caption }}}
{{/if}}
{{#if tags }}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,17 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="{{url}}">Link: {{title}}</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
{{{ description }}}
{{#if tags}}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,27 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="/post/{{ id }}">Photo</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
{{#each photos}}
{{#with original_size}}
<p><img src="{{url}}" /></p>
{{/with}}
{{#if caption}}
{{{ caption }}}
{{/if}}
{{/each}}
{{#if caption}}
{{{ caption }}}
{{/if}}
{{#if tags }}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,22 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="/post/{{ id }}">Quote</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
<blockquote>
{{text}}
</blockquote>
{{#if source}}
<p>{{{ source }}}</p>
{{/if}}
{{#if tags }}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,17 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="/post/{{ id }}">{{ title }}&nbsp;</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
{{{ body }}}
{{#if tags}}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,19 @@
<article id="{{ id }}">
<hgroup>
<h2><a href="/post/{{ id }}">Video</a></h2>
<h3><a href="#{{ id }}">{{ formated_date }}</a></h3>
</hgroup>
<p>
<a href="{{ permalink_url }}" class="no-border"><img src="{{ thumbnail_url }}" /></a>
</p>
{{#if tags }}
<footer>
<h4>Tags</h4>
<ul class="tags">
{{#each tags}}
<li><a href="/tags/{{ this }}">{{ this }}</a></li>
{{/each}}
</ul>
</footer>
{{/if}}
</article>

View File

@@ -0,0 +1,46 @@
<div class="profile dribbble modal fade-large" id="dribbble-profile">
{{#with user}}
<div class="profile-info">
<button class="close" data-dismiss="modal">×</button>
<a href="http://dribbble.com/{{ username }}" class="profile-avatar">
<img src="{{ avatar_url }}" alt="{{name}}" />
</a>
<div class="profile-name">
<h2><a href="http://dribbble.com/{{ username }}">{{ name }}</a></h2>
<h3><a href="http://dribbble.com/{{ username }}">@{{ username}}</a></h3>
</div>
<p class="profile-location-url">
{{#if location }}
<span>{{ location }}</span>
<span class="divider">·</span>
{{/if}}
{{#if website_url }}
<span><a href="{{ website_url }}">{{ website_url }}</a></span>
{{/if}}
</p>
<a href="http://dribbble.com/{{ username }}" class="btn">Follow on Dribbble</a>
</div>
<ul class="profile-stats">
<li><a href="http://dribbble.com/{{ username }}"><strong>{{ shots_count }}</strong> shots</a></li>
<li><a href="http://dribbble.com/{{ username }}" class="shots-likes-received"><strong>{{ likes_received_count }}</strong> likes received</a></li>
<li><a href="http://dribbble.com/{{ username }}" class="shots-likes-given"><strong>{{ likes_count }}</strong> likes given</a></li>
<li><a href="http://dribbble.com/{{ username }}/following"><strong>{{ following_count }}</strong> following</a></li>
<li><a href="http://dribbble.com/{{ username }}/followers"><strong>{{ followers_count }}</strong> followers</a></li>
</ul>
{{/with}}
<ul class="profile-shots">
{{#each shots}}
<li>
<a href="{{ url }}" class="profile-shot">
<img src="{{ image_url }}" alt="{{ title }}" />
</a>
<span class="profile-shot-title">{{ title }}</span>
<ul class="profile-shot-stats">
<li><a href="" class="profile-watchers">{{ views_count }}</a></li>
<li><a href="" class="profile-comments">{{ comments_count }}</a></li>
<li><a href="" class="profile-likes">{{ likes_count }}</a></li>
</ul>
</li>
{{/each}}
</ul>
</div>

View File

@@ -0,0 +1,46 @@
<div class="profile github modal fade" id="github-profile">
{{#with user }}
<div class="profile-info">
<button class="close" data-dismiss="modal">×</button>
<a href="http://github.com/{{ login }}" class="profile-avatar">
<img src="http://gravatar.com/avatar/{{ gravatar_id }}" alt="{{name}}" />
</a>
<div class="profile-name">
<h2><a href="http://github.com/{{ login }}">{{ name }}</a></h2>
<h3><a href="http://github.com/{{ login }}">{{ login }}</a></h3>
</div>
<p class="profile-location-url">
{{#if location }}
<span>{{ location }}</span>
<span class="divider">·</span>
{{/if}}
{{#if blog }}
<span><a href="{{ blog }}">{{ blog }}</a></span>
{{/if}}
</p>
</div>
<ul class="profile-stats">
<li><a href="http://github.com/{{ login }}"><strong>{{ public_repo_count }}</strong> repos</a></li>
<li><a href="http://github.com/{{ login }}/following"><strong>{{ following_count }}</strong> following</a></li>
<li><a href="http://github.com/{{ login }}/followers"><strong>{{ followers_count }}</strong> followers</a></li>
</ul>
<div class="profile-info-footer">
<a href="http://github.com/{{ login }}" class="btn">Follow on Github</a>
</div>
{{/with}}
<ul class="profile-repos">
{{#each repositories}}
<li>
<a href="{{ url }}" class="profile-repo-name">{{ name }}</a>
<p class="profile-repo-text">
{{ description }}
</p>
<ul class="profile-repo-stats">
<li>{{ language }}</li>
<li><a href="{{ url }}/watchers" class="profile-watchers">{{ watchers }}</a></li>
<li><a href="{{ url }}/network" class="profile-forks">{{ forks }}</a></li>
</ul>
</li>
{{/each}}
</ul>
</div>

View File

@@ -0,0 +1,25 @@
{{#each media}}
<li>
<a href="{{ link }}" class="profile-shot">
{{#with images}}
{{#with low_resolution }}
<img src="{{ url }}" alt="Instagram Picture" />
{{/with}}
{{/with}}
</a>
<span class="profile-shot-title">
{{#if caption}}
{{#with caption}}
{{ text }}
{{/with}}
{{else}}
Untitled
{{/if}}
</span>
<ul class="profile-shot-stats">
{{#with likes}}<li><span class="profile-likes">{{ count }}</span></li>{{/with}}
<li class="profile-shot-date">{{ formated_date }}</li>
</ul>
</li>
{{/each}}

View File

@@ -0,0 +1,58 @@
<div class="profile instagram modal fade-large" id="instagram-profile">
{{#with user}}
<div class="profile-info">
<button class="close" data-dismiss="modal">×</button>
<span class="profile-avatar">
<img src="{{ profile_picture }}" alt="{{ full_name }}" />
</span>
<div class="profile-name">
<h2>{{ full_name }}</h2>
</div>
{{#if bio }}<p class="profile-description">{{{ bio }}}</p>{{/if}}
<p class="profile-location-url">
{{#if website }}
<span><a href="{{ website }}">{{ website }}</a></span>
{{/if}}
</p>
</div>
<ul class="profile-stats">
{{#with counts}}
<li><span><strong>{{ media }}</strong> pictures</span></li>
<li><span><strong>{{ follows }}</strong> following</span></li>
<li><span><strong>{{ followed_by }}</strong> followers</span></li>
{{/with}}
</ul>
{{/with}}
<ul class="profile-shots">
{{#each media}}
<li>
<a href="{{ link }}" class="profile-shot">
{{#with images}}
{{#with low_resolution }}
<img src="{{ url }}" alt="Instagram Picture" />
{{/with}}
{{/with}}
</a>
<span class="profile-shot-title">
{{#if caption}}
{{#with caption}}
{{ text }}
{{/with}}
{{else}}
Untitled
{{/if}}
</span>
<ul class="profile-shot-stats">
{{#with likes}}<li><span class="profile-likes">{{ count }}</span></li>{{/with}}
<li class="profile-shot-date">{{ formated_date }}</li>
</ul>
</li>
{{/each}}
</ul>
{{#if pagination}}
{{#with pagination}}
<button class="load-more-button" id="load-more-pics" data-control-next="{{ next_max_id }}">Load more...</button>
{{/with}}
{{/if}}
</div>

View File

@@ -0,0 +1,52 @@
<div class="profile twitter modal fade" id="twitter-profile">
{{#with user}}
<div class="profile-info">
<button class="close" data-dismiss="modal">×</button>
<a href="http://twitter.com/#!/{{ screen_name }}" class="profile-avatar">
<img src="{{ profile_image_url }}" alt="{{name}}" />
</a>
<div class="profile-name">
<h2><a href="http://twitter.com/#!/{{ screen_name }}">{{ name }}</a></h2>
<h3><a href="http://twitter.com/#!/{{ screen_name }}">@{{ screen_name}}</a></h3>
</div>
<p class="profile-description">{{{ f_description }}}</p>
<p class="profile-location-url">
{{#if location }}
<span>{{ location }}</span>
<span class="divider">·</span>
{{/if}}
{{#if url }}
<span><a href="{{ url }}">{{ url }}</a></span>
{{/if}}
</p>
</div>
<ul class="profile-stats">
<li><a href="http://twitter.com/#!/{{ screen_name }}"><strong>{{ statuses_count }}</strong> tweets</a></li>
<li><a href="http://twitter.com/#!/{{ screen_name }}/following"><strong>{{ friends_count }}</strong> following</a></li>
<li><a href="http://twitter.com/#!/{{ screen_name }}/followers"><strong>{{ followers_count }}</strong> followers</a></li>
</ul>
<div class="profile-info-footer">
<a href="http://twitter.com/#!/{{ screen_name }}" class="btn">Follow on Twitter</a>
</div>
{{/with}}
<ul class="profile-tweets">
{{#each tweets}}
<li>
{{#with user }}
<a href="http://twitter.com/#!/{{ screen_name }}" class="tweet-title">
<img src="{{ profile_image_url }}" alt="{{ name }}" />
<strong>{{ name }}</strong>
<span>@{{ screen_name }}</span>
</a>
{{/with}}
<p class="tweet-text">
{{{ f_text }}}
</p>
<p class="tweet-date">
{{ formated_date }}
</p>
</li>
{{/each}}
</ul>
</div>

View File

@@ -0,0 +1,10 @@
{% extends 'base.html' %}
{% block pagetitle %}404 Not Found{% endblock %}
{% block main_section %}
<section class="main-section">
<article>
<h2>The page you are looking for was not found.</h2>
<p>Please use the links on the left to navigate to your desired destination.</p>
</article>
</section>
{% endblock %}

View File

@@ -0,0 +1,11 @@
{% if GOOGLE_ANALYTICS %}
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
try {
var pageTracker = _gat._getTracker("{{GOOGLE_ANALYTICS}}");
pageTracker._trackPageview();
} catch(err) {}</script>
{% endif %}

View File

@@ -0,0 +1,50 @@
{% extends 'base.html' %}
{% block title %}{{article.title}} | Samrat Man Singh{% endblock %}
{% block main_section %}
<section class="main-section blog-section" id="blog-posts">
<h3 class="date">{{article.locale_date}}</h3>
<article>
<hgroup>
<h2><a href="{{SITEURL}}/{{article.url}}">{{article.title}}</a></h2>
{% include "twitter.html" %}
<a href="http://news.ycombinator.com/submit" class="hn-share-button">Vote on HN</a>
<!--<script type="text/javascript" src="http://hnapiwrapper.herokuapp.com/static/js/button.js"></script>-->
{% include "hacker_news.html" %}
</hgroup>
{{article.content}}
<p>
If you liked this post, you should <a href="http://twitter.com/samratmansingh">follow me on Twitter.</a>
</p>
<br/>
<footer>
{% if article.tags %}
<h4>TAGS</h4>
<ul class="tags">
{% for tag in article.tags %}
<li><a href="{{ SITEURL }}/tag/{{ tag }}.html" class="tag">{{tag}}</a></li>
{% endfor %}
</ul>
{% endif %}
<br/>
{% if DISQUS_SITENAME %}
<div class="comments">
<div id="disqus_thread"></div>
<script type="text/javascript">
var disqus_identifier = "{{ article.url }}";
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://{{ DISQUS_SITENAME }}.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
</div>
{% endif %}
</footer>
</article>
</section>
{% endblock %}

View File

@@ -0,0 +1,59 @@
<!DOCTYPE html>
<html lang="en">
{% block head %}
<head>
<meta charset="utf-8" />
<meta name="description" content="Personal website and blog of Samrat Man Singh. Follow him at @samratmansingh" />
<meta name="keywords" content="Samrat Man Singh, python, flask, computers, technology, nepal" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{{SITENAME}}{% endblock %}</title>
<!--[if lt IE 9]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<link rel="stylesheet" href="{{SITEURL}}/{{ MEDIA_URL }}css/styles.min.css" type="text/css" media="screen, projection">
</head>
{% endblock %}
<body>
<header class="main-header">
<hgroup>
<div class="picture">
<a href="/" rel="home"></a>
</div>
<h1>{{ SITENAME }}</h1>
<h2>18 year-old from Nepal interested in computers and technology.</h2>
</hgroup>
<nav>
<ul class="main-nav">
<li><a href="/" id="home-link">Home</a></li>
<li><a href="http://twitter.com/#!/samratmansingh" id="twitter-link">Twitter</a></li>
<li><a href="http://github.com/samrat" id="github-link">Github</a></li>
<li><a href="http://feeds.feedburner.com/SamratManSingh" id="github-link">Feed</a></li>
<li><a href="mailto:samratmansingh@gmail.com?subject=Hello" id="contact-link">Contact</a></li>
</ul>
</nav>
<a href="http://pelican.notmyidea.org" class="fork-me">Powered by Pelican.</a>
</header>
{% block main_section %}{% endblock %}
<div class="mobile-nav">
<span class="nav-btn" id="mobile-nav-btn">
<span class="nav-btn-bar"></span>
<span class="nav-btn-bar"></span>
<span class="nav-btn-bar"></span>
</span>
<h3><a href="/">samrat.github.com</a></h3>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script type="text/javascript">
/*<![CDATA[*/
var twitter_integration_enabled = {% if TWITTER_INTEGRATION_ENABLED %}true{% else %}false{% endif %},
github_integration_enabled = {% if GITHUB_INTEGRATION_ENABLED %}true{% else %}false{% endif %},
dribbble_integration_enabled = {% if DRIBBBLE_INTEGRATION_ENABLED %}true{% else %}false{% endif %},
instagram_integration_enabled = {% if INSTAGRAM_INTEGRATION_ENABLED %}true{% else %}false{% endif %};
/*]]>*/
</script>
<script src="{{ SITEURL }}/{{ MEDIA_URL }}js/min/scripts.min.js"></script>
{% include "analytics.html" %}
</body>

View File

@@ -0,0 +1,7 @@
<script>
(function() {
var hn = document.createElement('script'); hn.type = 'text/javascript';
hn.async = true; hn.src = 'http://hnbutton.appspot.com/static/hn.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(hn, s);
})();
</script>

View File

@@ -0,0 +1,18 @@
{% extends 'base.html' %}
{% block main_section %}
<section class="main-section blog-section" id="blog-posts">
{% for article in articles_page.object_list %}
<h3 class="date">{{article.locale_date}}</h3>
<article>
<hgroup>
<h2><a href="{{article.url}}" title="Permalink to {{article.title}}">{{article.title}}</a></h2>
</hgroup>
{{article.content}}
</article>
{% endfor %}
{% include "pagination.html" %}
</section>
{% endblock %}

View File

@@ -0,0 +1,21 @@
{% extends 'base.html' %}
{% block pagetitle %}Instagram Auth{% endblock %}
{% block main_section %}
<section class="main-section">
<article>
{% if error %}
<h2>Unable to get Access Token</h2>
<p>{{ error }}</p>
{% else %}
<h2>Instagram Access Token</h2>
<p>Go to your syte_settings.py and enter the token under <code>INSTAGRAM_ACCESS_TOKEN</code> and the user id under <code>INSTAGRAM_USER_ID</code>.</p>
<dl>
<dt>User Name</dt><dd> {{ user_name }}</dd>
<dt>User ID</dt><dd>{{ user_id }}</dd>
<dt>Access Token</dt><dd>{{ token }}</dd>
</dl>
{% endif %}
</article>
</section>
{% endblock %}

View File

@@ -0,0 +1,14 @@
{% if DEFAULT_PAGINATION %}
<p class="paginator">
{% if articles_page.has_previous() %}
{% if articles_page.previous_page_number() == 1 %}
<a href="{{ SITEURL }}/{{ page_name }}.html" class="button_accent">&larr;&nbsp;&nbsp;&nbsp;newer</a>
{% else %}
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.previous_page_number() }}.html" class="button_accent">&larr;&nbsp;&nbsp;&nbsp;newer</a>
{% endif %}
{% endif %}
{% if articles_page.has_next() %}
<a href="{{ SITEURL }}/{{ page_name }}{{ articles_page.next_page_number() }}.html" class="button_accent" style="float:right; right: 0;">continue&nbsp;&nbsp;&nbsp;&rarr;</a>
{% endif %}
</p>
{% endif %}

View File

@@ -0,0 +1,18 @@
{% extends 'base.html' %}
{% block title %}Posts tagged '{{tag}}' | Samrat Man Singh {% endblock %}
{% block main_section %}
<section class="main-section blog-section" id="blog-posts">
{% for article in articles[:5] %}
<h3 class="date">{{article.locale_date}}</h3>
<article>
<hgroup>
<h2><a href="{{article.url}}" title="Permalink to {{article.title}}">{{article.title}}</a></h2>
</hgroup>
{{article.content}}
</article>
{% endfor %}
</section>
{% endblock %}

View File

@@ -0,0 +1,3 @@
{% if TWITTER_USERNAME %}
<a href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="{{TWITTER_USERNAME}}">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
{% endif %}