diff --git a/docs/404.html.in b/docs/404.html.in
deleted file mode 100644
index 0ac76f125a..0000000000
--- a/docs/404.html.in
+++ /dev/null
@@ -1,19 +0,0 @@
-
-
-
-
- 404 page not found
-
-
- Someone appears to have eaten the penguin
- page you were looking for. You might want to try
-
-
- - going back to the home page to find
- a collection of links to interesting pages on this site
- - using the search box at the top right corner of the screen to
- locate the content on this site or mailing list archives
-
-
-
-
diff --git a/docs/404.rst b/docs/404.rst
new file mode 100644
index 0000000000..927a3e618b
--- /dev/null
+++ b/docs/404.rst
@@ -0,0 +1,16 @@
+==================
+404 page not found
+==================
+
+.. role:: del
+ :class: del
+
+.. contents::
+
+Someone appears to have eaten the :del:`penguin` page you were looking
+for. You might want to try
+
+* going back to the `home page `_ to find a collection
+ of links to interesting pages on this site
+* using the search box at the top right corner of the screen to
+ locate the content on this site or mailing list archives
diff --git a/docs/css/libvirt.css b/docs/css/libvirt.css
index 097dfcbe8e..82f95d4a68 100644
--- a/docs/css/libvirt.css
+++ b/docs/css/libvirt.css
@@ -636,3 +636,7 @@ th p, td p {
#contents p.topic-title {
display: none;
}
+
+span.del {
+ text-decoration: line-through;
+}
diff --git a/docs/meson.build b/docs/meson.build
index a90c59866a..89ac93a958 100644
--- a/docs/meson.build
+++ b/docs/meson.build
@@ -253,7 +253,8 @@ html_xslt_gen += {
html_xslt_gen += {
'name': '404',
- 'source': 'docs' / '404.html.in',
+ 'file': docs_rst2html5_gen.process('404.rst'),
+ 'source': 'docs' / '404.rst',
'href_base': '/',
}