Tags: DandanLLab/mr
Tags
fix(epub): 画廊非全屏渲染层全面对齐多看 dotted 指示器:从 Column 平铺改为 Stack+Positioned(bottom:0) 悬浮定位, 对齐多看 .dotted 的 position:absolute;PageView 底部留 22px 避免 subtitle 被遮挡,单图画廊不留白。 原著 CSS 逐项对照修复(读取 epub_check 原著 style.css): - cell border-color 原著未写,改用 textColor 兜底(currentColor 语义) - subtitle margin 原著无,subtitleMarginBottom 默认 0.5 改 0.0 顺手修 2 个原有编译错误: - _parseFontFamily 正则 raw 字符串单引号未转义(Unterminated string literal) - build() 内 const EdgeInsets.only 误用运行时变量 dottedHeight
fix(reader): 全面修复分页第二页空白,对齐高度链/reflow/overflow 三路排查(CSS/JS/Dart)锁定四个高概率根因,一次性全修: 1. 高度链断裂:html 和 body 都设 height:var(--reader-vh) 导致 body 溢出 html content area(html 有 padding+border-box),被 overflow: hidden 裁剪 → #reader-stage flex:1 拿不到正确高度 → column 容器 高度错误 → 内容不流向第二列 修复:html 保持 var(--reader-vh),body 改为 height:100% 2. overflow:hidden 抑制 multicol 列创建:#reader-content-a 设了 overflow:hidden !important,部分 Android WebView 上会抑制超出 可视区域的列的创建,只生成 1 列 修复:移除 contentA 的 overflow:hidden,裁剪由 #reader-stage 负责 3. CSS 变量更新后未强制 reflow:updateViewportSize 注入 --reader-vh 后,multicol 容器的 height/column-width 依赖此变量(通过 calc), 但部分 WebView 不立即重排 column 布局 → 初始 100vh 偏大时第一列 能容纳所有内容不产生第二列 修复:updateViewportSize 末尾加 void contentA.offsetHeight 强制 同步 reflow 4. polyfillEpubCss 后重排等待不足:polyfill 修改 font-size/line-height 后文本宽度变化,column 需要重新流动内容到各列,rAF 双帧在部分 Android WebView 上不足以完成重排 → scrollWidth 读到旧值(1 列) 修复:polyfill 后加强制 reflow + rAF 三帧再通知 pageCount
fix(reader): 修复分页模式第二页空白,对齐 lumina column 布局 - .reader-content 补充 width: var(--reader-safe-width),修复 absolute 元素不设 width 导致 column 布局 shrink-to-fit 行为不可预测,内容 无法正确流向第二列,第二页空白 - 移除从未生效的 appendVirtualColumnIfNeeded 死代码(读取 document.documentElement 的 column-count,但 column 设置在 #reader-content-a 上,html 无此属性永远 return false;虚拟列加到 body 也不影响 contentA.scrollWidth) - 精简 notifyPageCountReady 日志,保留 count/scrollWidth/columnWidth 核心字段 - reader_webview.dart 增加 onConsoleMessage 输出 WebView 控制台日志
fix(reader): 补全TOC缺失的spine章节修复封面加载,对齐画廊排版 封面加载修复:新增 _fillMissingSpineChapters 补全 NCX/NAV 不含的 spine 章节(封面、前言等),按 spine 顺序插入到 chapters 正确位置。根因:诡秘之主 NCX TOC 不含 cover.xhtml,导致封面不在章节列表。 画廊非全屏排版对齐:清理 _buildGalleryTxt 残留旧方法体代码,_GalleryCell vertical padding 改用 style.cellMarginVertical(原作 margin:10px 0),修复 _parseMarginPx 不必要的 ?? null。
fix(reader): 保留 EPUB 原作者设定的背景色,不做主题覆盖 移除 polyfillBackgroundColor 逻辑:不再将 background-color 改写为 var(--reader-bg-color, 原值)。保留原作者设定的原始背景色,按原作者意图渲染(作者设什么背景色就显示什么背景色)。 删除 polyfillBackgroundColor 函数定义、styleSheets 中的调用、inline style 遍历、bgOverrideEnabled 变量;更新注释说明 background-color 不做覆盖。
fix(reader): 保留 EPUB 原作者设定的背景色,不做主题覆盖 移除 polyfillBackgroundColor 逻辑:不再将 background-color 改写为 var(--reader-bg-color, 原值)。保留原作者设定的原始背景色,按原作者意图渲染(作者设什么背景色就显示什么背景色)。 删除 polyfillBackgroundColor 函数定义、styleSheets 中的调用、inline style 遍历、bgOverrideEnabled 变量;更新注释说明 background-color 不做覆盖。
fix(reader): 对齐 lumina/KT 修复封面页与 CSS 排版混乱 EpubParser: preserveAspectRatio 从 slice 改为 meet(对齐 lumina applyCenteringStyles),slice 裁边会裁切封面,meet 等比缩放完整显示,与 Readium CSS object-fit:contain 一致;_rewriteCoverSvgToSlice 重命名为 _ensureCoverSvgMeet ReaderHtmlTemplate _epubAfterCss(): 移除 #reader-content-a 的 position/top/left/width(破坏 column 布局,固定 width 导致 scrollWidth 只返回单列宽度,翻页全废);合并 3 个重复 html 规则为 1 个;修复 #reader-content-A typo;移除 table 的 break-inside:avoid(大表格会整表推到下一栏导致消失) ReaderHtmlTemplate _epubRichHtmlFallbackCss(): 第15条 img 规则 width:100%!important 改为 max-width:100%(强制铺满列宽破坏作者小图标排版);移除 border-radius:0!important(保留作者圆角装饰);补充 figure/a/dd/pre 兜底规则;新增 .epub-cover img object-fit:contain 兜底
feat(reader): 对齐 Readium Kotlin-toolkit CSS 处理能力 移植 readium-kotlin 的 4 类核心 CSS 处理能力,补全与 Readium CSS 的差距: 1. 链接/选择高亮颜色变量(移植 --USER__linkColor/visitedColor/selectionColor): - 新增 --reader-link-color/visited-color/selection-bg/selection-text 变量 - a:link/a:visited/::selection 规则用变量驱动 - 日间经典蓝紫,夜间浅蓝紫降低对比度 - _linkColor/_visitedColor/_selectionBg 辅助函数按暗色背景自动切换 2. CJK 语言适配(移植 ReadiumCSS-before.css cjk-horizontal :lang() 规则): - :lang(zh/ja/ko) line-break: strict 严格断行 - :lang(zh) PingFang SC / :lang(zh-Hant) PingFang TC 等系统字体族 - :lang(ja) Hiragino Sans / :lang(ko) Apple SD Gothic Neo - CJK body 行高 1.167x 补偿(字符较高避免行距过紧) - CJK a 标签默认无下划线 3. 图片夜间模式处理(移植 --USER__invertImages/darkenImages): - 新增 --reader-invert-images/darken-images 变量 - img filter: brightness(var) invert(var) 叠加 - 夜间 invert=1 反相白底图片,darken=0.85 降低亮度 - 日间 invert=0/darken=1 无视觉效果 4. 虚拟列补齐(移植 appendVirtualColumnIfNeeded from columns.ts): - notifyPageCountReady 计算页数前先补齐虚拟列 - 解决"最后一页半页"snap 错位问题 - 读取 column-count 判断分页模式(滚动模式跳过) - 计算总列数 % 每屏列数,插入空白虚拟列补齐到整数倍
PreviousNext