Add tags with Octothorpe and RSS support
This commit is contained in:
parent
e2cf92a9dd
commit
da7ca76ed5
19 changed files with 333 additions and 73 deletions
|
|
@ -4,10 +4,11 @@ A responsive, bilingual, RSS-ready and system-themed blog with zero lines of Jav
|
|||
|
||||
## Next
|
||||
- [ ] Make visited links purple
|
||||
- [ ] [Add tags](https://docs.octothorp.es/)
|
||||
- [ ] Implement webmentions ([ref. 1](https://github.com/PlaidWeb/Pushl), [ref. 2](https://www.owenyoung.com/en/blog/indieweb/))
|
||||
- [ ] Deploy webmentions ([ref. 1](https://github.com/PlaidWeb/Pushl), [ref. 2](https://www.owenyoung.com/en/blog/indieweb/))
|
||||
- [ ] Replace all translation conditionals with `trans` calls
|
||||
|
||||
## Done
|
||||
- [x] [Add tags](https://docs.octothorp.es/)
|
||||
- [x] Add footers to more pages
|
||||
- [x] Add links RSS feed to header metadata
|
||||
- [x] Columnar widescreen articles
|
||||
|
|
|
|||
35
config.toml
35
config.toml
|
|
@ -5,13 +5,29 @@ base_url = "https://blog.jutty.dev"
|
|||
default_language = "en"
|
||||
|
||||
generate_feeds = true
|
||||
feed_filenames = ["rss.xml", "atom.xml"]
|
||||
feed_filenames = [ "atom.xml" ]
|
||||
|
||||
taxonomies = [
|
||||
{ name = "tags", feed = true },
|
||||
{ name = "tags", feed = true, render = true },
|
||||
]
|
||||
|
||||
[markdown]
|
||||
smart_punctuation = true
|
||||
bottom_footnotes = true
|
||||
external_links_class = "out-link"
|
||||
insert_anchor_links = "right"
|
||||
|
||||
[markdown.highlighting]
|
||||
theme = "night-owl"
|
||||
style = "class"
|
||||
|
||||
[extra]
|
||||
title_separator = "-"
|
||||
|
||||
[translations]
|
||||
page = "page"
|
||||
page_plural = "pages"
|
||||
|
||||
[languages]
|
||||
|
||||
[languages.pt]
|
||||
|
|
@ -20,13 +36,10 @@ feed_filenames = ["atom.xml"]
|
|||
title = "jutty.dev"
|
||||
description = "Vazamentos de uma memória nerd-computante"
|
||||
|
||||
[markdown]
|
||||
smart_punctuation = true
|
||||
bottom_footnotes = true
|
||||
taxonomies = [
|
||||
{ name = "tags", feed = true, render = true },
|
||||
]
|
||||
|
||||
[markdown.highlighting]
|
||||
theme = "night-owl"
|
||||
style = "class"
|
||||
|
||||
[extra]
|
||||
title_separator = "-"
|
||||
[languages.pt.translations]
|
||||
page = "página"
|
||||
page_plural = "páginas"
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@
|
|||
|
||||
# Feeds
|
||||
|
||||
- [All content](https://blog.jutty.dev/atom.xml)
|
||||
- [Posts only](https://blog.jutty.dev/posts/atom.xml)
|
||||
- [Notes only](https://blog.jutty.dev/notes/atom.xml)
|
||||
- [Links only](https://blog.jutty.dev/links/atom.xml)
|
||||
- [All content](/atom.xml)
|
||||
- [Posts only](/posts/atom.xml)
|
||||
- [Notes only](/notes/atom.xml)
|
||||
- [Links only](/links/atom.xml)
|
||||
- [Tag feeds](/tags)
|
||||
|
||||
The links above contain only English content. To also get Portuguese content, see the [corresponding page](/pt/feeds).
|
||||
|
|
|
|||
|
|
@ -3,9 +3,10 @@
|
|||
|
||||
# Feeds
|
||||
|
||||
- [Todo o conteúdo em português](https://blog.jutty.dev/pt/atom.xml)
|
||||
- [Apenas posts](https://blog.jutty.dev/pt/posts/atom.xml)
|
||||
- [Apenas notas](https://blog.jutty.dev/pt/notes/atom.xml)
|
||||
- [Apenas links](https://blog.jutty.dev/links/atom.xml)
|
||||
- [Todo o conteúdo em português](/pt/atom.xml)
|
||||
- [Apenas posts](/pt/posts/atom.xml)
|
||||
- [Apenas notas](/pt/notes/atom.xml)
|
||||
- [Apenas links](/links/atom.xml)
|
||||
- [Por tags](/pt/tags)
|
||||
|
||||
À exceção do feed de links, os feeds acima contêm apenas conteúdo em português. Para também receber conteúdo em inglês, veja a [página correspondente](/feeds).
|
||||
À exceção dos feeds de links e tags, os feeds acima contêm apenas conteúdo em português. Para também receber conteúdo em inglês, veja a [página correspondente](/feeds).
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
+++
|
||||
title = "Enjoying Alpine as a daily driver"
|
||||
date = 2025-02-23T22:07:09-03:00
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "linux", "alpine-linux" ]
|
||||
+++
|
||||
|
||||
I am happy to report that my Alpine root-on-ZFS experiment is -- apparently -- a success. I've been running it as my only OS on my laptop for the past week.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
+++
|
||||
title = "Waypipe: graphical remote access for Wayland applications"
|
||||
date = 2025-05-28T19:29:14-03:00
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "linux", "FreeBSD", "wayland" ]
|
||||
+++
|
||||
|
||||
Tried out [Waypipe](https://gitlab.freedesktop.org/mstoeckl/waypipe) today as a way to remotely control graphical Wayland applications between Alpine Linux and FreeBSD hosts and it's snappy on my wireless network + decade-old hardware combo!
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
+++
|
||||
title = "Half an year on Alpine: just musl aside"
|
||||
date = 2025-08-31T20:05:26-03:00
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "linux", "alpine-linux" ]
|
||||
+++
|
||||
|
||||
_**Warning**: Contains tongue-in-cheek language that might feel provocative if you have invested part of your identity into your software choices.[^1]_
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
title = "Introducing tori"
|
||||
date = 2024-06-30
|
||||
aliases = ["posts/introducing-tori.html"]
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "tori", "programming", "operating-systems" ]
|
||||
+++
|
||||
|
||||
**[tori](https://tori.jutty.dev/)** is a tool to track your personal systems' configurations and replicate them.
|
||||
|
|
@ -61,20 +64,20 @@ I mentioned a `base` directory. This is what a sample tori directory would look
|
|||
```
|
||||
.
|
||||
├── base
|
||||
│ ├── dhcpcd.conf
|
||||
│ ├── kernel-cmd-line.conf
|
||||
│ ├── packages
|
||||
│ └── vars.sh
|
||||
│ ├── dhcpcd.conf
|
||||
│ ├── kernel-cmd-line.conf
|
||||
│ ├── packages
|
||||
│ └── vars.sh
|
||||
├── .bkp
|
||||
│ ├── canonical
|
||||
│ │ ├── etc
|
||||
│ │ └── opt
|
||||
│ └── ephemeral
|
||||
│ └── etc
|
||||
│ ├── canonical
|
||||
│ │ ├── etc
|
||||
│ │ └── opt
|
||||
│ └── ephemeral
|
||||
│ └── etc
|
||||
├── src
|
||||
│ ├── checks.sh
|
||||
│ ├── copy.sh
|
||||
│ └── get.sh
|
||||
│ ├── checks.sh
|
||||
│ ├── copy.sh
|
||||
│ └── get.sh
|
||||
└── strap
|
||||
```
|
||||
|
||||
|
|
@ -129,5 +132,5 @@ So I decided to rewrite it with portability in mind. I am doing this rewrite in
|
|||
|
||||
tori is a bird that has just hatched, so everything is still very, very crude. At this stage, the docs often show intentions rather than implemented functionality. Still, because it is something I've come to depend on, it has this rewarding sense of usefulness behind it.
|
||||
|
||||
If it sounds interesting to you, take a look. You can follow development at the main [Git repository](https://brew.bsd.cafe/tori/tori) in BSD.Cafe's Git forge or through its mirrors on [GitHub](https://github.com/tori-nest/tori) and [Codeberg](https://codeberg.org/tori/tori). Going forward, I will also probably be talking a lot about it on my [Mastodon profile](https://mastodon.bsd.cafe/@jutty).
|
||||
If it sounds interesting to you, take a look. You can follow development at the [main repository at Codeberg](https://codeberg.org/tori/tori) or through its mirrors on [GitHub](https://github.com/tori-nest/tori) and [elsewhere](https://tori.jutty.dev/code). Going forward, I will also probably be talking a lot about it on my [Mastodon profile](https://mastodon.bsd.cafe/@jutty).
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
title = "Meeting the BSD family"
|
||||
date = 2024-05-20
|
||||
aliases = ["posts/meeting-the-bsd-family.html"]
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "bsd", "unix", "operating-systems" ]
|
||||
+++
|
||||
|
||||
During this year I have been delving deeper and deeper in the BSD realm. Switching my home server to FreeBSD, trying NetBSD and OpenBSD on my backup machine, getting a cheap SSD to see how they'd all run on my main one, all beaming with the joy of tinkering and learning.
|
||||
|
|
@ -30,7 +33,7 @@ Now, to lay any zealousness aside and not make this a saccharine one-sided tale,
|
|||
|
||||
This is certainly not something specific to BSD, but because it has such an engaged and savvy community, you definitely get to notice it sometimes. I'm talking about the tendency to identify with and then indiscriminately defend the software you use.
|
||||
|
||||
One common meme you'll find is people complaining about lack of hardware support, especially wifi. In response, I've seen people stating with little nuance that any difficulty to getting your hardware to work on \<insert a BSD OS here> is to be explained by poor skills or lack of dedication in reading the documentation.
|
||||
One common meme you'll find is people complaining about lack of hardware support, especially wifi. In response, I've seen people stating with little nuance that any difficulty to getting your hardware to work on `<insert a BSD OS here>` is to be explained by poor skills or lack of dedication in reading the documentation.
|
||||
|
||||
I see that as denial. When everyone around is just defending something to no end, no critiques allowed, it starts to feel... awkward, to say the least.
|
||||
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
title = "Scripts em OCaml"
|
||||
date = 2024-02-23
|
||||
aliases = ["posts/scripts-em-ocaml.html"]
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "ocaml" ]
|
||||
+++
|
||||
|
||||
Este blog gera suas postagens com o Pandoc, mas quem faz o trabalho lógico de identificar os arquivos e montar os comandos é um pequeno script em OCaml.
|
||||
|
|
|
|||
|
|
@ -1,6 +1,9 @@
|
|||
+++
|
||||
title = "On self-hosting being a patch"
|
||||
date = 2024-11-23T15:00:00-03:00
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "self-hosting" ]
|
||||
+++
|
||||
|
||||
Recently the blog post [Self-Hosting Isn't a Solution; It's A Patch](https://matduggan.com/self-hosting-isnt-a-solution-its-a-patch/) landed in my reading list via [Lobsters](https://lobste.rs/s/eisgx0/self_hosting_isn_t_solution_it_s_patch).
|
||||
|
|
|
|||
|
|
@ -2,6 +2,9 @@
|
|||
title = "Void on ZFS"
|
||||
date = 2024-06-09
|
||||
aliases = ["posts/void-on-zfs.html"]
|
||||
|
||||
[taxonomies]
|
||||
tags = [ "void-linux", "zfs" ]
|
||||
+++
|
||||
|
||||

|
||||
|
|
|
|||
|
|
@ -1,3 +1,8 @@
|
|||
:root {
|
||||
color-scheme: light dark;
|
||||
--base-font-size: 1em;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Mononoki';
|
||||
src: url('../fonts/Mononoki.ttf'), format('truetype');
|
||||
|
|
@ -63,6 +68,20 @@ body {
|
|||
margin-right: 20px;
|
||||
}
|
||||
|
||||
a.nav-tags-link {
|
||||
color: light-dark(#0bb, #0fa);
|
||||
background: light-dark(#ccdfdf, #333);
|
||||
padding: 4px 6px;
|
||||
border-radius: 4px;
|
||||
text-decoration-color: light-dark(#00923f, #0e6);
|
||||
}
|
||||
|
||||
a.nav-tags-link:hover {
|
||||
color: light-dark(#0aa, #0ff);
|
||||
background: light-dark(#ddd, #002);
|
||||
text-decoration-color: none;
|
||||
}
|
||||
|
||||
#language-selector {
|
||||
justify-self: end;
|
||||
grid-area: lang;
|
||||
|
|
@ -98,6 +117,91 @@ ul {
|
|||
list-style: none;
|
||||
}
|
||||
|
||||
div.contet-metadata {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
div.content-tags {
|
||||
display: inline;
|
||||
font-size: 14px;
|
||||
border: dashed;
|
||||
border-radius: 5px;
|
||||
border-width: 1px;
|
||||
border-color: #666;
|
||||
padding: 4px 10px;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.link-page-metadata div.content-tags {
|
||||
margin-left: 10px;
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
.content-tags span {
|
||||
color: light-dark(#063, #6db);
|
||||
}
|
||||
|
||||
.content-tags ul {
|
||||
display: inline;
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
.content-tags li::before {
|
||||
content: "";
|
||||
}
|
||||
|
||||
.content-tags li {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
|
||||
a.rss-link {
|
||||
color: light-dark(#eb5e00ff, #f60);
|
||||
background: light-dark(#ddd, #333);
|
||||
padding: 4px 6px;
|
||||
border-radius: 4px;
|
||||
text-decoration-color: #f40;
|
||||
}
|
||||
|
||||
a.rss-link:hover {
|
||||
color: light-dark(#333, #000);
|
||||
background: light-dark(#ffa666ff, #8f3700);
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
.taxon-list .rss-link {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
span.taxon-count {
|
||||
font-size: 12px;
|
||||
}
|
||||
|
||||
.taxon-title {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.taxon-title a.taxon-rss-link {
|
||||
margin-left: 10px;
|
||||
}
|
||||
|
||||
.taxon-page-kind-label {
|
||||
color: light-dark(#222, #999);
|
||||
background: light-dark(#ccc, #333);
|
||||
padding: 4px 6px;
|
||||
border-radius: 4px;
|
||||
font-size: 12px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
a.zola-anchor {
|
||||
color: #555;
|
||||
font-style: italic;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
details {
|
||||
margin: 30px;
|
||||
background: #cccccc;
|
||||
|
|
@ -146,6 +250,10 @@ main {
|
|||
text-decoration-thickness: 0.1px;
|
||||
}
|
||||
|
||||
.post-date {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.link-data {
|
||||
margin-top: 0
|
||||
}
|
||||
|
|
@ -154,6 +262,10 @@ main {
|
|||
margin-right: 20px;
|
||||
}
|
||||
|
||||
.content-metadata .link-author {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
article .post-date {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
|
@ -325,6 +437,15 @@ footer {
|
|||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.link-box .link-date, .link-box .link-author {
|
||||
display: block;
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.link-box .link-date, .link-box div.content-tags {
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* tablet */
|
||||
|
|
|
|||
3
templates/anchor-link.html
Normal file
3
templates/anchor-link.html
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
{%- if level > 1 %}
|
||||
<a class="zola-anchor" href="#{{ id }}" aria-label="Anchor link for: {{ id }}">#</a>
|
||||
{%- endif -%}
|
||||
|
|
@ -2,6 +2,8 @@
|
|||
{%- set translation_count = page.translations | length %}
|
||||
{%- elif section %}
|
||||
{%- set translation_count = section.translations | length %}
|
||||
{%- else %}
|
||||
{%- set translation_count = 0 %}
|
||||
{%- endif -%}
|
||||
<!DOCTYPE html>
|
||||
{%- if lang == "pt" %}
|
||||
|
|
@ -46,7 +48,20 @@
|
|||
<meta property="og:image" content="{{ get_url(path="assets/img/icons/kitty/kitty_circle_192.png") }}" />
|
||||
<meta name="fediverse:creator" content="@jutty@tilde.zone">
|
||||
|
||||
{% block rss -%}
|
||||
<meta name="octo-policy" content="index">
|
||||
{% if page.taxonomies -%}
|
||||
{%- for taxonomy, terms in page.taxonomies -%}
|
||||
{%- if taxonomy == "tags" -%}
|
||||
{%- for tag in terms -%}
|
||||
<link rel="octo:octothorpes" href="{{ tag }}">
|
||||
{% endfor -%}
|
||||
{%- endif -%}
|
||||
{% endfor -%}
|
||||
{%- endif -%}
|
||||
|
||||
{%- block extra_head %}{% endblock %}
|
||||
|
||||
{%- block rss -%}
|
||||
{%- if lang == "pt" %}
|
||||
{%- set locale_all_content = "Todo o conteúdo" %}
|
||||
{%- set locale_language_name = "Português" %}
|
||||
|
|
@ -59,7 +74,6 @@
|
|||
<link rel="alternate" type="application/rss+xml" title="{% if lang == "pt" %}Notas{% else %}Notes{% endif %} ({{ locale_language_name }})" href="{{ get_url(path="notes/atom.xml", lang=lang, trailing_slash=false) }}">
|
||||
<link rel="alternate" type="application/rss+xml" title="Links" href="{{ get_url(path="links/atom.xml", trailing_slash=false) }}">
|
||||
{%- endblock %}
|
||||
{%- block extra_head %}{% endblock %}
|
||||
|
||||
<script defer src="https://stats.jutty.dev/script.js" data-website-id="f402fd3a-d5db-4121-ac20-3ca2eaea338a"></script>
|
||||
<noscript><img src="https://stats.jutty.dev/p/rYMIdIgEV"></noscript>
|
||||
|
|
@ -86,8 +100,9 @@
|
|||
<li><a href="{{ get_url(path="posts", lang=lang) }}">Posts</a></li>
|
||||
<li><a href="{{ get_url(path="notes", lang=lang) }}">{% if lang == "pt" %}Notas{% else %}Notes{% endif %}</a></li>
|
||||
<li><a href="{{ get_url(path="links", lang=lang) }}">Links</a></li>
|
||||
<li><a href="{{ get_url(path="feeds", lang=lang) }}">RSS</a></li>
|
||||
<li><a href="https://tilde.zone/@jutty">Mastodon</a></li>
|
||||
<li><a class="nav-tags-link" href="{{ get_url(path="tags", lang=lang) }}">Tags</a></li>
|
||||
<li><a class="rss-link" href="{{ get_url(path="feeds", lang=lang) }}">RSS</a></li>
|
||||
<li><a href="http://jutty.dev/#talk">Socials</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
{% if current_path and translation_count > 1 %}
|
||||
|
|
@ -110,7 +125,19 @@
|
|||
</main>
|
||||
|
||||
<footer>
|
||||
{%- block footer %}{% endblock -%}
|
||||
{%- block footer %}
|
||||
<hr/>
|
||||
<p class="footer-text">
|
||||
{%- if lang == "pt" %}feito por{% else %}made by{% endif %} <a href="https://jutty.dev">jutty</a>
|
||||
{% if lang == "pt" %}com{% else %}with{% endif %} <a href="https://www.getzola.org/">Zola</a>
|
||||
• <a href="https://codeberg.org/jutty/blog">{% if lang == "pt" %}código fonte{% else %}source code{% endif %}</a>
|
||||
• <a href="https://jutty.dev/privacy">{% if lang == "pt" %}privacidade{% else %}privacy{% endif %}</a>
|
||||
• <a href="{{ get_url(path="acknowledgments") }}">{% if lang == "pt" %}créditos{% else %}acknowledgments{% endif %}</a>
|
||||
<br/>
|
||||
{% if lang == "pt" %}gerado em{% else %}built{% endif %} <time>{{ now(utc=true) | date(format="%Y-%m-%d %H:%M") }} UTC</time>,
|
||||
{{ now(timestamp=true) }}{% if lang == "pt" %}º segundo não-bissexto da Era Unix{% else %} non-leap seconds since the Unix Epoch{% endif %}
|
||||
</p>
|
||||
{% endblock footer -%}
|
||||
</footer>
|
||||
</div>
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -1,23 +1,29 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{%- block extra_head %}
|
||||
{%- endblock -%}
|
||||
|
||||
{% block content %}
|
||||
<article class="blog-post">
|
||||
<h1 id="post-title">{{ page.title }}</h1>
|
||||
<time class="post-date">{{ page.date | date(format="%Y-%m-%d %H:%M:%S") -}}</time>
|
||||
<div class="content-metadata">
|
||||
<time class="post-date">
|
||||
{{- page.date | date(format="%Y-%m-%d %H:%M:%S") -}}
|
||||
</time>
|
||||
{%- for taxonomy, terms in page.taxonomies -%}
|
||||
{%- if taxonomy == "tags" -%}
|
||||
<div class="content-tags"><span>tags:</span><ul>
|
||||
{%- for tag in terms -%}
|
||||
<li><a
|
||||
class="content-tags"
|
||||
href="{{ get_taxonomy_url(kind="tags", name=tag, lang=page.lang) }}">
|
||||
{{- tag -}}
|
||||
</a></li>
|
||||
{%- endfor -%}
|
||||
</ul></div>
|
||||
{%- endif -%}
|
||||
{% endfor -%}
|
||||
</div>
|
||||
{{ page.content | safe }}
|
||||
</article>
|
||||
{%- endblock content -%}
|
||||
|
||||
{%- block footer %}
|
||||
<hr/>
|
||||
<p class="footer-text">
|
||||
{%- if lang == "pt" %}feito por{% else %}made by{% endif %} <a href="https://jutty.dev">jutty</a>
|
||||
{% if lang == "pt" %}com{% else %}with{% endif %} <a href="https://www.getzola.org/">Zola</a>
|
||||
• <a href="https://github.com/jultty/blog">{% if lang == "pt" %}código fonte{% else %}source code{% endif %}</a>
|
||||
• <a href="https://jutty.dev/privacy">{% if lang == "pt" %}privacidade{% else %}privacy{% endif %}</a>
|
||||
• <a href="{{ get_url(path="acknowledgments") }}">{% if lang == "pt" %}créditos{% else %}acknowledgments{% endif %}</a>
|
||||
<br/>
|
||||
{% if lang == "pt" %}gerado em{% else %}built{% endif %} <time>{{ now(utc=true) | date(format="%Y-%m-%d %H:%M") }} UTC</time>,
|
||||
{{ now(timestamp=true) }}{% if lang == "pt" %}º segundo não-bissexto da Era Unix{% else %} non-leap seconds since the Unix Epoch{% endif %}
|
||||
</p>
|
||||
{% endblock footer -%}
|
||||
|
|
|
|||
|
|
@ -1,11 +1,25 @@
|
|||
{% extends "content.html" %}
|
||||
|
||||
{%- block content %}
|
||||
<div class="link-box">
|
||||
<h1 class="link-title"><a href="{{ page.extra.url }}">{{ page.title }}</a></h1>
|
||||
<p class="link-data"><span class="link-author">by {{ page.authors | join(sep=", ") }}</span>
|
||||
<time class="link-date"><strong>{% if lang == "pt" %}Linkado{% else %}Linked{% endif %} {{ page.date | date(format="%Y-%m-%d %H:%M:%S") }}</strong></time></p>
|
||||
</div>
|
||||
<div class="link-box">
|
||||
<h1 class="link-title">
|
||||
<a href="{{ page.extra.url }}" rel="octo:bookmarks">{{ page.title }}</a>
|
||||
</h1>
|
||||
<div class="content-metadata link-page-metadata">
|
||||
<span class="link-author">{% if lang == "pt" %}Por{% else %}By{% endif %} {{ page.authors | join(sep=", ") }}</span>
|
||||
<time class="link-date"><strong>{% if lang == "pt" %}Linkado{% else %}Linked{% endif %} {{ page.date | date(format="%Y-%m-%d %H:%M:%S") }}</strong></time>
|
||||
{%- for taxonomy, terms in page.taxonomies -%}
|
||||
{%- if taxonomy == "tags" -%}
|
||||
<div class="content-tags"><span>tags:</span><ul>
|
||||
{%- for tag in terms -%}
|
||||
<li><a class="content-tags" href="/tags/{{ tag }}">
|
||||
{{- tag -}}
|
||||
</a></li>
|
||||
{% endfor -%}
|
||||
</ul></div>
|
||||
{%- endif -%}
|
||||
{% endfor -%}
|
||||
</div>
|
||||
|
||||
{%- if page.extra.comment %}<p>{{ page.extra.comment }}</p>{% endif %}
|
||||
{{- page.content | safe }}
|
||||
|
|
|
|||
22
templates/taxonomy_list.html
Normal file
22
templates/taxonomy_list.html
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{%- block content %}
|
||||
<h1 class="title">{{ taxonomy.name }}</h1>
|
||||
<ul class="taxon-list">
|
||||
{%- for term in terms | sort(attribute="page_count") | reverse %}
|
||||
<li>
|
||||
<a href="{{ term.permalink -}}">
|
||||
{{- term.name -}}
|
||||
</a>
|
||||
{%- if term.page_count > 0 -%}
|
||||
<span class="taxon-count">
|
||||
{{ term.page_count }} {% if term.page_count > 1 -%}{{ trans(key="page_plural", lang=lang) }}{% else %}{{ trans(key="page", lang=lang) }}{% endif -%}
|
||||
</span>
|
||||
{%- endif -%}
|
||||
{%- if taxonomy.feed %}
|
||||
<a class="rss-link" href="{{ get_taxonomy_url(kind=taxonomy.name, name=term.name, lang=lang) | regex_replace(pattern="/$", rep="") }}/atom.xml">RSS</a>
|
||||
{%- endif -%}
|
||||
</li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{%- endblock content %}
|
||||
27
templates/taxonomy_single.html
Normal file
27
templates/taxonomy_single.html
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block extra_head %}
|
||||
{% endblock extra_head %}
|
||||
|
||||
{%- block content %}
|
||||
<h1 class="title taxon-title">{{ taxonomy.name }}: {{ term.name }}
|
||||
{%- if taxonomy.feed %}
|
||||
<a class="taxon-rss-link" href="{{ get_taxonomy_url(kind=taxonomy.name, name=term.name, lang=lang) | regex_replace(pattern="/$", rep="") }}/atom.xml">RSS</a>
|
||||
</h1>
|
||||
{%- endif -%}
|
||||
<ul>
|
||||
{%- for page in term.pages -%}
|
||||
{%- set kind = page.components[0] -%}
|
||||
<li>
|
||||
{%- if kind == "posts" -%}
|
||||
<a class="taxon-page-kind-label" href="/{{ kind }}">Post</a>
|
||||
{%- elif kind == "notes" -%}
|
||||
<a class="taxon-page-kind-label" href="/{{ kind }}">Note</a>
|
||||
{%- elif kind == "links" -%}
|
||||
<a class="taxon-page-kind-label" href="/{{ kind }}">Link</a>
|
||||
{%- endif %}
|
||||
<a href="{{ page.permalink -}}">{{ page.title }}</a>
|
||||
</li>
|
||||
{%- endfor %}
|
||||
</ul>
|
||||
{%- endblock content %}
|
||||
Loading…
Add table
Add a link
Reference in a new issue