diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b5d5fe8..823bc6c 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -9,5 +9,5 @@ "version": "24" } }, - "postCreateCommand": "cargo install ssg --locked --version 0.0.69 && make verify" + "postCreateCommand": "cargo install ssg --locked --version 0.0.72 && make verify" } diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 4445f26..748affe 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -17,7 +17,7 @@ permissions: contents: read env: - SSG_VERSION: 0.0.69 + SSG_VERSION: 0.0.72 jobs: release: diff --git a/AGENTS.md b/AGENTS.md index 3ec44fb..aa82d7b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -2,7 +2,7 @@ - Read `README.md`, `DEVELOPMENT.md`, and `/Users/seb/Code/REPO-STANDARD.md` before modifying this repository. -- Use locally installed `ssg` 0.0.69 for every build. +- Use locally installed `ssg` 0.0.72 for every build. - Never edit generated output in `public/` directly. Source of truth is `_posts/` for content and `_layouts/` for Tera templates. - Preserve WCAG 2.2 AAA accessibility, zero findings, and 100 Lighthouse diff --git a/CHANGELOG.md b/CHANGELOG.md index c32888c..a5a777a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ All notable changes to this website are documented here. The format follows ## [Unreleased] +## [0.0.9] - 2026-11-01 + +### Fixed + +- Linked every page by its canonical URL (`/formats/`, not + `/formats/index.html`) in `_layouts/header.html`, `_layouts/footer.html` + and `_posts/`, so internal links no longer point at duplicates of + canonical pages. +- Made `scripts/post-build.py` list only indexable pages in `sitemap.xml`: + a page that is `noindex`, a redirect, or not its own canonical is left + out. +- Redirected the moved pages `/faq/` and `/contribute/` to `/faqs/` and + `/contributing/` with meta-refresh pages generated from + `config/redirects.json`, and published the 404 page at `/404.html`, + the path GitHub Pages serves for a missing URL. +- Titled releases `bankstatementparser.com ` and introduced the + checksum block in `scripts/release_notes.py`, per the release format. + +### Changed + +- Built the site with `ssg` 0.0.72 locally, in the release workflow and in + the devcontainer. +- Split `scripts/regression-test.py` and `scripts/validate_readme.py` into + small checks, and added `tests/test_complexity.py` so CI holds every + Python function to the complexity ceilings. + ## [0.0.8] - 2026-10-31 ### Fixed diff --git a/CITATION.cff b/CITATION.cff index 3d4eed9..3572590 100644 --- a/CITATION.cff +++ b/CITATION.cff @@ -2,8 +2,8 @@ cff-version: 1.2.0 message: "If you reference the Bank Statement Parser documentation, please cite it as below." title: "bankstatementparser.com: Fast, secure financial statement parsing documentation" type: software -version: 0.0.8 -date-released: 2026-10-31 +version: 0.0.9 +date-released: 2026-11-01 authors: - family-names: Rousseau given-names: Sebastien diff --git a/DEVELOPMENT.md b/DEVELOPMENT.md index 1e628de..b47c458 100644 --- a/DEVELOPMENT.md +++ b/DEVELOPMENT.md @@ -2,7 +2,7 @@ ## Prerequisites -- Rust and `ssg` 0.0.69: `cargo install ssg --locked --version 0.0.69` +- Rust and `ssg` 0.0.72: `cargo install ssg --locked --version 0.0.72` - Python 3.12 or later - Node.js 24 or later diff --git a/README.md b/README.md index 302ad07..1ee6dbd 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ Docs OpenSSF Scorecard License: Apache-2.0 OR MIT - Built with Rust SSG + Built with Rust SSG

--- @@ -118,7 +118,7 @@ The `bankstatementparser` suite provides end-to-end tooling for financial docume | Area | Capability | Status | | :--- | :--- | :--- | -| Static Generation | Rust SSG v0.0.63 + Tera template compilation | Active | +| Static Generation | Rust SSG v0.0.72 + Tera template compilation | Active | | Accessibility | 100% WCAG 2.2 Level AAA compliance (>= 7.0:1 contrast) | Verified | | Content Security | Strict Content-Security-Policy (CSP) with zero inline scripts | Enforced | | Integrity | SHA-384 Subresource Integrity (SRI) on all scripts and styles | Active | @@ -143,7 +143,7 @@ Audit and regression suites are executed continuously on every commit: | Scenario | Result | Environment | | :--- | ---: | :--- | -| Full Site Compilation (20 Pages) | < 2.0s | Rust `ssg` 0.0.63, 32 plugins | +| Full Site Compilation (20 Pages) | < 2.0s | Rust `ssg` 0.0.72, 32 plugins | | Worst Light Mode Contrast Ratio | 17.79:1 | WCAG 2.2 AAA (Threshold >= 7.0:1) | | Worst Dark Mode Contrast Ratio | 8.08:1 | WCAG 2.2 AAA (Threshold >= 7.0:1) | | Lighthouse Performance / A11y | 100 / 100 | Clean ECMAScript, zero heavy runtimes | diff --git a/VERSION b/VERSION index d169b2f..c5d54ec 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.0.8 +0.0.9 diff --git a/_layouts/footer.html b/_layouts/footer.html index 7f73171..6c3e005 100644 --- a/_layouts/footer.html +++ b/_layouts/footer.html @@ -13,31 +13,31 @@

Documentation & API

Solutions & Workflows

Trust & Legal

diff --git a/_layouts/header.html b/_layouts/header.html index 1d783ab..7becd87 100644 --- a/_layouts/header.html +++ b/_layouts/header.html @@ -13,11 +13,11 @@ diff --git a/_posts/404.md b/_posts/404.md index b0579fe..7cc21af 100644 --- a/_posts/404.md +++ b/_posts/404.md @@ -23,5 +23,5 @@ The requested financial documentation page does not exist or has been moved.
Return to Homepage → -View Documentation +View Documentation
diff --git a/_posts/changelog.md b/_posts/changelog.md index 974c0c7..66fc46e 100644 --- a/_posts/changelog.md +++ b/_posts/changelog.md @@ -21,6 +21,16 @@ lead: "Deterministic versioning history, security audits, and functional enhance All notable changes to **Bank Statement Parser** are documented in this file following strict Semantic Versioning. +## [0.0.9] - 2026-11-01 +### Fixed +- Linked pages by their canonical URLs, kept non-indexable pages out of `sitemap.xml`, redirected `/faq/` and `/contribute/` to `/faqs/` and `/contributing/`, and served the 404 page for missing URLs. +### Changed +- Built the site with `ssg` 0.0.72. + +## [0.0.8] - 2026-10-31 +### Fixed +- Restored the search widget assets and styles, and aligned the footer on a four-column grid. + ## [0.0.7] - 2026-10-30 ### Fixed - Resolved CodeQL code scanning alerts 41 and 42 (`py/empty-except`) in `scripts/post-build.py` and tightened exception handling in `scripts/validate_spdx_headers.py`. diff --git a/_posts/faqs.md b/_posts/faqs.md index a395e3c..45d9c68 100644 --- a/_posts/faqs.md +++ b/_posts/faqs.md @@ -262,7 +262,7 @@ lead: "Comprehensive guidance covering specifications, zero-telemetry local exec
-

We provide institutional support agreements including custom bank dialect model training, prioritized issue response SLAs, dedicated security audit consultations, and bespoke ERP/TMS integration adapters. Inquire via our Contact Page.

+

We provide institutional support agreements including custom bank dialect model training, prioritized issue response SLAs, dedicated security audit consultations, and bespoke ERP/TMS integration adapters. Inquire via our Contact Page.

@@ -280,9 +280,9 @@ lead: "Comprehensive guidance covering specifications, zero-telemetry local exec

Have a question not listed here?

Our core engineering team and community stewards are available to assist. Explore the documentation guides, join our GitHub community discussions, or contact our solutions engineers directly.

-Getting Started Guide +Getting Started Guide GitHub Discussions -Contact Support +Contact Support
diff --git a/_posts/index.md b/_posts/index.md index 0ff0d56..885b565 100644 --- a/_posts/index.md +++ b/_posts/index.md @@ -22,8 +22,8 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin

Parse any bank statement in milliseconds.
Zero cloud dependencies. Zero telemetry.

An open-source, high-throughput financial document parsing engine engineered in Rust with native Python bindings. Converts CAMT, PAIN.001, MT940, MT942, OFX/QFX, BAI2, CSV, and PDF bank statements into validated JSON, Apache Parquet, and ISO 20022 transaction streams entirely on your own infrastructure.

-Install CLI & SDK -Explore Supported Formats +Install CLI & SDK +Explore Supported Formats