2013-05-08 14:44:11 -07:00
{% load snipt_tags intercom %}
2012-02-15 15:25:13 -08:00
2011-06-01 21:50:18 -07:00
<!DOCTYPE html>
2013-05-08 21:38:24 -07:00
< html lang = "en" class = "{% block html-class %}{% endblock %}" ng-app = "Snipt" >
2011-06-01 21:50:18 -07:00
< head >
2011-10-23 19:44:37 -07:00
2014-04-22 06:30:03 -07:00
< title > {% block page-title %}Snipt{% endblock %}< / title >
2013-02-13 20:42:54 -08:00
2014-04-22 06:30:03 -07:00
< meta charset = "utf-8" / >
< meta name = "google-site-verification" content = "BantFMmY6nSP8wFvb_SDKwYZo08HglaCpNMXQqTyOuk" / >
2013-02-13 20:42:54 -08:00
2014-04-22 06:30:03 -07:00
{% block page-description %}
< meta name = "description" content = "Long-term memory for coders. Share and store code snippets." / >
{% endblock %}
2012-05-21 08:21:12 -07:00
2014-04-22 06:30:03 -07:00
{% if 'page' in request.GET %}
< meta name = "robots" content = "noindex, follow" / >
{% endif %}
2012-05-21 08:21:12 -07:00
2014-04-22 06:30:03 -07:00
{% if debug %}
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/bootstrap.min.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/style.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/themes.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/chosen.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/ambiance.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/blackboard.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/cobalt.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/eclipse.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/elegant.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/erlang-dark.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/lesser-dark.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/monokai.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/neat.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/night.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/rubyblue.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/solarized.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/twilight.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/vibrant-ink.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/codemirror-themes/xq-dark.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/highlightjs-themes/tomorrow.css" / >
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/blog-themes/default/style.css" / >
{% else %}
2014-05-04 05:13:45 -07:00
< link rel = "stylesheet" type = "text/css" href = "{{ STATIC_URL }}css/snipt.css?109" / >
2014-04-22 06:30:03 -07:00
{% endif %}
2012-02-18 11:42:30 -08:00
2014-04-22 06:30:03 -07:00
{% if has_snipts and not detail %}
< link rel = "alternate" type = "application/rss+xml" title = "RSS" href = "{{ request.path }}?rss{% if not public %}&api_key={{ request.user.api_key.key }}{% endif %}" / >
{% endif %}
2012-04-13 20:30:23 -07:00
2014-04-22 06:30:03 -07:00
< link rel = "author" href = "/humans.txt" / >
2013-02-13 20:42:54 -08:00
2014-04-22 06:30:03 -07:00
{% block css %}{% endblock %}
2013-01-19 21:17:43 -08:00
2014-04-22 06:30:03 -07:00
<!-- [if IE]>
< style type = "text/css" >
.group {
display: block;
zoom: 1;
}
< / style >
<![endif]-->
2011-06-01 21:50:18 -07:00
2014-04-22 06:30:03 -07:00
<!-- [if lt IE 9]>
< script src = "https://html5shiv.googlecode.com/svn/trunk/html5.js" > < / script >
<![endif]-->
2011-06-01 21:50:18 -07:00
< / head >
2014-03-25 11:27:21 -07:00
< body class = "{% block body-class %}{% endblock %} {% if request.user.profile.is_pro %}is-pro{% endif %}" ng-controller = "AppController" >
2014-04-22 06:30:03 -07:00
{% block header %}
< header class = "main" >
< div class = "inner" >
< div class = "shadey" > < / div >
< h1 class = "main-logo" > < a href = "{% if request.user.is_authenticated %}/{{ request.user.username }}/{% else %}/{% endif %}" > snip< span > t< / span > < / a > < / h1 >
< form class = "search" action = "/search/" method = "get" ng-controller = "HeaderSearchController" >
< fieldset >
< div class = "fields" >
< input ng-model = "search.query" type = "text" class = "search-query" name = "q"
ng-init="search.query='{{ query|escapejs }}'"
placeholder="Search snipts" id="id_q"
value="{{ query }}" />
< / div >
< / fieldset >
< / form >
< nav class = "public" >
< ul >
{% if not request.user.is_authenticated %}
< li >
< a href = "/public/" { % if ' / public / ' in request . path or public % } class = "active" { % endif % } > Public snipts< / a >
< / li >
< li >
< a href = "/login/?next={{ request.path }}" { % if ' / login / ' in request . path % } class = "active" { % endif % } > Log in< / a >
< / li >
< li >
< a href = "/signup/" { % if ' / signup / ' in request . path % } class = "active" { % endif % } > Sign up< / a >
< / li >
{% else %}
< li >
< a href = "/{{ request.user.username }}/" { % if request . user . username in request . path % } class = "active" { % endif % } > My snipts< / a >
< / li >
< li >
< a href = "/public/" { % if ' / public / ' in request . path or public % } class = "active" { % endif % } > Public snipts< / a >
< / li >
< li class = "add-snipt" >
< button class = "btn btn-info btn-large" id = "add-snipt" >
Add {% if request.user.username == 'blog' %}Post{% else %}Snipt{% endif %}
< i class = "icon-search icon-plus icon-white" > < / i >
< / button >
< / li >
{% endif %}
< / ul >
< / nav >
{% if request.user.is_authenticated %}
< aside class = "nav" >
< a href = "#" class = "mini-profile" >
< span class = "avatar" style = "background-image: url('https://secure.gravatar.com/avatar/{{ request.user.email|md5 }}?s=35');" > < / span >
< span class = "info" >
< span class = "username" > {{ request.user.username }}< / span >
< i class = "icon-cog icon-white" > < / i >
< span class = "type" >
{% if request.user.profile.is_pro %}
< span class = "is-pro" > Pro< / span >
{% else %}
Basic member
2012-05-31 19:32:32 -07:00
{% endif %}
2014-04-22 06:30:03 -07:00
< / span >
< / span >
< / a >
< ul >
< li >
< a href = "/{{ request.user.username }}/" >
< i class = "icon-user icon-white" > < / i >
Profile
< / a >
< / li >
< li >
< a href = "/account/stats/" >
< i class = "icon-star icon-white" > < / i >
Stats
< / a >
< / li >
< li >
< a href = "/account/" >
< i class = "icon-cog icon-white" > < / i >
Account
< / a >
< / li >
{% if not request.user.profile.is_pro %}
< li >
< a href = "/pro/" >
< i class = "icon-star-empty icon-white" > < / i >
Go Pro
< / a >
< / li >
{% endif %}
{% if request.user.is_superuser %}
< li >
< a href = "/admin/" >
< i class = "icon-cog icon-white" > < / i >
Admin
< / a >
< / li >
{% endif %}
< li >
< a href = "/logout/?next={{ request.path }}" >
< i class = "icon-off icon-white" > < / i >
Log out
< / a >
< / li >
< / ul >
< / aside >
{% endif %}
< / div >
< / header >
{% endblock %}
{% block sub-header %}
< header class = "sub" >
< div class = "inner group" >
2014-04-30 09:35:20 -07:00
< ul class = "bcrumb group" >
2014-04-22 06:30:03 -07:00
< li class = "prompt" > /< / li >
{% block breadcrumb %}{% endblock %}
< / ul >
< div class = "shortcuts" >
Ctrl+h for KB shortcuts
< / div >
< / div >
< / header >
{% endblock %}
{% block main %}
< section class = "main group" id = "main" >
{% block aside %}
< aside class = "main" >
{% block ad %}
{% if not request.user.profile.is_pro %}
{% include 'ad-sidebar.html' %}
{% endif %}
{% endblock %}
{% block aside-top %}{% endblock %}
{% block aside-inner %}{% endblock %}
< nav class = "footer" >
< ul >
< li class = "api" >
< a href = "/api/" { % if ' / api / ' in request . path % } class = "active" { % endif % } > < span > API< / span > < / a >
< / li >
< li class = "twitter" >
< a href = "https://twitter.com/#!/snipt" > < span > @snipt< / span > < / a >
< / li >
{% if not request.user.profile.is_pro %}
< li class = "pro" >
< a href = "/pro/" > < span > Go Pro< / span > < / a >
< / li >
{% endif %}
< li class = "blog" >
< a href = "https://blog.snipt.net/" > < span > Snipt Blog< / span > < / a >
< / li >
< li class = "blog" >
< a href = "/apps/" { % if ' / apps / ' in request . path % } class = "active" { % endif % } > < span > Snipt Apps< / span > < / a >
< / li >
< li class = "blog" >
< a href = "/blogging/" { % if ' / blogging / ' in request . path % } class = "active" { % endif % } > < span > Blogging on Snipt< / span > < / a >
< / li >
< li class = "roadmap" >
< a href = "https://github.com/nicksergeant/snipt/" > < span > Open source on GitHub< / span > < / a >
< / li >
< li class = "roadmap" >
< a href = "https://github.com/nicksergeant/snipt/issues?state=open" > < span > Bugs & feature requests< / span > < / a >
< / li >
< li class = "roadmap" >
< a href = "http://getsentry.com/" > < span > Shipped with confidence< / span > < / a >
< / li >
< / ul >
< / nav >
< div class = "linode" >
< a href = "http://www.linode.com/" title = "Linode - Xen VPS Hosting. Deploy and Manage Linux Virtual Servers in the Linode Cloud." target = "blank" >
< span > Proudly hosted on< / span >
< / a >
2012-01-25 06:49:36 -08:00
< / div >
2014-04-22 06:30:03 -07:00
< / aside >
2012-05-31 22:21:28 -07:00
{% endblock %}
2014-04-22 06:30:03 -07:00
< div class = "inner" >
{% block content %}{% endblock %}
{% block rochester-made %}
< div class = "rochester-made" >
< a href = "http://rochestermade.com/" title = "Proudly made in Rochester, NY, USA" >
< img src = "{{ STATIC_URL }}img/rochester-made.png" alt = "" / >
< / a >
< / div >
{% endblock %}
< / div >
< div class = "left-y ruler" > < / div >
< div class = "right-y ruler" > < / div >
< / section >
{% endblock %}
{% block main-edit %}
< section class = "main group hidden" id = "main-edit" > < / section >
{% endblock %}
2014-05-02 14:36:51 -07:00
< div class = "get-support" >
< a class = "btn btn-info" href = "/pro/" > Get support » < / a >
< / div >
2014-04-22 06:30:03 -07:00
{% block keyboard-shortcuts %}
< div class = "modal hide" id = "keyboard-shortcuts" >
< div class = "modal-header" >
< a href = "#" class = "close" > × < / a >
< h3 > < span > Keyboard shortcuts< / span > < / h3 >
< / div >
< div class = "modal-body" >
< table class = "table table-striped table-bordered table-condensed" >
< thead >
< tr >
< th > Key< / th >
< th > Function< / th >
< / tr >
< / thead >
< tbody >
< tr >
< td > < ctrl-h> < / td >
< td > Show / hide keyboard shortcuts< / td >
< / tr >
< tr >
< td > /< / td >
< td > Focus search field< / td >
< / tr >
< tr >
< td > esc< / td >
< td > Unfocus search field / deselect snipt< / td >
< / tr >
< tr >
< td > j< / td >
< td > Next snipt< / td >
< / tr >
< tr >
< td > k< / td >
< td > Previous snipt< / td >
< / tr >
< tr >
< td > o / return< / td >
< td > Go to snipt< / td >
< / tr >
< tr >
< td > u< / td >
< td > Go to snipt's author< / td >
< / tr >
< tr >
< td > e< / td >
< td > Expand / collapse snipt< / td >
< / tr >
< tr >
< td > v< / td >
< td > Embed snipt< / td >
< / tr >
< tr >
< td > c< / td >
< td > Copy snipt< / td >
< / tr >
< tr >
< td > < ctrl-e> < / td >
< td > Edit snipt< / td >
< / tr >
< tr >
< td > < ctrl-delete> or < ctrl-backspace> < / td >
< td > Delete snipt< / td >
< / tr >
< tr >
< td > < ctrl-n> or < alt+n> < / td >
< td > Add new snipt< / td >
< / tr >
< tr >
< td > < ctrl-s> < / td >
< td > Save snipt< / td >
< / tr >
< tr >
< td > < ctrl-c> < / td >
< td > Save snipt and close< / td >
< / tr >
< tr >
< td > n< / td >
< td > Next page< / td >
< / tr >
< tr >
< td > p< / td >
< td > Previous page< / td >
< / tr >
< tr >
< td > g< / td >
< td > Scroll to top of page< / td >
< / tr >
< tr >
< td > G< / td >
< td > Scroll to bottom of page< / td >
< / tr >
< / tbody >
< / table >
< / div >
< / div >
{% endblock %}
2012-07-08 20:44:47 -07:00
2014-04-22 06:30:03 -07:00
{% block extra-scripts %}{% endblock %}
2013-02-10 20:15:53 -08:00
2014-04-22 06:30:03 -07:00
{% block inline-js %}
< script type = "text/javascript" >
{% block js %}
window.user = '{{ request.user.username }}';
window.user_id = {% firstof request.user.id 'null' %};
window.user_ip = '{{ request.META.REMOTE_ADDR }}';
window.user_profile_id = {% firstof request.user.profile.id 'null' %};
window.user_email = '{{ request.user.email }}';
2013-02-10 20:15:53 -08:00
2014-04-22 06:30:03 -07:00
{% if public %}
window.pub = {{ public|lower }};
{% else %}
window.pub = null;
{% endif %}
2013-02-10 20:15:53 -08:00
2014-04-22 06:30:03 -07:00
window.api_key = '{{ request.user.api_key.key }}';
2012-07-08 20:44:47 -07:00
{% endblock %}
2014-04-22 06:30:03 -07:00
{% if request.user.profile.is_pro %}
window.user_is_pro = true;
2013-10-21 12:22:47 -07:00
{% else %}
2014-04-22 06:30:03 -07:00
window.user_is_pro = false;
2013-10-21 12:22:47 -07:00
{% endif %}
2014-04-22 06:30:03 -07:00
window.default_editor = '{{ request.user.profile.get_default_editor_display|lower }}';
window.editor_theme = '{{ request.user.profile.editor_theme }}';
< / script >
{% endblock %}
2013-10-21 12:22:47 -07:00
2014-04-22 06:30:03 -07:00
{% if debug %}
2014-04-30 09:35:20 -07:00
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/jquery.min.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/jquery-ui.min.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/angular.min.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/angular-route.min.js" > < / script >
2014-04-22 06:30:03 -07:00
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/underscore.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/json2.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/backbone.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/bootstrap.min.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/plugins/jquery.hotkeys.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/plugins/jquery.infieldlabel.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/plugins/jquery.chosen.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/codemirror.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/libs/highlight.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/application.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/modules/site.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/modules/snipt.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/account.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/snipts.js" > < / script >
< script type = "text/javascript" src = "{{ STATIC_URL }}js/src/search.js" > < / script >
{% else %}
2014-05-04 05:13:45 -07:00
< script type = "text/javascript" src = "{{ STATIC_URL }}js/snipt-all.min.js?70" > < / script >
2014-04-22 06:30:03 -07:00
{% endif %}
{% if has_snipts and detail %}
< script > ! function ( d , s , id ) { var js , fjs = d . getElementsByTagName ( s ) [ 0 ] ; if ( ! d . getElementById ( id ) ) { js = d . createElement ( s ) ; js . id = id ; js . src = "//platform.twitter.com/widgets.js" ; fjs . parentNode . insertBefore ( js , fjs ) ; } } ( document , "script" , "twitter-wjs" ) ; < / script >
{% endif %}
{% block snipt-templates %}
< div class = "hidden" id = "templates" >
{% include 'snipts/snipt-js-template.html' %}
{% include 'snipts/snipt-edit-js-template.html' %}
< / div >
{% endblock %}
2014-05-02 14:36:51 -07:00
{% if request.user.is_authenticated and request.user.is_pro %}
2014-04-22 06:30:03 -07:00
{% if not debug %}
{% block intercom %}
2014-05-02 14:36:51 -07:00
< script id = "IntercomSettingsScriptTag" >
var intercomSettings = {
app_id: 'sajf131y',
user_id: {{ request.user.id }},
user_hash: '{{ request.user.id|intercom_sha_256 }}',
email: '{{ request.user.email }}',
created_at: {{ request.user.date_joined|date:"U" }},
custom_data: {
'snipts count': {% snipts_count_for_user %},
'profile link': 'https://snipt.net/{{ request.user.username }}/',
'is pro': window.user_is_pro,
'blog domain': '{{ request.user.profile.blog_domain }}'
},
widget: {
activator: '#IntercomDefaultWidget'
}
};
< / script >
< script >
(function() {
function async_load() {
var s = document.createElement('script');
s.type = 'text/javascript'; s.async = true;
s.src = 'https://static.intercomcdn.com/intercom.v1.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
}
if (window.attachEvent) {
window.attachEvent('onload', async_load);
} else {
window.addEventListener('load', async_load, false);
}
})();
< / script >
2013-02-13 20:42:54 -08:00
{% endblock %}
2014-04-22 06:30:03 -07:00
{% endif %}
{% endif %}
2012-07-08 20:44:47 -07:00
2014-04-22 06:30:03 -07:00
{% include 'analytics.html' %}
2012-08-09 12:58:25 -07:00
2014-04-22 06:30:03 -07:00
{% block preload %}
< div class = "hidden" >
< img src = "{{ STATIC_URL }}img/header-fixed-save.gif" alt = "" / >
< img src = "{{ STATIC_URL }}img/chosen-sprite.png" alt = "" / >
< img src = "{{ STATIC_URL }}img/aside-nav-open-bottom-bg.gif" alt = "" / >
< img src = "{{ STATIC_URL }}img/aside-nav-open-top-bg.gif" alt = "" / >
< / div >
{% endblock %}
2014-02-05 12:48:23 -08:00
2011-06-01 21:50:18 -07:00
< / body >
< / html >