diff --git a/UPDATE_CHECKLIST.md b/UPDATE_CHECKLIST.md
new file mode 100644
index 0000000000..d84febac5f
--- /dev/null
+++ b/UPDATE_CHECKLIST.md
@@ -0,0 +1,12 @@
+# Dependency Update Checklist
+
+- [ ] Run `npm ci` and verify dependencies install without additional flags or
+ manual changes.
+- [ ] Run `npm run build` and verify the production site builds successfully.
+- [ ] Run `npm run start` and verify the docs are visible at
+ http://localhost:3000.
+- [ ] With the local site running, verify Mermaid diagrams render correctly.
+- [ ] With the local site running, verify slides open correctly.
+- [ ] When updating Docusaurus, check whether its `@mermaid-js/layout-elk` peer
+ dependency supports 0.2.x or later; if so, remove the corresponding
+ Dependabot ignore rule in `.github/dependabot.yml`.
diff --git a/docs/additional-material/steffen/java-1/slides.md b/docs/additional-material/steffen/java-1/slides.md
index e8952e4d03..e7448f0d06 100644
--- a/docs/additional-material/steffen/java-1/slides.md
+++ b/docs/additional-material/steffen/java-1/slides.md
@@ -5,27 +5,41 @@ sidebar_position: 10
tags: []
---
-- 08.01.2026 [Einleitung](/slides/steffen/java-1/intro)
- 08.01.2026
- [Datentypen und Datenobjekte ](/slides/steffen/java-1/datatypes-and-dataobjects)
+ Einleitung
+- 08.01.2026
+ Datentypen
+ und Datenobjekte
- 09.01.2026
- [Methoden und Operatoren](/slides/steffen/java-1/methods-and-operators)
+ Methoden
+ und Operatoren
- 15.01.2026
- [Kontrollstrukturen und Arrays](/slides/steffen/java-1/if-and-switch)
+ Kontrollstrukturen
+ und Arrays
- 16.01.2026
- [Math, Random und Scanner](/slides/steffen/java-1/math-random-scanner)
+ Math,
+ Random und Scanner
- 22.01.2026 Kurztest
-- 22.01.2026 [Klassen und Objekte](/slides/steffen/java-1/classes-and-objects)
+- 22.01.2026
+ Klassen
+ und Objekte
- 23.01.2026
- [Konstruktor und static](/slides/steffen/java-1/constructor-and-static)
+ Konstruktor
+ und static
- 05.02. & 06.02.2026
- [Java API, Enum, Klassendiagramm, Aktivitätsdiagramm](/slides/steffen/java-1/class-diagram-java-api-enum)
-- 12.02.2026 [Vererbung](/slides/steffen/java-1/inheritance)
-- 12.02.2026 [Polymorphie](/slides/steffen/java-1/polymorphism)
+ Java
+ API, Enum, Klassendiagramm, Aktivitätsdiagramm
+- 12.02.2026
+ Vererbung
+- 12.02.2026
+ Polymorphie
- 13.02.2026
- [Abstrakte und finale Klassen](/slides/steffen/java-1/abstract-and-final)
-- 19.02.2026 [Interfaces](/slides/steffen/java-1/interfaces)
-- 20.02.2026 [Exceptions](/slides/steffen/java-1/exceptions)
+ Abstrakte
+ und finale Klassen
+- 19.02.2026
+ Interfaces
+- 20.02.2026
+ Exceptions
- 27.02.2026 & 06.03.2026 Klausurvorbereitung
- 10.03.2026 Klausur
diff --git a/docs/additional-material/steffen/java-2/slides.mdx b/docs/additional-material/steffen/java-2/slides.mdx
index 8c2be45c1a..b6288971e2 100644
--- a/docs/additional-material/steffen/java-2/slides.mdx
+++ b/docs/additional-material/steffen/java-2/slides.mdx
@@ -5,20 +5,93 @@ sidebar_position: 10
tags: []
---
-- 09.04.2026 [Wiederholung, Organisatorisches](/slides/steffen/java-2/00-recap)
- 09.04.2026
- [Generics und Optional](/slides/steffen/java-2/07-generics-optional)
+
+ Wiederholung, Organisatorisches
+
+- 09.04.2026
+
+ Generics und Optional
+
- 10.04.2026
- [Set, Map, Hashes & Records](/slides/steffen/java-2/08-sets-maps-hashes-records)
+
+ Set, Map, Hashes & Records
+
- 16.04.2026
- [Funktionale Programmierung](/slides/steffen/java-2/09-functional-programming)
-- 17.04.2026 [Stream Api ](/slides/steffen/java-2/10-stream-api)
+
+ Funktionale Programmierung
+
+- 17.04.2026
+
+ Stream Api
+
+- 23.04.2026
+
+ Intro Algorithmen und Daten Strukturen
+
- 23.04.2026
- [Intro Algorithmen und Daten Strukturen](/slides/steffen/java-2/01-intro-dsa)
-- 23.04.2026 [Suchalgorithmen](/slides/steffen/java-2/02-search-algo)
-- 24.04.2026 [Rekursion](/slides/steffen/java-2/03-iteration-recursion)
-- 24.04.2026 [Sortieralgorithmen](/slides/steffen/java-2/04-sort-algo)
-- 11.05.2026 [Stack, Queue, List](/slides/steffen/java-2/05-stack-queue-list)
-- 21.05.2026 [Trees](/slides/steffen/java-2/06-trees)
+
+ Suchalgorithmen
+
+- 24.04.2026
+
+ Rekursion
+
+- 24.04.2026
+
+ Sortieralgorithmen
+
+- 11.05.2026
+
+ Stack, Queue, List
+
+- 21.05.2026
+
+ Trees
+
- 22.05.2026 Klausurvorbereitung
- 28.05.2026 Klausur Fortgeschrittene Programmierung (50 Punkte / 60 Minuten)
diff --git a/src/components/Slides/index.tsx b/src/components/Slides/index.tsx
index 221b093364..6740043d7d 100644
--- a/src/components/Slides/index.tsx
+++ b/src/components/Slides/index.tsx
@@ -1,5 +1,6 @@
import BrowserOnly from '@docusaurus/BrowserOnly';
import React, { type ReactNode, useEffect } from 'react';
+import type { RevealApi } from 'reveal.js';
interface SlidesProps {
children: ReactNode;
@@ -13,9 +14,19 @@ function SlidesInner({
height,
}: SlidesProps): React.JSX.Element {
useEffect(() => {
+ let disposed = false;
+ let deck: RevealApi | undefined;
+
import('./initSlides').then(({ defaultInitSlides }) => {
- defaultInitSlides();
+ if (!disposed) {
+ deck = defaultInitSlides();
+ }
});
+
+ return () => {
+ disposed = true;
+ deck?.destroy();
+ };
}, []);
return (
diff --git a/src/components/Slides/initSlides.ts b/src/components/Slides/initSlides.ts
index 8bdff271cf..78a08ac6eb 100644
--- a/src/components/Slides/initSlides.ts
+++ b/src/components/Slides/initSlides.ts
@@ -1,11 +1,12 @@
import Reveal from 'reveal.js';
-import Zoom from 'reveal.js/plugin/zoom';
import Notes from 'reveal.js/plugin/notes';
import Search from 'reveal.js/plugin/search';
import Highlight from 'reveal.js/plugin/highlight';
export const defaultInitSlides = () => {
- new Reveal({
- plugins: [Zoom, Notes, Search, Highlight],
- }).initialize({ hash: true });
+ const deck = new Reveal({
+ plugins: [Notes, Search, Highlight],
+ });
+ deck.initialize({ hash: true });
+ return deck;
};