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:
parent
ff2693af47
commit
4458c7d584
4 changed files with 14 additions and 7 deletions
|
@ -5,6 +5,7 @@ import Contents from "./rendition/contents.js";
|
||||||
import Layout from "./rendition/layout.js";
|
import Layout from "./rendition/layout.js";
|
||||||
import Epub from "./epub/epub.js";
|
import Epub from "./epub/epub.js";
|
||||||
import Manifest from "./manifest/manifest.js";
|
import Manifest from "./manifest/manifest.js";
|
||||||
|
import { generateLocations } from "./utils/locations.js"
|
||||||
// import ePub from "./epub.js";
|
// import ePub from "./epub.js";
|
||||||
export {
|
export {
|
||||||
Publication,
|
Publication,
|
||||||
|
@ -13,5 +14,6 @@ export {
|
||||||
EpubCFI,
|
EpubCFI,
|
||||||
Rendition,
|
Rendition,
|
||||||
Contents,
|
Contents,
|
||||||
Layout
|
Layout,
|
||||||
|
generateLocations
|
||||||
};
|
};
|
||||||
|
|
|
@ -313,12 +313,16 @@ class Publication {
|
||||||
if (!items) {
|
if (!items) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (const item of items) {
|
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);
|
this.data.locations.append(loc);
|
||||||
}
|
}
|
||||||
|
|
||||||
return this.data.locations;
|
return this.data.locations;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,7 @@ import {qs, sprint} from "./core.js";
|
||||||
import Queue from "./queue.js";
|
import Queue from "./queue.js";
|
||||||
import EpubCFI from "./epubcfi.js";
|
import EpubCFI from "./epubcfi.js";
|
||||||
import request from "./request.js";
|
import request from "./request.js";
|
||||||
|
import Locator from "../publication/locator.js";
|
||||||
|
|
||||||
export async function generateLocations(sections, options={}) {
|
export async function generateLocations(sections, options={}) {
|
||||||
let q = new Queue();
|
let q = new Queue();
|
||||||
|
@ -106,7 +107,7 @@ function parse(doc, cfiBase, chars) {
|
||||||
range.endOffset = pos;
|
range.endOffset = pos;
|
||||||
// cfi = section.cfiFromRange(range);
|
// cfi = section.cfiFromRange(range);
|
||||||
let cfi = new EpubCFI(range, cfiBase).toString();
|
let cfi = new EpubCFI(range, cfiBase).toString();
|
||||||
locations.push(cfi);
|
locations.push({cfi});
|
||||||
counter = 0;
|
counter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -120,7 +121,7 @@ function parse(doc, cfiBase, chars) {
|
||||||
range.endContainer = prev;
|
range.endContainer = prev;
|
||||||
range.endOffset = prev.length;
|
range.endOffset = prev.length;
|
||||||
let cfi = new EpubCFI(range, cfiBase).toString();
|
let cfi = new EpubCFI(range, cfiBase).toString();
|
||||||
locations.push(cfi);
|
locations.push({cfi});
|
||||||
counter = 0;
|
counter = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import { defer, requestAnimationFrame } from "./core.js";
|
import { defer } from "./core.js";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Queue for handling tasks one at a time
|
* Queue for handling tasks one at a time
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue