From 8d17d9ea23b261eb7a3004cfe32bcd4f78cb0ab3 Mon Sep 17 00:00:00 2001 From: Kenneth Reitz Date: Fri, 28 Nov 2025 15:54:16 -0500 Subject: [PATCH] Add red letter toggle to sidebar MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add toggle link at bottom of sidebar (before flourish) - Use localStorage to persist user preference - CSS hides .words-of-christ color when disabled - JavaScript handles toggle and initialization on page load - Toggle text changes between "Enable" and "Disable" 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- kjvstudy_org/templates/base.html | 40 ++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/kjvstudy_org/templates/base.html b/kjvstudy_org/templates/base.html index 79ea83d..04b9dec 100644 --- a/kjvstudy_org/templates/base.html +++ b/kjvstudy_org/templates/base.html @@ -79,6 +79,11 @@ --code-bg: #2a2a2a; } + /* Red letter toggle - hide red letters when disabled */ + [data-red-letters="disabled"] .words-of-christ { + color: inherit !important; + } + /* Override Tufte CSS sidenote constraints */ .sidenote, .marginnote { @@ -1296,6 +1301,15 @@

+ +
+

+ + Disable Red Letters + +

+
+ @@ -1315,6 +1329,32 @@ localStorage.setItem('theme', newTheme); } + // Red letter toggle functionality + (function() { + // Check for saved red letter preference or default to enabled + const redLettersEnabled = localStorage.getItem('redLetters') !== 'disabled'; + if (!redLettersEnabled) { + document.documentElement.setAttribute('data-red-letters', 'disabled'); + document.getElementById('red-letter-status').textContent = 'Enable'; + } + })(); + + function toggleRedLetters(event) { + event.preventDefault(); + const currentState = document.documentElement.getAttribute('data-red-letters'); + const newState = currentState === 'disabled' ? 'enabled' : 'disabled'; + + if (newState === 'disabled') { + document.documentElement.setAttribute('data-red-letters', 'disabled'); + document.getElementById('red-letter-status').textContent = 'Enable'; + localStorage.setItem('redLetters', 'disabled'); + } else { + document.documentElement.removeAttribute('data-red-letters'); + document.getElementById('red-letter-status').textContent = 'Disable'; + localStorage.removeItem('redLetters'); + } + } + // Sidebar collapse state persistence (function() { var toggle = document.getElementById('sidebar-toggle');