feat(07): close native text pagination semantics loop
This commit is contained in:
@@ -274,6 +274,26 @@ public final class RDEPUBReaderController: UIViewController {
|
||||
activeHighlights.first { $0.id == id }
|
||||
}
|
||||
|
||||
public func nativeTextSemanticSummary() -> String? {
|
||||
guard let textBook,
|
||||
let page = textBook.page(at: max(readerView.currentPage + 1, 1)) ?? textBook.pages.first else {
|
||||
return nil
|
||||
}
|
||||
|
||||
let metadata = page.metadata
|
||||
var parts = [
|
||||
"page \(page.absolutePageIndex + 1)",
|
||||
"break \(metadata.breakReason.rawValue)",
|
||||
metadata.blockKinds.isEmpty ? nil : "block kinds [\(metadata.blockKinds.map(\.rawValue).joined(separator: ","))]",
|
||||
metadata.semanticHints.isEmpty ? nil : "hints [\(metadata.semanticHints.map(\.rawValue).joined(separator: ","))]",
|
||||
metadata.attachmentPlacements.isEmpty ? nil : "placements [\(metadata.attachmentPlacements.map(\.rawValue).joined(separator: ","))]"
|
||||
].compactMap { $0 }
|
||||
if let firstDiagnostic = metadata.diagnostics.first {
|
||||
parts.append(firstDiagnostic)
|
||||
}
|
||||
return parts.joined(separator: " · ")
|
||||
}
|
||||
|
||||
@discardableResult
|
||||
public func addHighlight(
|
||||
from selection: RDEPUBSelection? = nil,
|
||||
|
||||
Reference in New Issue
Block a user