feat(learn): Markdown files beside the PDFs, read formatted

A studyset's files take Markdown (.md, .markdown) as well as PDFs, in
the same synced rows with a kind (payload schema 3, written only for
Markdown, so older apps skip those rows). Upload a PDF becomes Upload a
file; a Markdown file must be UTF-8 text.

The reader opens one formatted and read-only through the editor's
Markdown reader, keeping fenced code, which that reader drops; the file
itself never changes, and its source text is a tap away, selectable too.
It has neither search, zoom nor screenshots. It reads in 100 parts by
its top-level blocks, so reading progress, deadlines and the cards and
notes tied to a place work as a PDF's pages do, shown as a share; its
outermost headings are its chapters.

Whats-New: Upload Markdown files beside your PDFs: they open formatted, with reading progress, deadlines and flashcards from what you select.
Whats-New-De: Lade Markdown-Dateien neben deine PDFs hoch: Sie öffnen sich formatiert, mit Lesefortschritt, Fristen und Karteikarten aus deiner Auswahl.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-10 21:30:46 +01:00
commit 151f848360
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -281,7 +281,7 @@
"studysetNotesInTopics": "Die Notizen sind in seinen Themen",
"studysetNotesInTopicsHint": "Oder schreib hier eine: „Material hinzufügen → Notiz erstellen“.",
"studysetFilesInTopics": "Die Dateien sind in seinen Themen",
"studysetFilesInTopicsHint": "Oder füg hier eine hinzu: „Material hinzufügen → PDF hochladen“.",
"studysetFilesInTopicsHint": "Oder füg hier eine hinzu: „Material hinzufügen → Datei hochladen“.",
"studysetBrowseAllFlashcards": "{count, plural, =1{Ansehen} other{Alle {count} ansehen}}",
"studysetCreateFlashcards": "Karteikarten erstellen",
"studysetStudy": "Lernen",
@ -1153,8 +1153,8 @@
"studyButtonGone": "Dieses Lernset gibt es nicht mehr.",
"pdfPageField": "PDF-Seite",
"studysetTabFiles": "Dateien",
"pdfUploadMenu": "PDF hochladen",
"pdfFileType": "PDFs",
"pdfUploadMenu": "Datei hochladen",
"pdfFileType": "PDFs und Markdown",
"pdfAdded": "„{title}“ hinzugefügt.",
"pdfNotPdf": "Diese Datei ist kein PDF.",
"pdfTooLarge": "Dieses PDF ist größer als {megabytes} MB.",
@ -1163,7 +1163,7 @@
"pdfDuplicateKeep": "Vorhandenes behalten",
"pdfDuplicateAdd": "Kopie hinzufügen",
"filesEmpty": "Noch keine Dateien",
"filesEmptyHint": "Nutze „Material hinzufügen → PDF hochladen“, um eines hinzuzufügen.",
"filesEmptyHint": "Nutze „Material hinzufügen → Datei hochladen“, um eines hinzuzufügen.",
"filesSort": "Sortieren",
"filesSortCustom": "Eigene Reihenfolge",
"filesSortName": "Name (A–Z)",
@ -2182,5 +2182,25 @@
"pathViewSteps": "Schritte",
"pathViewScroll": "Scrollen",
"runnerOutline": "Gliederung",
"runnerScrollLocked": "Beantworte die Frage oben, um weiterzumachen."
"runnerScrollLocked": "Beantworte die Frage oben, um weiterzumachen.",
"markdownNotText": "Diese Datei ist kein Markdown-Text in UTF-8.",
"markdownTooLarge": "Diese Markdown-Datei ist größer als {megabytes} MB.",
"markdownShare": "{percent} %",
"markdownAt": "Bei {percent} %",
"readerByPlace": "Stelle",
"proposalsFromPart": "Aus diesem Abschnitt",
"readerReferencedShare": "Referenzierte Stelle: {percent} %",
"readerUseCurrentShare": "Aktuelle verwenden ({percent} %)",
"progressMarkdownShare": "{percent} % gelesen",
"markdownDeadlineUpcoming": "Beginnt in {days, plural, =1{1 Tag} other{{days} Tagen}} – {percent} %/Tag geplant",
"markdownDeadlinePassed": "Frist abgelaufen – noch {percent} %",
"markdownDeadlineToday": "Heute fällig – noch {percent} %",
"markdownDeadlinePace": "{percent} %/Tag, um in {days, plural, =1{1 Tag} other{{days} Tagen}} {target} % zu erreichen",
"markdownDeadlineHelp": "Lies bis zu einem Tag einen Teil der Datei. Der Fortschritt folgt der weitesten Stelle, bis zu der du beim Lesen scrollst.",
"markdownDeadlineReach": "Erreichen (%)",
"markdownDeadlineChapterEntry": "{title} · bis {percent} %",
"markdownToShareToday": "heute bis {percent} %",
"markdownDeadlinesProgress": "{furthest} %/{target} % · {when}",
"readerShowSource": "Quelltext zeigen",
"readerShowFormatted": "Formatiert zeigen"
}