diff --git a/blog/config.toml b/blog/config.toml
index 7fc83ae9..28bae2c9 100644
--- a/blog/config.toml
+++ b/blog/config.toml
@@ -1,5 +1,6 @@
title = "Writing an OS in Rust"
base_url = "https://os.phil-opp.com"
+description = "This blog series creates a small operating system in the Rust programming language. Each post is a small tutorial and includes all needed code, so you can follow along if you like."
highlight_code = true
highlight_theme = "visual-studio-dark"
diff --git a/blog/content/second-edition/extra/building-on-android/index.md b/blog/content/second-edition/extra/building-on-android/index.md
index 7d0d362a..9bdf0ef5 100644
--- a/blog/content/second-edition/extra/building-on-android/index.md
+++ b/blog/content/second-edition/extra/building-on-android/index.md
@@ -6,6 +6,8 @@ weight = 3
I finally managed to get `blog_os` building on my Android phone using [termux](https://termux.com/). This post explains the necessary steps to set it up.
+
+
diff --git a/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md
index 023e0af3..212ccb97 100644
--- a/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md
+++ b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-red-zone/index.md
@@ -10,6 +10,8 @@ The [red zone] is an optimization of the [System V ABI] that allows functions to
[red zone]: http://eli.thegreenplace.net/2011/09/06/stack-frame-layout-on-x86-64#the-red-zone
[System V ABI]: http://wiki.osdev.org/System_V_ABI
+
+

The image shows the stack frame of a function with `n` local variables. On function entry, the stack pointer is adjusted to make room on the stack for the return address and the local variables.
diff --git a/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md
index da46183f..6fe2f8d8 100644
--- a/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md
+++ b/blog/content/second-edition/posts/02-minimal-rust-kernel/disable-simd/index.md
@@ -9,6 +9,8 @@ template = "second-edition/extra.html"
[Single Instruction Multiple Data (SIMD)]: https://en.wikipedia.org/wiki/SIMD
+
+
- [MMX]: The _Multi Media Extension_ instruction set was introduced in 1997 and defines eight 64 bit registers called `mm0` through `mm7`. These registers are just aliases for the registers of the [x87 floating point unit].
- [SSE]: The _Streaming SIMD Extensions_ instruction set was introduced in 1999. Instead of re-using the floating point registers, it adds a completely new register set. The sixteen new registers are called `xmm0` through `xmm15` and are 128 bits each.
- [AVX]: The _Advanced Vector Extensions_ are extensions that further increase the size of the multimedia registers. The new registers are called `ymm0` through `ymm15` and are 256 bits each. They extend the `xmm` registers, so e.g. `xmm0` is the lower half of `ymm0`.
diff --git a/blog/templates/second-edition/base.html b/blog/templates/second-edition/base.html
index 35247461..5ff4e0b2 100644
--- a/blog/templates/second-edition/base.html
+++ b/blog/templates/second-edition/base.html
@@ -6,7 +6,7 @@
-
+
{% if current_url %}
diff --git a/blog/templates/second-edition/extra.html b/blog/templates/second-edition/extra.html
index 0926bcd2..105ff0be 100644
--- a/blog/templates/second-edition/extra.html
+++ b/blog/templates/second-edition/extra.html
@@ -4,6 +4,10 @@
{% block title %}{{ page.title }} | {{ config.title }}{% endblock title %}
+{% block description -%}
+{{ page.summary | safe | striptags }}
+{%- endblock description %}
+
{% block main %}