1.0.55 • Published 2 months ago

@ridi/reader.js v1.0.55

Weekly downloads
97
License
MIT
Repository
github
Last release
2 months ago

Reader.js

Javascript library for RIDI EPUB Viewer written in ECMAScript 6

npm version

Install

$ yarn install @ridi/reader.js

Structure

└─┬ root
  ├── LICENSE
  ├── package.json
  ├── README.md
  ├─┬ android
  | └─ index.js
  ├─┬ ios
  | └─ index.js
  └─┬ web
    └─ index.js

Compatibility

  • iOS 8-12
  • Android 4-13 (API Level 14-33)
  • Chrome 30~89
  • Safari 9~11
  • IE 11

Usage

import { Reader, Context, Util } from '@ridi/reader.js/[android|ios|web]';

Terms

  • offset: 화면 내 위치를 나타내는 zero-based 오프셋 값, 페이지 보기의 경우 pageOffset, 스크롤 보기의 경우 scrollY 값을 의미
  • rect: 화면 내 범위를 나타내는 DOMRect를 변형한 MutableClientRect(x, y, width, height, top, left, right, bottom 값을 가지고 있음)
  • range: Range 객체
  • node location: (스파인 내) 위치를 나타내는 자체 포맷 (예: 31#0)
  • serialized range: (스파인 내) 범위를 나타내는 포맷, Rangy 라이브러리에서 제공하는 serialization format 사용 (예: 0/171:0,0/171:30)
  • anchor: HTML anchor 링크의 id 애트리뷰트 값

APIs

선택 영역 관리

  • 렌더링에는 관여하지 않고 선택 영역에 대한 관리만 담당

  • sel.startSelectionMode(x, y)

    • mousedown, touch 이벤트 등 발생 시 위 함수를 호출해 선택 모드로 진입
  • sel.expandUpperSelection(x, y) 또는 sel.expandLowerSelection(x, y) - 선택 방향에 따라 호출 - 여기에서 upper, lower는 선택 영역 양 끝에 나타나는 핸들을 의미
  • sel.getSelectedRange() - 선택 영역을 range 로 반환

독서노트 저장/이동

  • sel.getSelectedSerializedRange() - 선택 영역을 serialized range 포맷으로 반환
  • getOffsetFromSerializedRange(serializedRange) - serialized rangeoffset 으로 변환

목차 이동

  • getOffsetFromAnchor(anchor) - anchor 의 위치를 offset 으로 변환

검색

  • searchText(keyword) - 검색 결과를 serialized range 포맷으로 반환
  • textAroundSearchResult(pre, post) - 검색 결과의 전/후 일부 문장을 포함해 반환
  • getPageOfSearchResult() - 검색 결과의 pageOffset 값을 반환
  • getRectsOfSearchResult() - 검색 결과의 rect 객체를 배열로 반환

링크

  • content.getLinkFromElement(el) - 특정 엘리먼트가 <a> 태그(이거나 그 부모가 <a> 태그)일 경우 그 정보(node, href, type)를 반환 - type으로 epub:type 애트리뷰트의 값 반환 (예: 팝업 주석 링크일 경우 type: 'noteref')

이미지

  • content.reviseImage(imgEl, screenWidth, screenHeight)
    • 이미지 크기를 조정해 이미지가 페이지를 벗어나는 일이 없도록 함
    • 사용 후 페이지 계산 필요
  • content.getSvgElementFromPoint(x, y) - mouseup, touch 이벤트 등 발생 시 해당 포인트에 <svg> 태그 존재 여부 확인 - <svg> 태그가 존재하는 경우 태그의 전체 내용을 문자열로 반환
  • content.getImagePathFromPoint(x, y) - mouseup, touch 이벤트 등 발생 시 해당 포인트에 <img> 태그 존재 여부 확인 - <img> 태그가 존재하는 경우 src 애트리뷰트 값 반환

TTS

  • /common/tts/ 디렉토리 참조
  • node location 기반으로 구현됨

Development

Install

You can install it with the following command:

$ git clone git@github.com:ridi/Reader.js.git
$ yarn install --frozen-lockfile

Build

You can build it with the following command in Reader.js folder:

$ yarn [build|watch]

grunt-cli is required to build Reader.js

1.0.55

2 months ago

1.0.54

3 months ago

1.0.53

4 months ago

1.0.51

6 months ago

1.0.52

6 months ago

2.0.0-alpha.50

6 months ago

1.0.49

10 months ago

1.0.48

12 months ago

2.0.0-alpha.49

12 months ago

2.0.0-alpha.48

2 years ago

2.0.0-alpha.46

3 years ago

2.0.0-alpha.45

3 years ago

2.0.0-alpha.44

3 years ago

1.0.46

3 years ago

2.0.0-alpha.43

3 years ago

1.0.45

3 years ago

1.0.44

3 years ago

1.0.43

3 years ago

2.0.0-alpha.42

4 years ago

2.0.0-alpha.41

4 years ago

2.0.0-alpha.40

4 years ago

2.0.0-alpha.39

4 years ago

2.0.0-alpha.38

4 years ago

2.0.0-alpha.37

4 years ago

2.0.0-alpha.35

4 years ago

2.0.0-alpha.34

4 years ago

2.0.0-alpha.33

4 years ago

1.0.42

4 years ago

2.0.0-alpha.32

4 years ago

2.0.0-alpha.31

4 years ago

1.0.41

4 years ago

1.0.40

4 years ago

2.0.0-alpha.30

5 years ago

2.0.0-alpha.29

5 years ago

1.0.39

5 years ago

2.0.0-alpha.28

5 years ago

1.0.38

5 years ago

2.0.0-alpha.27

5 years ago

2.0.0-alpha.26

5 years ago

2.0.0-alpha.25

5 years ago

1.0.37

5 years ago

1.0.36

5 years ago

1.0.35

5 years ago

2.0.0-alpha.24

5 years ago

2.0.0-alpha.23

5 years ago

2.0.0-alpha.22

5 years ago

1.0.34

5 years ago

2.0.0-alpha.21

5 years ago

2.0.0-alpha.20

5 years ago

2.0.0-alpha.19

5 years ago

2.0.0-alpha.18

5 years ago

2.0.0-alpha.17

5 years ago

2.0.0-alpha.16

5 years ago

2.0.0-alpha.15

5 years ago

1.0.33

5 years ago

2.0.0-alpha.14

5 years ago

2.0.0-alpha.13

5 years ago

2.0.0-alpha.12

5 years ago

1.0.33-alpha.4

5 years ago

1.0.33-alpha.3

5 years ago

1.0.33-alpha.2

5 years ago

1.0.33-alpha.1

5 years ago

2.0.0-alpha.11

5 years ago

2.0.0-alpha.10

5 years ago

2.0.0-alpha.9

5 years ago

2.0.0-alpha.8

5 years ago

2.0.0-alpha.7

5 years ago

2.0.0-alpha.6

5 years ago

2.0.0-alpha.5

5 years ago

2.0.0-alpha.4

5 years ago

2.0.0-alpha.3

5 years ago

2.0.0-alpha.2

5 years ago

2.0.0-alpha.1

5 years ago

1.0.32

6 years ago

1.0.31

6 years ago

1.0.30

6 years ago

1.0.29

6 years ago

1.0.28

6 years ago

1.0.27

6 years ago

1.0.26

6 years ago

1.0.25

6 years ago

1.0.24

6 years ago

1.0.23

6 years ago

1.0.22

6 years ago

1.0.21

6 years ago

1.0.20

6 years ago

1.0.19

6 years ago

1.0.18

6 years ago

1.0.17

6 years ago

1.0.16

6 years ago

1.0.15

6 years ago

1.0.14

6 years ago

1.0.13

6 years ago

1.0.12

6 years ago

1.0.11

6 years ago

1.0.10

6 years ago

1.0.9

6 years ago

1.0.8

6 years ago

1.0.7

6 years ago

1.0.6

6 years ago

1.0.5

7 years ago

1.0.4

7 years ago

1.0.3

7 years ago

1.0.2

7 years ago

1.0.1

7 years ago

1.0.0

7 years ago