mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 09:15:33 +00:00
Added ParsedMarginals to LetterRules. Still last TODO open.
This commit is contained in:
@@ -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()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -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";
|
||||||
|
|||||||
Reference in New Issue
Block a user