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
|
## Next
|
||||||
- [ ] Make visited links purple
|
- [ ] Make visited links purple
|
||||||
- [ ] [Add tags](https://docs.octothorp.es/)
|
- [ ] Deploy webmentions ([ref. 1](https://github.com/PlaidWeb/Pushl), [ref. 2](https://www.owenyoung.com/en/blog/indieweb/))
|
||||||
- [ ] Implement 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
|
## Done
|
||||||
|
- [x] [Add tags](https://docs.octothorp.es/)
|
||||||
- [x] Add footers to more pages
|
- [x] Add footers to more pages
|
||||||
- [x] Add links RSS feed to header metadata
|
- [x] Add links RSS feed to header metadata
|
||||||
- [x] Columnar widescreen articles
|
- [x] Columnar widescreen articles
|
||||||
|
|
|
||||||
35
config.toml
35
config.toml
|
|
@ -5,13 +5,29 @@ base_url = "https://blog.jutty.dev"
|
||||||
default_language = "en"
|
default_language = "en"
|
||||||
|
|
||||||
generate_feeds = true
|
generate_feeds = true
|
||||||
feed_filenames = ["rss.xml", "atom.xml"]
|
feed_filenames = [ "atom.xml" ]
|
||||||
|
|
||||||
taxonomies = [
|
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]
|
[translations]
|
||||||
|
page = "page"
|
||||||
|
page_plural = "pages"
|
||||||
|
|
||||||
[languages]
|
[languages]
|
||||||
|
|
||||||
[languages.pt]
|
[languages.pt]
|
||||||
|
|
@ -20,13 +36,10 @@ feed_filenames = ["atom.xml"]
|
||||||
title = "jutty.dev"
|
title = "jutty.dev"
|
||||||
description = "Vazamentos de uma memória nerd-computante"
|
description = "Vazamentos de uma memória nerd-computante"
|
||||||
|
|
||||||
[markdown]
|
taxonomies = [
|
||||||
smart_punctuation = true
|
{ name = "tags", feed = true, render = true },
|
||||||
bottom_footnotes = true
|
]
|
||||||
|
|
||||||
[markdown.highlighting]
|
[languages.pt.translations]
|
||||||
theme = "night-owl"
|
page = "página"
|
||||||
style = "class"
|
page_plural = "páginas"
|
||||||
|
|
||||||
[extra]
|
|
||||||
title_separator = "-"
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@
|
||||||
|
|
||||||
# Feeds
|
# Feeds
|
||||||
|
|
||||||
- [All content](https://blog.jutty.dev/atom.xml)
|
- [All content](/atom.xml)
|
||||||
- [Posts only](https://blog.jutty.dev/posts/atom.xml)
|
- [Posts only](/posts/atom.xml)
|
||||||
- [Notes only](https://blog.jutty.dev/notes/atom.xml)
|
- [Notes only](/notes/atom.xml)
|
||||||
- [Links only](https://blog.jutty.dev/links/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).
|
The links above contain only English content. To also get Portuguese content, see the [corresponding page](/pt/feeds).
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,10 @@
|
||||||
|
|
||||||
# Feeds
|
# Feeds
|
||||||
|
|
||||||
- [Todo o conteúdo em português](https://blog.jutty.dev/pt/atom.xml)
|
- [Todo o conteúdo em português](/pt/atom.xml)
|
||||||
- [Apenas posts](https://blog.jutty.dev/pt/posts/atom.xml)
|
- [Apenas posts](/pt/posts/atom.xml)
|
||||||
- [Apenas notas](https://blog.jutty.dev/pt/notes/atom.xml)
|
- [Apenas notas](/pt/notes/atom.xml)
|
||||||
- [Apenas links](https://blog.jutty.dev/links/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"
|
title = "Enjoying Alpine as a daily driver"
|
||||||
date = 2025-02-23T22:07:09-03:00
|
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.
|
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"
|
title = "Waypipe: graphical remote access for Wayland applications"
|
||||||
date = 2025-05-28T19:29:14-03:00
|
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!
|
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"
|
title = "Half an year on Alpine: just musl aside"
|
||||||
date = 2025-08-31T20:05:26-03:00
|
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]_
|
_**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"
|
title = "Introducing tori"
|
||||||
date = 2024-06-30
|
date = 2024-06-30
|
||||||
aliases = ["posts/introducing-tori.html"]
|
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.
|
**[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
|
├── base
|
||||||
│ ├── dhcpcd.conf
|
│ ├── dhcpcd.conf
|
||||||
│ ├── kernel-cmd-line.conf
|
│ ├── kernel-cmd-line.conf
|
||||||
│ ├── packages
|
│ ├── packages
|
||||||
│ └── vars.sh
|
│ └── vars.sh
|
||||||
├── .bkp
|
├── .bkp
|
||||||
│ ├── canonical
|
│ ├── canonical
|
||||||
│ │ ├── etc
|
│ │ ├── etc
|
||||||
│ │ └── opt
|
│ │ └── opt
|
||||||
│ └── ephemeral
|
│ └── ephemeral
|
||||||
│ └── etc
|
│ └── etc
|
||||||
├── src
|
├── src
|
||||||
│ ├── checks.sh
|
│ ├── checks.sh
|
||||||
│ ├── copy.sh
|
│ ├── copy.sh
|
||||||
│ └── get.sh
|
│ └── get.sh
|
||||||
└── strap
|
└── 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.
|
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"
|
title = "Meeting the BSD family"
|
||||||
date = 2024-05-20
|
date = 2024-05-20
|
||||||
aliases = ["posts/meeting-the-bsd-family.html"]
|
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.
|
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,9 +33,9 @@ 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.
|
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.
|
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.
|
||||||
|
|
||||||
Conversely, when I see people openly pointing out weaknesses in something I value and that I can tell they also care for, I feel relief and admiration for that person and that community at large. And thankfully I have also found a lot of this among the BSD folks.
|
Conversely, when I see people openly pointing out weaknesses in something I value and that I can tell they also care for, I feel relief and admiration for that person and that community at large. And thankfully I have also found a lot of this among the BSD folks.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,9 @@
|
||||||
title = "Scripts em OCaml"
|
title = "Scripts em OCaml"
|
||||||
date = 2024-02-23
|
date = 2024-02-23
|
||||||
aliases = ["posts/scripts-em-ocaml.html"]
|
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.
|
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.
|
||||||
|
|
@ -11,7 +14,7 @@ Descobri essa linguagem quando comecei a investigar como poderia substituir o Ba
|
||||||
O script se resume a:
|
O script se resume a:
|
||||||
|
|
||||||
```ocaml
|
```ocaml
|
||||||
let pandoc_params =
|
let pandoc_params =
|
||||||
"--css ../../assets/style.css -s --to html5 --metadata pagetitle='basename' "
|
"--css ../../assets/style.css -s --to html5 --metadata pagetitle='basename' "
|
||||||
|
|
||||||
let vert md = begin
|
let vert md = begin
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,9 @@
|
||||||
+++
|
+++
|
||||||
title = "On self-hosting being a patch"
|
title = "On self-hosting being a patch"
|
||||||
date = 2024-11-23T15:00:00-03:00
|
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).
|
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).
|
||||||
|
|
@ -15,7 +18,7 @@ The second thought is that regulation and self-hosting are not opposed to each o
|
||||||
|
|
||||||
The regulations in Europe during the past years have surprised in how strong they are in favoring interoperability and some decentralization. Also, more then a few stories about European tech funds putting money into open source projects have crossed the same channels that landed this article among my browser tabs.
|
The regulations in Europe during the past years have surprised in how strong they are in favoring interoperability and some decentralization. Also, more then a few stories about European tech funds putting money into open source projects have crossed the same channels that landed this article among my browser tabs.
|
||||||
|
|
||||||
Neither of them is, alone, the solution, as you could also see regulation as a lubricant, a way of legitimizing the predatory practices of everyday capitalism by putting it into a nice, confined setting and stamping it with the seal of compliance, however you are able to ascertain it, while still allowing most of the damage to happen, be it a loophole, a cover-up or simply something that didn't happen to bother the regulators to begin with.
|
Neither of them is, alone, the solution, as you could also see regulation as a lubricant, a way of legitimizing the predatory practices of everyday capitalism by putting it into a nice, confined setting and stamping it with the seal of compliance, however you are able to ascertain it, while still allowing most of the damage to happen, be it a loophole, a cover-up or simply something that didn't happen to bother the regulators to begin with.
|
||||||
|
|
||||||
In this sense, the act of building completely independent platforms, able to operate using their own software and infrastructure, comes from a whole different angle and a much more incisive one at that. It works not simply on the level of "how can we make these companies play nice" but of "how can we not depend on these companies to begin with". This is not solely a concern about reliability, as seen when the article notices how small and underfunded decentralized projects can simply vanish due to lack of funds or inability to stand up to legal threats, it is a concern about privacy and autonomy too.
|
In this sense, the act of building completely independent platforms, able to operate using their own software and infrastructure, comes from a whole different angle and a much more incisive one at that. It works not simply on the level of "how can we make these companies play nice" but of "how can we not depend on these companies to begin with". This is not solely a concern about reliability, as seen when the article notices how small and underfunded decentralized projects can simply vanish due to lack of funds or inability to stand up to legal threats, it is a concern about privacy and autonomy too.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,13 +2,16 @@
|
||||||
title = "Void on ZFS"
|
title = "Void on ZFS"
|
||||||
date = 2024-06-09
|
date = 2024-06-09
|
||||||
aliases = ["posts/void-on-zfs.html"]
|
aliases = ["posts/void-on-zfs.html"]
|
||||||
|
|
||||||
|
[taxonomies]
|
||||||
|
tags = [ "void-linux", "zfs" ]
|
||||||
+++
|
+++
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
June is here. It brings the usual cold weather and some extra rhinitis complications. With that I find myself in a recovery mood Sunday, wrapped in a blanket with a mug of tea, a screwdriver, some notes on paper, a flash drive, a couple of NVMe cards and the trio of Unix-powered machines that will help me get this done.
|
June is here. It brings the usual cold weather and some extra rhinitis complications. With that I find myself in a recovery mood Sunday, wrapped in a blanket with a mug of tea, a screwdriver, some notes on paper, a flash drive, a couple of NVMe cards and the trio of Unix-powered machines that will help me get this done.
|
||||||
|
|
||||||
The mission is to get a root-on-ZFS EFI installation of Void Linux with ZFSBootMenu on a Dell Latitude 7480.
|
The mission is to get a root-on-ZFS EFI installation of Void Linux with ZFSBootMenu on a Dell Latitude 7480.
|
||||||
|
|
||||||
To my left, a ceiling-collapse-survivor Sony VAIO is running NetBSD with spectrwm. It's split with sakura and tmux on a terminal to one side, where Neovim is storing these words, and Firefox on the other, ready to fetch all the docs. In the middle, the object of today's operation. And to my right, a headless PC board runs FreeBSD with ZFS, holding all the backups needed for the post-install tasks.
|
To my left, a ceiling-collapse-survivor Sony VAIO is running NetBSD with spectrwm. It's split with sakura and tmux on a terminal to one side, where Neovim is storing these words, and Firefox on the other, ready to fetch all the docs. In the middle, the object of today's operation. And to my right, a headless PC board runs FreeBSD with ZFS, holding all the backups needed for the post-install tasks.
|
||||||
|
|
||||||
|
|
@ -46,7 +49,7 @@ For example, `xpbps-query --cat /etc/zfsbootmenu/config.yaml zfsbootmenu` will s
|
||||||
|
|
||||||
My first contact with ZFS was when using FreeBSD, which provides it as an option in its installer, making it a bit too easy not to try. Having a server on ZFS means all the data it holds can be safeguarded and transferred in robust ways, and mistakes are also easier to recover from.
|
My first contact with ZFS was when using FreeBSD, which provides it as an option in its installer, making it a bit too easy not to try. Having a server on ZFS means all the data it holds can be safeguarded and transferred in robust ways, and mistakes are also easier to recover from.
|
||||||
|
|
||||||
Aside from all the data integrity features and flexibility it brings, the features that interest me the most are the ones for managing snapshots.
|
Aside from all the data integrity features and flexibility it brings, the features that interest me the most are the ones for managing snapshots.
|
||||||
|
|
||||||
ZFS snapshots allow you to store the filesystem state at a given point in time, and to compare against, access the content of, and fully revert to this state. After the guide has been followed throughout, an extra section at the end of this post has some snapshot basics.
|
ZFS snapshots allow you to store the filesystem state at a given point in time, and to compare against, access the content of, and fully revert to this state. After the guide has been followed throughout, an extra section at the end of this post has some snapshot basics.
|
||||||
|
|
||||||
|
|
@ -54,7 +57,7 @@ ZFS snapshots allow you to store the filesystem state at a given point in time,
|
||||||
|
|
||||||
So, first things first, open the machine up and swap the NVMe cards. For me, that means getting my 128 GB NVMe stick, which I use basically for tests, and replace it with the 256 GB one which currently has Debian on it. Yes, I get by just fine with that much.
|
So, first things first, open the machine up and swap the NVMe cards. For me, that means getting my 128 GB NVMe stick, which I use basically for tests, and replace it with the 256 GB one which currently has Debian on it. Yes, I get by just fine with that much.
|
||||||
|
|
||||||
While a bit dusty, the machine was overall in good state. The release date for the model is 2017, which for my computing standards is very recent.
|
While a bit dusty, the machine was overall in good state. The release date for the model is 2017, which for my computing standards is very recent.
|
||||||
|
|
||||||
It has a single NVMe slot, one 16 GB RAM stick and one unused RAM slot. If you look closely, you can notice a dent on the vent tube connecting the cooler to the CPU. Despite this, it very rarely heats up.
|
It has a single NVMe slot, one 16 GB RAM stick and one unused RAM slot. If you look closely, you can notice a dent on the vent tube connecting the cooler to the CPU. Despite this, it very rarely heats up.
|
||||||
|
|
||||||
|
|
@ -151,7 +154,7 @@ zgenhostid -f 0x00bab10c
|
||||||
|
|
||||||
If they must be unique, that seems odd.
|
If they must be unique, that seems odd.
|
||||||
|
|
||||||
The value `0x00bab10c` actually has significance in the context of OpenZFS as an identifier (and leetspeak) for its uberblock. However, it apparently is totally unrelated to host IDs.
|
The value `0x00bab10c` actually has significance in the context of OpenZFS as an identifier (and leetspeak) for its uberblock. However, it apparently is totally unrelated to host IDs.
|
||||||
|
|
||||||
Should you be curious still, you can refer to [this GitHub discussion](https://github.com/zbm-dev/zfsbootmenu/discussions/465) where a ZFSBootMenu user brought this exact question to the developers.
|
Should you be curious still, you can refer to [this GitHub discussion](https://github.com/zbm-dev/zfsbootmenu/discussions/465) where a ZFSBootMenu user brought this exact question to the developers.
|
||||||
|
|
||||||
|
|
@ -285,7 +288,7 @@ Option `-t` is for setting the typecode for each partition. Typecode `ef00` is f
|
||||||
|
|
||||||
For a list of typecodes, see `sgdisk -L`.
|
For a list of typecodes, see `sgdisk -L`.
|
||||||
|
|
||||||
While just running these commands as-is is your safest option, you might have a different layout in mind or prefer an interactive UI.
|
While just running these commands as-is is your safest option, you might have a different layout in mind or prefer an interactive UI.
|
||||||
|
|
||||||
For one thing, I've had issues in the past with the boot partition being too small, so I'll be using `2g` instead of `512m` for it.
|
For one thing, I've had issues in the past with the boot partition being too small, so I'll be using `2g` instead of `512m` for it.
|
||||||
|
|
||||||
|
|
@ -309,7 +312,7 @@ Here's the `zpool(8)` man page:
|
||||||
|
|
||||||
> A storage pool is a collection of devices that provides physical storage and data replication for ZFS datasets. All datasets within a storage pool share the same space.
|
> A storage pool is a collection of devices that provides physical storage and data replication for ZFS datasets. All datasets within a storage pool share the same space.
|
||||||
|
|
||||||
The definition of a dataset is then indicated to be at `zfs(8)`:
|
The definition of a dataset is then indicated to be at `zfs(8)`:
|
||||||
|
|
||||||
> A dataset is identified by a unique path within the ZFS namespace: <br/>
|
> A dataset is identified by a unique path within the ZFS namespace: <br/>
|
||||||
> `pool[/component]/component` for example: `rpool/var/log`
|
> `pool[/component]/component` for example: `rpool/var/log`
|
||||||
|
|
@ -324,7 +327,7 @@ We'll be exploring only the `zpool-create(8)` command in depth, in particular th
|
||||||
|
|
||||||
- `-f` force the use of virtual devices, even if they appear in use
|
- `-f` force the use of virtual devices, even if they appear in use
|
||||||
- `-o feature=value` set a pool feature
|
- `-o feature=value` set a pool feature
|
||||||
- `-O property=value` set a file system property in the root file system of the pool
|
- `-O property=value` set a file system property in the root file system of the pool
|
||||||
- `-o compatibility=off|legacy|file[,file]` specify a compatibility feature set
|
- `-o compatibility=off|legacy|file[,file]` specify a compatibility feature set
|
||||||
- `-m mountpoint` the mountpoint (default: `/pool`)
|
- `-m mountpoint` the mountpoint (default: `/pool`)
|
||||||
- `pool` the pool
|
- `pool` the pool
|
||||||
|
|
@ -477,7 +480,7 @@ To reconfigure **all** packages, just run `xbps-reconfigure -fa`. If you'd rathe
|
||||||
|
|
||||||
#### root password
|
#### root password
|
||||||
|
|
||||||
As early as possible is a good time to run `passwd` and set the root password.
|
As early as possible is a good time to run `passwd` and set the root password.
|
||||||
|
|
||||||
#### `rc.conf`
|
#### `rc.conf`
|
||||||
`runit` reads the `/etc/rc.conf` file during startup to configure the system, setting up things like the keymap, hardware clock and terminal font.
|
`runit` reads the `/etc/rc.conf` file during startup to configure the system, setting up things like the keymap, hardware clock and terminal font.
|
||||||
|
|
@ -597,7 +600,7 @@ We are all done. It's time to exit the chroot, unmount and export the pool.
|
||||||
exit
|
exit
|
||||||
umount -n -R /mnt
|
umount -n -R /mnt
|
||||||
zpool export zroot
|
zpool export zroot
|
||||||
```
|
```
|
||||||
|
|
||||||
If all above went well, we can now run `reboot`, remove the flash drive used for installation, and log in for the first time into our new system.
|
If all above went well, we can now run `reboot`, remove the flash drive used for installation, and log in for the first time into our new system.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,8 @@
|
||||||
|
:root {
|
||||||
|
color-scheme: light dark;
|
||||||
|
--base-font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
@font-face {
|
@font-face {
|
||||||
font-family: 'Mononoki';
|
font-family: 'Mononoki';
|
||||||
src: url('../fonts/Mononoki.ttf'), format('truetype');
|
src: url('../fonts/Mononoki.ttf'), format('truetype');
|
||||||
|
|
@ -63,6 +68,20 @@ body {
|
||||||
margin-right: 20px;
|
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 {
|
#language-selector {
|
||||||
justify-self: end;
|
justify-self: end;
|
||||||
grid-area: lang;
|
grid-area: lang;
|
||||||
|
|
@ -98,6 +117,91 @@ ul {
|
||||||
list-style: none;
|
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 {
|
details {
|
||||||
margin: 30px;
|
margin: 30px;
|
||||||
background: #cccccc;
|
background: #cccccc;
|
||||||
|
|
@ -146,6 +250,10 @@ main {
|
||||||
text-decoration-thickness: 0.1px;
|
text-decoration-thickness: 0.1px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.post-date {
|
||||||
|
display: inline;
|
||||||
|
}
|
||||||
|
|
||||||
.link-data {
|
.link-data {
|
||||||
margin-top: 0
|
margin-top: 0
|
||||||
}
|
}
|
||||||
|
|
@ -154,6 +262,10 @@ main {
|
||||||
margin-right: 20px;
|
margin-right: 20px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.content-metadata .link-author {
|
||||||
|
margin-left: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
article .post-date {
|
article .post-date {
|
||||||
margin-left: 30px;
|
margin-left: 30px;
|
||||||
}
|
}
|
||||||
|
|
@ -325,6 +437,15 @@ footer {
|
||||||
padding-top: 0px;
|
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 */
|
/* 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 %}
|
{%- set translation_count = page.translations | length %}
|
||||||
{%- elif section %}
|
{%- elif section %}
|
||||||
{%- set translation_count = section.translations | length %}
|
{%- set translation_count = section.translations | length %}
|
||||||
|
{%- else %}
|
||||||
|
{%- set translation_count = 0 %}
|
||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
{%- if lang == "pt" %}
|
{%- if lang == "pt" %}
|
||||||
|
|
@ -46,7 +48,20 @@
|
||||||
<meta property="og:image" content="{{ get_url(path="assets/img/icons/kitty/kitty_circle_192.png") }}" />
|
<meta property="og:image" content="{{ get_url(path="assets/img/icons/kitty/kitty_circle_192.png") }}" />
|
||||||
<meta name="fediverse:creator" content="@jutty@tilde.zone">
|
<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" %}
|
{%- if lang == "pt" %}
|
||||||
{%- set locale_all_content = "Todo o conteúdo" %}
|
{%- set locale_all_content = "Todo o conteúdo" %}
|
||||||
{%- set locale_language_name = "Português" %}
|
{%- 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="{% 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) }}">
|
<link rel="alternate" type="application/rss+xml" title="Links" href="{{ get_url(path="links/atom.xml", trailing_slash=false) }}">
|
||||||
{%- endblock %}
|
{%- endblock %}
|
||||||
{%- block extra_head %}{% endblock %}
|
|
||||||
|
|
||||||
<script defer src="https://stats.jutty.dev/script.js" data-website-id="f402fd3a-d5db-4121-ac20-3ca2eaea338a"></script>
|
<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>
|
<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="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="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="links", lang=lang) }}">Links</a></li>
|
||||||
<li><a href="{{ get_url(path="feeds", lang=lang) }}">RSS</a></li>
|
<li><a class="nav-tags-link" href="{{ get_url(path="tags", lang=lang) }}">Tags</a></li>
|
||||||
<li><a href="https://tilde.zone/@jutty">Mastodon</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>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
{% if current_path and translation_count > 1 %}
|
{% if current_path and translation_count > 1 %}
|
||||||
|
|
@ -110,7 +125,19 @@
|
||||||
</main>
|
</main>
|
||||||
|
|
||||||
<footer>
|
<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>
|
</footer>
|
||||||
</div>
|
</div>
|
||||||
</body>
|
</body>
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,29 @@
|
||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
|
{%- block extra_head %}
|
||||||
|
{%- endblock -%}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<article class="blog-post">
|
<article class="blog-post">
|
||||||
<h1 id="post-title">{{ page.title }}</h1>
|
<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 }}
|
{{ page.content | safe }}
|
||||||
</article>
|
</article>
|
||||||
{%- endblock content -%}
|
{%- 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" %}
|
{% extends "content.html" %}
|
||||||
|
|
||||||
{%- block content %}
|
{%- block content %}
|
||||||
<div class="link-box">
|
<div class="link-box">
|
||||||
<h1 class="link-title"><a href="{{ page.extra.url }}">{{ page.title }}</a></h1>
|
<h1 class="link-title">
|
||||||
<p class="link-data"><span class="link-author">by {{ page.authors | join(sep=", ") }}</span>
|
<a href="{{ page.extra.url }}" rel="octo:bookmarks">{{ page.title }}</a>
|
||||||
<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>
|
</h1>
|
||||||
</div>
|
<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 %}
|
{%- if page.extra.comment %}<p>{{ page.extra.comment }}</p>{% endif %}
|
||||||
{{- page.content | safe }}
|
{{- 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