diff --git a/client/components/Reader/SettingsPage/SettingsPage.vue b/client/components/Reader/SettingsPage/SettingsPage.vue index 809a7551..6610ad95 100644 --- a/client/components/Reader/SettingsPage/SettingsPage.vue +++ b/client/components/Reader/SettingsPage/SettingsPage.vue @@ -187,6 +187,12 @@ Убирать пустые параграфы + + + Добавлять пустые + + + diff --git a/client/components/Reader/share/BookParser.js b/client/components/Reader/share/BookParser.js index 1835e676..c0c1f368 100644 --- a/client/components/Reader/share/BookParser.js +++ b/client/components/Reader/share/BookParser.js @@ -17,6 +17,7 @@ export default class BookParser { //настройки if (settings) { this.cutEmptyParagraphs = settings.cutEmptyParagraphs; + this.addEmptyParagraphs = settings.addEmptyParagraphs; } } @@ -53,9 +54,9 @@ export default class BookParser { text: String //текст параграфа (или title или epigraph и т.д) с вложенными тегами } */ - const newParagraph = (text, len) => { + const newParagraph = (text, len, noCut) => { //схлопывание пустых параграфов - if (this.cutEmptyParagraphs && paraIndex >= 0) { + if (!noCut && this.cutEmptyParagraphs && paraIndex >= 0 && len == 1 && text[0] == ' ') { let p = para[paraIndex]; if (p.length == 1 && p.text[0] == ' ') return; @@ -82,6 +83,16 @@ export default class BookParser { let p = para[paraIndex]; if (p) { + //добавление пустых параграфов + if (this.addEmptyParagraphs && p.length == 1 && p.text[0] == ' ' && len > 0) { + let i = this.addEmptyParagraphs; + while (i > 0) { + newParagraph(' ', 1, true); + i--; + } + p = para[paraIndex]; + } + paraOffset -= p.length; if (p.length == 1 && p.text[0] == ' ' && len > 0) { p.length = 0; diff --git a/client/store/modules/reader.js b/client/store/modules/reader.js index 1c440390..db3f8d6b 100644 --- a/client/store/modules/reader.js +++ b/client/store/modules/reader.js @@ -161,7 +161,8 @@ const settingDefaults = { showClickMapPage: true, clickControl: true, cutEmptyParagraphs: false, - + addEmptyParagraphs: 0, + fontShifts: {}, };