Releases: johannes-kaindl/obsidian-paperize
Releases · johannes-kaindl/obsidian-paperize
Release list
0.3.3
Added
- Plugin settings now appear in Obsidian's settings search (Obsidian 1.13.0 and later).
The tab implements the declarativegetSettingDefinitions()API, which the host also uses to
render the settings natively.display()remains as the imperative fallback for Obsidian
below 1.13 and draws the same definitions, sominAppVersionstays at 1.8.7 — no user is
left behind. One deliberate difference between the paths: the collapsible sections exist only
in the fallback, because the native renderer has no notion of collapsing. From 1.13 on, the
settings search replaces collapsing as the remedy for a long list.
0.3.2
Fixed
- A code block vanished from the PDF when its fence hugged the preceding line of text. A
fenced code block may interrupt a paragraph in CommonMark/Obsidian; without a blank line above
it, the internal placeholder ended up inside that paragraph as a soft break. Only a lone
placeholder is resolved back into code, so the block silently fell out of the PDF and the raw
placeholder text (PAPERIZECODE0) was printed as body text instead. Fixed upstream in
obsidian-kit0.26.1 and re-vendored here (0.22.0 → 0.26.1; apart from this correction the
vendored kit sources are unchanged).
0.3.1
Fixed
- Formulas no longer disappear from the PDF. Block and inline math (
$$…$$,$…$) left no
trace at all: MathJax renders to SVG without any text node, so the converter dropped it and
the counter stayed at zero — meaning the summary notice kept quiet too. The PDF gave no hint
that anything was missing. Math now shows as[Formel]and is counted. The same gap affected
Mermaid diagrams and any other SVG-rendered element. - Task lists keep their state.
- [ ]and- [x]rendered as visually identical bullets;
"done" was indistinguishable from "open". They now carry[ ]/[x]. - A heading is no longer stranded above an image. The orphan guard measured text lines of
the following block — meaningless for an image, which never splits. The heading fit next to
two notional lines, then the whole image moved to the next page and left it behind above a
third of a blank page.
Found during the device acceptance run of 0.3.0 (2026-08-04) and fixed upstream in
obsidian-kit 0.22.0; vendored here.
Changed
tools/sync-kit.shstamps every vendored file with its kit version instead of only
i18n.ts— a plaincphad been dropping the "do not hand-edit" marker frompdf/*.ts. It
now also carriessettings.tsand rewritesVENDOR.json, so re-vendoring is one command.pdf/layout.tsandpdf/options.tsare no longer pinned behind the rest of the vendor
(they hung back at kit 0.14.0); the wholepdf/tree tracks one kit version.check:pureis a script (scripts/check-pure.mjs) rather than a grep one-liner. The old
pattern only matched single quotes — the project's own style — and was therefore blind to the
double-quoted imports the vendored kit actually uses.
0.3.0
Added
- Filename scheme — the exported PDF no longer has to be named after the note. The
scheme accepts{title}{date}{time}{folder}and{version}; the default
{title}keeps the previous behaviour unchanged. An unknown placeholder is left as-is so
a typo shows up in the filename instead of silently disappearing, and an empty scheme
falls back to{title}. {version}prevents overwriting. Without it, exporting a note twice replaces the
previous PDF (unchanged behaviour). With it, each export counts up to the next free name
(Report v1.pdf,Report v2.pdf, …). It has no effect in the attachment folder mode,
where Obsidian resolves collisions itself.- Line height and maximum image width are now adjustable. Both settings already
existed and were already honoured by the PDF engine, but had no control in the Settings
tab — they could only be changed by editingdata.jsonby hand.
Changed
- The Settings tab is now grouped into five collapsible sections (Output, Page,
Typography, Content, Pagination) instead of seventeen settings in one flat list.
Output starts expanded; the others remember whether you left them open. If you ever
went looking for where the PDF is saved and did not find it: it was always there, just
buried — it is now the first thing the tab shows. - Font size, margins and heading orphan control are sliders. As text fields, a value
outside the allowed range was silently discarded: nothing was saved, nothing was said,
and the field kept showing the value you typed while the old one stayed in effect. The
sliders make an invalid value impossible and show the limits up front. - The custom output folder only appears when the output destination is actually custom
folder — so it no longer needs a line of text explaining when it applies.
Fixed
- Settings are merged with the shared kit's
mergeSettingsinstead of a flat
Object.assign. With the new section states, a flat merge would have shared a reference
with the defaults, and collapsing a section for the first time would have mutated them. - Both READMEs listed the default font size as 11 pt; it has always been 10.5 pt.
0.2.0
Added
- Bilingual UI (English / German): commands, settings, and notices now follow the
Obsidian display language automatically — no separate setting. Built on the shared kit
i18n module, vendored undersrc/vendor/kit/i18n.tswith the plugin's string tables in
src/i18n/strings.ts.
Changed
- Minimum Obsidian version raised to 1.8.7 — required by the native
getLanguage()
API used to detect the display language (matching the other plugins in the family). - Reworded the tagline and plugin description (dropped the "no letterhead, no branding"
phrasing) in both READMEs andmanifest.json.
0.1.1
Fixed
- Image rasterization now uses
activeDocumentinstead ofdocument, so canvas
creation works correctly in Obsidian popout windows.
Changed
- Internal type-safety and hygiene cleanup addressing the Obsidian community plugin
review: removed the unusedbuiltin-modulesdev dependency, replacedanycasts on
runtime-only APIs (fileManager.getAvailablePathForAttachment,navigator.share,
app.openWithDefaultApp) with precise local interfaces, and dropped redundant type
assertions. No behavior change.
0.1.0
Initial release.
Added
- Clean Markdown → PDF export: one command (
Aktive Notiz als PDF exportieren, also
bound to a ribbon icon) turns the active note into a real, text-selectable vector PDF —
no letterhead, no branding, just the note content. - Standard markdown scope: headings, paragraphs, bold/italic/inline code, nested
ordered/unordered lists, blockquotes, horizontal rules, links, images (re-encoded as
JPEG), fenced code blocks, and simple tables. - Graceful degradation: elements outside the Standard scope (callouts, math, embeds,
…) are simplified rather than dropped silently — a single summary Notice reports how
many elements were simplified. Paperize always produces a PDF. - Four output modes: next to the note (default), the Obsidian attachment folder, a
custom folder, or share/open out of the vault (mobile share sheet / system default app). - Settings: font family (Sans/Serif/Mono — Adobe Core-14 standard fonts only, no
embedding), base font size, page size (A4/Letter), margins, frontmatter stripping,
title display, page numbers, running header/footer, and output mode. - Cross-platform: produces real vector PDF bytes identically on desktop and
iPhone/iPad (isDesktopOnly: false). - Dependency-free at runtime: no external PDF library, no network calls, no
telemetry — the PDF engine is a small, pure, vendored writer
(src/vendor/kit/pdf/, fromobsidian-kit@0.8.0).