Compare commits

..

7 Commits

Author SHA1 Message Date
Book Pauk
a53ebb9355 Merge branch 'release/0.10.3' 2021-10-25 01:54:00 +07:00
Book Pauk
06e12930c7 Актуализирован конвертер для samlib.ru 2021-10-25 01:01:26 +07:00
Book Pauk
0f7655773a Версия 0.10.3 2021-10-20 18:29:52 +07:00
Book Pauk
26660461d4 Исправлен баг парсера с пустыми параграфами (содержащими только разметку) 2021-10-20 18:05:38 +07:00
Book Pauk
b41ee91db5 Актуализировал инструкцию 2021-10-20 15:49:07 +07:00
Book Pauk
746dd8d37a Актуализация инструкции 2021-10-20 15:42:09 +07:00
Book Pauk
fb4a57027d Merge tag '0.10.2' into develop
0.10.2
2021-10-19 23:33:48 +07:00
6 changed files with 57 additions and 29 deletions

View File

@@ -159,7 +159,24 @@ export default class BookParser {
const prevParaIndex = paraIndex;
let p = para[paraIndex];
paraOffset -= p.length;
//добавление пустых (addEmptyParagraphs) параграфов перед текущим непустым
//уберем пробелы с концов параграфа, минимум 1 пробел должен быть у пустого параграфа
let newParaText = p.text.trim();
newParaText = (newParaText.length ? newParaText : ' ');
const ldiff = p.text.length - newParaText.length;
if (ldiff != 0) {
p.text = newParaText;
p.length -= ldiff;
}
//удаление параграфов, которые содержат только разметку, такого не должно быть
if (!p.length) {
delete para[paraIndex];
paraIndex--;
return;
}
//добавление пустых (не)видимых (addEmptyParagraphs) параграфов перед текущим непустым
if (p.text.trim() != '') {
for (let i = 0; i < 2; i++) {
para[paraIndex] = {
@@ -179,15 +196,6 @@ export default class BookParser {
curSubtitle.paraIndex = paraIndex;
}
//уберем пробелы с концов параграфа, минимум 1 пробел должен быть у пустого параграфа
let newParaText = p.text.trim();
newParaText = (newParaText.length ? newParaText : ' ');
const ldiff = p.text.length - newParaText.length;
if (ldiff != 0) {
p.text = newParaText;
p.length -= ldiff;
}
p.index = paraIndex;
p.offset = paraOffset;
para[paraIndex] = p;
@@ -203,7 +211,7 @@ export default class BookParser {
let p = {
index: paraIndex,
offset: paraOffset,
length: len,
length: len,//длина текста внутри параграфа без учета длины разметки
text: text,
addIndex: 0,
};

View File

@@ -1,4 +1,15 @@
export const versionHistory = [
{
showUntil: '2021-10-23',
header: '0.10.3 (2021-10-24)',
content:
`
<ul>
<li>исправления багов</li>
</ul>
`
},
{
showUntil: '2021-10-18',
header: '0.10.2 (2021-10-19)',

View File

@@ -2,6 +2,7 @@
### git, clone
```
cd ~
sudo apt install ssh git
git clone https://github.com/bookpauk/liberama
```
@@ -25,7 +26,8 @@ sudo mkdir /home/liberama
sudo chown www-data.www-data /home/liberama
```
### external converter `calibre`, download from https://download.calibre-ebook.com/
### external converter `calibre`
#### download from https://download.calibre-ebook.com/
```
wget "https://download.calibre-ebook.com/5.29.0/calibre-5.29.0-x86_64.txz"
sudo -u www-data mkdir -p /home/liberama/data/calibre
@@ -34,29 +36,32 @@ sudo -u www-data tar xvf calibre-5.29.0-x86_64.txz -C /home/liberama/data/calibr
### external converters
```
sudo apt install rar
sudo apt install libreoffice
sudo apt install poppler-utils
sudo apt install djvulibre-bin
sudo apt install libtiff-tools
sudo apt install graphicsmagick-imagemagick-compat
sudo apt install rar libreoffice poppler-utils djvulibre-bin libtiff-tools graphicsmagick-imagemagick-compat
```
### nginx, server config
Для своего домена необходимо будет подправить docs/omnireader.ru/omnireader.
Можно также настроить сервер для HTTP, без SSL.
#### Для своего домена необходимо будет подправить docs/omnireader.ru/omnireader и docs/omnireader.ru/omnireader_http
Сначала настроим для HTTP:
```
sudo apt install nginx
sudo cp docs/omnireader.ru/omnireader /etc/nginx/sites-available/omnireader
sudo ln -s /etc/nginx/sites-available/omnireader /etc/nginx/sites-enabled/omnireader
sudo ln -s /etc/nginx/sites-available/omnireader_http /etc/nginx/sites-enabled/omnireader
sudo rm /etc/nginx/sites-enabled/default
sudo service nginx reload
sudo chown -R www-data.www-data /var/www
```
### certbot
Следовать инструкции установки certbot https://certbot.eff.org/lets-encrypt/ubuntubionic-nginx
#### Следовать инструкции установки certbot https://certbot.eff.org/lets-encrypt/ubuntufocal-nginx
После установки сертификата, можно использовать конфиг для nginx c ssl:
```
sudo cp docs/omnireader.ru/omnireader /etc/nginx/sites-available/omnireader
sudo service nginx reload
```
### old.omnireader
#### Старая версия omnireader на базе PHP, можно не устанавливать
```
sudo apt install php7.4 php7.4-curl php7.4-mbstring php7.4-fpm
sudo service php7.4-fpm restart
@@ -68,7 +73,7 @@ sudo -u www-data cp -r docs/omnireader.ru/old/* /home/oldreader
## Запуск по крону
```
* * * * * /root/liberama/docs/omnireader.ru/cron_server.sh
* * * * * ~/liberama/docs/omnireader.ru/cron_server.sh >>~/liberama_cron.log 2>&1
```
## Деплой и запуск
@@ -78,8 +83,8 @@ cd docs/omnireader.ru
./deploy.sh
./start_server.sh
```
После первого запуска будет создан конфигурационный файл `/home/liberama/data/config.json`.
Необходимо переключить приложение в режим `omnireader`, отредактировав опцию `servers`:
```
"servers": [
@@ -91,4 +96,8 @@ cd docs/omnireader.ru
}
]
```
и перезапустить сервер
Для использования установленных внешних конвертеров можно также поправить:
```
"useExternalBookConverter": true,
```
и перезапустить сервер.

2
package-lock.json generated
View File

@@ -1,6 +1,6 @@
{
"name": "Liberama",
"version": "0.10.2",
"version": "0.10.3",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@@ -1,6 +1,6 @@
{
"name": "Liberama",
"version": "0.10.2",
"version": "0.10.3",
"author": "Book Pauk <bookpauk@gmail.com>",
"license": "CC0-1.0",
"repository": "bookpauk/liberama",

View File

@@ -210,11 +210,11 @@ class ConvertSamlib extends ConvertBase {
};
const onComment = (text) => {// eslint-disable-line no-unused-vars
if (text == '--------- Собственно произведение -------------') {
if (text.trim() == '--------- Собственно произведение -------------') {
inText = true;
textFound = true;
}
if (text == '-----------------------------------------------')
if (text.trim() == '-----------------------------------------------')
inText = false;
};