Adding info about ESLint in README.md
This commit is contained in:
parent
5f3060995b
commit
c8451c07aa
41
README.md
41
README.md
|
@ -25,16 +25,19 @@ flowchart TB
|
||||||
```
|
```
|
||||||
|
|
||||||
Melpomene is mainly one JS file and one CSS file. You only need to include them in you web page. They are :
|
Melpomene is mainly one JS file and one CSS file. You only need to include them in you web page. They are :
|
||||||
+ `melpomene.js`
|
|
||||||
+ `melpomene.css`
|
+ `melpomene.js`
|
||||||
|
|
||||||
|
+ `melpomene.css`
|
||||||
|
|
||||||
The JS files expect you to write some very specific HTML tags to be able to work.
|
The JS files expect you to write some very specific HTML tags to be able to work.
|
||||||
To simplify things, you only need to copy-paste the content of `melpomene.html` into your own page and change a few things :
|
To simplify things, you only need to copy-paste the content of `melpomene.html` into your own page and change a few things :
|
||||||
|
|
||||||
+ You must duplicate the `img` tag for each of you comic page and :
|
+ You must duplicate the `img` tag for each of you comic page and :
|
||||||
+ set `url` to the actual URL of your page
|
+ set `url` to the actual URL of your page
|
||||||
+ set `height` and `width` to the actual image sizes
|
+ set `height` and `width` to the actual image sizes
|
||||||
+ set `data-zooms` with the zooms information, like so : `<zoom 1 width>, <zoom 1 height>, <zoom 1 x offset>, <zoom 1 y offset>; <zoom 2 width> ...`
|
+ set `data-zooms` with the zooms information, like so : `<zoom 1 width>, <zoom 1 height>, <zoom 1 x offset>, <zoom 1 y offset>; <zoom 2 width> ...`
|
||||||
+ example : `<img loading="lazy" src="https://www.peppercarrot.com/0_sources/ep35_The-Reflection/hi-res/en_Pepper-and-Carrot_by-David-Revoy_E35P01.jpg" data-zooms="2481.0,1327.1057,0.0,0.0;593.15338,1076.4635,0.0,1364.053;890.72864,491.29874,830.81415,1751.5;2481.0,1078.4192,0.0,1364.053;562.77032,909.44702,102.48115,2491.6567;920.74463,909.44702,698.55927,2491.6567;728.776,909.44702,1652.3695,2491.6567"/>`
|
+ example : `<img loading="lazy" src="https://www.peppercarrot.com/0_sources/ep35_The-Reflection/hi-res/en_Pepper-and-Carrot_by-David-Revoy_E35P01.jpg" data-zooms="2481.0,1327.1057,0.0,0.0;593.15338,1076.4635,0.0,1364.053;890.72864,491.29874,830.81415,1751.5;2481.0,1078.4192,0.0,1364.053;562.77032,909.4470 2,102.48115,2491.6567;920.74463,909.44702,698.55927,2491.6567;728.776,909.44702,1652.3695,2491.6567"/>`
|
||||||
|
|
||||||
Because doing this by hand would be very tedious, Melpomene comes with an helper script that allows generating that HTML for you from SVGs.
|
Because doing this by hand would be very tedious, Melpomene comes with an helper script that allows generating that HTML for you from SVGs.
|
||||||
|
|
||||||
|
@ -45,7 +48,7 @@ The following limitations are known and will be improved upon :
|
||||||
+ Mobile support is currently limited
|
+ Mobile support is currently limited
|
||||||
+ There are some performences issues
|
+ There are some performences issues
|
||||||
|
|
||||||
# How to setup Melpomene ?
|
# How to use Melpomene ?
|
||||||
|
|
||||||
## Defining the zooms
|
## Defining the zooms
|
||||||
|
|
||||||
|
@ -55,21 +58,21 @@ To do so, you can use your favorite SVG editor. If you don't have one, [Inkscape
|
||||||
To create the zooms for a comic page, what you need to do is :
|
To create the zooms for a comic page, what you need to do is :
|
||||||
|
|
||||||
1. Open your comic page in your editor (make sure to keep the image's original size when importing!)
|
1. Open your comic page in your editor (make sure to keep the image's original size when importing!)
|
||||||
* If your software ask, there is no need to actually import the image, you only need to link it.
|
* If your software ask, there is no need to actually import the image, you only need to link it.
|
||||||
2. Create a simple rectangle over each zoom you want, in the order you want them to show up
|
2. Create a simple rectangle over each zoom you want, in the order you want them to show up
|
||||||
* You can set the rectangle's color to be translucent so you can still see the page underneath them!
|
* You can set the rectangle's color to be translucent so you can still see the page underneath them!
|
||||||
* If you want to change the zoom order, you can change their order in the layer view of your SVG tool if they support it
|
* If you want to change the zoom order, you can change their order in the layer view of your SVG tool if they support it
|
||||||
3. Once you are done, save the SGV
|
3. Once you are done, save the SGV
|
||||||
|
|
||||||
|
|
||||||
## Generating the HTML files
|
## Generating the HTML files
|
||||||
|
|
||||||
Once the SVG for your pages are done, put them in one folder. Then, you can run the zoom generator.
|
Once the SVG for your pages are done, put them in one folder. Then, you can run the zoom generator.
|
||||||
|
|
||||||
You need to open a terminal and then run :
|
You need to open a terminal and then run :
|
||||||
|
|
||||||
+ `python zooms_generator.py <path to the SVG folder> html -p <prefix of the img's url> -e <extension of the img's url>`
|
+ `python zooms_generator.py <path to the SVG folder> html -p <prefix of the img's url> -e <extension of the img's url>`
|
||||||
+ For example, if your comic pages are hosted at `static/comic/page_x.jpg`, the svg must be named `page_x.svg`
|
+ For example, if your comic pages are hosted at `static/comic/page_x.jpg`, the svg must be named `page_x.svg`
|
||||||
and you must run `python zooms_generator.py <path to the SVG folder> html -p /static/comic/ -e jpg`
|
and you must run `python zooms_generator.py <path to the SVG folder> html -p /static/comic/ -e jpg`
|
||||||
+ It will generate the following `img` tag : `<img loading="lazy" src="static/comic/page_x.jpg" data-zooms="..."/>`
|
+ It will generate the following `img` tag : `<img loading="lazy" src="static/comic/page_x.jpg" data-zooms="..."/>`
|
||||||
|
|
||||||
The pages need to be in alphabetical order! It assumes the first page is page 1, the next one is page 2, etc..
|
The pages need to be in alphabetical order! It assumes the first page is page 1, the next one is page 2, etc..
|
||||||
|
@ -89,6 +92,24 @@ If you need to do some global scaling / offset of all zooms in HTML (if for exam
|
||||||
+ If they become greater than the page size, they get clamped to the page size and width / height get reduced to compensate
|
+ If they become greater than the page size, they get clamped to the page size and width / height get reduced to compensate
|
||||||
+ `data-global-zoom-scale="<float value>"` : scale all positions / sizes by this factor
|
+ `data-global-zoom-scale="<float value>"` : scale all positions / sizes by this factor
|
||||||
|
|
||||||
|
# Developpement
|
||||||
|
|
||||||
|
## Setting up quality checking for JS
|
||||||
|
|
||||||
|
Regarding JS, quality checking is done using [eslint](https://eslint.org/).
|
||||||
|
|
||||||
|
The configuration file is `eslint/eslintrc.json`.
|
||||||
|
|
||||||
|
To setup eslint, you can either install it on your system reading it's documentation, or use the provided Dockerfile to run it. This requires [docker](https://www.docker.com/).
|
||||||
|
|
||||||
|
To do so, assuming you are using linux, after installing docker, you can run from this repository root:
|
||||||
|
|
||||||
|
+ `docker build -t melpomene-eslint eslint/`, once
|
||||||
|
|
||||||
|
+ `docker run -v .:/melpomene:rw -w /melpomene --user $(id -u):$(id -g) melpomene-eslint`, every time you want to run the analysis
|
||||||
|
|
||||||
|
You can now open `eslint_report.html` to see the result.
|
||||||
|
|
||||||
# Credits
|
# Credits
|
||||||
|
|
||||||
Most examples and the documentation of Melpomene uses illustrations from David "Deevad" Revoy's "Pepper & Carrot" webcomic, which is published under CC-BY 4.0. Full licence [here](https://www.peppercarrot.com/en/license/index.html).
|
Most examples and the documentation of Melpomene uses illustrations from David "Deevad" Revoy's "Pepper & Carrot" webcomic, which is published under CC-BY 4.0. Full licence [here](https://www.peppercarrot.com/en/license/index.html).
|
||||||
|
|
Loading…
Reference in New Issue