diff --git a/cps/static/js/reading/epub.js b/cps/static/js/reading/epub.js index 21663a6a..0a907ed2 100644 --- a/cps/static/js/reading/epub.js +++ b/cps/static/js/reading/epub.js @@ -119,11 +119,16 @@ var reader; const theme = localStorage.getItem("calibre.reader.theme") ?? "lightTheme"; selectTheme(theme); - // Restore saved font size after reader is ready + // Restore saved font and font size after reader is ready reader.book.ready.then(() => { const savedFontSize = localStorage.getItem("calibre.reader.fontSize"); if (savedFontSize) { reader.rendition.themes.fontSize(`${savedFontSize}%`); } + + const savedFont = localStorage.getItem("calibre.reader.font"); + if (savedFont && window.selectFont) { + window.selectFont(savedFont); + } }); })(); diff --git a/cps/templates/read.html b/cps/templates/read.html index f31b9714..6262f403 100644 --- a/cps/templates/read.html +++ b/cps/templates/read.html @@ -335,7 +335,7 @@ let defaultFont; - function selectFont(id) { + window.selectFont = function (id) { if (!defaultFont) { defaultFont = reader.rendition.getContents()[0]?.css("font-family"); } @@ -346,12 +346,15 @@ } document.getElementById(id).querySelector("span").textContent = "✓"; + // Save font selection to localStorage + localStorage.setItem("calibre.reader.font", id); + if (id == "default") { reader.rendition.themes.font(defaultFont); return; } reader.rendition.themes.font(id); - } + }; function spread(id) { spans = document.getElementById("layout").querySelectorAll("span");