Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
2 changes: 1 addition & 1 deletion .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
contents: read

env:
SSG_VERSION: 0.0.69
SSG_VERSION: 0.0.72

jobs:
release:
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 26 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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 <version>` 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
Expand Down
4 changes: 2 additions & 2 deletions CITATION.cff
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion DEVELOPMENT.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
<a href="https://bankstatementparser.com"><img src="https://img.shields.io/badge/docs-bankstatementparser.com-blue?style=for-the-badge&labelColor=555555&logo=googlechrome" alt="Docs" height="28" /></a>
<a href="https://scorecard.dev/viewer/?uri=github.com/sebastienrousseau/bankstatementparser.github.io"><img src="https://img.shields.io/ossf-scorecard/github.com/sebastienrousseau/bankstatementparser.github.io?style=for-the-badge&label=OpenSSF%20Scorecard&logo=openssf" alt="OpenSSF Scorecard" height="28" /></a>
<a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0%20OR%20MIT-blue.svg?style=for-the-badge" alt="License: Apache-2.0 OR MIT" height="28" /></a>
<a href="https://static-site-generator.com/"><img src="https://img.shields.io/badge/SSG-0.0.63-93450a.svg?style=for-the-badge&logo=rust" alt="Built with Rust SSG" height="28" /></a>
<a href="https://static-site-generator.com/"><img src="https://img.shields.io/badge/SSG-0.0.72-93450a.svg?style=for-the-badge&logo=rust" alt="Built with Rust SSG" height="28" /></a>
</p>

---
Expand Down Expand Up @@ -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 |
Expand All @@ -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 |
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.8
0.0.9
30 changes: 15 additions & 15 deletions _layouts/footer.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,31 @@
<div>
<h2>Documentation &amp; API</h2>
<ul>
<li><a href="/getting-started/index.html">Getting Started</a></li>
<li><a href="/formats/index.html">Supported Formats</a></li>
<li><a href="/architecture/index.html">Pipeline Architecture</a></li>
<li><a href="/api/index.html">API &amp; SDK Reference</a></li>
<li><a href="/benchmarks/index.html">Performance Benchmarks</a></li>
<li><a href="/getting-started/">Getting Started</a></li>
<li><a href="/formats/">Supported Formats</a></li>
<li><a href="/architecture/">Pipeline Architecture</a></li>
<li><a href="/api/">API &amp; SDK Reference</a></li>
<li><a href="/benchmarks/">Performance Benchmarks</a></li>
</ul>
</div>
<div>
<h2>Solutions &amp; Workflows</h2>
<ul>
<li><a href="/use-cases/index.html">Treasury Automation</a></li>
<li><a href="/use-cases/index.html">Reconciliation Engine</a></li>
<li><a href="/use-cases/index.html">Lending Underwriting</a></li>
<li><a href="/security/index.html">Zero-Telemetry Privacy</a></li>
<li><a href="/contact/index.html">Custom Dialect Support</a></li>
<li><a href="/use-cases/">Treasury Automation</a></li>
<li><a href="/use-cases/">Reconciliation Engine</a></li>
<li><a href="/use-cases/">Lending Underwriting</a></li>
<li><a href="/security/">Zero-Telemetry Privacy</a></li>
<li><a href="/contact/">Custom Dialect Support</a></li>
</ul>
</div>
<div>
<h2>Trust &amp; Legal</h2>
<ul>
<li><a href="/about/index.html">About &amp; Governance</a></li>
<li><a href="/changelog/index.html">Release Changelog</a></li>
<li><a href="/accessibility/index.html">Accessibility (WCAG AAA)</a></li>
<li><a href="/privacy/index.html">Privacy Policy</a></li>
<li><a href="/terms/index.html">Terms of Use</a></li>
<li><a href="/about/">About &amp; Governance</a></li>
<li><a href="/changelog/">Release Changelog</a></li>
<li><a href="/accessibility/">Accessibility (WCAG AAA)</a></li>
<li><a href="/privacy/">Privacy Policy</a></li>
<li><a href="/terms/">Terms of Use</a></li>
</ul>
<p class="fine-print footer-credit">Made with ❤️ in London. Built with <a class="made-with-ssg" href="https://static-site-generator.com/">SSG</a> and <a href="https://skeletonic.com/">Skeletonic CSS</a>.</p>
</div>
Expand Down
10 changes: 5 additions & 5 deletions _layouts/header.html
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,11 @@
</button>

<nav class="site-nav navbar" id="navMenu" aria-label="Main Navigation">
<a href="/formats/index.html">Formats</a>
<a href="/architecture/index.html">Architecture</a>
<a href="/benchmarks/index.html">Benchmarks</a>
<a href="/faqs/index.html">FAQ</a>
<a class="nav-cta" href="/getting-started/index.html">Get Started</a>
<a href="/formats/">Formats</a>
<a href="/architecture/">Architecture</a>
<a href="/benchmarks/">Benchmarks</a>
<a href="/faqs/">FAQ</a>
<a class="nav-cta" href="/getting-started/">Get Started</a>
<span data-ssg-search></span>
</nav>

Expand Down
2 changes: 1 addition & 1 deletion _posts/404.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,5 +23,5 @@ The requested financial documentation page does not exist or has been moved.

<div class="my-4">
<a href="/" class="btn-primary-quantum">Return to Homepage →</a>
<a href="/getting-started/index.html" class="btn-secondary-quantum ms-2">View Documentation</a>
<a href="/getting-started/" class="btn-secondary-quantum ms-2">View Documentation</a>
</div>
10 changes: 10 additions & 0 deletions _posts/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`.
Expand Down
6 changes: 3 additions & 3 deletions _posts/faqs.md
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ lead: "Comprehensive guidance covering specifications, zero-telemetry local exec
<span class="faq-icon" aria-hidden="true"></span>
</summary>
<div class="faq-answer">
<p>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 <a href="/contact/index.html">Contact Page</a>.</p>
<p>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 <a href="/contact/">Contact Page</a>.</p>
</div>
</details>
</div>
Expand All @@ -280,9 +280,9 @@ lead: "Comprehensive guidance covering specifications, zero-telemetry local exec
<h2>Have a question not listed here?</h2>
<p>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.</p>
<div class="faq-help-actions">
<a href="/getting-started/index.html" class="primary">Getting Started Guide</a>
<a href="/getting-started/" class="primary">Getting Started Guide</a>
<a href="https://github.com/sebastienrousseau/bankstatementparser/discussions" class="secondary" target="_blank" rel="noopener">GitHub Discussions</a>
<a href="/contact/index.html" class="secondary">Contact Support</a>
<a href="/contact/" class="secondary">Contact Support</a>
</div>
</div>
</div>
Expand Down
16 changes: 8 additions & 8 deletions _posts/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,8 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
<h1 id="hero-heading">Parse any bank statement in <em>milliseconds.</em><br>Zero cloud dependencies. Zero telemetry.</h1>
<p>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.</p>
<div class="actions">
<a class="primary" href="/getting-started/index.html">Install CLI &amp; SDK</a>
<a href="/formats/index.html">Explore Supported Formats</a>
<a class="primary" href="/getting-started/">Install CLI &amp; SDK</a>
<a href="/formats/">Explore Supported Formats</a>
</div>
<ul class="hero-assurances">
<li>Deterministic Rust Core</li>
Expand Down Expand Up @@ -66,7 +66,7 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
<p class="lilac-label">Corporate Treasury Automation</p>
<h2 id="treasury-heading">Automated Reconciliation for Modern Treasury</h2>
<p>Eliminate manual statement keying, error-prone spreadsheets, and expensive cloud OCR APIs. Normalize multi-bank statements directly into your general ledger, ERP, and treasury management workflows with sub-second turnaround.</p>
<a class="primary" href="/use-cases/index.html">View Treasury Playbook <span aria-hidden="true">↗</span></a>
<a class="primary" href="/use-cases/">View Treasury Playbook <span aria-hidden="true">↗</span></a>
</div>
</div>
</section>
Expand Down Expand Up @@ -141,7 +141,7 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
<p class="lilac-label">High-Performance Pipeline</p>
<h2 id="arch-heading">Deterministic Execution at Enterprise Scale</h2>
<p>Engineered for high-frequency financial platforms requiring bounded latency, zero-allocation loops, and strict ISO 20022 data models.</p>
<a class="primary" href="/architecture/index.html">View Architecture Blueprint <span aria-hidden="true">↗</span></a>
<a class="primary" href="/architecture/">View Architecture Blueprint <span aria-hidden="true">↗</span></a>
</div>
</div>
</section>
Expand All @@ -153,8 +153,8 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
<h2 id="quickstart-heading">Install via Cargo, Pip, or Homebrew in Seconds</h2>
<p>Deploy as a standalone CLI tool, embed as a high-assurance Rust crate in your microservices, or integrate into Python data pipelines with zero external runtime overhead.</p>
<div class="actions">
<a class="primary" href="/getting-started/index.html">Full Documentation →</a>
<a href="/api/index.html">API Reference</a>
<a class="primary" href="/getting-started/">Full Documentation →</a>
<a href="/api/">API Reference</a>
</div>
</div>
<div class="terminal-box">
Expand Down Expand Up @@ -184,7 +184,7 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
<h2 id="privacy-heading">Your financial data never leaves your infrastructure.</h2>
<p>Bank Statement Parser is 100% self-contained and operates entirely on your local machine, private VPC, or air-gapped on-premise servers. Zero analytics, zero telemetry, and zero outbound network calls—guaranteeing complete GDPR, GLBA, and banking confidentiality compliance.</p>
</div>
<a href="/security/index.html">Read Security &amp; Privacy Architecture <span aria-hidden="true">↓</span></a>
<a href="/security/">Read Security &amp; Privacy Architecture <span aria-hidden="true">↓</span></a>
</div>
</section>

Expand Down Expand Up @@ -223,7 +223,7 @@ banner_alt: "Bank Statement Parser — High-Throughput Financial Document Parsin
</div>
<div>
<p>Get started in minutes with the Rust CLI or Python package across Linux, macOS, and Windows.</p>
<a class="primary" href="/getting-started/index.html">Install Bank Statement Parser</a>
<a class="primary" href="/getting-started/">Install Bank Statement Parser</a>
</div>
</div>
</section>
4 changes: 4 additions & 0 deletions config/redirects.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
{
"/contribute/": "/contributing/",
"/faq/": "/faqs/"
}
4 changes: 2 additions & 2 deletions docs/.meta/changelog.meta.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
"logo": "https://cloudcdn.pro/bankstatementparser/v1/logos/bankstatementparser.svg",
"name": "Bank Statement Parser",
"permalink": "https://bankstatementparser.com/changelog/",
"reading_time": 1,
"reading_time": 2,
"short_name": "bankstatementparser",
"title": "Changelog & Semantic Version History: Release Notes",
"word_count": 371
"word_count": 437
}
Loading
Loading