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
3 changes: 2 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,9 @@ jobs:
run: |
rsync -a --delete \
--exclude '.meta/' --exclude '.ssg/' --exclude '.ssg-cache/' \
--exclude '.ssg-plugin-cache.json' --exclude '_csp' --exclude '_headers' \
--exclude '.ssg-plugin-cache.json' --exclude '_headers' \
docs/ _site/
touch _site/.nojekyll
test -s _site/index.html
test "$(cat _site/CNAME)" = "bankstatementparser.com"
grep -q '^Contact:' _site/.well-known/security.txt
Expand Down
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,21 @@ All notable changes to this website are documented here. The format follows

## [Unreleased]

## [0.0.8] - 2026-10-31

### Fixed

- Preserved `docs/_csp/` assets and emitted `.nojekyll` during GitHub Pages
staging in `.github/workflows/ci.yml` and `scripts/post-build.py` so the
extracted search widget stylesheet and script no longer return HTTP 404 in
production.
- Embedded `#ssg-search-btn` and `#ssg-search-overlay` rules directly in
`styles.css` and `_layouts/styles.css` to prevent unstyled SVG search icons
and modal overlays from appearing in the page flow.
- Updated `.footer-grid` in `styles.css` and `_layouts/styles.css` from 3
columns to 4 columns (`1.4fr 1fr 1fr 1fr`) to match the 4-column footer
layout in `_layouts/footer.html`.

## [0.0.7] - 2026-10-30

### 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.7
date-released: 2026-10-30
version: 0.0.8
date-released: 2026-10-31
authors:
- family-names: Rousseau
given-names: Sebastien
Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
0.0.7
0.0.8
131 changes: 130 additions & 1 deletion _layouts/styles.css
Original file line number Diff line number Diff line change
Expand Up @@ -1639,7 +1639,7 @@ figcaption { margin-block-start: 1.5rem; color: var(--ink-muted); }
#ssg-search-btn { --ssg-search-top: 18px; }
#ssg-search-btn kbd { margin-block: 0; }
.site-nav > #ssg-search-btn { position: static; inset: auto; flex: 0 0 auto; box-shadow: none; }
.footer-grid { display: grid; grid-template-columns: 1.2fr 0.7fr 1fr; gap: 3rem; }
.footer-grid { display: grid; grid-template-columns: 1.4fr 1fr 1fr 1fr; gap: 2.5rem; }
.footer-grid > div { display: grid; align-content: start; gap: 1rem; }
.footer-grid h2 { font: 800 var(--step--1)/1.2 var(--font-sans); letter-spacing: 0.05em; text-transform: uppercase; }
.footer-grid ul { display: grid; gap: 0.45rem; padding: 0; list-style: none; }
Expand Down Expand Up @@ -2022,4 +2022,133 @@ html { scroll-padding-block-start: 5.5rem; }
}
.site-nav > #ssg-search-btn span,
.site-nav > #ssg-search-btn kbd { display: none; }
#ssg-search-btn {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: 44px;
padding: 8px 16px;
background: #ffffff;
border: 1px solid #878d9b;
border-radius: 50%;
cursor: pointer;
font-family: -apple-system, system-ui, sans-serif;
font-size: 14px;
color: #505057;
transition: border-color .15s, box-shadow .15s;
}
#ssg-search-btn:hover { border-color: #4b5563; }
#ssg-search-btn svg {
width: 16px;
height: 16px;
stroke: currentColor;
fill: none;
stroke-width: 2;
stroke-linecap: round;
stroke-linejoin: round;
flex-shrink: 0;
}
#ssg-search-widget { display: contents; }
#ssg-search-overlay {
display: none;
position: fixed;
inset: 0;
z-index: 9999;
background: rgba(0, 0, 0, .5);
align-items: flex-start;
justify-content: center;
padding-top: 12vh;
}
#ssg-search-overlay.active { display: flex; }
#ssg-search-box {
background: #ffffff;
color: #111111;
border-radius: 12px;
width: 92%;
max-width: 640px;
box-shadow: 0 25px 60px rgba(0, 0, 0, .3);
overflow: hidden;
font-family: -apple-system, system-ui, sans-serif;
}
#ssg-search-header {
display: flex;
align-items: center;
padding: 0 16px;
border-bottom: 1px solid #e5e7eb;
}
#ssg-search-header svg {
width: 20px;
height: 20px;
stroke: #6b7280;
fill: none;
stroke-width: 2;
flex-shrink: 0;
}
#ssg-search-input {
flex: 1;
padding: 16px 12px;
font-size: 16px;
border: none;
outline: none;
background: transparent;
color: inherit;
}
#ssg-search-results { max-height: 50vh; overflow-y: auto; }
#ssg-sr-status {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.ssg-result {
display: block;
padding: 12px 20px;
text-decoration: none;
color: #111111;
border-bottom: 1px solid #f3f4f6;
transition: background .1s;
}
.ssg-result:hover, .ssg-result.active { background: #f3f0f8; }
.ssg-result-title { font-weight: 600; font-size: 15px; margin-bottom: 3px; }
.ssg-result-snippet { font-size: 13px; color: #4b5563; line-height: 1.5; }
.ssg-result-snippet mark { background: #fef08a; color: inherit; border-radius: 2px; padding: 0 2px; }
.ssg-no-results { padding: 32px 20px; text-align: center; color: #4b5563; font-size: 14px; }
.ssg-search-footer {
display: flex;
gap: 16px;
padding: 10px 20px;
font-size: 12px;
color: #4b5563;
border-top: 1px solid #e5e7eb;
justify-content: flex-end;
}
.ssg-search-footer kbd {
font-family: inherit;
font-size: 11px;
padding: 1px 5px;
background: #f3f4f6;
border: 1px solid #e5e7eb;
border-radius: 3px;
}
:root[data-theme="dark"] #ssg-search-btn { background: #151928; border-color: #5d6375; color: #ffffff; }
:root[data-theme="dark"] #ssg-search-box { background: #19151f; color: #f8f5fa; }
:root[data-theme="dark"] #ssg-search-header { border-color: #374151; }
:root[data-theme="dark"] .ssg-result { color: #f8f5fa; border-color: #2d2337; }
:root[data-theme="dark"] .ssg-result:hover, :root[data-theme="dark"] .ssg-result.active { background: #2d2337; }
:root[data-theme="dark"] .ssg-result-snippet, :root[data-theme="dark"] .ssg-no-results, :root[data-theme="dark"] .ssg-search-footer { color: #d2cbd6; border-color: #374151; }
:root[data-theme="dark"] .ssg-search-footer kbd { background: #2d2337; border-color: #4b5563; color: #f8f5fa; }
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) #ssg-search-btn { background: #151928; border-color: #5d6375; color: #ffffff; }
:root:not([data-theme="light"]) #ssg-search-box { background: #19151f; color: #f8f5fa; }
:root:not([data-theme="light"]) #ssg-search-header { border-color: #374151; }
:root:not([data-theme="light"]) .ssg-result { color: #f8f5fa; border-color: #2d2337; }
:root:not([data-theme="light"]) .ssg-result:hover, :root:not([data-theme="light"]) .ssg-result.active { background: #2d2337; }
:root:not([data-theme="light"]) .ssg-result-snippet, :root:not([data-theme="light"]) .ssg-no-results, :root:not([data-theme="light"]) .ssg-search-footer { color: #d2cbd6; border-color: #374151; }
:root:not([data-theme="light"]) .ssg-search-footer kbd { background: #2d2337; border-color: #4b5563; color: #f8f5fa; }
}
.made-with-ssg { color: inherit; }
Empty file added docs/.nojekyll
Empty file.
40 changes: 20 additions & 20 deletions docs/.ssg-plugin-cache.json
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
{
"public/404/index.html": 6685502511262101402,
"public/about/index.html": 7114907689150801667,
"public/accessibility/index.html": 11633326847604842706,
"public/api/index.html": 16738817662723772396,
"public/architecture/index.html": 2547062936051338519,
"public/benchmarks/index.html": 9264854718161004577,
"public/changelog/index.html": 7719752161556317238,
"public/contact/index.html": 15851191858446219194,
"public/contributing/index.html": 12888048974157366658,
"public/faqs/index.html": 2804181515689989929,
"public/formats/index.html": 11710041785705889780,
"public/getting-started/index.html": 11140463277879458902,
"public/index.html": 12274476345404019556,
"public/made-with-ssg/index.html": 15477769817683305848,
"public/offline/index.html": 18005033801483657585,
"public/privacy/index.html": 13968717483738852506,
"public/security/index.html": 13742719349778952529,
"public/terms/index.html": 10262982558920552677,
"public/thanks/index.html": 10563712724046691414,
"public/use-cases/index.html": 8181875099486738189
"public/404/index.html": 7259093385209876975,
"public/about/index.html": 12949456559420021308,
"public/accessibility/index.html": 5713522207449664177,
"public/api/index.html": 11397964784032987743,
"public/architecture/index.html": 6915802455650842912,
"public/benchmarks/index.html": 2021468413810795982,
"public/changelog/index.html": 18270345507824245213,
"public/contact/index.html": 10355855238041785199,
"public/contributing/index.html": 12520701021490290597,
"public/faqs/index.html": 11983471379327613372,
"public/formats/index.html": 1052158472452750897,
"public/getting-started/index.html": 1865910444430193385,
"public/index.html": 2989877783651903019,
"public/made-with-ssg/index.html": 2015761978985704885,
"public/offline/index.html": 6011093415955977822,
"public/privacy/index.html": 11811363588876036415,
"public/security/index.html": 14062708075236181358,
"public/terms/index.html": 141328437173614684,
"public/thanks/index.html": 8068784464901517319,
"public/use-cases/index.html": 15672533206450610668
}
2 changes: 1 addition & 1 deletion docs/404/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html> <!-- SPDX-FileCopyrightText: 2024-2026 Sebastien Rousseau --> <!-- SPDX-License-Identifier: Apache-2.0 OR MIT --> <html lang="en-GB" data-theme-mode="system" class="no-js"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <title>Page Not Found (404 Error) | Bank Statement Parser</title> <meta name="author" content="Sebastien Rousseau"> <meta name="description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta name="robots" content="noindex, follow"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; connect-src 'self' https://formspree.io; img-src 'self' data: https: https://cloudcdn.pro; style-src 'self' https://cdn.jsdelivr.net; font-src 'self'; form-action 'self' https://formspree.io;" /> <!-- Open Graph --> <meta property="og:type" content="website"> <meta property="og:site_name" content="Bank Statement Parser"> <meta property="og:locale" content="en_GB"> <meta property="og:title" content="Page Not Found (404 Error) | Bank Statement Parser | Bank Statement Parser"> <meta property="og:description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta property="og:image" content="https://cloudcdn.pro/stocks/images/quantum-computer-room-1200.webp"> <meta property="og:url" content="https://bankstatementparser.com/404/"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Page Not Found (404 Error) | Bank Statement Parser | Bank Statement Parser"> <meta name="twitter:description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta name="twitter:image" content="https://cloudcdn.pro/stocks/images/quantum-computer-room-1200.webp"> <link rel="alternate" href="https://bankstatementparser.com/404/" hreflang="en" /> <link rel="icon" type="image/svg+xml" href="https://cloudcdn.pro/bankstatementparser/v1/logos/bankstatementparser.svg" /> <link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="16x16 32x32" /> <link rel="apple-touch-icon" href="https://cloudcdn.pro/cmn/v1/icons/192x192.png" sizes="192x192" /> <link rel="manifest" href="/manifest.json" /> <link rel="alternate" type="application/rss+xml" href="/rss.xml" /> <link rel="stylesheet" href="/skeletonic.min.e220a00f.css" integrity="sha384-k8yWo8E19/rAtrUhP91WfpEkNUTwFn6lDMDzBr9XgsQVYc2r8wCpdZF5GC1g94UV" crossorigin="anonymous"> <link rel="stylesheet" href="/styles.0ba71470.css" integrity="sha384-654uJtIM1gK5P1baMg8Amesi4cvNskPvMcldEI4U/MuutxxGxgVD4qNRsJaFhk0k" crossorigin="anonymous"> <script src="/theme-init.7f0ff6e8.js" integrity="sha384-IZPF6n8HevG61H6dvOynICr/lj9zjZRXHVRVBZAiXk/UY1A4zUVgfHaGJDbZ5Hbc" crossorigin="anonymous"></script> <script type="application/ld+json">
<!DOCTYPE html> <!-- SPDX-FileCopyrightText: 2024-2026 Sebastien Rousseau --> <!-- SPDX-License-Identifier: Apache-2.0 OR MIT --> <html lang="en-GB" data-theme-mode="system" class="no-js"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" /> <title>Page Not Found (404 Error) | Bank Statement Parser</title> <meta name="author" content="Sebastien Rousseau"> <meta name="description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta name="robots" content="noindex, follow"> <meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self' https://cdn.jsdelivr.net; connect-src 'self' https://formspree.io; img-src 'self' data: https: https://cloudcdn.pro; style-src 'self' https://cdn.jsdelivr.net; font-src 'self'; form-action 'self' https://formspree.io;" /> <!-- Open Graph --> <meta property="og:type" content="website"> <meta property="og:site_name" content="Bank Statement Parser"> <meta property="og:locale" content="en_GB"> <meta property="og:title" content="Page Not Found (404 Error) | Bank Statement Parser | Bank Statement Parser"> <meta property="og:description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta property="og:image" content="https://cloudcdn.pro/stocks/images/quantum-computer-room-1200.webp"> <meta property="og:url" content="https://bankstatementparser.com/404/"> <!-- Twitter Card --> <meta name="twitter:card" content="summary_large_image"> <meta name="twitter:title" content="Page Not Found (404 Error) | Bank Statement Parser | Bank Statement Parser"> <meta name="twitter:description" content="The requested financial documentation page could not be located. Browse the documentation index, supported format specifications, or return to the homepage."> <meta name="twitter:image" content="https://cloudcdn.pro/stocks/images/quantum-computer-room-1200.webp"> <link rel="alternate" href="https://bankstatementparser.com/404/" hreflang="en" /> <link rel="icon" type="image/svg+xml" href="https://cloudcdn.pro/bankstatementparser/v1/logos/bankstatementparser.svg" /> <link rel="icon" type="image/x-icon" href="/favicon.ico" sizes="16x16 32x32" /> <link rel="apple-touch-icon" href="https://cloudcdn.pro/cmn/v1/icons/192x192.png" sizes="192x192" /> <link rel="manifest" href="/manifest.json" /> <link rel="alternate" type="application/rss+xml" href="/rss.xml" /> <link rel="stylesheet" href="/skeletonic.min.e220a00f.css" integrity="sha384-k8yWo8E19/rAtrUhP91WfpEkNUTwFn6lDMDzBr9XgsQVYc2r8wCpdZF5GC1g94UV" crossorigin="anonymous"> <link rel="stylesheet" href="/styles.08a02609.css" integrity="sha384-aCw0G6oJjAPlYWZPqlOwa/Fy1z76YJy0StIR83UOM1MLBWLYqKfvC0SVW45LnuWu" crossorigin="anonymous"> <script src="/theme-init.7f0ff6e8.js" integrity="sha384-IZPF6n8HevG61H6dvOynICr/lj9zjZRXHVRVBZAiXk/UY1A4zUVgfHaGJDbZ5Hbc" crossorigin="anonymous"></script> <script type="application/ld+json">
{
"@context": "https://schema.org",
"@graph": [
Expand Down
Loading
Loading