ERBFirsts.com Version Log v0.96
ERBFirsts.com Version Log
================================================================================
VERSION v0.96 — 2026-04-15 [rebuild_pass26.py — mobile auth Sign In/Sign Out fix]
================================================================================
RESULTS FROM v0.95:
- Firestore block rendering working correctly on generated pages.
- Forum index deployed with working search, online counts, title bar.
FIXED:
- Item 1: Mobile hamburger menu now shows "Sign In" (not logged in),
"Sign Out" (member), "Admin" + "Sign Out" (admin). Fixed double-brace
bug in auth_script_html() that produced invalid JS on all generated
pages. Fixed text on all 11 static/forum pages. Removed duplicate
mob_admin block from static pages.
- Item 2: Forum index magnifying glass 🔍 now far-right on Total members
line. Moved button outside inner div to be direct flex child of
forum-online-bar (justify-content:space-between).
- Item 3: Forum index mobile title bar: "Sign In" button right-aligned on
same line as "ERBfirsts Forum". JS updates to "Sign Out" when logged in.
- Item 6: Layout Editor v4.4 → v4.5. Save button is now gray when clean,
gold when dirty (unsaved changes). dirty class added/removed at
markDirty(), saveBook() success, loadBook(), and _reloadBlocksForMode().
- Item 7: Version log updated. Entries added for pass24, pass25, pass26.
GENERATOR: rebuild_pass26.py
--
================================================================================
VERSION v0.95b — 2026-04-14 [rebuild_pass25.py — static page auth updates]
================================================================================
RESULTS FROM v0.95:
- Firestore block rendering working on generated pages.
FIXED:
- All 11 static/forum pages updated with mobile hamburger menu Admin and
Log Out auth logic (sessionStorage-cached role check).
- Forum index deployed with corrected layout and auth.
GENERATOR: rebuild_pass25.py
--
================================================================================
VERSION v0.95a — 2026-04-13 [rebuild_pass24.py — hamburger on static pages]
================================================================================
RESULTS FROM v0.94:
- Auth/login working correctly on generated book pages.
FIXED:
- Mobile hamburger menu added to all static and forum pages
(erb-dj, erb-feast, erb-signatures, erb-sell, erb-erblinks, erb-misc,
erb-inscription, forum-index, forum-members, forum-admin, forum-login).
- Mobile menu positioned outside erb-header (position:fixed) per
architecture requirement.
GENERATOR: rebuild_pass24.py
--
================================================================================
VERSION v0.95 — 2026-04-13 [rebuild_pass23.py — Firestore block rendering]
================================================================================
RESULTS FROM v0.94:
- All auth/login fixes working: Google sign-in completes, redirects to
originating page, nav switches to Admin after login.
FIXED:
- Generator now reads block layout data from Firestore books/{bookId} at
build time. Books with saved editor data render identifier and photos
sections from Firestore blocks. All other books fall back to hardcoded
data unchanged. Phase 1: text, image, label_image, photo, dj block types.
- Layout Editor v2.6: added Copy Blocks button (copies blocks JSON to
clipboard for debugging and data inspection).
- Firestore rules: books collection read access changed to public (allows
generator to fetch without credentials).
GENERATOR: rebuild_pass23.py
--
================================================================================
VERSION v0.94 — 2026-04-12 [rebuild_pass23.py — auth domain + returnUrl nav fix]
================================================================================
RESULTS FROM v0.93:
- Google sign-in redirect not completing: getRedirectResult returning null
due to cross-origin storage issue between erbfirsts.com and
erbfirsts-d5f0b.firebaseapp.com. Auth session never established after
Google redirect, onAuthStateChanged fired with null user. Nav stayed on
My Account instead of switching to Admin.
- Generated pages missing returnUrl onclick on My Account nav link, so
returnUrl always defaulted to https://erbfirsts.com regardless of
originating page.
- DeployERBFirsts BAT closing on Step 2 when filename had Windows duplicate
suffix e.g. (4) — parentheses in filename broke cmd pipe parsing.
FIXED:
- authDomain changed from erbfirsts-d5f0b.firebaseapp.com to erbfirsts.com
on all pages (15 static/forum + all 80 generated). Auth redirect now
stays on erbfirsts.com domain via Firebase Hosting /__/auth/handler,
resolving cross-origin storage issue. Sign-in completes correctly,
Admin nav updates after login.
- returnUrl onclick added to nav-account-link on all generated pages
(cover pages + detail pages) in nav_html(). returnUrl now correctly
encodes originating page URL.
- DeployERBFirsts v22: strip (N) duplicate suffix and -vX.Y version suffix
moved to top of ROUTEFILE before any echo/pipe commands.
- erb-forum-login.html footer changed from forum category links to
standard site footer (Home / Tarzan / MPV / Other)
GENERATOR: rebuild_pass23.py
--
================================================================================
VERSION v0.93 — 2026-04-12 [rebuild_pass22.py — nav layout editor link]
================================================================================
RESULTS FROM v0.92:
- Page Layout Editor nav link had href="#" (placeholder) on all pages
FIXED:
- nav_html() updated: Page Layout Editor now links to erb-layout-editor.html
target="_blank" on all generator-produced pages (covers + detail pages)
- Full regeneration of all 80 cover/detail pages
================================================================================
================================================================================
================================================================================
VERSION v0.92 — 2026-04-11 [erb-rebuild_pass22.py — generator renamed]
================================================================================
FIXED:
- Generator renamed to erb-rebuild_pass22.py so BAT can accept it as a
single file deploy or in a zip. BAT strips erb- prefix when saving to
project root. All unnecessary BAT complexity reverted.
================================================================================
================================================================================
VERSION v0.91 — 2026-04-11 [rebuild_pass22.py — auto-run verification on expand]
================================================================================
FIXED:
- erb-claude-chats.html: clicking New Chat Verification auto-runs check
immediately on expand — no separate Run button needed
================================================================================
================================================================================
VERSION v0.90 — 2026-04-11 [rebuild_pass22.py — embed verification in Claude Chats]
================================================================================
FIXED:
- erb-claude-chats.html: New Chat Verification now expands inline on same
page (like Chat Registry) instead of linking to separate erb-verify.html
- erb-verify.html kept for direct URL access but no longer in nav
================================================================================
================================================================================
VERSION v0.89 — 2026-04-11 [rebuild_pass22.py — session persistence fix]
================================================================================
FIXED:
- erb-forum-login.html: set browserSessionPersistence so login session clears
when browser tab/window is closed — prevents next user seeing prior
user's account and posting under their identity
================================================================================
================================================================================
VERSION v0.88 — 2026-04-11 [rebuild_pass22.py — nav visibility + returnUrl]
================================================================================
FIXED:
- erb-forum-index.html: sessionStorage script wrapped in DOMContentLoaded
so nav-last-item visibility is set correctly after element exists in DOM
- erb-forum-login.html: after login redirects to returnUrl parameter if
present, otherwise falls back to forum index
- All pages: My Account link passes current page URL as returnUrl so user
returns to originating page after login
================================================================================
================================================================================
VERSION v0.87 — 2026-04-11 [rebuild_pass22.py — fix login redirect]
================================================================================
FIXED:
- erb-forum-login.html: after Google login, redirect now uses absolute URL
https://erbfirsts.com/forum/erb-forum-index.html instead of relative URL
which was keeping users on erbfirsts-d5f0b.web.app (old cached version)
================================================================================
================================================================================
VERSION v0.86 — 2026-04-11 [rebuild_pass22.py — Claude Chats page redesign]
================================================================================
FIXED:
- erb-claude-chats.html: two stacked buttons (Chat Registry, New Chat
Verification) each with blurb to the right; Chat Registry expands to
show table with Add Chat button below
================================================================================
================================================================================
VERSION v0.85 — 2026-04-11 [rebuild_pass22.py — nav cleanup]
================================================================================
FIXED:
- All pages: Removed "New Chat Verification" from Admin dropdown — it's now
accessible via the Claude Chats page only
- Admin dropdown order: FORUM, WEB label, Claude Chats, Page Layout Editor,
Version Log, My Account
================================================================================
================================================================================
VERSION v0.84 — 2026-04-11 [rebuild_pass22.py — Claude Chats page]
================================================================================
FIXED:
- erb-claude-chats.html: new standalone page with Chat Registry (compat SDK,
no db.collection error) and New Chat Verification button
- Admin nav: "Claude Chats" added to Web submenu on all pages
- erb-forum-admin.html: Site Verification and Chat Registry sections removed
================================================================================
================================================================================
VERSION v0.83 — 2026-04-11 [rebuild_pass22.py — Chat Registry]
================================================================================
FIXED:
- erb-forum-admin.html: Chat Registry section added (section 8) — track
Claude chat sessions by name and conversation ID with add/edit/delete/
reorder. Stored in Firestore site/chats document.
- Rule 11 updated: new chat detection, verification, chat registration flow
================================================================================
================================================================================
VERSION v0.82 — 2026-04-10 [rebuild_pass22.py — fix EXPECTED variable name]
================================================================================
FIXED:
- erb-verify.html: column header rename had incorrectly renamed JS variable
EXPECTED to "FIREBASE VALUE" (with space) — invalid identifier, crashed
script silently. Restored JS variable to EXPECTED; HTML header stays
"Firebase Value"
================================================================================
================================================================================
VERSION v0.81 — 2026-04-10 [rebuild_pass22.py — verify fix + BAT Firestore update]
================================================================================
FIXED:
- erb-verify.html: fixed snap.exists() -> snap.exists (compat SDK property,
not function) — was crashing script silently on load, causing button to
do nothing
- DeployERBFirsts_17.bat: now automatically updates Firestore site/verification
document after every successful deploy via REST API
================================================================================
================================================================================
VERSION v0.80 — 2026-04-10 [rebuild_pass22.py — fix Admin blink on Forum Index]
================================================================================
FIXED:
- erb-forum-index.html: removed duplicate nav-last-item visibility line from
onAuthStateChanged callback — was causing Admin to blink on page load
================================================================================
================================================================================
VERSION v0.79 — 2026-04-10 [rebuild_pass22.py — verify compat + Forum dropdown]
================================================================================
FIXED:
- erb-verify.html: converted to Firebase compat SDK (no type=module) so
Run Verification button works correctly
- All pages: Forum nav item now shows arrow and hover dropdown (Forum Index,
Members) matching all other nav items
- Forum pages: removed onclick="return false;" so Forum dropdown works on hover
================================================================================
================================================================================
VERSION v0.78 — 2026-04-10 [rebuild_pass22.py — verify UI fixes]
================================================================================
FIXED:
- erb-verify.html + erb-forum-admin.html: column headers renamed —
"Current Value" -> "Live Site Count", "Expected" -> "Firebase Value"
- Both files: version regex fixed to match text-muted span correctly
================================================================================
================================================================================
VERSION v0.77 — 2026-04-10 [rebuild_pass22.py — fix onclick in module scripts]
================================================================================
FIXED:
- erb-verify.html: exposed runVerification to window scope so onclick works
with type="module" script
- erb-forum-admin.html: exposed runVerification and saveVerificationToFirestore
to window scope for same reason
================================================================================
================================================================================
VERSION v0.76 — 2026-04-10 [rebuild_pass22.py — Firestore verification]
================================================================================
FIXED:
- erb-verify.html: now reads expected values from Firestore site/verification
document; falls back to hardcoded defaults if unavailable; fixed version
regex that was returning "not found"
- erb-forum-admin.html: Verification section now has "Save as New Expected
Values" button that writes current values to Firestore so erb-verify.html
always compares against the latest deployed state
================================================================================
================================================================================
VERSION v0.75 — 2026-04-10 [rebuild_pass22.py — nav closing div fix]
================================================================================
FIXED:
- All static pages: missing closing </div> tags after </nav> causing page
content to render inside header. Affected all 10 static pages.
================================================================================
================================================================================
VERSION v0.74 — 2026-04-09 [rebuild_pass22.py — Admin nav flat list]
================================================================================
FIXED:
- All pages: Admin dropdown now flat list — FORUM (clickable), WEB label
(non-clickable), New Chat Verification / Page Layout Editor / Version Log
(indented), My Account at bottom
- Applied to all static, forum, generated pages
================================================================================
================================================================================
VERSION v0.73 — 2026-04-09 [rebuild_pass22.py — Admin nav restructure + Verification page]
================================================================================
FIXED:
- All pages: Admin dropdown restructured — Web submenu (Version Log,
New Chat Verification, Page Layout Editor) + Forum submenu (Forum Admin)
- erb-verify.html: new standalone verification page with Run button showing
version #, generator, CSS lines, index.html lines, page counts by series
- Submenu CSS added to erb-style.css
- All static pages, forum pages, and generated pages nav updated
================================================================================
================================================================================
VERSION v0.72 — 2026-04-09 [rebuild_pass22.py — Admin Verification tab]
================================================================================
FIXED:
- erb-forum-admin.html: Verification section added — click Run Verification
to check version #, generator, CSS lines, index.html lines, page counts
by series. Compare against Claude's start-of-chat verification report.
================================================================================
================================================================================
VERSION v0.71 — 2026-04-08 [rebuild_pass22.py — o28 float fix]
================================================================================
FIXED:
- erb-o28.html: removed display:flex from float outer div (was overriding float)
Images now 550px height, no clear:both — text flows left of float correctly
================================================================================
================================================================================
VERSION v0.70 — 2026-04-08 [rebuild_pass22.py — o28 final layout fix]
================================================================================
FIXED:
- erb-o28.html: o28-custom moved to first ident_paras item so all 3 text
paragraphs flow LEFT alongside right-floated images
- erb-o28.html: both images now height:400px;width:auto — same height
================================================================================
================================================================================
VERSION v0.69 — 2026-04-08 [rebuild_pass22.py — o28 layout fix]
================================================================================
FIXED:
- erb-o28.html: images (o20_ext + o20_ext1) side by side in flex row at top
of right float column (50% width); ERBville text paragraph below images
inside same float column; left text flows alongside
================================================================================
================================================================================
VERSION v0.68 — 2026-04-08 [rebuild_pass22.py — o19/o28 fixes]
================================================================================
FIXED:
- erb-o19.html: dj_cap now renders correctly in photos section
- erb-o28.html: o20_ext + o20_ext1 float right at 50% width alongside
ERBville text paragraph; fixed from grid layout that wasn't working
================================================================================
================================================================================
VERSION v0.67 — 2026-04-08 [rebuild_pass22.py — o19/o23/o26 fixes]
================================================================================
FIXED:
- erb-o19.html: dj_cap added — Fine laminated jacket
- erb-o23.html: "Above book is the Trade Version." caption now centered
- erb-o26.html: 4-paragraph text, o21_ext.jpg at 50% width floated right
with centered caption "Above is the 1966 House of Greystoke edition."
================================================================================
================================================================================
VERSION v0.92 — 2026-04-11 [erb-rebuild_pass22.py — generator renamed]
================================================================================
FIXED:
- Generator renamed to erb-rebuild_pass22.py so BAT can accept it as a
single file deploy or in a zip. BAT strips erb- prefix when saving to
project root. All unnecessary BAT complexity reverted.
================================================================================
================================================================================
VERSION v0.91 — 2026-04-11 [rebuild_pass22.py — auto-run verification on expand]
================================================================================
FIXED:
- erb-claude-chats.html: clicking New Chat Verification auto-runs check
immediately on expand — no separate Run button needed
================================================================================
================================================================================
VERSION v0.90 — 2026-04-11 [rebuild_pass22.py — embed verification in Claude Chats]
================================================================================
FIXED:
- erb-claude-chats.html: New Chat Verification now expands inline on same
page (like Chat Registry) instead of linking to separate erb-verify.html
- erb-verify.html kept for direct URL access but no longer in nav
================================================================================
================================================================================
VERSION v0.89 — 2026-04-11 [rebuild_pass22.py — session persistence fix]
================================================================================
FIXED:
- erb-forum-login.html: set browserSessionPersistence so login session clears
when browser tab/window is closed — prevents next user seeing prior
user's account and posting under their identity
================================================================================
================================================================================
VERSION v0.88 — 2026-04-11 [rebuild_pass22.py — nav visibility + returnUrl]
================================================================================
FIXED:
- erb-forum-index.html: sessionStorage script wrapped in DOMContentLoaded
so nav-last-item visibility is set correctly after element exists in DOM
- erb-forum-login.html: after login redirects to returnUrl parameter if
present, otherwise falls back to forum index
- All pages: My Account link passes current page URL as returnUrl so user
returns to originating page after login
================================================================================
================================================================================
VERSION v0.87 — 2026-04-11 [rebuild_pass22.py — fix login redirect]
================================================================================
FIXED:
- erb-forum-login.html: after Google login, redirect now uses absolute URL
https://erbfirsts.com/forum/erb-forum-index.html instead of relative URL
which was keeping users on erbfirsts-d5f0b.web.app (old cached version)
================================================================================
================================================================================
VERSION v0.86 — 2026-04-11 [rebuild_pass22.py — Claude Chats page redesign]
================================================================================
FIXED:
- erb-claude-chats.html: two stacked buttons (Chat Registry, New Chat
Verification) each with blurb to the right; Chat Registry expands to
show table with Add Chat button below
================================================================================
================================================================================
VERSION v0.85 — 2026-04-11 [rebuild_pass22.py — nav cleanup]
================================================================================
FIXED:
- All pages: Removed "New Chat Verification" from Admin dropdown — it's now
accessible via the Claude Chats page only
- Admin dropdown order: FORUM, WEB label, Claude Chats, Page Layout Editor,
Version Log, My Account
================================================================================
================================================================================
VERSION v0.84 — 2026-04-11 [rebuild_pass22.py — Claude Chats page]
================================================================================
FIXED:
- erb-claude-chats.html: new standalone page with Chat Registry (compat SDK,
no db.collection error) and New Chat Verification button
- Admin nav: "Claude Chats" added to Web submenu on all pages
- erb-forum-admin.html: Site Verification and Chat Registry sections removed
================================================================================
================================================================================
VERSION v0.83 — 2026-04-11 [rebuild_pass22.py — Chat Registry]
================================================================================
FIXED:
- erb-forum-admin.html: Chat Registry section added (section 8) — track
Claude chat sessions by name and conversation ID with add/edit/delete/
reorder. Stored in Firestore site/chats document.
- Rule 11 updated: new chat detection, verification, chat registration flow
================================================================================
================================================================================
VERSION v0.82 — 2026-04-10 [rebuild_pass22.py — fix EXPECTED variable name]
================================================================================
FIXED:
- erb-verify.html: column header rename had incorrectly renamed JS variable
EXPECTED to "FIREBASE VALUE" (with space) — invalid identifier, crashed
script silently. Restored JS variable to EXPECTED; HTML header stays
"Firebase Value"
================================================================================
================================================================================
VERSION v0.81 — 2026-04-10 [rebuild_pass22.py — verify fix + BAT Firestore update]
================================================================================
FIXED:
- erb-verify.html: fixed snap.exists() -> snap.exists (compat SDK property,
not function) — was crashing script silently on load, causing button to
do nothing
- DeployERBFirsts_17.bat: now automatically updates Firestore site/verification
document after every successful deploy via REST API
================================================================================
================================================================================
VERSION v0.80 — 2026-04-10 [rebuild_pass22.py — fix Admin blink on Forum Index]
================================================================================
FIXED:
- erb-forum-index.html: removed duplicate nav-last-item visibility line from
onAuthStateChanged callback — was causing Admin to blink on page load
================================================================================
================================================================================
VERSION v0.79 — 2026-04-10 [rebuild_pass22.py — verify compat + Forum dropdown]
================================================================================
FIXED:
- erb-verify.html: converted to Firebase compat SDK (no type=module) so
Run Verification button works correctly
- All pages: Forum nav item now shows arrow and hover dropdown (Forum Index,
Members) matching all other nav items
- Forum pages: removed onclick="return false;" so Forum dropdown works on hover
================================================================================
================================================================================
VERSION v0.78 — 2026-04-10 [rebuild_pass22.py — verify UI fixes]
================================================================================
FIXED:
- erb-verify.html + erb-forum-admin.html: column headers renamed —
"Current Value" -> "Live Site Count", "Expected" -> "Firebase Value"
- Both files: version regex fixed to match text-muted span correctly
================================================================================
================================================================================
VERSION v0.77 — 2026-04-10 [rebuild_pass22.py — fix onclick in module scripts]
================================================================================
FIXED:
- erb-verify.html: exposed runVerification to window scope so onclick works
with type="module" script
- erb-forum-admin.html: exposed runVerification and saveVerificationToFirestore
to window scope for same reason
================================================================================
================================================================================
VERSION v0.76 — 2026-04-10 [rebuild_pass22.py — Firestore verification]
================================================================================
FIXED:
- erb-verify.html: now reads expected values from Firestore site/verification
document; falls back to hardcoded defaults if unavailable; fixed version
regex that was returning "not found"
- erb-forum-admin.html: Verification section now has "Save as New Expected
Values" button that writes current values to Firestore so erb-verify.html
always compares against the latest deployed state
================================================================================
================================================================================
VERSION v0.75 — 2026-04-10 [rebuild_pass22.py — nav closing div fix]
================================================================================
FIXED:
- All static pages: missing closing </div> tags after </nav> causing page
content to render inside header. Affected all 10 static pages.
================================================================================
================================================================================
VERSION v0.74 — 2026-04-09 [rebuild_pass22.py — Admin nav flat list]
================================================================================
FIXED:
- All pages: Admin dropdown now flat list — FORUM (clickable), WEB label
(non-clickable), New Chat Verification / Page Layout Editor / Version Log
(indented), My Account at bottom
- Applied to all static, forum, generated pages
================================================================================
================================================================================
VERSION v0.73 — 2026-04-09 [rebuild_pass22.py — Admin nav restructure + Verification page]
================================================================================
FIXED:
- All pages: Admin dropdown restructured — Web submenu (Version Log,
New Chat Verification, Page Layout Editor) + Forum submenu (Forum Admin)
- erb-verify.html: new standalone verification page with Run button showing
version #, generator, CSS lines, index.html lines, page counts by series
- Submenu CSS added to erb-style.css
- All static pages, forum pages, and generated pages nav updated
================================================================================
================================================================================
VERSION v0.72 — 2026-04-09 [rebuild_pass22.py — Admin Verification tab]
================================================================================
FIXED:
- erb-forum-admin.html: Verification section added — click Run Verification
to check version #, generator, CSS lines, index.html lines, page counts
by series. Compare against Claude's start-of-chat verification report.
================================================================================
================================================================================
VERSION v0.71 — 2026-04-08 [rebuild_pass22.py — o28 float fix]
================================================================================
FIXED:
- erb-o28.html: removed display:flex from float outer div (was overriding float)
Images now 550px height, no clear:both — text flows left of float correctly
================================================================================
================================================================================
VERSION v0.70 — 2026-04-08 [rebuild_pass22.py — o28 final layout fix]
================================================================================
FIXED:
- erb-o28.html: o28-custom moved to first ident_paras item so all 3 text
paragraphs flow LEFT alongside right-floated images
- erb-o28.html: both images now height:400px;width:auto — same height
================================================================================
================================================================================
VERSION v0.69 — 2026-04-08 [rebuild_pass22.py — o28 layout fix]
================================================================================
FIXED:
- erb-o28.html: images (o20_ext + o20_ext1) side by side in flex row at top
of right float column (50% width); ERBville text paragraph below images
inside same float column; left text flows alongside
================================================================================
================================================================================
VERSION v0.68 — 2026-04-08 [rebuild_pass22.py — o19/o28 fixes]
================================================================================
FIXED:
- erb-o19.html: dj_cap now renders correctly in photos section
- erb-o28.html: o20_ext + o20_ext1 float right at 50% width alongside
ERBville text paragraph; fixed from grid layout that wasn't working
================================================================================
================================================================================
VERSION v0.67 — 2026-04-08 [rebuild_pass22.py — o23/o27/o28 fixes]
================================================================================
FIXED:
- erb-o23.html: "Slip case" caption now shows below o22b.jpg; Trade Version
caption centered under right group
- erb-o27.html: full identifier text with all 11 story titles + illustrator
- erb-o28.html: two-col layout — text LEFT, o20_ext+o20_ext1 RIGHT at ~50%
ERBville blurb in text column; two-col-imgs caption support added
================================================================================
================================================================================
VERSION v0.66 — 2026-04-08 [rebuild_pass22.py — o18/o19/o20 fixes]
================================================================================
FIXED:
- erb-o18.html: images now stacked vertically (o26_ext2 top, o26_ext below)
- erb-o19.html: identifier text updated — 22 headpieces, laminated/unlaminated DJ
- erb-o20.html: 4-paragraph text, o18_ext.jpg floated right at 33% width
================================================================================
================================================================================
VERSION v0.65 — 2026-04-08 [rebuild_pass22.py — o16/o18 fixes]
================================================================================
FIXED:
- erb-o16.html: dj_cap added — original non-laminated FINE condition
- erb-o18.html: identifier text updated with Aug 1974 BB#40 reprint info
- erb-o18.html: image order swapped — o26_ext2 (magazine) now first
================================================================================
================================================================================
VERSION v0.64 — 2026-04-08 [rebuild_pass22.py — o15 update]
================================================================================
FIXED:
- erb-o15.html: 4-paragraph identifier text updated with G&D spine/title page
correction and 1938 reprint description
- erb-o15.html: dj_cap added — Very Good + grade, spine fade and edge tears
- erb-o15.html: photo_extras — o14_ext1 + o14_ext at 400px height side by side
LEFT, yellow hl-box with G&D reprint description RIGHT
================================================================================
================================================================================
VERSION v0.63 — 2026-04-08 [rebuild_pass22.py — o3/o13/o14 fixes]
================================================================================
FIXED:
- erb-o3.html: o7_ext3.jpg increased to height:550px;width:auto
- erb-o13.html: identifier text updated with print-run note; dj_cap added
- erb-o14.html: dj_cap added — "Very Good +" grade with edge chips note
================================================================================
================================================================================
VERSION v0.62 — 2026-04-08 [rebuild_pass22.py — o3/o9/o12 fixes]
================================================================================
FIXED:
- erb-o3.html: o7_ext3.jpg natural size 346x420px (was width:100% stretching)
- erb-o9.html: "The book below..." text now above both hr and Photographs heading
- erb-o12.html: Identifier text corrected — dark green lettering, J. Allen
St. John title page illustration, removed incorrect frontispiece reference
================================================================================
================================================================================
VERSION v0.61 — 2026-04-08 [rebuild_pass22.py — o9/o10 fixes]
================================================================================
FIXED:
- erb-o9.html: "The book below..." text now appears ABOVE Photographs heading
- erb-o10.html: Full identifier text restored — 3 paragraphs including
Grosset & Dunlap reprint info and corrected printing details
================================================================================
================================================================================
VERSION v0.60 — 2026-04-08 [rebuild_pass22.py — o9 text moved]
================================================================================
FIXED:
- erb-o9.html: "The book below is of the second state..." moved from
identifier section to just below Photographs heading, after date photos
================================================================================
================================================================================
VERSION v0.59 — 2026-04-08 [rebuild_pass22.py — o1/o3 fixes]
================================================================================
FIXED:
- erb-o1.html: ERBzine link now opens in new tab (target="_blank")
- erb-o3.html: 3rd/4th section — yellow box centered at 50% width above
paragraph text in LEFT column, o7_ext3.jpg in RIGHT column
================================================================================
================================================================================
VERSION v0.58 — 2026-04-08 [rebuild_pass22.py — o1 ERBzine link added]
================================================================================
FIXED:
- erb-o1.html: Added ERBzine link before "The photo below..." —
"This story is available to read on another great ERB site,
Click here if you'd like to read it."
Links to https://www.erbzine.com/mag0/0030.html
================================================================================
================================================================================
VERSION v0.57 — 2026-04-08 [rebuild_pass22.py — o23 image size fix]
================================================================================
FIXED:
- erb-o23.html: all three identifier images (o22b, o22, o22s) now at exact
height:391px;width:auto matching their natural pixel dimensions
================================================================================
================================================================================
VERSION v0.56 — 2026-04-08 [rebuild_pass22.py — o3/o24 layout fixes]
================================================================================
FIXED:
- erb-o3.html: 5th/6th/7th section o7_ext.jpg + o7_ext1.jpg now side by side
in flex row on LEFT, text on RIGHT
- erb-o24.html: o23_ext3.jpg + o23_exts.jpg side by side, yellow caption
below spine image only (nested flex column for spine+caption)
================================================================================
================================================================================
VERSION v0.55 — 2026-04-08 [rebuild_pass22.py — o24 image layout fix]
================================================================================
FIXED:
- erb-o24.html: o23_ext3.jpg and o23_exts.jpg now side by side in flex row
at height:528px;width:auto — float div widened to 55% with flex layout
Yellow caption below both images
================================================================================
================================================================================
VERSION v0.54 — 2026-04-08 [rebuild_pass22.py — o24 image size fix]
================================================================================
FIXED:
- erb-o24.html: o23_ext3.jpg and o23_exts.jpg now display at height:528px
with width:auto for proportionate scaling
================================================================================
================================================================================
VERSION v0.53 — 2026-04-08 [rebuild_pass22.py — o3 image fixes]
================================================================================
RESULTS FROM v0.52: o3 had wrong images in photo_extras sections, ext_side
image too small, ext-side CSS max-width overriding inline width.
FIXED:
- erb-o3.html: o7_ext2.jpg now displays at exact 352px width (from original HTML)
- erb-o3.html: 3rd/4th printing section now uses o7_ext3.jpg (correct image)
- erb-o3.html: 5th/6th/7th section now uses o7_ext.jpg + o7_ext1.jpg side by side
- DETAIL_STYLE: .ext-side max-width removed so inline width is honored
================================================================================
================================================================================
VERSION v0.52 — 2026-04-08 [rebuild_pass22.py — o3/o23/o24 image fixes]
================================================================================
RESULTS FROM v0.51: o23 wrong images used (o22a/o22 swapped), o24 images
side by side instead of stacked, o3 two images in 5th/6th/7th instead of one.
FIXED:
- erb-o23.html: o22b (slip case) LEFT, o22 (trade cover) + o22s (spine) RIGHT
in identifier; o22c horizontal spine + o22a (leather cover) in Photos
- erb-o24.html: o23_ext3 (signature) stacked above o23_exts (trade spine)
floated right with yellow caption box below spine image
- erb-o3.html: 5th/6th/7th section uses only o7_ext1.jpg (not two images)
================================================================================
================================================================================
VERSION v0.51 — 2026-04-08 [rebuild_pass22.py — o3/o9/o23/o24 layout fixes]
================================================================================
RESULTS FROM v0.50: o3 comparison sections in wrong place. o9 missing images
and wrong layout. o23 missing third image and wrong spine. o24 wrong image
arrangement. Spine images not matching cover width.
FIXED:
- All pages: spine-wrap img now width:100% matching cover width
- erb-o3.html: comparison printing sections moved to Photos section after
spine/cover via new photo_extras field. Frontispiece floated right.
- erb-o9.html: o8ext floated right para 1, o8ext1 floated right para 2,
o8ext3/o8ext4/o8ext5 three equal columns with yellow caption boxes
- erb-o23.html: three images side by side (o22b, o22a, o22s) with captions,
o22c horizontal spine strip in Photos section
- erb-o24.html: o23_ext3 + o23_exts side by side floated right alongside
text with caption under spine image. o23s + o23 in Photos section.
- New layout types: three-col-hl, two-col-float, photo_extras field
================================================================================
================================================================================
VERSION v0.50 — 2026-04-08 [rebuild_pass22.py — o3 layout + new layout system]
================================================================================
RESULTS FROM v0.49: o3/o9/o23/o24 text updated but o3 layout still didn't
match old site — images below paragraphs instead of beside them.
FIXED:
- DETAIL_STYLE: 3 new layout CSS classes added:
.hl-box / .hl-box-center — yellow highlight box (inline or centered)
.two-col-hl — yellow box one side, large image other side (grid)
.two-col-imgs — image group one side, text other side (grid)
- ident_paras renderer: 3 new layout types supported:
layout:"two-col-hl" — highlight box + image two-column
layout:"hl-center" — centered yellow highlight box
layout:"two-col-imgs" — images + text two-column
- erb-o3.html: rebuilt to match old site layout exactly:
Frontispiece photo (o7_ext2.jpg) floated right alongside main text
Two-col: yellow box LEFT + o7_ext.jpg large RIGHT (3rd/4th printing)
Full-width text (2nd/3rd/4th printing detail)
Centered yellow box (5th/6th/7th heading)
Two-col: o7_ext1.jpg + o7_ext3.jpg LEFT + text RIGHT
================================================================================
================================================================================
VERSION v0.49 — 2026-04-07 [rebuild_pass22.py — layout fixes o3/o9/o23/o24]
================================================================================
RESULTS FROM v0.48: Four Other series pages had incorrect/truncated identifier
text and wrong image layouts compared to original site.
FIXED:
- erb-o3.html (The Girl from Hollywood): expanded to full 7-printing detail
matching original site — bold headings for 3rd/4th and 5th/6th/7th
printing groups, full "he said" frontispiece research, DJ variations
- erb-o9.html (The Mad King): expanded to 3-state detail matching original
site — page 92 tipped-in photo with caption, date comparison photos
(Cave Girl / Mad King / Outlaw of Torn) with individual captions
- erb-o23.html (Minidoka): slip case + trade version shown side-by-side
with captions in identifier section; "Below book is leather bound"
text; spine + large cover in photos section
- erb-o24.html (Marcia of the Doorstep): signature page floated right
alongside text; spine shown with "Above Spine is of Trade Edition"
caption; large black cover full width
- Other series builder: ext_side_maxw now applied correctly
================================================================================
================================================================================
VERSION v0.48 — 2026-04-07 [rebuild_pass22.py — footer + spine image fixes]
================================================================================
RESULTS FROM v0.47: Footer green bar full viewport width on all main site
pages. Spine images on detail pages stretched to full content width.
FIXED:
- erb-style.css: footer restored to padding:4px with max-width:var(--content-width)
and margin:0 auto — green bar now constrained to content width, matching
forum pages (same fix as v0.26 which was incorrectly reverted)
- rebuild_pass22.py: spine images now use spine-wrap class instead of
full-img-wrap — .spine-wrap img uses width:auto;max-height:500px so
spine images display at natural proportions, not stretched to full width
- All generated pages rebuilt with both fixes
================================================================================
================================================================================
VERSION v0.47 — 2026-04-07 [index.html exact rebuild]
================================================================================
RESULTS FROM v0.46: Bookshelf still at bottom — extra </div> in sig section
was breaking home-layout grid.
FIXED:
- index.html: rebuilt from live source with exactly 2 changes only:
1. visibility:hidden on nav-last-item (matches all other pages)
2. sessionStorage auth script appended before </body>
All other content byte-for-byte identical to working v0.23 source
================================================================================
================================================================================
VERSION v0.46 — 2026-04-07 [footer CSS fix — bookshelf layout restored]
================================================================================
RESULTS FROM v0.45: Bookshelf on Home page appearing large at bottom of page
instead of in right column. Caused by footer CSS change during forum build.
FIXED:
- erb-style.css: footer padding restored to 2rem 1.5rem, max-width and
margin:0 auto removed — these were causing the home-layout grid to
render incorrectly, pushing the aside/bookshelf out of position
- Forum pages have their own inline footer style so unaffected
================================================================================
================================================================================
VERSION v0.45 — 2026-04-07 [index.html properly rebuilt]
================================================================================
RESULTS FROM v0.44: index.html bookshelf/aside/footnote/wip sections still
missing due to Cloudflare email truncation in source file.
FIXED:
- index.html: rebuilt from live site source — all sections restored:
bookshelf, aside, footnote, wip, correct footer, sessionStorage auth
================================================================================
================================================================================
VERSION v0.44 — 2026-04-07 [index.html rebuild + nav final fixes]
================================================================================
RESULTS FROM v0.43: index.html bookshelf missing (truncated by Cloudflare).
Login page showing Patrick instead of Admin. Forum Admin dropdown missing
Version Log. Home page not keeping Admin state.
FIXED:
- index.html: rebuilt from scratch — bookshelf restored, correct nav,
sessionStorage auth, clean footer
- erb-forum-login.html: removed navLink.textContent = name
Nav now handled entirely by sessionStorage — stays on Admin
- All 6 forum pages: Version Log added to Admin dropdown
================================================================================
================================================================================
VERSION v0.43 — 2026-04-07 [rebuild_pass21.py — nav flicker + shift final fix]
================================================================================
RESULTS FROM v0.42: Nav redrew on every page click. html overflow-y:scroll
missing from deployed CSS (overwritten by generator). Version Log page had
old nav without nav-last-item or Admin/My Account.
FIXED:
- rebuild_pass21.py: html{overflow-y:scroll} added to CSS — permanent
- Auth script: sessionStorage caching added to all pages
On load: reads sessionStorage instantly — no Firebase wait, no flicker
Firebase confirms in background — only updates DOM if role changed
Sign-out: clears sessionStorage so My Account shows correctly
- erb-versionlog.html: nav rebuilt to current correct structure
- All static + forum pages: new sessionStorage auth applied
================================================================================
================================================================================
VERSION v0.42 — 2026-04-07 [rebuild_pass20.py — nav flicker fix]
================================================================================
RESULTS FROM v0.41: "My Account" briefly visible before switching to "Admin"
on every page load. Some main site pages still missing auth script.
FIXED:
- rebuild_pass20.py: nav-last-item hidden initially (visibility:hidden)
Revealed after auth resolves — either as My Account or Admin
Eliminates flash/flicker on every page load
- All generated pages regenerated with hidden+reveal pattern
- All static pages updated with same hidden+reveal
- All forum pages: hidden+reveal added to auth blocks
- erb-versionlog.html: auth script added
================================================================================
================================================================================
VERSION v0.41 — 2026-04-07 [rebuild_pass20.py — auth baked into generator]
================================================================================
RESULTS FROM v0.40: Main site pages (Home, First Editions, book detail pages)
missing Firebase auth script entirely — always showed My Account even when
admin logged in. Forum Members page still showed person's name.
FIXED:
- rebuild_pass20.py: auth_script_html() function added to generator
Auth script now baked into ALL generated pages (covers + detail pages)
Single onAuthStateChanged: only switches to Admin for admin role, never name
- index.html: auth script added
- forum/erb-forum-members.html: name reference removed, admin nav fixed
================================================================================
================================================================================
VERSION v0.40 — 2026-04-07 [auth nav final fix]
================================================================================
RESULTS FROM v0.39: Forum pages still showing person's name (Patrick) in nav
due to old auth code that set textContent = name still present. Admin
nav block was empty on forum index. Multiple auth patterns conflicting.
FIXED:
- All 7 forum pages: auth blocks audited and corrected
Single onAuthStateChanged per page
Never sets person's name in nav
Correctly switches My Account to Admin dropdown for admin role
Admin page: switches nav before showing admin content
================================================================================
================================================================================
VERSION v0.39 — 2026-04-07 [forum nav click fix + auth consolidation]
================================================================================
RESULTS FROM v0.38: Clicking Forum ▾ on forum pages caused page reload,
redrawing all icons and cycling My Account/Admin. Duplicate auth listeners
on forum pages caused flickering.
FIXED:
- All 7 forum pages: Forum ▾ link changed to href="#" onclick="return false;"
Clicking Forum label or arrow opens dropdown only, no navigation/reload
- All 7 forum pages: duplicate onAuthStateChanged listener removed
Each page now has exactly one auth listener — no more cycling
================================================================================
================================================================================
VERSION v0.38 — 2026-04-07 [nav fixes + login centering]
================================================================================
RESULTS FROM v0.37: Auth script showed person's name causing nav width shift.
Login page not centered. Misc dropdown still had Version Log on feast/misc.
index.html and versionlog missing auth script. Nav shift on dropdown open.
FIXED:
- erb-style.css: html { overflow-y:scroll } — prevents scrollbar shift
- erb-style.css: #nav-last-item { min-width:90px } — prevents text-change shift
- All pages: auth script simplified — only switches to Admin for admin role,
never shows person's name — My Account stays until admin detected
- erb-forum-login.html: login box centered with flexbox
- erb-feast.html, erb-misc.html: Version Log removed from Misc dropdown
- index.html, erb-versionlog.html: auth script added
================================================================================
================================================================================
VERSION v0.37 — 2026-04-07 [rebuild_pass19.py + nav last item]
================================================================================
RESULTS FROM v0.36: Nav layout shifted when Forum Index loaded because
hidden Admin nav item appeared, changing nav width. Two nav items
(My Account button + Login nav) duplicated same function.
FIXED:
- rebuild_pass19.py: last nav slot always visible
Logged out / regular member: shows "My Account" linking to login page
Admin logged in: switches to "Admin ▾" dropdown in place (no layout shift)
Admin dropdown (main site): Version Log + My Account
Admin dropdown (forum pages): Forum Admin + Moderation Queue + My Account
- All static pages: same last nav slot + Firebase auth script added
- All 7 forum pages: same last nav slot, old forum nav cleanup
- All generated pages: Firebase auth script added for nav admin detection
================================================================================
================================================================================
VERSION v0.36 — 2026-04-07 [rebuild_pass18.py + forum nav restructure]
================================================================================
RESULTS FROM v0.35: Forum pages had separate green nav bar inconsistent
with main site. Admin nav had no dropdown. Search was a nav item
taking up space in the forum nav.
FIXED:
- rebuild_pass18.py: Forum nav = plain link on non-forum pages
Admin nav = dropdown with Version Log (web context)
- All static pages: same Forum + Admin nav updates
- All 7 forum pages: forum-specific nav bar removed entirely
Replaced with main site nav (Home/First Editions/Research/Misc/Forum/Admin)
Forum nav item = dropdown with Forum Index + Members (forum context)
Admin nav item = dropdown with Forum Admin + Moderation Queue (forum context)
Both use ../ prefix correctly for forum subfolder
- erb-forum-index.html: search moved from nav to online bar
Search icon (magnifying glass) on right side of online bar
Clicking reveals inline search input that redirects to search page
================================================================================
================================================================================
VERSION v0.35 — 2026-04-07 [no generator — forum alerts + search + members]
================================================================================
RESULTS FROM v0.34: All forum pages still using browser alert() dialogs
for errors, warnings and notifications. Search and Members pages
not yet built.
FIXED:
- erb-forum-category.html: all alert() replaced with inline notify bar
Styled by type: error (red), warn (yellow), success (green), pending (blue)
Auto-dismisses after 5 seconds except pending messages
- erb-forum-topic.html: same inline notify bar for all alerts
- erb-forum-search.html: new search page
Keyword search across topic titles
Filter by category dropdown (loaded from Firestore)
Results show title with highlighted match, author, date, reply/view counts
Supports ?q= URL parameter for direct search links
- erb-forum-members.html: new members page
Lists all non-banned members from Firestore users collection
Shows avatar, name, role badge, join date, post count
Search by name, sort by join date / post count / name
Column headers clickable to sort
================================================================================
================================================================================
VERSION v0.34 — 2026-04-07 [no generator — forum admin fixes]
================================================================================
RESULTS FROM v0.33: Admin panel delete used browser confirm() dialog.
Admin nav item missing on admin page itself.
FIXED:
- erb-forum-admin.html: delete category replaced with inline confirmation row
Shows "Delete [name]? This cannot be undone" with Yes/Cancel buttons
in the categories table — no browser dialogs
- erb-forum-admin.html: reject post replaced with inline confirmation
in the moderation queue card — no browser dialogs
- erb-forum-admin.html: Admin nav always visible and marked active
on the admin page itself
================================================================================
================================================================================
VERSION v0.33 — 2026-04-07 [no generator — forum dynamic categories]
================================================================================
RESULTS FROM v0.32: Forum categories hardcoded in HTML — adding/removing
categories in admin panel didn't update forum index or footer links.
Categories collection in Firestore empty on first load.
FIXED:
- erb-forum-index.html: categories loaded dynamically from Firestore
On first load: if categories collection empty, auto-seeds 6 default
categories to Firestore (ERB First Editions, Dust Jackets, Reprint
Editions, General ERB Discussion, For Sale / Wanted, Site Feedback)
Category table rows built from Firestore data — topic/post counts live
Footer links built dynamically from Firestore categories
- erb-forum-category.html: footer links load dynamically from Firestore
- erb-forum-topic.html: footer links load dynamically from Firestore
- erb-forum-login.html: footer links load dynamically from Firestore
- erb-forum-admin.html: footer links load dynamically from Firestore
================================================================================
================================================================================
VERSION v0.32 — 2026-04-06 [no generator — forum New Topic form]
================================================================================
RESULTS FROM v0.31: New Topic used browser prompt() dialog — ugly and
inconsistent with site styling.
FIXED:
- erb-forum-category.html: replaced prompt() dialogs with inline form
Form slides open below category header when + New Topic clicked
Fields: Topic Title (text input) + First Post (textarea)
Post Topic and Cancel buttons styled to match site
All existing checks retained: rate limit, link restriction,
banned/viewOnly block, newUser pending flag
On success: redirects to new topic page
On pending: shows message and closes form
================================================================================
================================================================================
VERSION v0.31 — 2026-04-06 [no generator — forum build Pass 7]
================================================================================
RESULTS FROM v0.30: No rate limiting on posts. External links allowed from
any user regardless of post count. Admin panel missing rate limit settings.
FIXED:
- erb-forum-topic.html: rate limiting added
Checks lastPostAt timestamp before allowing post
If within cooldown window: blocks with wait time message
External link check: blocks links if postCount < minPostsForLinks
Updates lastPostAt on user record after each post
- erb-forum-category.html: same rate limit + link checks added to New Topic
Also updates lastPostAt after topic created
- erb-forum-admin.html: two new Forum Settings fields
Posts per hour limit (default 10)
Min posts before external links allowed (default 5)
Both fields saved to Firestore settings/forum and loaded on page open
Firebase Storage Rules (apply manually in Firebase Console):
forum/posts/** — read:true, write: authenticated users only
all other paths — read:true, write: false
================================================================================
================================================================================
VERSION v0.30 — 2026-04-06 [no generator — forum build Pass 6]
================================================================================
RESULTS FROM v0.29: Post Reply button non-functional. Category page showed
no topics. New Topic button non-functional. Moderation queue wiring
incomplete.
FIXED:
- erb-forum-topic.html: fully wired to Firestore
Posts load from Firestore posts collection (pending=false only)
Topic title, reply count, view count loaded from topics collection
View count increments on each visit
Post Reply submits to Firestore with: content, author info, attachments,
pending flag (true for newUser), reactions map, createdAt timestamp
File attachments upload to Firebase Storage, URLs stored with post
Banned/view-only users blocked with clear message
New users: post saved as pending=true, user shown review message
Reactions write reaction counts to Firestore
Lightbox for image attachments
- erb-forum-category.html: fully wired to Firestore
Topics load from Firestore topics collection ordered by date desc
New Topic creates topic + first post in Firestore
Same banned/viewOnly/newUser checks apply
Topic links correctly pass cat and id params to topic page
================================================================================
================================================================================
VERSION v0.29 — 2026-04-06 [rebuild_pass17.py + forum nav updates]
================================================================================
RESULTS FROM v0.28: Version Log still in Misc dropdown on all pages.
Admin panel had no nav link — no way to reach it while browsing.
Admin nav item not visible to admin users.
FIXED:
- rebuild_pass17.py: Version Log removed from Misc dropdown on all
generator-built pages (cover pages + all detail pages)
- All static pages: Version Log removed from Misc dropdown
- All static pages: Admin nav item added (hidden by default)
- index.html: auth script added — Admin nav shows for admin users
- All forum pages: Admin nav item added to forum nav
- All forum pages: auth scripts updated — Admin nav shows for admin users
- erb-forum-admin.html: Admin nav item added to its own nav
================================================================================
================================================================================
VERSION v0.28 — 2026-04-06 [no generator — forum Pass 5 + email fix]
================================================================================
RESULTS FROM v0.27: Admin panel not yet built. Home page email showing as
[email protected] due to Cloudflare obfuscation not working on Firebase hosting.
FIXED:
- erb-forum-admin.html: new admin panel with 6 sections:
Forum Settings (max file size, max attachments, allowed types) → Firestore
Custom ERB Reactions (4 slots, GIF upload, label, enable/disable) → Firestore
Categories (add, edit, lock/unlock, delete) → Firestore
Users (search, ban, view-only, promote/demote moderator) → Firestore
Moderation Queue (approve/reject pending first posts) → Firestore
Storage Usage (guidance to check Firebase Console)
Access control: redirects to login if not authenticated,
shows Access Denied if not admin role
- index.html: fixed email obfuscation — replaced broken Cloudflare cdn-cgi
encoding with JavaScript character array decode (works on any static host)
Both sig email and footer email fixed
- index.html: version comment bumped to v0.27
================================================================================
================================================================================
VERSION v0.27 — 2026-04-06 [no generator — forum build Pass 4]
================================================================================
RESULTS FROM v0.26: Forum pages had no login functionality. Login, reply
composer, reactions, and New Topic button all static/disabled.
FIXED:
- erb-forum-login.html: new Google Sign-In page
Google OAuth via Firebase Auth (popup flow)
On first login: user record created in Firestore users collection
(uid, displayName, email, photoURL, joinDate, postCount, role,
banned, viewOnly, newUser flag for moderation queue)
Already-logged-in state shows user name/avatar + Sign Out button
Redirects to forum index after successful login
- erb-forum-auth.js: shared Firebase init module
- erb-forum-index.html: nav Login link updates to first name when logged in
- erb-forum-category.html: New Topic button enables when logged in
- erb-forum-topic.html: reply composer and reactions enable when logged in
================================================================================
================================================================================
VERSION v0.26 — 2026-04-06 [rebuild_pass16.py]
================================================================================
RESULTS FROM v0.25: Footer green bar too wide (full viewport width) and too
much padding (2rem top/bottom) on all pages. Forum page footer also had
wrong color and excess padding.
FIXED:
- erb-style.css: footer padding reduced from 2rem to 4px
- erb-style.css: footer max-width set to var(--content-width) with margin auto
— green bar now constrained to content width, not full viewport
- erb-forum-index.html: footer inline style updated to match global footer
(same dark green #2d4a2d, 4px padding, content-width constrained)
- All generated pages rebuilt with updated CSS
================================================================================
================================================================================
VERSION v0.25 — 2026-04-06 [rebuild_pass16.py]
================================================================================
RESULTS FROM v0.24: Forum nav link on all generator-built pages still pointed
to old phpbb2 forum. Misc dropdown in generator had old items (ERB Interview,
Tour of Ekstrom Library) not matching live site. erb-forum-index.html logo
shifted left due to wrong header structure (erb-title vs logo-nav-wrap).
FIXED:
- rebuild_pass16.py: Forum nav link updated from phpbb2 to
{prefix}/forum/erb-forum-index.html — works correctly for both
root-level cover pages (.) and subfolder detail pages (..)
- rebuild_pass16.py: Misc dropdown corrected to match live site:
For Sale, Links - ERB Related, Media Files, Mystery Inscription, Version Log
- rebuild_pass16.py: pre-existing bug fixed in build_other_detail —
prev_lk_pn_bot / next_lk_pn_bot variables were missing (NameError)
- erb-forum-index.html: header fixed — logo-nav-wrap replaces erb-title,
forum-nav-wrap moved inside logo-nav-wrap, <a> wrapper removed from logo
================================================================================
================================================================================
VERSION v0.24 — 2026-04-06 [no generator — forum build Pass 1]
================================================================================
RESULTS FROM v0.23: Forum nav item still linked to old phpBB2 forum at
erbfirsts.com/phpbb2/. New forum build not yet started.
FIXED:
- Forum Pass 1: static shell pages created for new Firebase-based forum
erb-forum-index.html — forum index with 6 categories, stats bar,
who's-online strip, Login to Post prompt, responsive layout
erb-forum.css — forum-specific styles extending erb-style.css
Both files use erb-forum-* naming convention for BAT routing
- DeployERBFirsts_17.bat: two additions for forum support
Added: if not exist "%PUBDIR%orum" mkdir "%PUBDIR%orum"
Added: erb-forum routing rule — ^erb-forum prefix routes to publicorum\
STILL TO DO:
- Update main site nav Forum link from phpbb2 to forum/erb-forum-index.html
(deferred until forum is fully built and live)
- Forum Pass 2: category/topics listing page
- Forum Pass 3: topic/post page with reply composer + file attachments
- Forum Pass 4: Google login (Firebase Auth)
- Forum Pass 5: Admin panel + configurable settings
- Forum Pass 6: Moderation queue + ban/view-only controls
- Forum Pass 7: Rate limiting + Firestore security rules
================================================================================
================================================================================
VERSION v0.23 — 2026-04-05 PST [no generator changes — static pages only]
================================================================================
RESULTS FROM v0.22: F.E.A.S.T. pages updated. No media page existed.
Buy/Sell box still on home page. Old ERB Interview and Library Tour pages
separate with no modern styling.
FIXED:
- erb-misc.html rebuilt as "Media Files" page with:
HTML5 video player for ERB_library_visit.mp4 (960x720 display)
HTML5 audio player for ERBfirsts_interview.mp3
Both set to preload=auto for immediate playback on click
Description text from original pages preserved
- index.html: removed For Sale / Buy ERB box from sidebar
- All modern static pages: Misc dropdown updated —
removed "ERB Interview" and "Tour of Ekstrom Library"
added "Media Files" after "Links — ERB Related"
- DeployERBFirsts.bat: added public/media/ folder creation
added .mp3/.mp4/.wmv routing to public/media/
retained ROUTING debug lines and rename try/catch fix
================================================================================
================================================================================
VERSION v0.22 — 2026-04-05 [no generator changes — static pages only]
================================================================================
RESULTS FROM v0.21: F.E.A.S.T. report pages were old Word-exported HTML with
no site styling. Monthly prior report links broken (wrong extensions).
erb-feast.html section order wrong. No sort functionality.
FIXED:
- All 12 x 2005 monthly FEAST reports rebuilt as clean modern HTML with:
site fonts (Playfair Display + Source Serif 4), mustard header color (#eec400),
sticky column header, N/A for Auto-Biography date, $0 values → blank,
typo fixed (City ofGold → City of Gold)
- All 19 x 2003/2004 monthly FEAST reports rebuilt with same styling
- erb-feast.html section reorder: title → subtitle → meta line → table →
Prior Reports box → intro paragraph → footnotes → footer
- erb-feast.html: "below" → "above" in intro paragraph
- erb-feast.html: all 2005 monthly links fixed from .htm → .html
- erb-feast.html: all 2004 monthly links fixed from .htm → .html
- erb-feast.html: Prior Reports links open in new tab (target=_blank)
- erb-feast.html: compact meta line — Total left, FINAL REPORT center,
REPORT DATE right, all on one line
- erb-feast.html: sticky logo/nav (position:sticky on .erb-header)
- erb-feast.html: sticky table header rows offset by nav height via window.load
- erb-feast.html: sortable columns — click to sort asc/desc/default series order;
# column always shows sequential row number; ▲/▼ sort indicators
- erb-feast.html: sort click scrolls page to table header position below nav
- DeployERBFirsts.bat: rename fix — try/catch suppresses red error when
ERBFirsts-*.zip already exists in Downloads
- DeployERBFirsts.bat: ROUTING/EXT-CHECK/AFTER-CLEAN debug lines added to
diagnose why erb-feast.html was not being deployed from zip
================================================================================
================================================================================
VERSION v0.21 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.20: Research pages (erb-dj, erb-feast, erb-signatures) still had
old nav missing Version Log in Misc dropdown.
FIXED:
- Nav updated on all 3 Research pages with correct Misc dropdown
================================================================================
================================================================================
VERSION v0.20 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.19: Version number still showing on home page. Static pages
(erb-misc, erb-sell, erb-erblinks, erb-inscription, home) had outdated nav
missing Version Log in Misc dropdown.
FIXED:
- Version number removed from home page footer
- All static pages nav updated with correct Misc dropdown including Version Log
- Consistent nav across all page types (home, covers, detail, static)
================================================================================
================================================================================
VERSION v0.19 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.18: Version number showing on cover pages and home; home showing
stale version. Version number should only appear on Version Log page.
FIXED:
- Removed version number from all cover pages (Tarzan, MPV, Other)
- Removed version number from all static pages except home and version log
- Version log page now shows current version number next to heading
- Home page updated to v0.19
================================================================================
================================================================================
VERSION v0.18 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.17: Reprint anchor working but landing slightly too high (194px).
FIXED:
- scroll-margin-top reduced from 194px to 150px on reprints anchor
================================================================================
================================================================================
VERSION v0.17 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.16: Reprint anchor landing 1/3 into Burt covers (consistent across
all books). Bottom nav scroll working. Anchor structure correct but insufficient
upward offset.
FIXED:
- Reprint anchor: added scroll-margin-top:194px to <a id="reprints"> element
(calculated from h2+h3+hr+spacing+1/3 image height = ~194px total offset)
- Version number and log updated
================================================================================
================================================================================
VERSION v0.16 — 2026-04-02 [rebuild_pass15.py]
================================================================================
RESULTS FROM v0.15: Reprint button scroll approach wrong. Version log inaccurate.
FIXED:
- Reprint anchor: replaced scroll-margin approach with classic invisible offset
anchor: <a id="reprints" style="display:block;height:0;visibility:hidden;"></a>
placed immediately before <h2>Reprint Editions</h2>. Bulletproof HTML.
- Version log: completely rewritten with accurate entries for every version,
correct version numbers, generator script filename for each version,
what was fixed and what remained broken
================================================================================
================================================================================
VERSION v0.15 — 2026-04-01 [rebuild_pass14.py — modified]
================================================================================
RESULTS FROM v0.14: Reprint button now lower than before (80px too much).
Version log had all entries incorrectly renamed to v0.11.
FIXED:
- scroll-margin-top reduced to 8px (nav scrolls away so minimal offset needed)
- Version log txt and HTML files updated (though log entries were still inaccurate)
STILL BROKEN:
- Reprint button still unreliable — scroll-margin-top approach fundamentally wrong
for this use case
- Version log entries were all labeled v0.11 (corrupted by blanket regex replacement
in an earlier session)
================================================================================
================================================================================
VERSION v0.14 — 2026-04-01 [rebuild_pass14.py]
================================================================================
RESULTS FROM v0.13: Reprint button barely showing bottom of A.L. Burt text —
scroll-margin-top:10px not enough offset. Bottom nav landing in middle of page.
FIXED:
- scroll-margin-top on h2#reprints increased to 80px
- Bottom nav scroll: investigated — issue was scroll saving 'bottom' but
scrollHeight not reached due to timing; confirmed pn-bottom class working
and JS saving/restoring correctly
STILL BROKEN:
- Reprint button still not landing at "Reprint Editions" heading — scroll-margin-top
unreliable across browsers (80px overshoots because nav is not fixed/sticky)
================================================================================
================================================================================
VERSION v0.13 — 2026-04-01 [rebuild_pass13.py]
================================================================================
RESULTS FROM v0.12: Acorn caption still below wrong photo. Reprint button still
not landing at "Reprint Editions" heading. Scroll position not working for
bottom nav arrows.
FIXED:
- ext_side_cap support added to Tarzan renderer: renders styled italic caption
in text box below ext_side image
- t1: ext_side_cap set with acorn caption text; ext_side_maxw reduced to 200px;
caption key removed from ident_paras copyright page item (was wrong location)
- Reprint section: id="reprints" moved from wrapper div to <h2> element directly;
scroll-margin-top:10px added — clicking button now scrolls to heading
- Scroll position save/restore: clicking top pn-left/pn-right saves window.scrollY
to sessionStorage; restored on page load
- Bottom nav: pn-bottom class added to bottom bar links; JS saves 'bottom' string;
on load restores to document.body.scrollHeight
STILL BROKEN:
- Reprint button landing just below "Reprint Editions" heading — scroll-margin-top
value needs adjustment
- Bottom nav scroll: landing in middle of page not at true bottom
================================================================================
================================================================================
VERSION v0.12 — 2026-04-01 [rebuild_pass12.py]
================================================================================
RESULTS FROM v0.11: Reprint button img path wrong depth. OLD ENGLISH text still
above image. Acorn caption still wrong photo. t1_ext3 appearing twice.
FIXED:
- Reprint button img path corrected: ../images/ for Tarzan (not ../../images/)
- layout:row renderer updated: text and image now in single flex div together;
standalone <p> suppressed when layout=row active
- t1 ident_imgs=None: cleared old ident_imgs entry that was causing t1_ext3 duplicate
- caption key added to ident_paras renderer: renders styled italic box below image
- t1: Acorn caption moved to caption key on the ext_side item (t1ext2.jpg);
removed from ident_paras copyright page item where it was wrongly placed
STILL BROKEN:
- Acorn caption still appearing below copyright page photo not below acorn spine photo
(ext_side and ident_paras are different rendering paths — caption key was added
to ident_paras renderer but ext_side doesn't use that path)
- Reprint button scrolling to middle of A.L. Burt text not to "Reprint Editions" heading
================================================================================
================================================================================
VERSION v0.11 — 2026-04-01 [rebuild_pass11.py]
================================================================================
RESULTS FROM v0.10: Version stale on home/covers. Reprint button no hover.
OLD ENGLISH/GOTHIC text/photo still separate lines. Acorn caption wrong location.
t24 duplicate caption. erb-o28 photo distortion.
FIXED:
- Version strings updated to v0.11 on all generated pages (VERSION_COMMENT)
- Static files (erb-index, erb-shelf, erb-misc, etc.) version updated directly
- Reprint button replaced with reprint_button.jpg image; data-hover attribute
for swap to reprint_button_2.jpg on mouseover; placed right of book title
in header for all books with reprint data; JS hover script added
- layout:row support added to ident_paras renderer — text and image in same flex div
- t1 OLD ENGLISH/GOTHIC: layout:row applied — each label now beside its photo
- t1: Acorn caption moved to caption key on copyright page photo item
- t24: extra= field cleared (removed duplicate label caption)
- erb-o28: converted to ident_paras with both photos (cover + spine) inline
STILL BROKEN:
- Reprint button img path using ../../ (wrong depth for Tarzan pages)
- OLD ENGLISH text appearing above image not beside it (separate <p> tag issue)
- Acorn caption still below wrong photo (copyright page not spine photo)
- t1 ident_imgs still set causing t1_ext3 to render twice
================================================================================
================================================================================
VERSION v0.10 — 2026-04-01 [rebuild_pass10.py]
================================================================================
RESULTS FROM v0.9: Reprint DJs now showing. Several book-specific layout issues.
FIXED:
- Reprint button: green "↓ Reprint Editions" jump button added to identifier section
for all books with reprint data (t1-t5); id="reprints" anchor on reprint div
- t1: OLD ENGLISH/GOTHIC split into separate ident_paras items with own images
- t5: t5_ext1.jpg enlarged to 320px
- t26: Converted to ident_paras; ASP note text corrected; t26_ext.jpg inline
- t27: Duplicate spine image removed from photos section
- t24: Copyright page variant photos (ext7/1/6/8) moved inline in ident section;
label photos (ext4/ext3) with individual captions side by side
- erb-o28 (Girl from Farris): Both photos now display side by side inline;
Other renderer ident_paras support added
- t27: Full Whitman invoice attribution text added (Brian J. Bohnett Dec 2007);
Canaveral 1963 paragraph added with t26_ext.jpg photo
STILL BROKEN:
- Home showing v0.6, Tarzan covers showing v0.3 (static files not regenerated)
- Reprint button hover animation not working
- OLD ENGLISH/GOTHIC text and photo still on separate lines
- Acorn caption in wrong place (below wrong photo)
================================================================================
================================================================================
VERSION v0.9 — 2026-04-01 [rebuild_pass9.py]
================================================================================
RESULTS FROM v0.8: Reprint DJ images not displaying. t2/t4 photos stacking.
FIXED:
- All 21 reprint DJ filenames corrected to match exact Firebase names:
Rule confirmed: underscore immediately before "dj" removed everywhere
e.g. a_toa_g&ddj.jpg, a_bot_burtdj.jpg, a_rot_burt_reprodj.jpg, etc.
- display:inline-block;vertical-align:top added to ident_paras and ident_imgs
image renderers — photos now display side by side
STILL BROKEN:
- Various layout/content issues across t24/t26/t27/t1/t5/erb-o28 reported next session
================================================================================
================================================================================
VERSION v0.8 — 2026-04-01 [rebuild_pass8.py]
================================================================================
RESULTS FROM v0.7: t27 missing extra photo. t24 missing t24_ext1. t1 copyright
page too small. t2 Canadian photos duplicating enlarged below content.
t4 title/copyright photos broken. t5 five-books photo too small + duplicate.
FIXED:
- t27: t27_ext.jpg added as ext_side (main spine photo, 320px float right);
t27_ext1.jpg in photos section
- t24: ext_pairs corrected — t24_ext1.jpg added, pair order fixed
- t1: Copyright page (t1_ext2.jpg) enlarged to 350px; ext_side enlarged to 340px;
duplicate copyright page entry removed from ident_imgs
- t2: Canadian photos moved inline in ident_paras at 200px; full-width duplicates
removed from photos section
- t4: Title/copyright photos moved inline in ident_paras at 320px; removed from
photos section (ext_pairs cleared)
- t5: Five-books photo (t5ext.jpg) ext_side enlarged to 360px; duplicate ext_pairs
entry removed
- ext_side_maxw and imgs_maxh support added to renderer
STILL BROKEN:
- Reprint DJ images not showing (wrong filenames in generator)
- t2/t4 photos still stacking vertically instead of side by side
================================================================================
================================================================================
VERSION v0.7 — 2026-04-01 [rebuild_pass7.py]
================================================================================
RESULTS FROM v0.6: DJ captions missing/wrong for most books. t1 DJ filename wrong.
Reprint G&D images not displaying (& encoding bug in HTML src attribute).
FIXED:
- All 27 Tarzan DJ captions assigned correctly from ASP source:
12 reproduction DJs (standard caption), 14 original DJs (unique captions),
t27 confirmed no DJ exists
- t1 DJ filename corrected: t1_dj.jpg → t1dj.jpg
- Reprint src encoding fixed: & literal in src= URL, & only in alt= text
- t6/t7/t8/t10/t11/t13/t26/t28 DJ images added (were None)
- t9/t12/t14/t15/t16/t17/t18/t19/t20/t21/t22/t23/t24 unique DJ captions set
STILL BROKEN:
- t27 missing extra photo; t24 missing t24_ext1.jpg
- t1 copyright page photo too small; t2/t4/t5 photo layout issues
================================================================================
================================================================================
VERSION v0.6 — 2026-03-31 [rebuild_pass6.py]
================================================================================
RESULTS FROM v0.5: Reprint images all same size, not distinguishing covers vs DJs.
FIXED:
- Reprint covers: max-height 130px portrait; spines max-width 45px narrow
- Reprint DJs: max-width 270px landscape, separate row from covers
- Identifier ext-row images: max-height 160px with auto width (proper proportions)
- All applies to t1-t5 reprint sections
================================================================================
================================================================================
VERSION v0.5 — 2026-03-31 [rebuild_pass5.py]
================================================================================
RESULTS FROM v0.4: Ext images still wrong sections on t1/t2/t4/t5.
FIXED:
- t1: OLD ENGLISH and GOTHIC images now inline with correct identifier paragraphs
using ident_paras; copyright page photo (t1_ext2.jpg) inline
- t2: Canadian edition photos (t2_ext1/2/3) now inline below Canadian paragraph
- t4: Title page and dedication photos (t4ext/t4ext1) inline beside identifier text
- t5: Joe Lukes comparison photo (t5_ext1) now below Joe Lukes paragraph
STILL BROKEN:
- Reprint section image sizing — covers/DJs/spines all same size
================================================================================
================================================================================
VERSION v0.4 — 2026-03-31 [rebuild_pass4.py]
================================================================================
RESULTS FROM v0.3: Shelf links wrong. Index bookshelf link broken. FEAST/ext issues.
FIXED:
- Shelf: Added dynamic JS scaling so image map coordinates scale with image width
- Shelf: Fixed bookshelf image on index.html linking to erb-shelf.html
- t1: FEAST moved after reprint section; OLD ENGLISH/GOTHIC identifier text added;
t1dj.jpg added; G&D missing images added (a_toa_g&d_2dj, a_toa_g&d_3dj);
G&D text corrected (1927-1973, artwork change detail)
- t2: FEAST moved after reprint; t2dj.jpg added; Shaun Hoadley credit added
- t3, t4: FEAST moved after reprint
- t5: FEAST moved after reprint; Joe Lukes credit added; DJ caption fixed
- Version log added (this file)
STILL BROKEN:
- t1-t5 ext images still rendering in wrong section or wrong size
================================================================================
================================================================================
VERSION v0.3 — 2026-03-29 [rebuild_pass3.py]
================================================================================
FIRST WORKING BUILD. Basic structure in place.
KNOWN ISSUES:
- Shelf links going to wrong book (image map not scaling with image width)
- Bookshelf image on index.html not linking to shelf page
- t1-t5 FEAST tables in wrong position (should appear after reprint section)
- t1-t5 identifier ext images in wrong section (photos vs identifiers)
- Reprint sections incomplete/missing on some books
================================================================================