- Notifications
You must be signed in to change notification settings - Fork0
BiB/i | EPUB Reader on your website.
License
link-u/bibi
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
EPUB Reader on your website.
You can publish EPUB books on the web, with full-featured viewer running on web browser.And you can embed it in other webpages (like YouTube videos).
- EPUB 3+ and 2 compliant. Supports both reflowable and fixed-layout books of various language.
- Made with JavaScript. Works compatibly with all major web browsers on various OS/devices.
- Free. Open source software released under the MIT License.
- How to Setup & Read/Publish EPUB Books (for Users/Publishers)
- How to Arrange Development Environment (for Developers)
- License
- Special Thanks
- Supported by
Bibi supports 3 ways to read/publish EPUB books:
- Read in browsers on your offline machine.
- Publish on the web to have your books read by someone.
- Use as an online EPUB viewer for your or visitors' local EPUBs.
In all cases,
- Download Bibi fromGitHub release page orBibi website.
- And unzip it at first.
The folder structure and default public URL has changed in Bibi v1.0.0.But don't worry. You still can use not only the new style URL but also the same old style URL as before.
If you already published books on the web with BiB/i which version is older than v1.0.0, and want to update Bibi to v1.0.0 or newer, but do not want to change the public URLs of the books,
- Please download
Bibi-vX.Y.Z_with_BackCompatKit.zip
, and follow the document in it.
- Open
bibi/index.html
in your browser, and - Drag an EPUB book and drop it into the window.
- That's all!
Demo.
You can publish both unzipped folder and zipped EPUB archive.
Using unzipped folder is recommended for the book which is heavy or contains many files.Using zipped EPUB file is recommended for the book which is light and contains less files.
In both ways, at first, uploadbibi
and 'bibi-bookshelf' folders to the same directory on your web server.bibi
contains all programs of Bibi, and 'bibi-bookshelf' is for the storage of the books you upload.You can use different directory for the bookshelf instead of 'bibi-bookshelf' by editing "bookshelf" option in 'bibi/presets/default.js'.
- Upload
bibi
and 'bibi-bookshelf' folders to the same directory on your web server. - Unzip an EPUB book,
- Change the file extension from
.epub
to.zip
(BOOKNAME.epub
->BOOKNAME.zip
), and - Unzip the file with some tool.
- Change the file extension from
- Upload the unzipped folder
BOOKNAME
intobibi-bookshelf
directory, and - Access to
https://your.web.site/somewhere/bibi/?book=BOOKNAME
by your browser. (note that it has no extension) - Or embed code below into your blog entry or other webpages, and visit the entry.
<a href="https://your.web.site/somewhere/bibi/?book=BOOKNAME" data-bibi="embed" data-bibi-style="[[ CSS for embeded Bibi frame, as you like ]]">[[ Title of the Book ]]</a><script src="https://your.web.site/somewhere/bibi/and/jo.js"></script>
- Upload
bibi
and 'bibi-bookshelf' folders to the same directory on your web server. - Upload your EPUB book (ex.
BOOKNAME.epub
) tobibi-bookshelf
directory, and - Access to
https://your.web.site/somewhere/bibi/?book=BOOKNAME.epub
by your browser. - Or embed code below into your blog entry or other webpages, and visit the entry.
<a href="https://your.web.site/somewhere/bibi/?book=BOOKNAME.epub" data-bibi="embed" data-bibi-style="[[ CSS for embeded Bibi frame, as you like ]]">[[ Title of the Book ]]</a><script src="https://your.web.site/somewhere/bibi/and/jo.js"></script>
- Upload
bibi
folder on your web server. - Navigate visitors to
https://your.web.site/somewhere/bibi/
. - Visitors can read one's local EPUBs by draging and dropping EPUBs into the window.
If you want to terminate this feature, set "no" to "accept-files" inbibi/presets/default.js
.
- Node.js + npm
- Windows development requires additional tools(Python + Visual C++ Build Environment). For more information consult thedocumentation
- Clonethis repository.
- $
cd <the local repository>
- $
npm install
- $
npm start
- webpack generates development version of Bibi to
__dist
folder, and start to watch changes of the files in__src
folder. - BrowserSync webserver launches and navigate your browser to
http://localhost:61671/bibi/?book=
.
- webpack generates development version of Bibi to
- Edit source files.
- If you modify source files in
__src
folder, development version of the file(s) are updated in__dist
folder automaticaly. - BrowserSync reloads your browser(s) or inject changes of CSS.
- If you modify source files in
Files in__dist
folder generated withnpm start
are development version.Please don't forget to runnpm run build
and build production version before you upload.
Distribution | Source |
---|---|
__dist/bibi/*.html | __src/bibi/*.html |
__dist/bibi/and/jo.js | __src/bibi/and/jo.js +__src/bibi/and/jo.scss |
__dist/bibi/extensions/** | __src/bibi/extensions/** |
__dist/bibi/presets/*.js | __src/bibi/presets/*.js |
__dist/bibi/resources/scripts/bibi.js | __src/bibi/resources/scripts/*.js +__src/bibi/resources/scripts/bibi.book.scss |
__dist/bibi/resources/styles/bibi.css | __src/bibi/resources/styles/*.scss |
__dist/bibi/wardrobe/**/*.css | Read documents in__src/bibi/wardrobe/README-DRESS_ja (Sorry..., currently README is Japanese only) |
Files in theDistribution
column of the table are overwritten with the files updated bynpm start
ornpm run build
.If you want to modify them, please edit files in theSource
column instead of editing these files in__dist
directly.
- $
npm run build
- webpack generates production version of Bibi to
__dist
folder. - You can upload them to your online webserver.
- webpack generates production version of Bibi to
- $
npm run make:package
- webpack generates temporary files of production version of Bibi.
- gulp generates zipped archive to
__archives
folder. After that, the temporary files are removed.
- ©Satoru Matsushima (@satorumurmur)
- Open source underthe MIT License
- Core:
- sML.js : © Satoru Matsushima / Licensed underthe MIT License
- UI:
- Material Icons : © Material Design Authors & Google Inc. / Licensed underthe Apache License version 2.0
- Extensions:
- Bibi Zip Loader : © Lunascape / Licensed underthe MIT License
- DOMPurify : © Mario Heiderich / Dual licensed underthe Apache License Version 2.0 or the Mozilla Public License Version 2.0
- JSZip : © Stuart Knightley / Dual licensed underthe MIT License or the GPLv3
- JSZipUtils : © Stuart Knightley / Dual licensed underthe MIT License or the GPLv3
- JS-YAML : © Vitaly Puzrin / Licensed underthe MIT License
- Polyfills:
- classlist-polyfill : by Yola Inc. / Released into the public domain underthe Unlicense
- text-encoding-utf-8 : by Erik Arvidsson / Released into the public domain underthe Unlicense
- IntersectionObserver polyfill : © W3C / Licensed underthe W3C Software and Document License
- custom-event-polyfill : © Evan Krambuhl / Licensed underthe MIT License
- document.currentScript Polyfill : © Adam Miller / Licensed underthe MIT License
- ES6 Object.assign() : © Rubén Norte / Licensed underthe MIT License
- Native Promise Only (NPO) : © Kyle Simpson / Licensed underthe MIT License
- Polyfill Array.prototype.includes : © Kevin Latusinski / Licensed underthe MIT License
- String.prototype.padStart : © Khaled Al-Ansari / Licensed underthe MIT License
- url-polyfill : © Valentin Richard / Licensed underthe MIT License
Thanks to the contributors and the users around the world!
- Bibi v1.2.0 was developed with the huge support and many feedbacks from Media Do Co.,Ltd.
- Bibi v1.0.0 was developed with greateful support and sponsoring from Lunascape.
- Lunascape also developedBibi Zip Loader especially for Bibi, which realized fast progressive loading of zipped EPUBs.
About
BiB/i | EPUB Reader on your website.
Resources
License
Stars
Watchers
Forks
Packages0
Languages
- JavaScript68.8%
- SCSS29.6%
- HTML1.6%