Skip to content
This repository has been archived by the owner on Aug 12, 2022. It is now read-only.

Commit

Permalink
Decorator API (#186)
Browse files Browse the repository at this point in the history
  • Loading branch information
mickael-menu authored Aug 20, 2021
1 parent 0a3e458 commit d9c7931
Show file tree
Hide file tree
Showing 79 changed files with 11,436 additions and 796 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: R2Navigator
name: Build

on:
push:
Expand Down
28 changes: 28 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
name: Lint

on:
push:
branches: [ develop ]
pull_request:
branches: [ develop ]

jobs:
lint:
name: Lint
runs-on: macos-latest
env:
scripts: ${{ 'r2-navigator-swift/EPUB/Scripts' }}

steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install dependencies
run: npm install --prefix "$scripts"
- name: Lint JavaScript
run: yarn --cwd "$scripts" run lint
- name: Check JavaScript formatting
run: yarn --cwd "$scripts" run checkformat
- name: Check if bundled scripts are up-to-date
run: |
make scripts
git diff --exit-code --name-only r2-navigator-swift/EPUB/Assets/Static/scripts
3 changes: 3 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,9 @@ All notable changes to this project will be documented in this file.
* Get or clear the current selection.
* Implement `navigator(_:canPerformAction:for:)` to validate each editing action for the current selection. For example, to make sure the selected text is not too large for a definition look up.
* Implement `navigator(_:shouldShowMenuForSelection:)` to override the default edit menu (`UIMenuController`) with a custom selection pop-up.
* (*alpha*) Support for the [Decorator API](https://github.com/readium/architecture/pull/160) to draw user interface elements over a publication's content.
* This can be used to render highlights over a text selection, for example.
* For now, only the EPUB navigator implements `DecorableNavigator`. You can implement custom decoration styles with `HTMLDecorationTemplate`.
* (*alpha*) A new navigator for audiobooks.
* The navigator is chromeless, so you will need to provide your own user interface.

Expand Down
1 change: 1 addition & 0 deletions Cartfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
github "ra1028/DifferenceKit" ~> 1.2.0
github "readium/r2-shared-swift" "develop"
github "scinfu/SwiftSoup" ~> 2.3.2
1 change: 1 addition & 0 deletions Cartfile.resolved
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
github "cezheng/Fuzi" "3.1.3"
github "dexman/Minizip" "1.4.0"
github "ra1028/DifferenceKit" "1.2.0"
github "readium/r2-shared-swift" "7c66c3b7eb8711946b4fca4a1cce8f5ae0bc6bfe"
github "scinfu/SwiftSoup" "2.3.2"
18 changes: 17 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,20 @@
.PHONY: carthage
.PHONY: carthage scripts
SCRIPTS_PATH := r2-navigator-swift/EPUB/Scripts

help:
@echo "Usage: make <target>\n\n\
carthage\tGenerate the Carthage Xcode project\n\
scripts\tBundle EPUB scripts with Webpack\n\
lint-scripts\tCheck quality of EPUB scripts\n\
"

scripts:
yarn --cwd "$(SCRIPTS_PATH)" run format
yarn --cwd "$(SCRIPTS_PATH)" run bundle

lint-scripts:
yarn --cwd "$(SCRIPTS_PATH)" run lint

carthage:
# For R2Navigator, XcodeGen generates a different project every time for
# some reason. Using the cache prevents this.
Expand Down
2 changes: 2 additions & 0 deletions Package.swift
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,15 @@ let package = Package(
),
],
dependencies: [
.package(url: "https://github.com/ra1028/DifferenceKit.git", from: "1.2.0"),
.package(url: "https://github.com/readium/r2-shared-swift.git", .branch("develop")),
.package(url: "https://github.com/scinfu/SwiftSoup.git", from: "2.3.2"),
],
targets: [
.target(
name: "R2Navigator",
dependencies: [
"DifferenceKit",
"SwiftSoup",
.product(name: "R2Shared", package: "r2-shared-swift"),
],
Expand Down
1 change: 1 addition & 0 deletions project-carthage-as-submodules.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ targets:
- path: r2-navigator-swift
excludes:
- EPUB/Assets
- EPUB/Scripts
- path: r2-navigator-swift/EPUB/Assets
type: folder
dependencies:
Expand Down
1 change: 1 addition & 0 deletions project-carthage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ targets:
- path: r2-navigator-swift
excludes:
- EPUB/Assets
- EPUB/Scripts
- path: r2-navigator-swift/EPUB/Assets
type: folder
dependencies:
Expand Down
73 changes: 63 additions & 10 deletions r2-navigator-swift.xcodeproj/.xcodegen
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@
"sources" : [
{
"excludes" : [
"EPUB\/Assets"
"EPUB\/Assets",
"EPUB\/Scripts"
],
"path" : "r2-navigator-swift"
},
Expand All @@ -66,18 +67,14 @@ r2-navigator-swift/Audiobook/PublicationMediaLoader.swift
r2-navigator-swift/CBZ
r2-navigator-swift/CBZ/CBZNavigatorViewController.swift
r2-navigator-swift/CBZ/ImageViewController.swift
r2-navigator-swift/Decorator
r2-navigator-swift/Decorator/DecorableNavigator.swift
r2-navigator-swift/Decorator/DiffableDecoration.swift
r2-navigator-swift/EditingAction.swift
r2-navigator-swift/EPUB
r2-navigator-swift/EPUB/Assets
r2-navigator-swift/EPUB/Assets/fxl-spread-one.html
r2-navigator-swift/EPUB/Assets/fxl-spread-two.html
r2-navigator-swift/EPUB/Assets/Scripts
r2-navigator-swift/EPUB/Assets/Scripts/css-inline.js
r2-navigator-swift/EPUB/Assets/Scripts/css.js
r2-navigator-swift/EPUB/Assets/Scripts/fixed.js
r2-navigator-swift/EPUB/Assets/Scripts/gestures.js
r2-navigator-swift/EPUB/Assets/Scripts/reflowable.js
r2-navigator-swift/EPUB/Assets/Scripts/utils.js
r2-navigator-swift/EPUB/Assets/Static
r2-navigator-swift/EPUB/Assets/Static/readium-css
r2-navigator-swift/EPUB/Assets/Static/readium-css/cjk-horizontal
Expand All @@ -102,11 +99,66 @@ r2-navigator-swift/EPUB/Assets/Static/readium-css/rtl
r2-navigator-swift/EPUB/Assets/Static/readium-css/rtl/ReadiumCSS-after.css
r2-navigator-swift/EPUB/Assets/Static/readium-css/rtl/ReadiumCSS-before.css
r2-navigator-swift/EPUB/Assets/Static/readium-css/rtl/ReadiumCSS-default.css
r2-navigator-swift/EPUB/Assets/Static/scripts
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-fixed-wrapper.js
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-fixed-wrapper.js.map
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-fixed.js
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-fixed.js.map
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-reflowable.js
r2-navigator-swift/EPUB/Assets/Static/scripts/readium-reflowable.js.map
r2-navigator-swift/EPUB/DiffableDecoration+HTML.swift
r2-navigator-swift/EPUB/EPUBFixedSpreadView.swift
r2-navigator-swift/EPUB/EPUBNavigatorViewController.swift
r2-navigator-swift/EPUB/EPUBReflowableSpreadView.swift
r2-navigator-swift/EPUB/EPUBSpread.swift
r2-navigator-swift/EPUB/EPUBSpreadView.swift
r2-navigator-swift/EPUB/HTMLDecorationTemplate.swift
r2-navigator-swift/EPUB/Scripts
r2-navigator-swift/EPUB/Scripts/.eslintrc.json
r2-navigator-swift/EPUB/Scripts/.gitignore
r2-navigator-swift/EPUB/Scripts/.prettierignore
r2-navigator-swift/EPUB/Scripts/.prettierrc.json
r2-navigator-swift/EPUB/Scripts/package-lock.json
r2-navigator-swift/EPUB/Scripts/package.json
r2-navigator-swift/EPUB/Scripts/README.md
r2-navigator-swift/EPUB/Scripts/src
r2-navigator-swift/EPUB/Scripts/src/decorator.js
r2-navigator-swift/EPUB/Scripts/src/gestures.js
r2-navigator-swift/EPUB/Scripts/src/index-fixed-wrapper.js
r2-navigator-swift/EPUB/Scripts/src/index-fixed.js
r2-navigator-swift/EPUB/Scripts/src/index-reflowable.js
r2-navigator-swift/EPUB/Scripts/src/index.js
r2-navigator-swift/EPUB/Scripts/src/rect.js
r2-navigator-swift/EPUB/Scripts/src/selection.js
r2-navigator-swift/EPUB/Scripts/src/utils.js
r2-navigator-swift/EPUB/Scripts/src/vendor
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/html.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/match-quote.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/pdf.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/placeholder.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/fake-pdf-viewer-application.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-anchoring-fixture.html
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines/index.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines/minimal.html
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines/minimal.json
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines/wikipedia-regression-testing.html
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-baselines/wikipedia-regression-testing.json
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/html-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/match-quote-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/pdf-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/placeholder-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/text-range-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/types-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/test/xpath-test.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/text-range.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/types.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/anchoring/xpath.js
r2-navigator-swift/EPUB/Scripts/src/vendor/hypothesis/README.md
r2-navigator-swift/EPUB/Scripts/webpack.config.js
r2-navigator-swift/EPUB/UserSettings.swift
r2-navigator-swift/Info.plist
r2-navigator-swift/MediaNavigator.swift
Expand All @@ -125,11 +177,12 @@ r2-navigator-swift/Toolkit
r2-navigator-swift/Toolkit/CompletionList.swift
r2-navigator-swift/Toolkit/Extensions
r2-navigator-swift/Toolkit/Extensions/Bundle.swift
r2-navigator-swift/Toolkit/Extensions/CGRect.swift
r2-navigator-swift/Toolkit/Extensions/UIColor.swift
r2-navigator-swift/Toolkit/Extensions/UIView.swift
r2-navigator-swift/Toolkit/Extensions/WKWebView.swift
r2-navigator-swift/Toolkit/PaginationView.swift
r2-navigator-swift/Toolkit/R2NavigatorLocalizedString.swift
r2-navigator-swift/Toolkit/TargetAction.swift
r2-navigator-swift/Toolkit/UIColor.swift
r2-navigator-swift/Toolkit/UIView.swift
r2-navigator-swift/Toolkit/WebView.swift
r2-navigator-swift/VisualNavigator.swift"
Loading

0 comments on commit d9c7931

Please sign in to comment.