0.6.1 • Published 5 months ago

binary-web-reader v0.6.1

Weekly downloads
-
License
-
Repository
-
Last release
5 months ago

Headless PDF & EPUB reader for React

EPUB reader built on EPUBJS v3

Суулгах

npm i binary-web-reader
yarn add binary-web-reader

Ашиглах

WebReader компонентийг ашиглахын тулд ReaderProvider. дотор байх шаардлагатай. Жишээ нь:

import { WebReader, ReaderProvider } from "binary-web-reader";

<ReaderProvider>
    <WebReader name="Book name" baseUrl={"http://localahost:3000/files/epub1.epub"} />;
</ReaderProvider>;

Уншигчийн тохиргоонд хандах:

import { useReaderSettings } from "binary-web-reader";
const { settings } = useReaderSettings();

console.log(settings.rendition);

EPUBJS v3 суурилсан ба settings.rendition объектод EPubJS - ийн rendition хадгалсан учир уншигчийн тохиргоог EPubJS - ийн documentation-с харан өөрийн хүссэнээр удирдах боломжтой.

Documentation

Props
NameTypeDescription
nameStringНомны нэр
baseUrlStringТатах хаяг
xhrOptionsObject{requestMethod: "GET", requestHeaders: { Authorization: "Bearere 123198kjnkajdnasd" }}
textToSpeechFunctionАудио тоглуулах товчин дээр дарах үед дуудагдана.
annotationsStringХэрэглэгчийн хадгалсан тэмдэглэл, тодруулга эшлэлүүд
onDeleteAnnnotationFunctionТэмдэглэл устгах үед дуудагдана. Уг функц true буцаасан үед номноос тэмдэглэл устана
onCreateAnnotationFunctionТэмдэглэл нэмэх үед дуудагдана. Уг функц true буцаасан үед ном дээр тэмдэглэл зурагдана.
onUpdateAnnotationFunctionТэмдэглэл засах үед дуудагдана. Уг функц true буцаасан үед ном дээр тэмдэглэл засагдана.
componentsObjectКомпонентууд. Өөрчлөх шаардлагатай тохиололд дамжуулна { notes: <Comp/>, navbar: "<Comp/>", toc: <Comp/>, search: <Comp/> }
Annotation

Дараах бүтэцтэй үүснэ

{
    createdAt: "Mon Aug 28 2023 09:03:49 GMT+0800 (Ulaanbaatar Standard Time)", // Үүсгэсэн огноо
    originalText: "EPUB3 ", // Номон дээрх тектс
    range: "epubcfi(/6/8!/4/2/8[n1]/2,/1:34,/1:40)",
    text: "test", // Тэмдэглэлийн текст
    type: "mark" // "mark", "underline", "cite", "highlight"
}
onDeleteAnnotation жишээ
const onDeleteAnnotation = async (annotation) => {
    try {
        await fetch("URL");
        return true;
    } catch (error) {
        return false;
    }
};

<WebReader
    name="Book name"
    onDeleteAnnotation={onDeleteAnnotation}
    baseUrl={"http://localahost:3000/files/epub1.epub"}
/>;
onUpdateAnnotation жишээ
const onUpdateAnnotation = async (annotation) => {
    try {
        await fetch("URL");
        return true;
    } catch (error) {
        return false;
    }
};

<WebReader
    name="Book name"
    onUpdateAnnotation={onUpdateAnnotation}
    baseUrl={"http://localahost:3000/files/epub1.epub"}
/>;
onCreateAnnotation жишээ
const onCreateAnnotation = async (annotation) => {
    try {
        await fetch("URL");
        return true;
    } catch (error) {
        return false;
    }
};

<WebReader
    type="epub"
    name="Book name"
    onCreateAnnotation={onCreateAnnotation}
    baseUrl={"http://localahost:3000/files/epub1.epub"}
/>;

Тохиргоо

export default interface IReaderSettings {
    theme?: string | "light";
    highlightColor?: string | "yellow";
    isFullscreen?: boolean | false;
    toc: Array<ITableOfContent>;
    annotations: Array<any>;
    rendition: any; // EPUBJS rendition object
    showTOC?: boolean | false;
    showNotes?: boolean | true;
    readerStyle?: React.CSSProperties;
    [key: string]: any;
}

useReaderSettings.

Уншигчийн тохиргоог өөрчлөх
import { useReaderSettings } from "binary-web-reader";
const { changeSettings } = useReaderSettings();

changeSettings({
    highlightColor: "#FF11FF",
});
Фонтны хэмжээ нэмэх
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { increaseFontSize } = useReaderSettings();

    return <button onClick={increaseFontSize}>Increase</button>;
};
Фонтны хэмжээ хасах
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { decreaseFontSize } = useReaderSettings();

    return <button onClick={decreaseFontSize}>Increase</button>;
};
Бүтэн дэлгэц
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { toggleFullscreen, isFullscreen } = useReaderSettings();

    return <button onClick={toggleFullscreen}>{isFullscreen ? "Exit full screen" : "Full screen"}</button>;
};
Хайх модал нээх, хаах
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { toggleSearch } = useReaderSettings();

    return <button onClick={toggleSearch}>Search</button>;
};
Тэмлэглэл нээх,хаах
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { settings, toggleNotes } = useReaderSettings();
    return <button onClick={toggleNotes}>{`${!settings.showNotes ? "Open" : "Close"} annotations`}</button>;
};
Тодруулах өнгө өөрчлөх
import { useReaderSettings } from "binary-web-reader";
const Example = (props) => {
    const { changeHightlight } = useReaderSettings();
    return <button onClick={() => changeHighlight("#FF0000")}>Red highlight</button>;
};
0.5.6

5 months ago

0.5.8

5 months ago

0.5.7

5 months ago

0.6.1

5 months ago

0.6.0

5 months ago

0.5.5

5 months ago

0.5.4

5 months ago

0.5.0

5 months ago

0.4.9

6 months ago

0.4.8

7 months ago

0.4.7

7 months ago

0.4.6

7 months ago

0.4.4

7 months ago

0.4.3

7 months ago

0.4.2

7 months ago

0.4.1

7 months ago

0.4.0

7 months ago

0.3.9

7 months ago

0.3.8

7 months ago

0.3.6

7 months ago

0.3.4

7 months ago

0.3.3

7 months ago

0.3.2

7 months ago

0.3.1

7 months ago

0.3.0

7 months ago

0.2.9

7 months ago

0.2.8

7 months ago

0.2.6

7 months ago

0.2.5

7 months ago

0.2.4

7 months ago

0.2.3

7 months ago

0.2.2

7 months ago

0.2.1

7 months ago

0.2.0

7 months ago

0.1.9

7 months ago

0.1.8

7 months ago

0.1.7

7 months ago

0.1.6

7 months ago

0.1.5

8 months ago

0.1.4

8 months ago

0.1.3

8 months ago

0.1.2

8 months ago

0.1.1

8 months ago

0.1.0

8 months ago

0.0.6

8 months ago

0.0.5

8 months ago

0.0.4

8 months ago

0.0.3

8 months ago

0.0.2

8 months ago

0.0.1

8 months ago