Added more responisiveness to Letter View; TODO: copy letterrules to traditionrules

This commit is contained in:
schnulller
2022-05-26 17:18:50 +02:00
parent 469a2e256e
commit 6433fa7c01
11 changed files with 200 additions and 80 deletions

View File

@@ -64,6 +64,11 @@ public class LetterRules
private static readonly string MARGINALCLASS = HaWeb.Settings.CSSClasses.MARGINALCLASS;
private static readonly string LETTERCLASS = HaWeb.Settings.CSSClasses.LETTERCLASS;
// Marker-Classes
private static readonly string EDITMARKERCLASS = HaWeb.Settings.CSSClasses.EDITMARKERCLASS;
private static readonly string COMMENTMARKERCLASS = HaWeb.Settings.CSSClasses.COMMENTMARKERCLASS;
private static readonly string HANDMARKERCLASS = HaWeb.Settings.CSSClasses.HANDMARKERCLASS;
// Parsing Rules for Letters
// General rules (for the lettertext column, also for parsing the marginals, awa tradtions and editreasons)
public static readonly TagFuncList OTagRules = new TagFuncList() {
@@ -101,12 +106,20 @@ public class LetterRules
( ( x, _) => x.Name == "subsection", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, LETTERCLASS)) ),
( ( x, _) => x.Name == "letterTradition", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TRADITIONCLASS)) ),
( ( x, _) => x.Name == "marginal", (sb, tag, reader) => {
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINALCLASS));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINALCLASS, "m-" + tag["index"]));
reader.State.active_skipwhitespace = !reader.State.active_skipwhitespace;
}),
( ( x, _) => x.Name == "hand", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, HANDCLASS)) ),
( ( x, _) => x.Name == "tabs", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TABLECLASS)) ),
( ( x, _) => x.Name == "tab" && !String.IsNullOrWhiteSpace(x["value"]), (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TABCLASS + tag["value"])))
( ( x, _) => x.Name == "tab" && !String.IsNullOrWhiteSpace(x["value"]), (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TABCLASS + tag["value"]))),
( ( x, _) => x.Name == "edit" && !String.IsNullOrWhiteSpace(x["ref"]), (sb, tag, _) => {
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, EDITMARKERCLASS, "ea-" + tag["ref"]));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
}),
( ( x, _) => x.Name == "hand", (sb, tag, _) => {
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, HANDMARKERCLASS, "ha-" + tag["ref"]));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, HANDCLASS));
})
};
public static readonly TagFuncList CTagRules = new TagFuncList() {
@@ -221,6 +234,9 @@ public class LetterRules
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS));
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,
// so we don't need to enclose it in a seperate div.
var rd = reader.State.ReaderService.RequestStringReader(marginal.Element);

View File

@@ -44,7 +44,6 @@ public static class TraditionRules
private static readonly string MARGINGALBOXCLASS = HaWeb.Settings.CSSClasses.MARGINGALBOXCLASS;
// Zeilen:
// :
private static readonly string ZHLINECLASS = HaWeb.Settings.CSSClasses.ZHLINECLASS;
private static readonly string FIRSTLINECLASS = HaWeb.Settings.CSSClasses.FIRSTLINECLASS;
private static readonly string ZHBREAKCLASS = HaWeb.Settings.CSSClasses.ZHBREAKCLASS;
@@ -70,6 +69,12 @@ public static class TraditionRules
public static readonly string TRADZHTEXTCLASS = HaWeb.Settings.CSSClasses.TRADZHTEXTCLASS;
public static readonly string TRADZHTEXTBOXCLASS = HaWeb.Settings.CSSClasses.TRADZHTEXTBOXCLASS;
// Marker-Classes
private static readonly string EDITMARKERCLASS = HaWeb.Settings.CSSClasses.EDITMARKERCLASS;
private static readonly string COMMENTMARKERCLASS = HaWeb.Settings.CSSClasses.COMMENTMARKERCLASS;
private static readonly string HANDMARKERCLASS = HaWeb.Settings.CSSClasses.HANDMARKERCLASS;
// Parsing Rules for Letters
// General rules (for the lettertext column, also for parsing the marginals, awa tradtions and editreasons)
public static readonly TagFuncList OTagRules = new TagFuncList() {
@@ -236,6 +241,9 @@ public static class TraditionRules
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS));
foreach (var marginal in margs)
{
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, COMMENTMARKERCLASS, marginal.Index));
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
// In Marginal, the Root-Element (<marginal>) is somehow parsed,
// so we don't need to enclose it in a seperate div.
if (marginal.Element != null) {