• 1.6.2 3325f547f0

    1.6.2 Stable

    jkaindl released this 2026-07-25 08:32:25 +00:00 | 2 commits to main since this release

    Fixed

    • Eingebettete Bilder erschienen auf iOS nicht im Vektor-PDF. Obsidians iOS-App (Capacitor)
      liefert für eingebettete Bild-Elemente src="capacitor://localhost/_capacitor_file_/…" statt
      app:// wie auf Desktop. Die Bild-Erkennung kannte dieses Schema nicht und behandelte den vollen
      Capacitor-URL fälschlich als vault-relativen Wikilink — dessen Auflösung scheiterte, das Bild
      wurde nie gerastert und erschien im PDF nur als Platzhaltertext. Betraf jedes eingebettete
      Bildformat auf iOS/iPadOS, nicht nur SVG. Auf iPhone verifiziert.
    • Phantom-Ordner bei jedem Export in den Vault-Root. Beim Export-Ziel „Custom-Ordner" mit
      Vault-Root (/) oder direkt neben der Notiz im Root berechnete die Verzeichnis-Ermittlung beim
      Schreiben der PDF einen um ein Zeichen verkürzten Ordnernamen und legte ihn als leeres
      Verzeichnis an. Betraf jeden Export ohne Unterordner im Zielpfad. Auf iPhone verifiziert.
    Downloads
  • 1.6.1 61d3e20851

    1.6.1 Stable

    jkaindl released this 2026-07-23 13:37:26 +00:00 | 10 commits to main since this release

    Changed

    • Store-Warnung obsidianmd/prefer-create-el im Code aufgelöst statt abgeschaltet. Der
      frühere eslint-Override (prefer-create-el: off) ist entfernt; der Linter meldet jetzt
      0 Warnungen. core/image.ts erzeugt das Raster-<canvas> nicht mehr selbst über
      activeDocument.createElement, sondern bekommt es als Factory injiziert (() => createEl('canvas'))
      — die reine Kernschicht bleibt so frei von Obsidian-Globals. Der Druck-iframe (doPrint) nutzt
      createEl; die Vorschau-Paginierung erzeugt ihre Blätter mit createDiv() und übernimmt sie per
      doc.adoptNode() in den iframe-Realm (Obsidians Helfer existieren dort nicht). Rein intern, kein
      sichtbares Verhalten geändert (Desktop-Druck, Vektor-PDF und Vorschau verifiziert).
    Downloads
  • 1.6.0 38a06528fa

    1.6.0 Stable

    jkaindl released this 2026-07-23 09:25:19 +00:00 | 12 commits to main since this release

    Removed

    • Einstellung „Mobiler Export" entfernt. Sie bot seit 1.4.0 nur noch eine einzige Option und
      wurde von keinem Codepfad mehr gelesen — der HTML/Quick-Look-Weg war damals zugunsten des
      Degradations-Modells abgeschafft worden, das Dropdown blieb als Attrappe stehen. Der
      gespeicherte Schlüssel wird weiterhin akzeptiert, alte Konfigurationen laden also unverändert;
      es ändert sich nichts am Verhalten, nur eine wirkungslose Zeile verschwindet aus den
      Einstellungen.

    Fixed

    • Dokumentation beschrieb einen Exportweg, den es nicht mehr gibt. README (beide Sprachen)
      und das Tutorial führten weiterhin durch den alten iOS-Umweg (HTML-Datei → Quick Look →
      Drucken → Vorschau aufziehen → sichern) und verwiesen auf die „Mobiler Export"-Einstellung.
      Seit 1.3.0 ist der mobile Export ein Tipp. Auch AGENTS.md und ein Kommentar in core/model.ts
      behaupteten den wählbaren Fallback.
    • Referenz-Doku um die 1.5.0-Einstellungen ergänzt: Ausgabeziel, eigener Ordner und
      Dateinamen-Schema samt Platzhalter-Tabelle fehlten in docs/reference/settings.md vollständig,
      obwohl sie bestimmen, wohin die PDF geschrieben wird und wie sie heißt.

    Changed

    • Intern: core/body-ir.ts nimmt das Briefmodell nicht mehr als any, sondern als
      typisierte Consumer-Shape LetterBodyModel (Muster von LetterHeadModel). Damit fallen die
      letzten 32 Lint-Warnungen des Repos weg, die im Community-Store-Review als Warnings auftauchten.
      Keine Verhaltensänderung: alle drei Änderungen sind Typkonstrukte, der Build-Output ist bis auf
      die Bezeichner-Vergabe des Minifiers identisch (Zahlen-Literale byte-gleich). Der Anlagen-Block
      ist dabei erstmals von Tests abgedeckt (Singular/Plural-Label, Fallback, Position).
    • Einstellungen-Tab auf die deklarative API (getSettingDefinitions) umgestellt. Auf Obsidian
      ab 1.13 rendern die Einstellungen im nativen Karten-Layout inklusive Einstellungs-Suche; auf
      älteren Versionen greift unverändert der bisherige Aufbau (display()), der dieselben
      Definitionen durchläuft — es gibt keine zweite Quelle. minAppVersion bleibt 1.8.7, Felder und
      Verhalten sind identisch. Damit entfällt der letzte begründungslose Lint-Override des Repos.
    Downloads
  • 1.5.0 f9a86cd2c1

    1.5.0 Stable

    jkaindl released this 2026-07-20 07:44:34 +00:00 | 19 commits to main since this release

    Added

    • Ausgabeziel (Einstellungen → Erweitert): Wohin die exportierte PDF geschrieben wird —
      neben die Notiz, in Obsidians Anhang-Ordner, in einen eigenen Ordner oder gar nicht
      speichern und direkt teilen. Bisher landete jeder Export im versteckten Zwischenordner und
      wurde extern geöffnet; das ist jetzt eine Option von vieren statt der einzige Weg. Eine
      vorhandene Datei wird nicht überschrieben, sondern um " (2)" ergänzt.
    • Dateinamen-Schema (Einstellungen → Erweitert): Wie die PDF heißt, ist konfigurierbar.
      Platzhalter {notiz} {datum} {datum_lang} {empfaenger} {betreff} {unserzeichen},
      alles andere im Feld bleibt wörtlich stehen. {datum} liefert YYYY-MM-DD, damit Briefe im
      Dateimanager chronologisch sortieren; {datum_lang} gibt das Datum so aus, wie es im Brief
      steht. Neuinstallationen starten mit {datum} {empfaenger}.
    • Der Druckdialog schlägt jetzt den Briefnamen vor. Bisher bot er den Fenstertitel an — etwa
      Beispielbrief - MeinVault - Obsidian 1.13.2.pdf. Er nutzt dasselbe Schema wie der PDF-Export.

    Changed

    • Bestehende Installationen behalten ihr bisheriges Verhalten und müssen nichts umstellen:
      Ausgabeziel steht bei ihnen auf „direkt teilen", das Dateinamen-Schema auf {notiz}. Beides
      lässt sich in den Einstellungen umstellen.
    Downloads
  • 1.4.1 ac1a6277fd

    1.4.1 Stable

    jkaindl released this 2026-07-20 05:42:22 +00:00 | 22 commits to main since this release

    Behebt die vier Fehler, an denen der Community-Store-Review von 1.4.0 gescheitert
    ist. Der gedruckte Brief ist unverändert — die Änderungen betreffen, wie er
    erzeugt wird.

    Changed

    • Desktop-Druck läuft über ein eigenes iframe. Bisher hängte der Export ein
      <style> in Obsidians document.head, schrieb den Brief per innerHTML in die
      App-DOM und blendete alle Geschwister-Elemente per display:none aus. Beides ist
      im Community-Store verboten. Der Brief wird jetzt als eigenständiges Dokument in
      einem versteckten iframe gedruckt. Nebeneffekt: eigenes Custom-CSS kann nicht mehr
      in die laufende App durchschlagen, und der Druck wartet auf das load-Ereignis
      des Rahmens statt auf einen 150-ms-Timer — eingebettete Logos sind dadurch
      zuverlässig gesetzt, bevor der Druckdialog aufgeht.
    • minAppVersion 1.4.0 → 1.8.7. Das Plugin nutzt getLanguage (ab 1.8.7) und
      processFrontMatter (ab 1.4.4); die bisherige Angabe war schlicht zu niedrig.

    Fixed

    • Objekte im Frontmatter erzeugten die wörtliche Zeichenkette [object Object] im
      fertigen Brief (etwa bei versehentlich verschachteltem YAML unter betreff: oder
      info_1:). Solche Werte bleiben jetzt leer. Alle bisher funktionierenden
      Frontmatter-Werte — Text, Zahlen, Listen, Datumsangaben — werden unverändert
      dargestellt.

    Internal

    • eslint + eslint-plugin-obsidianmd als Gate (npm run lint, Teil von
      npm run gate), inklusive Verbot von Inline-eslint-disable (der Store wertet
      die als Fehler). Damit sind Store-Findings vor dem Release lokal sichtbar — genau
      die Lücke, durch die 1.4.0 durchgefallen ist.
    • Ausstehend als eigener Schnitt: src/core/body-ir.ts nimmt das Briefmodell als
      any (32 Lint-Warnungen). Eine saubere Typisierung legt ~9 echte Typfehler in
      kuvert-kritischem Layout-Code frei und gehört nicht in ein Compliance-Release.
    Downloads
  • 1.4.0 6445bf9760

    1.4.0 Stable

    jkaindl released this 2026-07-16 14:32:00 +00:00 | 25 commits to main since this release

    Umbau der Build- und Provenance-Basis — die Brief-Funktionalität ist unverändert,
    aber der mobile Vektor-PDF-Export wird deutlich leistungsfähiger.

    Changed

    • Build-System: Das Plugin ist nicht mehr abhängigkeits- und build-frei. src/
      (TypeScript) wird per esbuild zu main.js gebündelt; main.js ist jetzt ein
      Build-Artefakt (gitignored), keine committete Quelle mehr. Grund: der
      PDF-Engine-Kern wird als geteiltes Kit vendored (src/vendor/kit/) statt pro
      Plugin neu geschrieben — das ist mit reinem Zero-Build nicht mehr praktikabel.
    • Release-/Provenance-Modell: Die GitHub-Attestation (actions/attest-build-provenance)
      signiert jetzt den Build-Output (main.js/manifest.json/styles.css), frisch aus
      dem getaggten Quellstand via npm ci + npm run gate gebaut — nicht mehr committete Bytes
      1:1 (bisheriges source = output-Modell aus 1.2.2). Provenance-Garantie: reproduzierbar aus
      dem attestierten Commit, verifizierbar mit gh attestation verify.
    • Mobiler Vektor-PDF-Export erzeugt jetzt reiche Markdown-Bodies: Tabellen,
      eingebettete Bilder, Code-Blöcke und mehrseitige Paginierung werden direkt im
      Vektor-PDF gerendert (per Degradation auf einfachere Darstellung bei nicht
      unterstützten Elementen) — statt wie bisher auf den HTML/Quick-Look-Weg
      auszuweichen. Der Desktop-Druckweg (window.print()) ist unverändert.
    • Code-Blöcke bleiben auch dann intakt, wenn andere Plugins sie einfärben:
      Fenced-Code wird für den PDF-Weg direkt aus dem Markdown gelesen, statt aus dem
      gerenderten DOM. Obsidians Renderer führt alle installierten Markdown-Prozessoren
      aus — ein fremdes Plugin, das z. B. ```json in ein eigenes Widget verwandelt (etwa
      „JSON Editor"), hinterlässt dort kein <pre> mehr, sondern seine Bedienelemente.
      Im PDF erscheint jetzt der Code, den Sie geschrieben haben, unabhängig von Ihren
      übrigen Plugins. Der Desktop-Druckweg nutzt weiterhin die gerenderte Ansicht (dort
      ist die Plugin-Darstellung korrekt und gewollt).
    Downloads