Исправление парсинга примечаний
This commit is contained in:
@@ -1271,8 +1271,14 @@ class TextPage {
|
||||
if (note) {
|
||||
if (orig) {//show dialog
|
||||
this.noteId = noteId;
|
||||
const pad = (note.para.length > 1 ? 20 : 0);
|
||||
this.noteHtml = note.para.map(p => `<p style="margin: 0; padding-left: ${pad}px">${p}</p>`).join('');
|
||||
this.noteHtml = note.xml
|
||||
.replace(/<p>/g, '<p class="note-para">')
|
||||
.replace(/<stanza>/g, '<br>').replace(/<\/stanza>/g, '')
|
||||
.replace(/<v>/g, '<p class="note-para">').replace(/<\/v>/g, '</p>')
|
||||
.replace(/<emphasis>/g, '<em>').replace(/<\/emphasis>/g, '</em>')
|
||||
.replace(/<text-author>/g, '<br>').replace(/<\/text-author>/g, '')
|
||||
;
|
||||
|
||||
this.noteDialogVisible = true;
|
||||
} else {//go to orig
|
||||
this.goToOrigNote(noteId);
|
||||
@@ -1335,3 +1341,10 @@ export default vueComponent(TextPage);
|
||||
}
|
||||
|
||||
</style>
|
||||
<style>
|
||||
.note-para {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-indent: 20px;
|
||||
}
|
||||
</style>
|
||||
@@ -94,6 +94,7 @@ export default class BookParser {
|
||||
let inNote = false;
|
||||
let noteId = '';
|
||||
let inNotesBody = false;
|
||||
const noteTags = new Set(['p', 'poem', 'stanza', 'v', 'text-author', 'emphasis']);
|
||||
|
||||
//оглавление
|
||||
this.contents = [];
|
||||
@@ -429,7 +430,7 @@ export default class BookParser {
|
||||
}
|
||||
|
||||
note.noteParaIndex = paraIndex;
|
||||
note.para = [];
|
||||
note.xml = '';
|
||||
noteId = id;
|
||||
}
|
||||
|
||||
@@ -447,15 +448,11 @@ export default class BookParser {
|
||||
inPara = true;
|
||||
isFirstTitlePara = false;
|
||||
|
||||
if (inNotesBody && noteId) {
|
||||
if (!inTitle) {
|
||||
this.notes[noteId].para.push('');
|
||||
} else {
|
||||
if (inTitle && inNotesBody && noteId) {
|
||||
growParagraph(`<note href="${noteId}">`, 0);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (tag == 'subtitle') {
|
||||
newParagraph();
|
||||
@@ -487,6 +484,10 @@ export default class BookParser {
|
||||
bold = true;
|
||||
space += 1;
|
||||
}
|
||||
|
||||
if (!inTitle && inNotesBody && noteId && noteTags.has(tag)) {
|
||||
this.notes[noteId].xml += `<${tag}>`;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -551,6 +552,10 @@ export default class BookParser {
|
||||
bold = false;
|
||||
space -= 1;
|
||||
}
|
||||
|
||||
if (!inTitle && inNotesBody && noteId && noteTags.has(tag)) {
|
||||
this.notes[noteId].xml += `</${tag}>`;
|
||||
}
|
||||
}
|
||||
|
||||
let i = path.lastIndexOf(tag);
|
||||
@@ -637,10 +642,8 @@ export default class BookParser {
|
||||
else
|
||||
growParagraph(' ', 1);
|
||||
|
||||
if (!inTitle && inPara && inNotesBody && noteId) {
|
||||
const p = this.notes[noteId].para;
|
||||
if (p.length)
|
||||
p[p.length - 1] = p[p.length - 1] + text;
|
||||
if (!inTitle && inNotesBody && noteId) {
|
||||
this.notes[noteId].xml += text;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user