1 {% extends
"../base.html" %}
3 {% block title %}{{ post.title }}{% end block %}
6 {% import ipfire.accounts as accounts %}
8 <!-- Facebook OpenGraph -->
9 <meta property=
"og:site_name" content=
"IPFire Blog" />
10 <meta property=
"og:title" content=
"{{ post.title }} - The IPFire Blog" />
11 <meta property=
"og:description" content=
"{{ post.excerpt }}" />
12 <meta property=
"og:url" content=
"{{ request.full_url() }}" />
13 <meta property=
"og:image" content=
"{{ static_url("img/ipfire-tux.png
") }}" />
15 <meta property=
"og:type" content=
"article" />
16 {% if post.published_at %}
17 <meta property=
"og:article:published_time" content=
"{{ post.published_at.isoformat() }}" />
19 <meta property=
"og:article:modified_time" content=
"{{ post.updated_at.isoformat() }}" />
20 {% if isinstance(post.author, accounts.Account) %}
21 <meta property=
"og:article:author:first_name" content=
"{{ post.author.first_name }}" />
22 <meta property=
"og:article:author:last_name" content=
"{{ post.author.last_name }}" />
23 <meta property=
"og:article:author:username" content=
"{{ post.author.uid }}" />
25 {% for tag in post.tags %}
26 <meta property=
"og:article:tag" content=
"{{ tag }}" />
30 <meta property=
"twitter:site" content=
"@ipfire" />
31 <meta property=
"twitter:card" content=
"summary_large_image" />
32 <meta property=
"twitter:title" content=
"{{ post.title }} - The IPFire Blog" />
33 <meta property=
"twitter:description" content=
"{{ post.excerpt }}" />
34 <meta property=
"twitter:image" content=
"{{ static_url("img/ipfire-tux.png
") }}" />
38 {% import ipfire.accounts as accounts %}
40 <section class=
"hero {% if post.is_published() %}is-primary{% else %}is-light{% end %}">
41 <div class=
"hero-body">
42 <div class=
"container">
43 <nav class=
"breadcrumb is-medium" aria-label=
"breadcrumbs">
46 <a href=
"/">{{ _(
"Home") }}
</a>
49 <a href=
"/blog">{{ _(
"Blog") }}
</a>
51 <li class=
"is-active">
52 <a href=
"#" aria-current=
"page">{{ post.title }}
</a>
57 <h1 class=
"title is-1">{{ post.title }}
</h1>
59 <h6 class=
"subtitle is-6">
62 {% if isinstance(post.author, accounts.Account) %}
63 <a href=
"/users/{{ post.author.uid }}">{{ post.author.name }}
</a>,
65 <strong>{{ post.author }}
</strong>,
68 {% if post.is_published() %}
69 {% if post.updated_at and post.updated_at
> post.published_at %}
70 {{ locale.format_date(post.published_at, shorter=True, relative=False) }},
71 {{ _(
"Updated %s") % locale.format_date(post.updated_at, shorter=True) }}
73 {{ locale.format_date(post.published_at, shorter=True, relative=False) }}
75 {% elif post.published_at %}
76 {{ _(
"Scheduled to be published %s") % locale.format_date(post.published_at, relative=False) }}
78 {{ _(
"Not published, yet") }}
85 <section class=
"section">
86 <div class=
"container">
88 <div class=
"column is-three-fifths">
89 <div class=
"buttons are-medium">
90 {% if
"lightningwirelabs.com" in post.tags and post.link %}
91 <a class=
"button is-lwl is-fullwidth" href=
"{{ post.link }}">
92 <span class=
"icon-text">
94 <i class=
"fas fa-external-link-alt"></i>
96 <span>{{ _(
"Go to Lightning Wire Labs") }}
</span>
101 {% if post.release or
"donate" in post.tags %}
102 <a class=
"button is-primary is-fullwidth" href=
"/donate">
103 <span class=
"icon-text">
105 <i class=
"fas fa-heart"></i>
107 <span>{{ _(
"Donate") }}
</span>
112 {% if post.release %}
113 <a class=
"button is-dark is-fullwidth" href=
"/downloads/{{ post.release.slug }}">
114 <span class=
"icon-text">
116 <i class=
"fas fa-download"></i>
118 <span>{{ _(
"Download %s") % post.release }}
</span>
123 {% if post.is_editable(current_user) %}
124 <a class=
"button is-light is-fullwidth" href=
"/blog/{{ post.slug }}/edit">
126 <i class=
"fas fa-edit"></i>
128 <span>{{ _(
"Edit") }}
</span>
134 <div class=
"content">