Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/btzr-io/Villain

A free and open source web-based comic book reader.
https://github.com/btzr-io/Villain

archive comic comic-books comics-reader libarchive react reader viewer

Last synced: about 2 months ago
JSON representation

A free and open source web-based comic book reader.

Awesome Lists containing this project

README

        


Villain logo


The open source web-based comic book reader that you need, but don't deserve.



npm


Open Collective sponsors


GitHub contributors


GitHub license


Lerna





Screen preview

## What?

A simple open source web-based reader for:

- Manga
- Comic books
- Graphic novels
- Illustrated books

Works on the client side and is easy to integrate on any modern website or react application.

## How?

It relays on cutting-edge web apis and frameworks like react, webworkers and webAssembly:

- Dont expect it to work on a hot potato
- Usage with modern browsers is recommended

## Features

- Dark / light theme
- Manga mode ( Read right to left or default left to right )
- Full screen mode ( Browser fullscreen API integration )
- Easy page navigation : prev / next page buttons, slider component as well and a text input for accessibility
- Keyboard shortcuts ( I need to document this )
- Localization of strings ( Multi language support for the UI )
- Layout mode : Single page / Book ( two pages )

A killer feature is missing ? Open a [feature request](https://github.com/btzr-io/Villain/issues/new?assignees=&labels=&template=feature_request.md&title=)

## Formats

Supported archives formats by [`libarchive.js`](https://github.com/nika-begiashvili/libarchivejs)

- `ZIP`
- `7-Zip`
- `RAR v4`
- `RAR v5`
- `TAR`

## Development

This repository is now a `mono-repo` and is maintained with [lerna](https://github.com/lerna/lerna)

### Setup

Before you jump in the code please follow the initial setup guide for development:

1. Clone or fork this repository.
2. Run `yarn` command to install the project dependencies.
3. Run `yarn bootstrap` to install all dependencies from internal packages and link any cross-dependencies.

Thats it! Now you are ready to start fixing bugs and implementing new features. :tada:

### Packages

Available packages living inside this repository:

| Name | version | Description |
| -------------------------------------------------------------------------------------- | ------------ | ------------------- |
| [villain-web](https://github.com/btzr-io/Villain/tree/master/packages/villain-web) | 0.0.1 (beta) | web app + embed api |
| [villain-react](https://github.com/btzr-io/Villain/tree/master/packages/villain-react) | 1.0.7 | react component |

### Commands

Available package scripts for development:

| Name | Description |
| ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |
| deploy | Deploy [villain-web](https://github.com/btzr-io/Villain/tree/master/packages/villain-web) to github pages |
| bootstrap | Bootstrap the packages in the current mono repo |
| start:web | Start development webpack-dev-server (includes hot-reloading) of [villain-web](https://github.com/btzr-io/Villain/tree/master/packages/villain-web) |
| build:web | Build production version of [villain-web](https://github.com/btzr-io/Villain/tree/master/packages/villain-web) |
| start:react | Start development webpack-dev-server (includes hot-reloading) of [villain-react](https://github.com/btzr-io/Villain/tree/master/packages/villain-react) |
| build:react | Build production version of [villain-react](https://github.com/btzr-io/Villain/tree/master/packages/villain-react) |
| docs:copy | Prepare documents for docsify-cli |
| docsify:serve | Serve docsify generated document on localhost:3000 |

```sh
yarn command-name
```

## Known issues

- Accessibility issues [#23](https://github.com/btzr-io/Villain/issues/23)
- Some `.rar` and `.cbr` fail to load [#1](https://github.com/btzr-io/Villain/issues/1)
- Encrypted archived are not yet supported [#26](https://github.com/btzr-io/Villain/issues/26)

## Credits

- :hammer_and_wrench: Created and maintained by [@btzr-io](https://github.com/btzr-io) with the help of some awesome [contributors](https://github.com/btzr-io/Villain/graphs/contributors).

- :art: Logo and artworks designed by [@btzr-io](https://github.com/btzr-io), see [license](https://github.com/btzr-io/Villain/blob/master/artworks/ARTWORKS_LICENSE.md).