+
+
+
diff --git a/blog/templates/handling-exceptions-with-naked-fns.html b/blog/templates/handling-exceptions-with-naked-fns.html
new file mode 100644
index 00000000..55cc88fd
--- /dev/null
+++ b/blog/templates/handling-exceptions-with-naked-fns.html
@@ -0,0 +1,11 @@
+{% extends "section.html" %}
+
+{% block title %}{{ super() }}{% endblock title %}
+
+{% block main %}{{ super() }}{% endblock main %}
+
+{% block introduction %}
+
+
These posts explain how to handle CPU exceptions using naked functions. Historically, these posts were the main exception handling posts before the x86-interrupt calling convention and the x86_64 crate existed. Our new way of handling exceptions can be found in the “Handling Exceptions” post.
+
+{% endblock introduction %}
diff --git a/blog/templates/index.html b/blog/templates/index.html
new file mode 100644
index 00000000..c09910f0
--- /dev/null
+++ b/blog/templates/index.html
@@ -0,0 +1,54 @@
+{% extends "base.html" %}
+
+{% import "macros.html" as macros %}
+
+{% block title %}{{ config.title }}{% endblock title %}
+
+{% block main %}
+
+
+ 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. The source code is also available in the corresponding
+ Github repository.
+