diff --git a/_global/Special:ListRedirects.html b/_global/Special:ListRedirects.html
index 1a886e3..9003bdf 100644
--- a/_global/Special:ListRedirects.html
+++ b/_global/Special:ListRedirects.html
@@ -3,17 +3,10 @@ layout: default
title: Redirects
menu: ['global']
---
-{%- assign redirect_pages = site.special | where_exp: 'page', 'page.redirect' -%}
-
-{%- for source_page in redirect_pages -%}
+{%- for source_page in site.data.wiki_redirects -%}
-
- {%- assign redirect = source_page.redirect | liquify | prepend: '/' -%}
- {%- for other_page in site.data.wiki_pages -%}
- {%- if other_page.id == redirect -%}
- {%- assign redirect_page = other_page -%}
- {%- endif -%}
- {%- endfor -%}
+ {%- assign redirect_page = source_page.redirect_target -%}
{{ source_page.id }} → {{ redirect_page.title }}
{%- endfor -%}
diff --git a/_includes/footer.html b/_includes/footer.html
index 16aef29..0d9d9d6 100644
--- a/_includes/footer.html
+++ b/_includes/footer.html
@@ -5,8 +5,8 @@
+
diff --git a/_plugins/hook-wiki-page-enhancer.rb b/_plugins/hook-wiki-page-enhancer.rb
index f7dd3fc..f2ccedb 100644
--- a/_plugins/hook-wiki-page-enhancer.rb
+++ b/_plugins/hook-wiki-page-enhancer.rb
@@ -11,6 +11,12 @@ Jekyll::Hooks.register :site, :post_read do |site|
.flatten
site.data['wiki_pages'] = wiki_pages
+ wiki_pages_hash = wiki_pages.map { |page| [page.id, page] }.to_h
+ wiki_redirects = site.documents
+ .select { |doc| doc.data['layout'] == 'redirect' }
+ wiki_redirects.each { |page| page.data['redirect_target'] = wiki_pages_hash["/#{page.data['redirect'] || site.data['i18n'][site.config['lang']]['home']}"] }
+ site.data['wiki_redirects'] = wiki_redirects
+
wiki_tags = wiki_pages
.map { |page| page.data['tags'] }
.flatten