blob: 91532dce81ef8b7ead708f158679985af694c71a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
|
{% extends 'src_base.html' %}
{% load typogrify_tags %}
{% load comments %}
{% block pagetitle %}{{object.title|striptags}} | luxagraf:src{% endblock %}
{% block bodyid %}class="src detail single"{% endblock %}
{% block metadescription %}{% autoescape on %}{{object.meta_description|striptags|safe}}{% endautoescape %}{% endblock %}
{%block extrahead%}
<meta property="og:type" content="article" />
<meta property="og:site_name" content="luxagraf:src"/>
<meta property="og:title" content="{{object.title|safe}}" />
<meta property="og:url" content="https://luxagraf.net{{object.get_absolute_url}}" />
<meta property="og:image" content="">
<meta property="og:description" content="{{object.meta_description}}" />
<meta property="article:published_time" content="{{object.pub_date|date:'c'}}" />
<meta property="article:author" content="Luxagraf" />
<meta property="og:site_name" content="Luxagraf:src" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:site" content="@luxagraf"/>
<meta name="twitter:creator" content="@luxagraf"/>
<link rel="stylesheet" href="/media/src/solarized.css" type="text/css" media="screen"/>
{%endblock%}
{% block primary %}<ul class="bl" id="breadcrumbs" itemscope itemtype="http://data-vocabulary.org/Breadcrumb">
<li><a href="/" title="luxagraf homepage" itemprop="url"><span itemprop="title">Home</span></a> → </li>
<li><a href="/src/"><code>src</code></a></li>
</ul>
<main role="main">
<article class="hentry post-article{% with object.get_template_name_display as t %}{%if t == "double" or t == "double-dark" %} post--article--double{%endif%}{%endwith%}" itemscope itemType="http://schema.org/Article">
<header id="header" class="post-header {% with object.get_template_name_display as t %}{%if t == "double" or t == "double-dark" %}post--header--double{%endif%}{%endwith%}">
<h1 class="p-name entry-title post--title" itemprop="headline">{%if object.template_name == 1 or object.template_name == 3 %}{{object.title|safe|smartypants}}{%else%}{{object.title|safe|smartypants|widont}}{%endif%}</h1>
<h2 class="post-subtitle">{{object.meta_description|smartypants|safe}}</h2>
<div class="post-dateline">
{% if object.topics.all %}<h4 class="post-source">Topics: {% for topic in object.topics.all%} <a href="/src/topic/{{topic.slug}}">{{topic.name}}</a>{%if forloop.last%}{%else%}, {%endif%}{%endfor%}</h4>{%endif%}
{% if object.slug != 'about' %}<time class="dt-published published dt-updated post-date" datetime="{{object.pub_date|date:'c'}}" itemprop="datePublished">{{object.pub_date|date:"F"}} <span>{{object.pub_date|date:"j, Y"}}</span></time>{%endif%}
<p class="p-author author hide" itemprop="author"><span class="byline-author" itemscope itemtype="http://schema.org/Person"><span itemprop="name">Scott Gilbertson</span></span></p>
</div>
</header>
<div id="article" class="e-content entry-content post-body post-body-{% with object.template_name as t %}{%if t == 0 or t == 2 %}single{%endif%}{%if t == 1 or t == 3 %}double{%endif%}{%endwith%}" itemprop="articleBody">
{{object.body_html|safe|smartypants|widont}}
</div>
</article>
{% if object.slug != 'about' %}
{% with object.get_next_published as next %}
{% with object.get_previous_published as prev %}
<nav id="page-navigation">
<ul>{% if prev%}
<li id="prev"><span class="bl">Previous:</span>
<a href="{{ prev.get_absolute_url }}" rel="prev" title=" {{prev.title}}">{{prev.title|safe}}</a>
</li>{%endif%}{% if next%}
<li id="next"><span class="bl">Next:</span>
<a href="{{ next.get_absolute_url }}" rel="next" title=" {{next.title}}">{{next.title|safe}}</a>
</li>{%endif%}
</ul>
</nav>{%endwith%}{%endwith%}
{%endif%}
</main>
{% if object.slug != 'about' %}
{% if object.enable_comments %}
{% get_comment_count for object as comment_count %}
{%if comment_count > 0 %}
<p class="comments--header">{{comment_count}} Comment{{ comment_count|pluralize }}</p>
{% render_comment_list for object %}
{%endif%}
{% render_comment_form for object %}
{% else %}
<p class="comments--header" style="text-align: center">Sorry, comments have been disabled for this post.</p>
{%endif%}
{%endif%}
{% endblock %}
{% block js %}
<script type="text/javascript">
window.onload = function() {
{% if object.enable_comments %}
{% get_comment_count for object as comment_count %}
{%if comment_count > 0 %}
//delay loading of gravatar images using noscript data-hash attribute
dataattr = document.getElementsByClassName("datahashloader");
for(var i=0; i<dataattr.length; i++) {
var c = dataattr[i].parentNode;
var img = document.createElement("img");
img.src = 'https://images.luxagraf.net/gravcache/' + dataattr[i].getAttribute('data-hash') + '.jpg';
img.className += "gravatar";
c.insertBefore(img, c.childNodes[3]);
}
{%endif%}
{%endif%}
{% with object.get_template_name_display as t %}{%if t == "single" or t == "single-dark" %}
createMap();
var open = false;
{%endif%}{%endwith%}
}
</script>
{% if object.has_code %}
{%endif %}
{% endblock %}
|