diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..38e5312 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,79 @@ +# Changelog + +All notable changes to **Your Everyday Tools** are documented here. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project loosely follows [Semantic Versioning](https://semver.org/). + +## [0.4.1] — 2026-04-20 + +### Fixed +- **PDF Compress** no longer breaks page layout. Compressed images are now replaced in-place via `page.replace_image(xref, ...)` instead of being re-inserted at full page dimensions, so the original placement, size, and positioning matrix are preserved. Images shared across multiple pages are also deduplicated so they're only recompressed once. +- **PDF Resize** now actually scales page content instead of only changing the media box (which previously just cropped the visible area, leaving images and text clipped or misaligned). Scale mode renders each page onto a new page at the new size; paper-size mode fits content into the target with aspect ratio preserved and orientation matched. +- **Upload UI** — the invisible file input no longer covers the uploaded file list. The remove buttons on each listed file are now clickable. Structural fix: `.file-list` is now a sibling of `.upload-zone` rather than a child. + +### Added +- Per-quality image-dimension cap on PDF Compress (1200/1800/2400 px max edge for low/medium/high) so photo-heavy PDFs actually shrink. + +## [0.4.0] — 2026-04-20 + +### Added — Developer Utilities (new category, 10 tools) +- **UUID Generator** (client-side) — v4 UUIDs, bulk generation, formatting options. +- **JWT Decoder** (client-side) — decodes JWT header/payload/signature; does not verify signatures. +- **User-Agent Parser** (client-side) — extracts browser, OS, device, and engine. +- **SQL Formatter** — pretty-prints SQL via `sqlparse` with configurable keyword case and indent. +- **XML Formatter** (client-side) — format, validate, and minify XML via DOMParser. +- **HTML Formatter** (client-side) — beautify/minify with correct handling of void tags, inline tags, and raw-content blocks. +- **CSS Formatter** (client-side) — indent-aware beautify/minify. +- **JS Formatter** (client-side) — basic beautify/minify with string and comment protection. +- **Cron Parser** — validates expressions and previews upcoming runs via `croniter`. +- **JSONPath Tester** — evaluates JSONPath expressions via `jsonpath-ng`. + +### Added — Archive Tools (new category, 3 tools) +- **Create ZIP** — bundle multiple files with Deflate or Store compression. +- **Extract ZIP** — extract archive contents (500 MB cap; encrypted ZIPs rejected). +- **ZIP Info** — list entries with sizes, dates, and overall compression ratio. + +### Added — Audio & Video (new category, 6 tools — requires FFmpeg on PATH) +- **Convert Audio** — MP3/WAV/OGG/FLAC/AAC/M4A/Opus with adjustable bitrate. +- **Convert Video** — MP4/WebM/MKV/MOV/AVI with sensible codec defaults. +- **Extract Audio** — pull audio track from a video file. +- **Trim Media** — cut by start/end time; stream-copy first, re-encodes on failure. +- **Compress Video** — H.264 re-encode at configurable CRF and preset. +- **Video to GIF** — with FPS, width, start, and duration options. + +### Added — Security +- **File Hash** — streaming MD5/SHA-1/SHA-256/SHA-512 of uploaded files. + +### Added — Dependencies +- `sqlparse`, `croniter`, `jsonpath-ng` added to `requirements.txt`. +- FFmpeg documented as an optional external binary; each media tool page shows install instructions and a detected/not-detected banner. + +## [0.3.0] — 2026-04-19 + +### Added — Spreadsheet (new category, 6 tools) +- **Excel to CSV / JSON** — export sheets from `.xlsx` / `.xls` to CSV or JSON (array-of-objects or array-of-arrays), single sheet or all sheets as ZIP. +- **CSV / JSON to Excel** — build `.xlsx` from CSV/JSON files, one sheet per file, optional bold/shaded header row. +- **Excel to PDF** — one section per sheet, configurable page size, orientation, and font size. 5000-row cap per sheet. +- **Merge Workbooks** — combine multiple Excel files, optionally prefixing sheet names with source filename. +- **Split Sheets** — export each sheet as its own `.xlsx`. +- **Excel Info & Preview** — list sheet names, row/column counts, and preview rows. + +### Added — Dependencies +- `openpyxl` (required) and `xlrd` (for legacy `.xls` read) added to `requirements.txt`. + +## [0.2.0] — 2026-04-19 + +### Added +- **OCR PDF** — make scanned PDFs searchable (image + hidden text layer) or extract text. 14 languages supported via optional `pytesseract`. +- **CAD to PDF / Image** — render DXF directly via `ezdxf` + `matplotlib`. DWG supported via optional **ODA File Converter** (auto-detected on PATH). Full install guide added to README and to the CAD tool page. +- **Animated WebP / GIF** — convert between the two formats, preserving per-frame durations. + +### Removed +- MIT license badge from README (project has no license). + +## [0.1.0] — 2026-04-18 + +### Added +- Initial release — 48 tools across 7 categories: Document Conversion, PDF Tools, Image Tools, Text & Data, Calculators, QR Code, Security. +- One universal upload template (`upload_tool.html`) powering all server-side tools. +- Client-side-only tools for text utilities, calculators, password and hash generators. +- Graceful degradation for heavy optional dependencies (`rembg`, `pyzbar`, `pdf2docx`). +- Screenshots, README, `.gitignore`. diff --git a/README.md b/README.md index 00d9f80..4233ab2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,12 @@ # Your Everyday Tools -A lightweight, self-hosted web app that bundles 57 everyday utilities into a single interface. Built with Python + Flask, zero JavaScript frameworks, and minimal CSS — no bloat, just tools. +A lightweight, self-hosted web app that bundles 77 everyday utilities into a single interface. Built with Python + Flask, zero JavaScript frameworks, and minimal CSS — no bloat, just tools.   +See [CHANGELOG.md](CHANGELOG.md) for release history and recent fixes. + --- ## Screenshots @@ -107,6 +109,38 @@ A lightweight, self-hosted web app that bundles 57 everyday utilities into a sin |------|-------------| | **Password Generator** | Generate strong random passwords with configurable length, character types, and entropy display | | **Hash Generator** | Generate MD5, SHA-1, SHA-256, and SHA-512 hashes from text | +| **File Hash** | Compute MD5, SHA-1, SHA-256, and SHA-512 hashes of an uploaded file (streamed, no size cap beyond upload limit) | + +### Developer Utilities +| Tool | Description | +|------|-------------| +| **UUID Generator** | Generate v4 UUIDs — single or bulk (up to 1000), with uppercase, brace, and no-dash formatting | +| **JWT Decoder** | Decode JSON Web Tokens client-side to inspect header, payload, and claims (decode only — does not verify signatures) | +| **User-Agent Parser** | Parse browser, OS, device, and engine from any User-Agent string | +| **SQL Formatter** | Pretty-print SQL with configurable keyword casing (UPPER / lower / Capitalize) and indentation — powered by `sqlparse` | +| **XML Formatter** | Format, validate, and minify XML using the browser's native DOMParser | +| **HTML Formatter** | Beautify or minify HTML source (void tags, inline tags, and ` +{% endblock %} diff --git a/templates/tools/css_formatter.html b/templates/tools/css_formatter.html new file mode 100644 index 0000000..91fce9e --- /dev/null +++ b/templates/tools/css_formatter.html @@ -0,0 +1,92 @@ +{% extends "base.html" %} +{% block title %}CSS Formatter - EveryTools{% endblock %} +{% block top_title %}CSS Formatter{% endblock %} + +{% block content %} +
Beautify or minify CSS
+Beautify or minify HTML source
+Basic beautification and minification. For complex code, use a full tool like Prettier.
+Query JSON data using JSONPath expressions
+Decode header and payload of a JSON Web Token. Signatures are NOT verified — do not trust decoded content without verification.
+Format SQL statements with proper indentation and keyword casing
+Extract browser, OS, and device info from a User-Agent string.
+Generate v4 (random) and nil UUIDs. Optionally generate many at once.
+Special values: + + +
+Format, validate, and minify XML data
+