1
0
Fork 0
mirror of https://github.com/futurepress/epub.js.git synced 2025-10-04 15:09:16 +02:00

Update location generation

This commit is contained in:
fredc 2022-04-29 16:58:02 -07:00
parent ff2693af47
commit 4458c7d584
4 changed files with 14 additions and 7 deletions

View file

@ -5,6 +5,7 @@ import Contents from "./rendition/contents.js";
import Layout from "./rendition/layout.js";
import Epub from "./epub/epub.js";
import Manifest from "./manifest/manifest.js";
import { generateLocations } from "./utils/locations.js"
// import ePub from "./epub.js";
export {
Publication,
@ -13,5 +14,6 @@ export {
EpubCFI,
Rendition,
Contents,
Layout
Layout,
generateLocations
};

View file

@ -313,12 +313,16 @@ class Publication {
if (!items) {
return;
}
for (const item of items) {
const loc = new Locator({ url: item, cfi: item});
let loc;
if (typeof item === "string") {
loc = new Locator({ url: item, cfi: item});
} else {
const { url, cfi } = item;
loc = new Locator({ url: url || cfi, cfi: cfi || url });
}
this.data.locations.append(loc);
}
return this.data.locations;
}

View file

@ -2,6 +2,7 @@ import {qs, sprint} from "./core.js";
import Queue from "./queue.js";
import EpubCFI from "./epubcfi.js";
import request from "./request.js";
import Locator from "../publication/locator.js";
export async function generateLocations(sections, options={}) {
let q = new Queue();
@ -106,7 +107,7 @@ function parse(doc, cfiBase, chars) {
range.endOffset = pos;
// cfi = section.cfiFromRange(range);
let cfi = new EpubCFI(range, cfiBase).toString();
locations.push(cfi);
locations.push({cfi});
counter = 0;
}
}
@ -120,7 +121,7 @@ function parse(doc, cfiBase, chars) {
range.endContainer = prev;
range.endOffset = prev.length;
let cfi = new EpubCFI(range, cfiBase).toString();
locations.push(cfi);
locations.push({cfi});
counter = 0;
}

View file

@ -1,4 +1,4 @@
import { defer, requestAnimationFrame } from "./core.js";
import { defer } from "./core.js";
/**
* Queue for handling tasks one at a time