Skip to content

[BUILD] - exif-stripper Implementation#47

Closed
github-actions[bot] wants to merge 1 commit intomainfrom
build/exif-stripper-implementation-0118f172f197e79d
Closed

[BUILD] - exif-stripper Implementation#47
github-actions[bot] wants to merge 1 commit intomainfrom
build/exif-stripper-implementation-0118f172f197e79d

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Apr 3, 2026

New Implementation

This is a new implementation of the EXIF Data Stripper & Viewer from specs/005-exif-stripper/.

Implemented Features

US1 — Strip & Download (P1 MVP)

  • Drag-and-drop / file picker for JPEG and PNG files
  • Human-readable EXIF metadata table (tag label, value, category badge)
  • GPS warning banner with clickable Google Maps link showing exact coordinates
  • Strip All & Download — lossless JPEG binary splice (zero re-encoding); PNG via Canvas re-encode
  • Clear / Reset returns UI to initial state
  • "No metadata detected" empty state

US2 — Selective Strip (P2)

  • Field group checkboxes: Location / GPS, Device Info, Timestamps, Camera Settings, All (master toggle)
  • Strip Selected & Download — rebuilds TIFF IFD from scratch, excluding only the chosen groups
  • Remove GPS Only shortcut button in the GPS warning banner
  • Warning toast when no groups are selected

US3 — Batch Strip (P3)

  • Accepts up to 10 JPEG/PNG files simultaneously
  • Per-file summary list: filename, GPS indicator badge, EXIF tag count, strip status
  • Click any file in the list to view its full metadata table
  • Strip All & Download as ZIP — processes all files, packages into a single archive via JSZip
  • Progress indicator showing current file being processed

SEO & Structured Data

  • SoftwareApplication + HowTo JSON-LD structured data blocks
  • Keyword-optimised title, meta description, and How to Use section
  • Canonical URL and Open Graph tags

Shared Assets & Dependencies

  • JSZip 3.10.1 vendored to tools/vendor/jszip/jszip.min.js
    • Added to package.json, scripts/sync-vendor.mjs, and tools/vendor/manifest.json
    • Copied from node_modules via npm run vendor:sync
  • /tools/common.css reused for all shared primitives (tokens, buttons, drop zone, badges)
  • No CDN references — all runtime assets are committed

File Structure

tools/exif-stripper.html          ← tool entry page
tools/exif-stripper/main.js       ← EXIF parser, strippers, UI logic (~700 lines ES Module)
tools/exif-stripper/style.css     ← tool-specific styles
tools/vendor/jszip/jszip.min.js   ← shared vendored JSZip
tools/vendor/manifest.json        ← updated with jszip entry

How to Test

Open tools/exif-stripper.html in a browser:

  1. Drop a JPEG taken with a smartphone (should show GPS warning + full metadata table)
  2. Click Strip All & Download — open the result in an EXIF reader to confirm zero tags remain
  3. Reload, uncheck all groups except Location, click Strip Selected & Download — confirm GPS gone but timestamps and device info remain
  4. Drop 3–5 JPEG files, click Strip All & Download as ZIP — confirm zip contains stripped copies
  5. Open DevTools Network tab during any operation — confirm zero outbound requests

Closes

Closes #38

Generated by Lead Developer: Build ·

Implements specs/005-exif-stripper — new browser-local tool for viewing
and stripping EXIF metadata from JPEG and PNG images.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@JackTreble
Copy link
Copy Markdown
Owner

double trigger #48

@JackTreble JackTreble closed this Apr 3, 2026
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.

[PROPOSAL] - EXIF Data Stripper & Viewer

1 participant