Added ParsedMarginals to LetterRules. Still last TODO open.

This commit is contained in:
schnulller
2022-05-26 17:28:45 +02:00
parent 6433fa7c01
commit 97a8ccbe88
2 changed files with 9 additions and 3 deletions

View File

@@ -230,21 +230,24 @@ public class LetterRules
var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline); var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline);
if (margs != null && margs.Any()) if (margs != null && margs.Any())
{ {
var sb2 = new StringBuilder();
margs = margs.OrderBy(x => Int32.Parse(x.Index)); margs = margs.OrderBy(x => Int32.Parse(x.Index));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, COMMENTMARKERCLASS, "ma-" + reader.State.currpage + "-" + reader.State.currline));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS)); sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS));
foreach (var marginal in margs) foreach (var marginal in margs)
{ {
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, COMMENTMARKERCLASS, "ma-" + marginal.Index));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
// In Marginal, the Root-Element (<marginal>) is somehow parsed, // In Marginal, the Root-Element (<marginal>) is somehow parsed,
// so we don't need to enclose it in a seperate div. // so we don't need to enclose it in a seperate div.
var rd = reader.State.ReaderService.RequestStringReader(marginal.Element); var rd = reader.State.ReaderService.RequestStringReader(marginal.Element);
new HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>(reader.State, rd, sb, LetterRules.OTagRules, null, LetterRules.CTagRules, LetterRules.TextRules, LetterRules.WhitespaceRules); new HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>(reader.State, rd, sb, LetterRules.OTagRules, null, LetterRules.CTagRules, LetterRules.TextRules, LetterRules.WhitespaceRules);
new HaWeb.HTMLHelpers.LinkHelper(reader.State.Lib, rd, sb, false); new HaWeb.HTMLHelpers.LinkHelper(reader.State.Lib, rd, sb, false);
new HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.LetterState>(reader.State, rd, sb2, LetterRules.OTagRules, null, LetterRules.CTagRules, LetterRules.TextRules, LetterRules.WhitespaceRules);
new HaWeb.HTMLHelpers.LinkHelper(reader.State.Lib, rd, sb2, false);
rd.Read(); rd.Read();
} }
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)); sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
reader.State.ParsedMarginals.Add((reader.State.currpage, reader.State.currline, sb2.ToString()));
} }
} }

View File

@@ -19,6 +19,8 @@ public class LetterState : HaWeb.HTMLParser.IState {
internal IEnumerable<Hand>? Hands; internal IEnumerable<Hand>? Hands;
internal IEnumerable<Editreason>? Edits; internal IEnumerable<Editreason>? Edits;
internal List<(string, string, string)> ParsedMarginals;
// State // State
internal bool active_del; internal bool active_del;
internal bool active_skipwhitespace; internal bool active_skipwhitespace;
@@ -41,6 +43,7 @@ public class LetterState : HaWeb.HTMLParser.IState {
public void SetupState() { public void SetupState() {
ParsedMarginals = new List<(string, string, string)>();
sb_lettertext = new StringBuilder(); sb_lettertext = new StringBuilder();
active_skipwhitespace = true; active_skipwhitespace = true;
currline = "-1"; currline = "-1";