Skip to content

Caption date formats and an optional camera/lens line#47

Merged
ankitsejwal merged 5 commits into
mainfrom
feat/caption-metadata
Jun 28, 2026
Merged

Caption date formats and an optional camera/lens line#47
ankitsejwal merged 5 commits into
mainfrom
feat/caption-metadata

Conversation

@ankitsejwal

Copy link
Copy Markdown
Member

Closes #38.

Two caption upgrades, both leaning into the EXIF/metadata moat.

Date format — the date caption was locked to "Month Year". Now there's a picker: Month Year, Full date, or Year. Changing it reflows the auto dates on existing photos, but never touches a caption you typed yourself (isAutoDate only matches strings that equal one of the auto formats for that photo's capture time, which is why takenAt is now kept on the model).

Camera info line — an optional muted line under the date with body + lens + exposure pulled from EXIF, e.g. Nikon D7000 · 35mm · f/2.8 1/200s ISO400. Off by default. Rendered in the editor, the sheet preview, and the PDF (truncated to fit the card).

Changes

  • date.ts: DATE_FORMATS, formatter per format, isAutoDate.
  • exif.ts: reads Make/Model/LensModel/FNumber/ExposureTime/ISO/FocalLength → one-line summary.
  • New dateFormat + showCameraLine settings (persisted); takenAt + cameraLine on the photo (persisted).
  • applyDateFormat store action mirrors applyLocationMode.

Verification
11/11 headless assertions on the date logic: all three formats render correctly and isAutoDate flags every auto string while leaving custom captions untouched. typecheck / oxlint / build green.

@ankitsejwal ankitsejwal merged commit 578e35f into main Jun 28, 2026
1 check passed
@ankitsejwal ankitsejwal deleted the feat/caption-metadata branch June 28, 2026 15:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Caption date format options + optional camera/lens line

1 participant