Obsidian als digitales Unterrichtsarchiv
Obsidian als digitales Unterrichtsarchiv
Dieser Artikel beschreibt, wie man Obsidian als zentrales Planungs- und Archivierungssystem für den Schulunterricht einrichten kann. Das System wurde für Lehrkräfte entwickelt, die ihre Stundenplanungen, Materialien, Arbeitsblätter und Tests strukturiert ablegen und schnell wiederfinden wollen – ohne sich auf Schulserver oder kommerzielle Plattformen verlassen zu müssen.
Der beschriebene Aufbau funktioniert auf Windows und macOS. Alle Dateien liegen lokal und lassen sich über iCloud, OneDrive oder einen anderen Dienst synchronisieren.
Was ist Obsidian?
Obsidian ist ein kostenloser Markdown-Editor, der Dateien lokal speichert. Es gibt keine Cloud-Abhängigkeit, keine Abonnements für den Grundbetrieb, und alle Dateien sind gewöhnliche Textdateien – kein proprietäres Format. Das bedeutet: Wer heute mit Obsidian arbeitet, kann seine Dateien in zehn Jahren noch öffnen, mit oder ohne Obsidian.
Obsidian kann unter https://obsidian.md heruntergeladen werden.
Voraussetzungen
- Obsidian (kostenlos, https://obsidian.md)
- Inter-Schriftfamilie (kostenlos, https://rsms.me/inter/)
- Obsidian Print Plugin (kostenloser Druckweg direkt aus Obsidian)
Optional, aber empfohlen:
- iCloud oder ein anderer Sync-Dienst für die Synchronisation zwischen Geräten
Vault-Struktur
Ein Vault ist in Obsidian der Ordner, in dem alle Dateien liegen. Der folgende Aufbau hat sich für den Schulalltag bewährt:
Unterricht_Vault/
├── LER/
│ └── [Thema]/
│ ├── Stunde 01 - [Thema].md
│ ├── Stunde 02 - [Thema].md
│ └── material/
│ ├── Seq1_St01/
│ │ ├── M1_Text.pdf
│ │ └── Bild.png
│ └── _thema_allgemein/
│ └── [stunduebergreifendes Material]
├── PB/
│ └── [Thema]/
├── _Sonstige_Faecher/
│ └── [Fach]/
│ └── [Thema]/
├── Methoden/
├── Arbeitsblätter/
│ ├── LER/
│ │ └── [Thema]/
│ │ ├── selbsterstellt/
│ │ └── fremd/
│ ├── PB/
│ │ └── [Thema]/
│ │ ├── selbsterstellt/
│ │ └── fremd/
│ └── Vertretung/
│ └── Jg_07/ bis Jg_10/
│ ├── selbsterstellt/
│ └── fremd/
├── Vertretung/
│ └── Jg_07/ bis Jg_10/
├── Tests/
│ ├── LER/
│ │ └── [Thema]/
│ └── PB/
│ └── [Thema]/
├── Klassenarbeiten/
│ ├── LER/
│ │ └── [Thema]/
│ └── PB/
│ └── [Thema]/
└── ZZ_System/
├── Templates/
├── Dataview/
├── Canvas/
└── fonts/
Hinweise zur Struktur:
- Fachordner werden nach Bedarf ergänzt (Geschichte, NaWi etc.)
- Der Ordner
ZZ_Systembeginnt mit "ZZ", damit er in der Sidebar immer unten erscheint - Flipchart-Dateien (ActivInspire o.ä.) bleiben in einem separaten Ordner außerhalb des Vaults – sie haben eine eigene Ablagelogik (Schuljahr/Halbjahr für den Stick-Kopierweg)
- Der Ordner
material/_thema_allgemeinnimmt Material auf, das in mehreren Stunden einer Einheit verwendet wird
Plugins
Alle Plugins werden über Einstellungen → Community Plugins installiert. Dazu muss unter Einstellungen → Community Plugins der Restricted Mode deaktiviert werden.
Core Plugins (in Obsidian bereits enthalten, aktivieren)
| Plugin | Zweck |
|---|---|
| TagPane | Tags in der Sidebar anzeigen |
| Search | Basis für Omnisearch |
| File Recovery | Automatische lokale Backups |
| Outline | Dokumentstruktur in der Sidebar |
| Backlinks | Zeigt, welche Dateien auf die aktuelle verweisen |
| Properties View | Frontmatter übersichtlich anzeigen |
Community Plugins
| Plugin | Zweck | Link |
|---|---|---|
| Templater | Vorlagen mit Variablen und Logik | https://github.com/SilentVoid13/Templater |
| Dataview | Datenbank-Abfragen über Frontmatter | https://github.com/blacksmithgu/obsidian-dataview |
| Advanced Tables | Tabellen im Editor komfortabel bearbeiten | https://github.com/tgrosinger/advanced-tables-obsidian |
| Omnisearch | Volltext-Suche inkl. PDF-Inhalte | https://github.com/scambier/obsidian-omnisearch |
| Text Extractor | Pflichtabhängigkeit für Omnisearch (PDF-Inhalte) | https://github.com/scambier/obsidian-text-extractor |
| Tag Wrangler | Tags umbenennen und zusammenführen | https://github.com/pjeby/tag-wrangler |
| Breadcrumbs | Navigation zwischen Stunden (prev/next/up) | https://github.com/SkepticMystic/breadcrumbs |
| Style Settings | CSS-Themes per GUI anpassen | https://github.com/mgmeyers/obsidian-style-settings |
| Iconic | Ordner und Dateien mit Icons versehen | https://github.com/gfxholo/iconic |
| Better Word Count | Zeichenanzahl im Editor | https://github.com/lukeleppan/better-word-count |
| Obsidian Print | Drucken direkt aus Obsidian | https://github.com/marijnbent/obsidian-print |
| Better Export PDF | PDF-Export (ergänzend) | https://github.com/l1xnan/obsidian-better-export-pdf |
| Advanced Multi Column | Mehrspaltige Layouts | https://github.com/ckRobinson/multi-column-markdown |
| Extended Markdown Syntax | Unterstreichung, Hoch-/Tiefstellung, Spoiler | https://github.com/GcsSloop/obsidian-extended-markdown |
| Typographer | Automatisch korrekte Anführungszeichen und Gedankenstriche | https://github.com/silvareal/obsidian-typographer |
| Symbols Prettifier | Ersetzt z.B. -> durch → beim Tippen | https://github.com/FlorianWoelki/obsidian-symbols-prettifier |
| Iconoir Icons | SVG-Icons für Stundenplanungen | https://github.com/gapmiss/obsidian-iconoir-icons |
| Breadcrumbs | Navigation zwischen Dateien | https://github.com/SkepticMystic/breadcrumbs |
| Time Machine | Versionsverlauf mit Diff-Ansicht | https://github.com/HannibalKcc/obsidian-time-machine |
| Omnisearch | Volltext-Suche | https://github.com/scambier/obsidian-omnisearch |
| Media Companion | Galerie-Ansicht für Bilder | https://github.com/Nick-de-Bruin/obsidian-media-companion |
Breadcrumbs einrichten
Unter Einstellungen → Breadcrumbs → Edge Fields drei Felder eintragen:
up→ Richtung: upprev→ Richtung: prevnext→ Richtung: next
Diese Felder werden im Frontmatter jeder Stundenplanung gesetzt und ermöglichen die Navigation zwischen Stunden und zur übergeordneten Sequenzübersicht.
Schrift
Das System verwendet Inter, eine kostenlose Schriftfamilie. Inter ist gut lesbar, funktioniert in S/W-Druck und ist auf beiden Systemen (Windows/macOS) identisch verfügbar.
Inter herunterladen: https://rsms.me/inter/
Auf macOS installieren:
brew install --cask font-inter
Auf Windows: Heruntergeladene .ttf-Dateien markieren → rechte Maustaste → Für alle Benutzer installieren.
CSS-Snippet für den Druck
Das folgende CSS-Snippet steuert die Druckausgabe über Obsidian Print. Es wird unter .obsidian/snippets/print.css abgelegt und in Obsidian unter Einstellungen → Darstellung → CSS-Snippets aktiviert.
Zwei CSS-Klassen unterscheiden Stundenplanungen (schule-planung) von Schüler-Materialtexten (schule-material). Welche Klasse gilt, wird im Frontmatter der jeweiligen Datei über cssclasses gesetzt.
/* ============================================================
print.css – Druck-CSS für Obsidian
Klassen: .schule-planung / .schule-material
============================================================ */
@media print {
.frontmatter { display: none !important; }
.pagebreak { page-break-before: always !important; }
/* --- Seitenränder --- */
@page {
margin-top: 1.8cm;
margin-bottom: 1.8cm;
margin-left: 2.5cm;
margin-right: 2.5cm;
}
/* ============================================================
STUNDENPLANUNG
============================================================ */
.schule-planung {
font-family: "Inter", sans-serif !important;
font-size: 10.5pt !important;
line-height: 1.3 !important;
color: #000 !important;
}
.schule-planung :is(h1, h2, h3) {
font-family: "Inter", sans-serif !important;
font-weight: bold !important;
page-break-after: avoid !important;
}
.schule-planung h1 {
font-size: 13pt !important;
margin-top: 6pt !important;
margin-bottom: 3pt !important;
border-bottom: 0.5pt solid #000 !important;
padding-bottom: 2pt !important;
}
.schule-planung h2 {
font-size: 11.5pt !important;
margin-top: 4pt !important;
margin-bottom: 2pt !important;
}
.schule-planung h3 {
font-size: 10.5pt !important;
margin-top: 3pt !important;
margin-bottom: 2pt !important;
}
.schule-planung p {
font-family: "Inter", sans-serif !important;
font-size: 10.5pt !important;
line-height: 1.3 !important;
margin-top: 2pt !important;
margin-bottom: 2pt !important;
}
.schule-planung table {
width: 100% !important;
border-collapse: collapse !important;
font-size: 10pt !important;
margin-top: 4pt !important;
margin-bottom: 4pt !important;
page-break-inside: avoid !important;
}
.schule-planung th {
border: 1px solid #000 !important;
padding: 3pt 5pt !important;
background-color: #f0f0f0 !important;
font-weight: bold !important;
vertical-align: top !important;
}
.schule-planung td {
border: 1px solid #000 !important;
padding: 3pt 5pt !important;
vertical-align: top !important;
}
.schule-planung ul, .schule-planung ol {
margin-top: 2pt !important;
margin-bottom: 2pt !important;
padding-left: 16pt !important;
}
.schule-planung ol {
padding-left: 0 !important;
margin-left: 0 !important;
list-style-position: outside !important;
}
.schule-planung ol li { margin-left: 1em !important; }
.schule-planung ol li ul {
padding-left: 1.5em !important;
margin-top: 1pt !important;
margin-bottom: 1pt !important;
}
.schule-planung li {
font-family: "Inter", sans-serif !important;
font-size: 10.5pt !important;
margin-bottom: 1pt !important;
}
.schule-planung hr {
border: none !important;
border-top: 0.5pt solid #ccc !important;
margin: 4pt 0 !important;
}
.schule-planung .callout {
background-color: #fff !important;
border-left: 3px solid #000 !important;
border-radius: 0 !important;
padding: 2pt 6pt !important;
margin-top: 3pt !important;
margin-bottom: 3pt !important;
}
.schule-planung .callout-title {
color: #000 !important;
font-weight: bold !important;
font-size: 10pt !important;
padding: 0 !important;
margin-bottom: 1pt !important;
background-color: #fff !important;
}
.schule-planung .callout-content {
padding: 0 !important;
margin: 0 !important;
font-size: 10.5pt !important;
line-height: 1.3 !important;
}
/* Callout Icons durch Text ersetzen (S/W-Druck) */
.callout[data-callout="tip"] .callout-title-inner::before { content: "✎ "; }
.callout[data-callout="warning"] .callout-title-inner::before { content: "⚠ "; }
.callout[data-callout="question"] .callout-title-inner::before { content: "? "; }
.callout[data-callout="success"] .callout-title-inner::before { content: "✓ "; }
.callout[data-callout="info"] .callout-title-inner::before { content: "ℹ "; }
.callout-icon { display: none !important; }
/* ============================================================
MATERIAL / TEXTE
============================================================ */
.schule-material {
font-family: "Inter", sans-serif !important;
font-size: 9.5pt !important;
line-height: 1.2 !important;
color: #000 !important;
}
.schule-material :is(h1, h2, h3) {
font-family: "Inter", sans-serif !important;
font-weight: bold !important;
page-break-after: avoid !important;
}
.schule-material h1 {
font-size: 11pt !important;
margin-top: 5pt !important;
margin-bottom: 2pt !important;
border-bottom: 0.5pt solid #000 !important;
padding-bottom: 2pt !important;
}
.schule-material h2 {
font-size: 10.5pt !important;
margin-top: 4pt !important;
margin-bottom: 2pt !important;
}
.schule-material h3 {
font-size: 9.5pt !important;
margin-top: 3pt !important;
margin-bottom: 1pt !important;
}
.schule-material p {
font-family: "Inter", sans-serif !important;
font-size: 9.5pt !important;
line-height: 1.2 !important;
margin-top: 2pt !important;
margin-bottom: 2pt !important;
text-align: justify !important;
}
.schule-material table {
width: 100% !important;
border-collapse: collapse !important;
font-size: 9pt !important;
margin-top: 3pt !important;
margin-bottom: 3pt !important;
page-break-inside: avoid !important;
}
.schule-material th {
border: 1px solid #000 !important;
padding: 2pt 4pt !important;
background-color: #f0f0f0 !important;
font-weight: bold !important;
vertical-align: top !important;
}
.schule-material td {
border: 1px solid #000 !important;
padding: 2pt 4pt !important;
vertical-align: top !important;
}
.schule-material ul, .schule-material ol {
margin-top: 1pt !important;
margin-bottom: 1pt !important;
padding-left: 14pt !important;
}
.schule-material ol {
padding-left: 0 !important;
margin-left: 0 !important;
list-style-position: outside !important;
}
.schule-material ol li { margin-left: 1em !important; }
.schule-material ol li ul {
padding-left: 1.5em !important;
margin-top: 1pt !important;
margin-bottom: 1pt !important;
}
.schule-material li {
font-family: "Inter", sans-serif !important;
font-size: 9.5pt !important;
margin-bottom: 1pt !important;
}
.schule-material hr {
border: none !important;
border-top: 0.5pt solid #ccc !important;
margin: 3pt 0 !important;
}
.zweispaltig p { text-align: justify !important; }
}
Frontmatter-Konventionen
Jede Datei im Vault beginnt mit einem Frontmatter-Block. Dieser Block steuert, wie Dataview die Datei findet und klassifiziert.
Stundenplanung
--- typ: planung fach: PB klasse: [7a, 7b] halbjahr: 2. Hj sequenz: 1 stunde: 11 thema: Gefahren für die Demokratie tags: [demokratie, populismus, weimar] status: entwurf material: [] cssclasses: schule-planung up: "[[Sequenzplan_Stunden_Demokratie]]" prev: "[[Stunde 10 - Was macht eine Partei]]" next: "[[Stunde 12 - Ist Demokratie die beste Staatsform]]" ---
Materialtext (M1, M2 etc.)
--- typ: text fach: PB thema: Soziale Ungleichheit kuerzel: M1 titel: Ist Deutschland ein gerechtes Land? jahrgang: [7, 8] tags: [ungleichheit, gerechtigkeit] cssclasses: schule-material ---
Arbeitsblatt
--- typ: arbeitsblatt fach: LER thema: Mobbing jahrgang: [7, 8] herkunft: fremd quelle: eduki tags: [mobbing, cybermobbing] datei: AB_Mobbing.pdf ---
Methode
--- typ: methode name: Think-Pair-Share jahrgang: [7, 8, 9, 10] sozialform: [partner, plenum] zeitbedarf: 15 tags: [aktivierung, diskussion] ausdruck: true ---
Test / Klassenarbeit
--- typ: test fach: PB thema: Soziale Ungleichheit sequenz: 1 jahrgang: [7] klasse: [7a, 7b] punkte: 30 tags: [ungleichheit, test] loesung: false status: entwurf datei_tex: Test_Seq1_Ungleichheit.tex datei_pdf: Test_Seq1_Ungleichheit.pdf ---
Sequenzplan
--- typ: sequenzplan art: tabelle fach: PB thema: Demokratie klasse: [8] stunden: 18 tags: [demokratie, politik] status: entwurf cssclasses: schule-planung ---
Mögliche Werte für art: grob, tabelle, ausformuliert, stunden
Diskussionsthema
--- typ: diskussion art: lehrer fach: PB klasse: [8] halbjahr: 2. Hj thema: Sollten Lootboxen verboten werden? tags: [medien, jugendschutz, verbraucherschutz] status: entwurf cssclasses: schule-planung ---
Mögliche Werte für art: lehrer (Arbeitsdokument mit Argumenten und Ablauf), faktenblatt (Schülerdokument)
Templater-Vorlagen
Alle Vorlagen liegen unter ZZ_System/Templates/. Templater muss in den Einstellungen unter "Template folder location" auf diesen Ordner zeigen.
Eine neue Datei aus einer Vorlage anlegen: Strg/Cmd+P → "Templater: Create new note from template" → Vorlage auswählen.
Stundenplanung
<%*
const fach = await tp.system.prompt("Fach (LER/PB/Sonstiges)");
const klasse = await tp.system.prompt("Klasse z.B. 7a");
const halbjahrInput = await tp.system.prompt("Halbjahr (1 oder 2)");
const halbjahr = halbjahrInput === "1" ? "1. Hj" : "2. Hj";
const sequenz = await tp.system.prompt("Sequenz Nr.");
const stunde = await tp.system.prompt("Stunden Nr.");
const thema = await tp.system.prompt("Thema");
const tags = await tp.system.prompt("Tags kommagetrennt");
await tp.file.rename("Stunde " + stunde.padStart(2, "0") + " - " + thema);
-%>
---
typ: planung
fach: <% fach %>
klasse: [<% klasse %>]
halbjahr: <% halbjahr %>
sequenz: <% sequenz %>
stunde: <% stunde %>
thema: <% thema %>
tags: [<% tags %>]
status: entwurf
material: []
cssclasses: schule-planung
up: "[[Sequenzplan_Stunden_<% thema %>]]"
prev: ""
next: ""
---
# Stunde <% stunde.padStart(2, "0") %> – <% fach %> <% klasse %> / <% halbjahr %>
**Thema:** <% thema %>
**Ziel:**
---
## 1️⃣ ( Minuten)
`~![iconoir-info-circle|currentColor|1em|1em]` **Hinweis**
`~![iconoir-help-circle|currentColor|1em|1em]` **Frage**
`~![iconoir-check-circle|currentColor|1em|1em]` **Erwartete Antworten**
-
-
## 2️⃣ ( Minuten)
`~![iconoir-info-circle|currentColor|1em|1em]` **Hinweis**
`~![iconoir-help-circle|currentColor|1em|1em]` **Frage**
## 3️⃣ ( Minuten)
`~![iconoir-info-circle|currentColor|1em|1em]` **Hinweis**
## 4️⃣ ( Minuten)
`~![iconoir-book|currentColor|1em|1em]` **Hefteintrag**
## 5️⃣ Ausblick ( Minuten)
`~![iconoir-arrow-right-circle|currentColor|1em|1em]` **Ausblick**
Materialtext
<%*
const fach = await tp.system.prompt("Fach (LER/PB/Sonstiges)");
const thema = await tp.system.prompt("Thema");
const kuerzel = await tp.system.prompt("Kürzel z.B. M1, M2");
const titel = await tp.system.prompt("Titel des Textes");
const jahrgang = await tp.system.prompt("Jahrgang z.B. 7, 8");
const tags = await tp.system.prompt("Tags kommagetrennt");
await tp.file.rename(kuerzel + "_" + titel);
-%>
---
typ: text
fach: <% fach %>
thema: <% thema %>
kuerzel: <% kuerzel %>
titel: <% titel %>
jahrgang: [<% jahrgang %>]
tags: [<% tags %>]
cssclasses: schule-material
---
# <% kuerzel %> – <% titel %>
Weitere Vorlagen
Analog können Vorlagen für folgende Typen erstellt werden: Arbeitsblatt, Methode, Vertretung, Test, Klassenarbeit, Sequenzplan (grob/tabelle/ausformuliert/stunden), Diskussion (lehrer/faktenblatt). Das Prinzip ist identisch: Templater fragt die Felder ab, befüllt das Frontmatter und benennt die Datei automatisch.
Iconoir Icons in Stundenplanungen
Das Plugin "Iconoir Icons" bindet SVG-Icons ein, die auch im S/W-Druck korrekt erscheinen. Die Syntax lautet:
`~![ICON|currentColor|1em|1em]` **Label**
currentColor sorgt dafür, dass das Icon im Druck schwarz erscheint.
| Element | Icon |
|---|---|
| Frage | iconoir-help-circle
|
| Hinweis | iconoir-info-circle
|
| Erwartete Antworten | iconoir-check-circle
|
| Hefteintrag | iconoir-book
|
| Achtung | iconoir-warning-triangle
|
| Arbeitsauftrag | iconoir-clipboard-check
|
| Tafelbild | iconoir-check-circle
|
| Ausblick | iconoir-arrow-right-circle
|
Für ältere Stundenplanungen, die noch Callouts verwenden, sorgt das CSS automatisch für S/W-taugliche Text-Marker (✓, ?, ⚠ etc.) statt der farbigen Callout-Icons.
Dataview-Abfragen
Dataview liest das Frontmatter aller Dateien im Vault aus und erlaubt Abfragen ähnlich einer Datenbank. Die folgenden Abfragen können in einer Datei ZZ_System/Dataview/Übersicht.md gesammelt werden.
Alle Stundenplanungen:
```dataview TABLE fach, thema, klasse, status FROM "" WHERE typ = "planung" SORT fach ASC, sequenz ASC, stunde ASC ```
Nur LER-Stunden:
```dataview TABLE thema, sequenz, stunde, status FROM "" WHERE typ = "planung" AND fach = "LER" SORT sequenz ASC, stunde ASC ```
Alle Materialien für Jahrgang 7:
```dataview TABLE fach, thema, typ, quelle FROM "" WHERE contains(jahrgang, 7) SORT fach ASC ```
Druckbare Methoden:
```dataview TABLE name, sozialform, zeitbedarf FROM "" WHERE typ = "methode" AND ausdruck = true SORT name ASC ```
Offene Entwürfe:
```dataview TABLE fach, thema, klasse FROM "" WHERE typ = "planung" AND status = "entwurf" SORT fach ASC ```
Workflow
Der typische Ablauf im Schulalltag sieht so aus:
- Neue Stunde anlegen:
Strg/Cmd+P→ Templater → Stundenplanung → Felder ausfüllen - Stunde ausarbeiten: Phasen befüllen, Iconoir-Icons für Hinweise/Fragen/Antworten nutzen
- Materialien ablegen: PDFs, Bilder etc. in den zugehörigen
material/Seq1_St01/-Ordner - Breadcrumbs setzen:
prevundnextim Frontmatter auf die Nachbarstunden zeigen lassen - Drucken:
Strg/Cmd+P→ "Print note" → Druckdialog
Sequenzpläne werden im Querformat gedruckt – dazu im Druckdialog auf Querformat umstellen.
Synchronisation zwischen Geräten
Der Vault liegt idealerweise in iCloud (macOS/iOS) oder OneDrive (Windows). Beide Dienste synchronisieren den Vault automatisch. Obsidian-interne Sync-Funktionen werden nicht benötigt.
Wichtig: Plugin-Einstellungen werden ebenfalls synchronisiert, da sie im Vault unter .obsidian/ liegen. Das ist in der Regel erwünscht. Einstellungen, die gerätespezifisch sein müssen (z.B. Pfade), müssen manuell nach dem ersten Sync auf dem zweiten Gerät angepasst werden.
Siehe auch
- Obsidian – allgemeiner Artikel zu Obsidian
- Unterrichtsplanung digital – Übersicht digitaler Planungstools
- Markdown – Grundlagen der Markdown-Syntax