mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-29 01:05:32 +00:00
Worked on Letter MEtadata (Provinienz etc)
This commit is contained in:
@@ -58,10 +58,10 @@ public class Briefecontroller : Controller
|
||||
var model = new BriefeViewModel(this.id, index, generateMetaViewModel(meta, hasMarginals));
|
||||
if (nextmeta != null) model.MetaData.Next = (generateMetaViewModel(nextmeta, false), url + nextmeta.Autopsic);
|
||||
if (prevmeta != null) model.MetaData.Prev = (generateMetaViewModel(prevmeta, false), url + prevmeta.Autopsic);
|
||||
if (hands != null && hands.Any()) model.ParsedHands = HaWeb.HTMLHelpers.BriefeHelpers.CreateHands(_lib, hands);
|
||||
if (editreasons != null && editreasons.Any()) model.ParsedEdits = HaWeb.HTMLHelpers.BriefeHelpers.CreateEdits(_lib, _readerService, editreasons);
|
||||
if (tradition != null && !String.IsNullOrWhiteSpace(tradition.Element)) model.ParsedTradition = HaWeb.HTMLHelpers.BriefeHelpers.CreateTraditions(_lib, _readerService, marginals, tradition);
|
||||
if (text != null && !String.IsNullOrWhiteSpace(text.Element)) model.ParsedText = HaWeb.HTMLHelpers.BriefeHelpers.CreateLetter(_lib, _readerService, meta, text, marginals);
|
||||
if (hands != null && hands.Any()) model.ParsedHands = HaWeb.HTMLHelpers.LetterHelpers.CreateHands(_lib, hands);
|
||||
if (editreasons != null && editreasons.Any()) model.ParsedEdits = HaWeb.HTMLHelpers.LetterHelpers.CreateEdits(_lib, _readerService, editreasons);
|
||||
if (tradition != null && !String.IsNullOrWhiteSpace(tradition.Element)) model.ParsedTradition = HaWeb.HTMLHelpers.LetterHelpers.CreateTraditions(_lib, _readerService, marginals, tradition);
|
||||
if (text != null && !String.IsNullOrWhiteSpace(text.Element)) model.ParsedText = HaWeb.HTMLHelpers.LetterHelpers.CreateLetter(_lib, _readerService, meta, text, marginals);
|
||||
|
||||
// Return
|
||||
return View(model);
|
||||
@@ -77,8 +77,10 @@ public class Briefecontroller : Controller
|
||||
{
|
||||
var senders = meta.Senders.Select(x => _lib.Persons[x].Name) ?? new List<string>();
|
||||
var recivers = meta.Receivers.Select(x => _lib.Persons[x].Name) ?? new List<string>();
|
||||
var zhstring = meta.ZH != null ? HaWeb.HTMLHelpers.LetterHelpers.CreateZHString(meta) : null;
|
||||
return new BriefeMetaViewModel(meta, hasMarginals)
|
||||
{
|
||||
ParsedZHString = zhstring,
|
||||
ParsedSenders = HTMLHelpers.StringHelpers.GetEnumerationString(senders),
|
||||
ParsedReceivers = HTMLHelpers.StringHelpers.GetEnumerationString(recivers)
|
||||
};
|
||||
|
||||
@@ -11,7 +11,7 @@ using System.Xml.Linq;
|
||||
using HaWeb.Settings.ParsingState;
|
||||
using HaWeb.Settings.ParsingRules;
|
||||
|
||||
public static class BriefeHelpers
|
||||
public static class LetterHelpers
|
||||
{
|
||||
public static string CreateLetter(ILibrary lib, IReaderService readerService, Meta meta, Letter letter, IEnumerable<Marginal>? marginals)
|
||||
{
|
||||
@@ -32,29 +32,29 @@ public static class BriefeHelpers
|
||||
public static string CreateTraditions(ILibrary lib, IReaderService readerService, IEnumerable<Marginal>? marginals, Tradition tradition)
|
||||
{
|
||||
var rd = readerService.RequestStringReader(tradition.Element);
|
||||
var traditionState = new TraditionState(lib, rd, marginals);
|
||||
new HaWeb.HTMLParser.XMLHelper<TraditionState>(traditionState, rd, traditionState.sb_tradition, TraditionRules.OTagRulesInitial, null, TraditionRules.CTagRulesInitial, null, null);
|
||||
new HaWeb.HTMLParser.XMLHelper<TraditionState>(traditionState, rd, traditionState.sb_tradition, TraditionRules.OTagRules, TraditionRules.STagRulesInitial, TraditionRules.CTagRules, TraditionRules.TextRules, TraditionRules.WhitespaceRules);
|
||||
var traditionState = new TraditionState(lib, rd, readerService, marginals);
|
||||
new HaWeb.HTMLParser.XMLHelper<TraditionState>(traditionState, rd, traditionState.sb_tradition, TraditionRules.OTagRules, TraditionRules.STagRules, TraditionRules.CTagRules, TraditionRules.TextRules, TraditionRules.WhitespaceRules);
|
||||
new HaWeb.HTMLHelpers.LinkHelper(lib, rd, traditionState.sb_tradition);
|
||||
rd.Read();
|
||||
return traditionState.sb_tradition.ToString();
|
||||
}
|
||||
|
||||
public static List<string> CreateEdits(ILibrary lib, IReaderService readerService, IEnumerable<Editreason> editreasons)
|
||||
public static List<(string, string, string, string, string, string)> CreateEdits(ILibrary lib, IReaderService readerService, IEnumerable<Editreason> editreasons)
|
||||
{
|
||||
var editstrings = new List<string>();
|
||||
editreasons = editreasons.OrderBy(x => HaWeb.HTMLHelpers.ConversionHelpers.RomanOrNumberToInt(x.StartPage)).ThenBy(x => HaWeb.HTMLHelpers.ConversionHelpers.RomanOrNumberToInt(x.StartLine));
|
||||
var editstrings = new List<(string, string, string, string, string, string)>();
|
||||
var editsState = new EditState();
|
||||
foreach (var edit in editreasons)
|
||||
{
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("div", "edit"));
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("span", "pageline"));
|
||||
var currstring = edit.StartPage + "/" + edit.StartLine;
|
||||
var endstring = "";
|
||||
var refstring = "";
|
||||
if (edit.StartPage != edit.EndPage)
|
||||
currstring += "–" + edit.EndPage + "/" + edit.EndLine;
|
||||
endstring += edit.EndPage + "/" + edit.EndLine;
|
||||
else if (edit.StartLine != edit.EndLine)
|
||||
currstring += "–" + edit.EndLine;
|
||||
editsState.sb_edits.Append(currstring + " ");
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement("span"));
|
||||
endstring += edit.EndLine;
|
||||
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("div", "edit"));
|
||||
if (!String.IsNullOrWhiteSpace(edit.Reference))
|
||||
{
|
||||
var sb2 = new StringBuilder();
|
||||
@@ -67,16 +67,17 @@ public static class BriefeHelpers
|
||||
{
|
||||
var text = XElement.Parse(sb2.ToString()).Value.ToString();
|
||||
text = text.ToString().Split(' ').Take(1).First() + " […] " + text.ToString().Split(' ').TakeLast(1).First();
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("span", "reference"));
|
||||
editsState.sb_edits.Append(text);
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement("span"));
|
||||
var sb3 = new StringBuilder();
|
||||
sb3.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("span", "reference"));
|
||||
sb3.Append(text);
|
||||
sb3.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement("span"));
|
||||
refstring = sb3.ToString();
|
||||
}
|
||||
else
|
||||
editsState.sb_edits.Append(sb2);
|
||||
refstring = sb2.ToString();
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(edit.Element))
|
||||
{
|
||||
editsState.sb_edits.Append(" ");
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("span", "corrections"));
|
||||
var rd = readerService.RequestStringReader(edit.Element);
|
||||
new HaWeb.HTMLParser.XMLHelper<EditState>(editsState, rd, editsState.sb_edits, EditRules.OTagRules, EditRules.STagRules, EditRules.CTagRules, EditRules.TextRules, EditRules.WhitespaceRules);
|
||||
@@ -84,30 +85,41 @@ public static class BriefeHelpers
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement("span"));
|
||||
}
|
||||
editsState.sb_edits.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement("div"));
|
||||
editstrings.Add(editsState.sb_edits.ToString());
|
||||
editstrings.Add((currstring, endstring, refstring, editsState.sb_edits.ToString(), edit.StartPage, edit.StartLine));
|
||||
editsState.sb_edits.Clear();
|
||||
}
|
||||
return editstrings;
|
||||
}
|
||||
|
||||
public static List<string> CreateHands(ILibrary lib, ImmutableList<Hand> hands)
|
||||
public static List<(string, string, string, string, string)> CreateHands(ILibrary lib, ImmutableList<Hand> hands)
|
||||
{
|
||||
var handstrings = new List<string>();
|
||||
var handstrings = new List<(string, string, string, string, string)>();
|
||||
foreach (var hand in hands.OrderBy(x => x.StartPage.Length).ThenBy(x => x.StartPage).ThenBy(x => x.StartLine.Length).ThenBy(x => x.StartLine))
|
||||
{
|
||||
var currstring = hand.StartPage + "/" + hand.StartLine;
|
||||
var endstring = "";
|
||||
var personstring = "";
|
||||
if (hand.StartPage != hand.EndPage)
|
||||
currstring += "–" + hand.EndPage + "/" + hand.EndLine;
|
||||
endstring += hand.EndPage + "/" + hand.EndLine;
|
||||
else
|
||||
if (hand.StartLine != hand.EndLine)
|
||||
currstring += "–" + hand.EndLine;
|
||||
endstring += hand.EndLine;
|
||||
var persons = lib.HandPersons.Where(x => x.Key == hand.Person);
|
||||
if (persons.Any())
|
||||
{
|
||||
currstring += " " + persons.FirstOrDefault().Value.Name;
|
||||
handstrings.Add(currstring);
|
||||
personstring += " " + persons.FirstOrDefault().Value.Name;
|
||||
handstrings.Add((currstring, endstring, personstring, hand.StartPage, hand.StartLine));
|
||||
}
|
||||
}
|
||||
return handstrings;
|
||||
}
|
||||
|
||||
public static string CreateZHString(Meta meta) {
|
||||
var zhstrring = "ZH ";
|
||||
var a = 1;
|
||||
if (Int32.TryParse(meta.ZH.Volume, out a))
|
||||
zhstrring += HTMLHelpers.ConversionHelpers.ToRoman(a) + " ";
|
||||
zhstrring += meta.ZH.Page;
|
||||
return zhstrring;
|
||||
}
|
||||
}
|
||||
@@ -10,8 +10,10 @@ public class BriefeViewModel
|
||||
public string? ParsedLineCount { get; set; }
|
||||
public string? ParsedMarginals { get; set; }
|
||||
public string? ParsedTradition { get; set; }
|
||||
public List<string>? ParsedEdits { get; set; }
|
||||
public List<string>? ParsedHands { get; set; }
|
||||
// From, Until, Reference, Edit, sartpage, startline
|
||||
public List<(string, string, string, string, string, string)>? ParsedEdits { get; set; }
|
||||
// From, Until, Person, startpage, startline
|
||||
public List<(string, string, string, string, string)>? ParsedHands { get; set; }
|
||||
|
||||
public BriefeViewModel(string id, string index, BriefeMetaViewModel meta)
|
||||
{
|
||||
|
||||
@@ -25,6 +25,16 @@ Veränderungen im Code
|
||||
- Code open source zugänglich machen?
|
||||
|
||||
Für diese Anpassungen sind in etwa 3-4 Monate eingeplant.
|
||||
|
||||
- Ladezeiten (???)
|
||||
- PDF-Parser
|
||||
- PDF-Parser
|
||||
|
||||
hamann-werke.de
|
||||
Startseite für die Briefausgebe / Werkausgabe. Unterschiedliche Menüs für die Ausgaben...
|
||||
|
||||
Briefe beim Namen
|
||||
|
||||
- GND Normdaten der Namen
|
||||
|
||||
- Esther falsch abgekürzt
|
||||
- Marginalien in dne Traditions an die falsche Zeile gesetzt
|
||||
- Lessing-Registereitrag
|
||||
@@ -66,7 +66,7 @@ public static class EditRules {
|
||||
( ( x, _) => x.Name == "aq", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, AQCLASS)) ),
|
||||
( ( x, _) => x.Name == "super", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, SUPERCLASS)) ),
|
||||
( ( x, _) => x.Name == "del", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, "del"));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, DELCLASS));
|
||||
reader.State.active_del = true;
|
||||
}),
|
||||
( ( x, _) => x.Name == "nr", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, NRCLASS)) ),
|
||||
@@ -149,6 +149,10 @@ public static class EditRules {
|
||||
sb.Append(txt.Value);
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
})};
|
||||
|
||||
public static readonly TagFuncList STagRules = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "line", (sb, tag, _) => sb.Append(" ") )
|
||||
};
|
||||
|
||||
public static readonly WhitespaceFuncList WhitespaceRules = new WhitespaceFuncList() {
|
||||
( ( _, _) => true, ( sb, txt, reader) => {
|
||||
@@ -157,8 +161,4 @@ public static class EditRules {
|
||||
else
|
||||
reader.State.active_skipwhitespace = !reader.State.active_skipwhitespace;
|
||||
})};
|
||||
|
||||
public static readonly TagFuncList STagRules = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "line", (sb, tag, _) => sb.Append(" ") )
|
||||
};
|
||||
}
|
||||
@@ -74,7 +74,7 @@ public class LetterRules
|
||||
( ( x, _) => x.Name == "aq", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, AQCLASS)) ),
|
||||
( ( x, _) => x.Name == "super", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, SUPERCLASS)) ),
|
||||
( ( x, _) => x.Name == "del", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, "del"));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, DELCLASS));
|
||||
reader.State.active_del = true;
|
||||
}),
|
||||
( ( x, _) => x.Name == "nr", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, NRCLASS)) ),
|
||||
|
||||
@@ -44,6 +44,9 @@ 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;
|
||||
private static readonly string LINELINECLASS = HaWeb.Settings.CSSClasses.LINELINECLASS;
|
||||
private static readonly string LINEINDENTCLASS = HaWeb.Settings.CSSClasses.LINEINDENTCLASS;
|
||||
@@ -77,7 +80,7 @@ public static class TraditionRules
|
||||
( ( x, _) => x.Name == "aq", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, AQCLASS)) ),
|
||||
( ( x, _) => x.Name == "super", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, SUPERCLASS)) ),
|
||||
( ( x, _) => x.Name == "del", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, "del"));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, DELCLASS));
|
||||
reader.State.active_del = true;
|
||||
}),
|
||||
( ( x, _) => x.Name == "nr", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, NRCLASS)) ),
|
||||
@@ -97,7 +100,6 @@ public static class TraditionRules
|
||||
( ( x, _) => x.Name == "bzg", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, BZGCLASS)) ),
|
||||
( ( x, _) => x.Name == "zh", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHCLASS)) ),
|
||||
( ( x, _) => x.Name == "emph", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, EMPHCLASS)); } ),
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, APPCLASS)); } ),
|
||||
( ( x, _) => x.Name == "subsection", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, SUBSECTIONCLASS, tag["id"])) ),
|
||||
( ( x, _) => x.Name == "kommentar", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, COMMENTCLASS, tag["id"])) ),
|
||||
( ( x, _) => x.Name == "editreason", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, EDITREASONCLASS)) ),
|
||||
@@ -109,8 +111,15 @@ public static class TraditionRules
|
||||
}),
|
||||
( ( 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"]))),
|
||||
|
||||
|
||||
// Tradition specific:
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, APPCLASS)); } ),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
reader.State.sb_tradition.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TRADZHTEXTCLASS));
|
||||
reader.State.active_trad = true;
|
||||
})};
|
||||
|
||||
public static readonly TagFuncList CTagRules = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "align", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
@@ -139,7 +148,6 @@ public static class TraditionRules
|
||||
( ( x, _) => x.Name == "bzg", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "zh", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "emph", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "subsection", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "kommentar", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "editreason", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
@@ -148,8 +156,14 @@ public static class TraditionRules
|
||||
( ( x, _) => x.Name == "marginal", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "tabs", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "tab", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "hand", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) )
|
||||
};
|
||||
( ( x, _) => x.Name == "hand", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
|
||||
// Tradition specifics
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT)) ),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
reader.State.sb_tradition.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.active_trad = false;
|
||||
})};
|
||||
|
||||
public static readonly TextFuncList TextRules = new TextFuncList() {
|
||||
( ( x, _) => true, (sb, txt, reader) => {
|
||||
@@ -165,76 +179,92 @@ public static class TraditionRules
|
||||
( (x, _) => x.Name == "page", (sb, tag, reader) => reader.State.currpage = tag["index"] ),
|
||||
( (x, _) => x.Name == "line", (sb, tag, reader) => {
|
||||
// This is the beginning of the Text, so no <br> needed, just a special linecount
|
||||
if(reader.State.currline == "-1") {
|
||||
reader.State.currline = tag["index"];
|
||||
// Tradition specific: only do this if in ZHText
|
||||
if (reader.State.active_trad) {
|
||||
if(reader.State.currline == "-1") {
|
||||
reader.State.currline = tag["index"];
|
||||
|
||||
// First Linecount
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
sb.Append("S." + " ");
|
||||
if (tag["index"] != "1")
|
||||
sb.Append(reader.State.currpage + " / " + tag["index"]);
|
||||
else
|
||||
sb.Append(reader.State.currpage);
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
// First Linecount
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHPAGECLASS + " " + FIRSTLINECLASS, ""));
|
||||
|
||||
// This is NOT the beginning of the text, so we set a br, and then, linecount
|
||||
else {
|
||||
reader.State.currline = tag["index"];
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br", ZHBREAKCLASS));
|
||||
|
||||
// Linecount
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
|
||||
// Fall 1: Neue Seite
|
||||
if (reader.State.currline == "1") {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHPAGECLASS, ""));
|
||||
sb.Append("S. " + reader.State.currpage);
|
||||
}
|
||||
|
||||
// Fall 2: Neue Zeile, teilbar durch 5
|
||||
else if (Int32.TryParse(tag["index"], out var _) && Int32.Parse(tag["index"]) % 5 == 0) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHPAGECLASS, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
|
||||
// Fall 3: Neue Zeile, nicht teilbar durch 5, deswegen versteckt
|
||||
else {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHPAGECLASS + " " + HIDDENZHLINECOUNT, ""));
|
||||
sb.Append(tag["index"]);
|
||||
sb.Append("S." + " ");
|
||||
if (tag["index"] != "1")
|
||||
sb.Append(reader.State.currpage + " / " + tag["index"]);
|
||||
else
|
||||
sb.Append(reader.State.currpage);
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
/// This is NOT the beginning of the text, so we set a br, and then, linecount
|
||||
else {
|
||||
reader.State.currline = tag["index"];
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br", ZHBREAKCLASS));
|
||||
|
||||
// Marginalien
|
||||
if(reader.State.Marginals != null) {
|
||||
var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline);
|
||||
if (margs != null && margs.Any())
|
||||
{
|
||||
margs = margs.OrderBy(x => Int32.Parse(x.Index));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS));
|
||||
foreach (var marginal in margs)
|
||||
{
|
||||
// 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);
|
||||
new HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.TraditionState>(reader.State, rd, sb, TraditionRules.OTagRules, null, TraditionRules.CTagRules, TraditionRules.TextRules, TraditionRules.WhitespaceRules);
|
||||
new HaWeb.HTMLHelpers.LinkHelper(reader.State.Lib, rd, sb, false);
|
||||
rd.Read();
|
||||
// Linecount
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
|
||||
// Fall 1: Neue Seite
|
||||
if (reader.State.currline == "1") {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHPAGECLASS, ""));
|
||||
sb.Append("S. " + reader.State.currpage);
|
||||
}
|
||||
|
||||
// Fall 2: Neue Zeile, teilbar durch 5
|
||||
else if (Int32.TryParse(tag["index"], out var _) && Int32.Parse(tag["index"]) % 5 == 0) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECLASS, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
|
||||
// Fall 3: Neue Zeile, nicht teilbar durch 5, deswegen versteckt
|
||||
else {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, ZHLINECLASS + " " + HIDDENZHLINECOUNT, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
|
||||
// Marginalien
|
||||
if(reader.State.Marginals != null) {
|
||||
var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline);
|
||||
if (margs != null && margs.Any())
|
||||
{
|
||||
margs = margs.OrderBy(x => Int32.Parse(x.Index));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, MARGINGALBOXCLASS));
|
||||
foreach (var marginal in margs)
|
||||
{
|
||||
// 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) {
|
||||
var rd = reader.State.ReaderService.RequestStringReader(marginal.Element);
|
||||
new HaWeb.HTMLParser.XMLHelper<HaWeb.Settings.ParsingState.TraditionState>(reader.State, rd, sb, TraditionRules.OTagRules, null, TraditionRules.CTagRules, TraditionRules.TextRules, TraditionRules.WhitespaceRules);
|
||||
new HaWeb.HTMLHelpers.LinkHelper(reader.State.Lib, rd, sb, false);
|
||||
rd.Read();
|
||||
}
|
||||
}
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
}
|
||||
|
||||
// Line type=line
|
||||
if(tag["type"] == "line") {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, LINELINECLASS));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
|
||||
// Line tab=
|
||||
if(!String.IsNullOrWhiteSpace(tag["tab"])) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, LINEINDENTCLASS + tag["tab"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
}
|
||||
}
|
||||
|
||||
// Line type=line
|
||||
if(tag["type"] == "line") sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, LINELINECLASS));
|
||||
|
||||
// Line tab=
|
||||
if(!String.IsNullOrWhiteSpace(tag["tab"])) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, LINEINDENTCLASS + tag["tab"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
// Tradition specific: only do this if not in ZHText
|
||||
if (!reader.State.active_trad) {
|
||||
sb.Append("<br>");
|
||||
}
|
||||
}
|
||||
)};
|
||||
@@ -246,37 +276,4 @@ public static class TraditionRules
|
||||
else
|
||||
reader.State.active_skipwhitespace = !reader.State.active_skipwhitespace;
|
||||
})};
|
||||
|
||||
|
||||
|
||||
|
||||
public static readonly TagFuncList OTagRulesInitial = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "app", (sb, tag, reader) => {
|
||||
if (!reader.State.active_firstedit)
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br"));
|
||||
else
|
||||
reader.State.active_firstedit = false;
|
||||
}),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
reader.State.sb_tradition.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TRADZHTEXTCLASS));
|
||||
reader.State.currline = "-1";
|
||||
reader.State.currpage = "";
|
||||
reader.State.active_trad = true;
|
||||
})};
|
||||
|
||||
public static readonly TagFuncList CTagRulesInitial = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
reader.State.sb_tradition.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.active_trad = false;
|
||||
})};
|
||||
|
||||
public static readonly TagFuncList STagRulesInitial = new TagFuncList() {
|
||||
( ( x, _) => x.Name == "line", (sb, tag, reader) => {
|
||||
if(reader.State.currline != "-1" || !reader.State.active_trad)
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br", ZHBREAKCLASS));
|
||||
}),
|
||||
( ( x, _) => x.Name == "line" && !String.IsNullOrWhiteSpace(x["tab"]), (sb, tag, _) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, TABCLASS + tag["tab"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
})};
|
||||
}
|
||||
@@ -24,11 +24,12 @@ public class TraditionState : HaWeb.HTMLParser.IState {
|
||||
|
||||
internal IReader rd_tradition;
|
||||
|
||||
public TraditionState(ILibrary lib, IReader reader, IEnumerable<Marginal>? marginals)
|
||||
public TraditionState(ILibrary lib, IReader reader, IReaderService readerService, IEnumerable<Marginal>? marginals)
|
||||
{
|
||||
Lib = lib;
|
||||
rd_tradition = reader;
|
||||
Marginals = marginals;
|
||||
ReaderService = readerService;
|
||||
SetupState();
|
||||
}
|
||||
|
||||
|
||||
@@ -16,9 +16,11 @@
|
||||
@Model.MetaData.Prev.Value.Item1.Meta.Autopsic ◀
|
||||
</a>
|
||||
}
|
||||
|
||||
<div class="ha-hkb">
|
||||
HKB
|
||||
</div>
|
||||
|
||||
@if (Model.MetaData.Next != null) {
|
||||
<a href="@Model.MetaData.Next.Value.Item2">
|
||||
▶ @Model.MetaData.Next.Value.Item1.Meta.Autopsic
|
||||
@@ -39,10 +41,44 @@
|
||||
@if (Model.ParsedTradition != null) {
|
||||
@Html.Raw(Model.ParsedTradition)
|
||||
}
|
||||
@if(Model.ParsedHands != null && Model.ParsedHands.Any()) {
|
||||
<div class="ha-hands">
|
||||
<div class="ha-handstitle">Zusätze fremder Hand</div>
|
||||
<div class="ha-handentries">
|
||||
<table>
|
||||
@foreach (var hand in Model.ParsedHands) {
|
||||
<tr class="ha-handentry">
|
||||
@* Not beautiful, but here's whitespace in between otherwise *@
|
||||
<td><div class="ha-handfrom">@hand.Item1</div>@if (!String.IsNullOrEmpty(hand.Item2)) {<div class="ha-handto">–@hand.Item2</div>
|
||||
}</td>
|
||||
<td class="ha-handperson">@hand.Item3</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Model.ParsedEdits != null) {
|
||||
@foreach (var edit in Model.ParsedEdits) {
|
||||
@Html.Raw(edit)
|
||||
}
|
||||
<div class="ha-edits">
|
||||
<div class="ha-editstitle">Textkritische Anmerkungen</div>
|
||||
<div class="ha-editentries">
|
||||
<table>
|
||||
@foreach (var edit in Model.ParsedEdits) {
|
||||
<tr>
|
||||
<td>
|
||||
<div class="ha-editfrom">@edit.Item1</div>
|
||||
@if (!String.IsNullOrEmpty(edit.Item2)) {
|
||||
<div class="ha-editto">–@edit.Item2</div>
|
||||
}
|
||||
</td>
|
||||
<td class="ha-editreference">@Html.Raw(@edit.Item3)</td>
|
||||
<td class="ha-editreas">@Html.Raw(@edit.Item4)</td>
|
||||
</tr>
|
||||
}
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
<div class="ha-footer ">
|
||||
<div class="ha-footer">
|
||||
<a href="/Edition/Kontakt">Kontakt</a> · <a href="/Edition/Datenschutzerklaerung">Datenschutzerklärung</a>
|
||||
</div>
|
||||
@@ -28,15 +28,20 @@
|
||||
|
||||
</head>
|
||||
|
||||
<body class="w-full h-full">
|
||||
<body class="w-full ">
|
||||
<div class="relative min-h-screen">
|
||||
<div class="pb-24">
|
||||
@await Html.PartialAsync("/Views/Shared/_Menu.cshtml")
|
||||
|
||||
<main role="main" class="pb-3 w-full desktop:max-w-screen-desktop mx-auto">
|
||||
@RenderBody()
|
||||
</main>
|
||||
|
||||
@await Html.PartialAsync("/Views/Shared/_Footer.cshtml")
|
||||
|
||||
</div>
|
||||
<div class="absolute bottom-0 w-full">
|
||||
@await Html.PartialAsync("/Views/Shared/_Footer.cshtml")
|
||||
</div>
|
||||
</div>
|
||||
<environment exclude="Development">
|
||||
@await Html.PartialAsync("/Views/Shared/_Javascript.cshtml")
|
||||
</environment>
|
||||
|
||||
@@ -12,6 +12,21 @@
|
||||
<div class="ha-metadatadate">
|
||||
@Model.Meta.Date
|
||||
</div>
|
||||
@if (Model.ParsedZHString != null) {
|
||||
<div class="ha-tooltip">
|
||||
<div class="ha-pill">
|
||||
<span>@Model.ParsedZHString</span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
else {
|
||||
<div class="ha-tooltip">
|
||||
<div class="ha-pill">
|
||||
<span>Neu</span>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Model.Meta.hasOriginal != HaDocument.Models.OptionalBool.True) {
|
||||
<div class="ha-tooltip">
|
||||
<div class="ha-pill">
|
||||
@@ -38,8 +53,8 @@
|
||||
<div class="ha-pill">
|
||||
<span class="ha-cross">geprüft</span>
|
||||
</div>
|
||||
<div class="ha-tooltiptext">
|
||||
Nicht textkritisch geprüft
|
||||
<div class="ha-tooltiptext whitespace-nowrap">
|
||||
Noch nicht textkritisch geprüft
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
@@ -48,18 +63,29 @@
|
||||
<div class="ha-pill">
|
||||
geprüft
|
||||
</div>
|
||||
<div class="ha-tooltiptext">
|
||||
<div class="ha-tooltiptext whitespace-nowrap">
|
||||
Textkritisch geprüft
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Model.Meta.ZH != null && Model.Meta.ZH.dateChanged) {
|
||||
<div class="ha-tooltip">
|
||||
<div class="ha-pill">
|
||||
neu datiert
|
||||
</div>
|
||||
<div class="ha-tooltiptext whitespace-nowrap" style="margin-left: -165px;">
|
||||
Der Brief wurde gegenüber der Ausgabe ZH neu datiert
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
|
||||
@if (Model.HasMarginals) {
|
||||
<div class="ha-tooltip">
|
||||
<div class="ha-pill">
|
||||
Komm
|
||||
</div>
|
||||
<div class="ha-tooltiptext">
|
||||
<div class="ha-tooltiptext whitespace-nowrap">
|
||||
Mit Stellenkommentar
|
||||
</div>
|
||||
</div>
|
||||
@@ -70,7 +96,7 @@
|
||||
<span>@Model.ParsedSenders</span>
|
||||
<div class="ha-tooltip">
|
||||
↛
|
||||
<div class="ha-tooltiptext">
|
||||
<div class="ha-tooltiptext" style="bottom: 100%;">
|
||||
Entwurf
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2,4 +2,5 @@
|
||||
@using HaWeb.Models
|
||||
@using HaWeb.Settings
|
||||
@using HaDocument.Models
|
||||
@using System.Text
|
||||
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||
|
||||
@@ -604,11 +604,11 @@ body {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 1rem;
|
||||
height: 100%;
|
||||
height: 4rem;
|
||||
width: 100%;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
|
||||
padding: 0.5rem;
|
||||
padding: 1rem;
|
||||
text-align: right;
|
||||
font-family: Libertine, serif;
|
||||
font-size: 1.125rem;
|
||||
@@ -623,8 +623,7 @@ body {
|
||||
|
||||
@media (min-width: 1190px) {
|
||||
.ha-footer {
|
||||
max-width: 1190px;
|
||||
padding: 2rem;
|
||||
padding: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1173,7 +1172,7 @@ body {
|
||||
}
|
||||
|
||||
.ha-letterheader .ha-letterheadernav {
|
||||
margin-top: 1.75rem;
|
||||
margin-top: 2.25rem;
|
||||
display: flex;
|
||||
flex-grow: 1;
|
||||
}
|
||||
@@ -1247,6 +1246,7 @@ body {
|
||||
flex-wrap: nowrap;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
|
||||
padding-bottom: 2rem;
|
||||
}
|
||||
|
||||
.ha-lettertext {
|
||||
@@ -1259,9 +1259,249 @@ body {
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
padding-top: 1rem;
|
||||
padding-bottom: 1.75rem;
|
||||
font-family: Libertine, serif;
|
||||
line-height: 1.48;
|
||||
font-variant-numeric: oldstyle-nums;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition div {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition {
|
||||
max-width: 48rem;
|
||||
}
|
||||
|
||||
.ha-additions {
|
||||
position: relative;
|
||||
margin-left: 3rem;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
|
||||
padding-left: 1rem;
|
||||
padding-right: 1rem;
|
||||
padding-top: 1rem;
|
||||
font-family: Libertine, serif;
|
||||
line-height: 1.48;
|
||||
font-variant-numeric: oldstyle-nums;
|
||||
}
|
||||
|
||||
.ha-additions .ha-app {
|
||||
display: inline-block !important;
|
||||
padding-top: 1.5rem;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-app:first-child {
|
||||
padding-top: 0px;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext {
|
||||
position: relative;
|
||||
margin-left: -1rem;
|
||||
display: block !important;
|
||||
width: -webkit-fit-content;
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
padding-left: 1rem;
|
||||
font-family: Libertine, serif;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-firstline {
|
||||
border-radius: 0.25rem;
|
||||
--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);
|
||||
--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);
|
||||
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount {
|
||||
position: absolute;
|
||||
left: -8.6rem;
|
||||
margin-top: 0.25rem;
|
||||
width: 8rem;
|
||||
text-align: right;
|
||||
font-family: Biolinum, sans-serif;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1rem;
|
||||
--tw-numeric-figure: oldstyle-nums;
|
||||
font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction);
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-zhpage, .ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-zhline {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
|
||||
padding-left: 0.25rem;
|
||||
padding-right: 0.25rem;
|
||||
padding-bottom: 0.25rem;
|
||||
font-variant-numeric: normal;
|
||||
font-variant-caps: all-petite-caps;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-hiddenlinecount {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox {
|
||||
position: absolute;
|
||||
right: -28rem;
|
||||
margin-right: 1rem;
|
||||
margin-top: 0.25rem;
|
||||
display: flex;
|
||||
width: 24rem;
|
||||
flex-wrap: wrap;
|
||||
border-radius: 0.125rem;
|
||||
border-left-width: 2px;
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(203 213 225 / var(--tw-border-opacity));
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(248 250 252 / var(--tw-bg-opacity));
|
||||
padding-left: 0.5rem;
|
||||
padding-right: 0.25rem;
|
||||
font-family: Biolinum, sans-serif;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.25rem;
|
||||
line-height: 1.25;
|
||||
-webkit-hyphens: auto;
|
||||
-ms-hyphens: auto;
|
||||
hyphens: auto;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox.ha-expanded-box {
|
||||
padding-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition a {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(51 65 85 / var(--tw-text-opacity));
|
||||
-webkit-text-decoration-line: underline !important;
|
||||
text-decoration-line: underline !important;
|
||||
-webkit-text-decoration-style: dotted;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition a:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(15 23 42 / var(--tw-text-opacity));
|
||||
-webkit-text-decoration-style: solid;
|
||||
text-decoration-style: solid;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal {
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal a {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(30 41 59 / var(--tw-text-opacity));
|
||||
-webkit-text-decoration-line: underline !important;
|
||||
text-decoration-line: underline !important;
|
||||
-webkit-text-decoration-style: dotted;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal a:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(15 23 42 / var(--tw-text-opacity));
|
||||
-webkit-text-decoration-style: solid;
|
||||
text-decoration-style: solid;
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-btn-collapsed-box {
|
||||
position: absolute;
|
||||
right: -2.5rem;
|
||||
margin-top: 2px;
|
||||
display: none;
|
||||
cursor: pointer;
|
||||
line-height: 1;
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(71 85 105 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-btn-collapsed-box:hover {
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(15 23 42 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
@media (min-width: 1190px) {
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-btn-collapsed-box {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands {
|
||||
padding-top: 1.5rem;
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands .ha-handstitle {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands .ha-handentries .ha-handfrom, .ha-additions .ha-hands .ha-handentries .ha-handto {
|
||||
display: inline;
|
||||
white-space: nowrap;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.25rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands .ha-handentries .ha-handperson {
|
||||
display: inline;
|
||||
white-space: nowrap;
|
||||
padding-left: 1rem;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editstitle {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editfrom, .ha-additions .ha-edits .ha-editentries .ha-editto {
|
||||
white-space: nowrap;
|
||||
padding-left: 0.25rem;
|
||||
font-size: 0.875rem;
|
||||
line-height: 1.25rem;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreference {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreference div {
|
||||
display: inline;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits {
|
||||
padding-top: 1.5rem;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editstitle {
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries td {
|
||||
padding-right: 1rem;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreas div {
|
||||
display: inline;
|
||||
font-family: Biolinum, sans-serif;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries table {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries table tr:nth-child(even) {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(226 232 240 / var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreas .ha-zh * {
|
||||
font-family: Libertine, serif !important;
|
||||
}
|
||||
|
||||
.hide {
|
||||
@@ -1339,16 +1579,18 @@ body {
|
||||
padding-bottom: 0.25rem;
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal:first {
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal {
|
||||
padding-right: 1.5rem;
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal .ha-text {
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal a {
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline;
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(30 41 59 / var(--tw-text-opacity));
|
||||
-webkit-text-decoration-line: underline !important;
|
||||
text-decoration-line: underline !important;
|
||||
-webkit-text-decoration-style: dotted;
|
||||
text-decoration-style: dotted;
|
||||
}
|
||||
@@ -1368,7 +1610,7 @@ body {
|
||||
cursor: pointer;
|
||||
line-height: 1;
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(71 85 105 / var(--tw-text-opacity));
|
||||
color: rgb(51 65 85 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-btn-collapsed-box:hover {
|
||||
@@ -1386,11 +1628,16 @@ body {
|
||||
|
||||
/* Classes from .NET */
|
||||
|
||||
.ha-up {
|
||||
position: relative;
|
||||
top: -0.75rem;
|
||||
}
|
||||
|
||||
.ha-bzg {
|
||||
font-family: Libertine, serif;
|
||||
font-size: 0.75rem;
|
||||
line-height: 1rem;
|
||||
font-weight: 600;
|
||||
font-family: Libertine, serif !important;
|
||||
font-size: 0.75rem !important;
|
||||
line-height: 1rem !important;
|
||||
font-weight: 600 !important;
|
||||
}
|
||||
|
||||
.ha-text {
|
||||
@@ -1410,40 +1657,40 @@ body {
|
||||
font-family: Libertine, serif;
|
||||
}
|
||||
|
||||
.ha-aq, .ha-aq * {
|
||||
.ha-aq, .ha-aq * :not(.ha-marginal *, .ha-marginal) {
|
||||
font-family: Biolinum, sans-serif;
|
||||
}
|
||||
|
||||
.ha-ul
|
||||
.ha-ul * {
|
||||
.ha-ul, .ha-ul * :not(.ha-marginal *, .ha-marginal) {
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
|
||||
.ha-del, .ha-del * {
|
||||
.ha-del, .ha-del * :not(.ha-marginal *, .ha-marginal) {
|
||||
-webkit-text-decoration-line: line-through;
|
||||
text-decoration-line: line-through;
|
||||
}
|
||||
|
||||
.ha-hand, .ha-hand * {
|
||||
.ha-hand, .ha-hand * :not(.ha-marginal *, .ha-marginal) {
|
||||
font-family: Playfair, serif;
|
||||
font-size: 0.9rem;
|
||||
}
|
||||
|
||||
.ha-added, .ha-added * {
|
||||
.ha-added, .ha-added * :not(.ha-marginal *, .ha-marginal) {
|
||||
border-radius: 0.125rem;
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgb(203 213 225 / var(--tw-bg-opacity));
|
||||
padding-left: 0.25rem;
|
||||
padding-right: 0.25rem;
|
||||
}
|
||||
|
||||
.ha-note, .ha-note * {
|
||||
.ha-note, .ha-note * :not(.ha-marginal *, .ha-marginal) {
|
||||
font-style: italic;
|
||||
--tw-text-opacity: 1;
|
||||
color: rgb(51 65 85 / var(--tw-text-opacity));
|
||||
}
|
||||
|
||||
.ha-sup, .ha-sup * {
|
||||
.ha-sup {
|
||||
position: relative;
|
||||
top: -0.3em;
|
||||
font-size: 80%;
|
||||
@@ -1470,7 +1717,7 @@ body {
|
||||
line-height: 1;
|
||||
}
|
||||
|
||||
.ha-ful, .ha-ful * {
|
||||
.ha-ful, .ha-ful * :not(.ha-marginal *, .ha-marginal) {
|
||||
display: inline;
|
||||
border-bottom-width: 1px;
|
||||
--tw-border-opacity: 1;
|
||||
@@ -1478,16 +1725,18 @@ body {
|
||||
padding-bottom: 2px;
|
||||
}
|
||||
|
||||
.ha-dul, .ha-dul * {
|
||||
.ha-dul, .ha-dul * :not(.ha-marginal *, .ha-marginal) {
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline;
|
||||
-webkit-text-decoration-style: double;
|
||||
text-decoration-style: double;
|
||||
}
|
||||
|
||||
.ha-tul, .ha-tul * {
|
||||
.ha-tul, .ha-tul * :not(.ha-marginal *, .ha-marginal) {
|
||||
border-bottom-width: 3px;
|
||||
border-style: double;
|
||||
--tw-border-opacity: 1;
|
||||
border-color: rgb(0 0 0 / var(--tw-border-opacity));
|
||||
-webkit-text-decoration-line: underline;
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
@@ -1692,11 +1941,23 @@ body {
|
||||
position: static;
|
||||
}
|
||||
|
||||
.absolute {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.relative {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.sticky {
|
||||
position: -webkit-sticky;
|
||||
position: sticky;
|
||||
}
|
||||
|
||||
.bottom-0 {
|
||||
bottom: 0px;
|
||||
}
|
||||
|
||||
.my-8 {
|
||||
margin-top: 2rem;
|
||||
margin-bottom: 2rem;
|
||||
@@ -1744,14 +2005,14 @@ body {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.h-full {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.h-8 {
|
||||
height: 2rem;
|
||||
}
|
||||
|
||||
.min-h-screen {
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
@@ -1855,6 +2116,10 @@ body {
|
||||
padding-right: 0.75rem;
|
||||
}
|
||||
|
||||
.pb-24 {
|
||||
padding-bottom: 6rem;
|
||||
}
|
||||
|
||||
.pb-3 {
|
||||
padding-bottom: 0.75rem;
|
||||
}
|
||||
@@ -2159,8 +2424,9 @@ body {
|
||||
}
|
||||
|
||||
.ha-tooltip .ha-tooltiptext {
|
||||
white-space: nowrap;
|
||||
visibility: hidden;
|
||||
width: 160px;
|
||||
min-width: 160px;
|
||||
bottom: 155%;
|
||||
left: 50%;
|
||||
margin-left: -80px;
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
}
|
||||
|
||||
.ha-footer {
|
||||
@apply bg-slate-50 w-full h-full desktop:max-w-screen-desktop mx-auto mt-4 p-2 md:p-4 desktop:p-8 text-lg font-serif text-right
|
||||
@apply bg-slate-50 w-full h-16 mx-auto mt-4 p-4 md:p-4 desktop:p-4 text-lg font-serif text-right
|
||||
}
|
||||
|
||||
.ha-footer a {
|
||||
@@ -380,7 +380,7 @@
|
||||
}
|
||||
|
||||
.ha-letterheader .ha-letterheadernav {
|
||||
@apply mt-7 flex grow
|
||||
@apply mt-9 flex grow
|
||||
}
|
||||
|
||||
.ha-letterheader .ha-lettertabs {
|
||||
@@ -412,21 +412,150 @@
|
||||
}
|
||||
|
||||
.ha-letterbody {
|
||||
@apply flex flex-row flex-nowrap bg-slate-50
|
||||
@apply flex flex-row flex-nowrap bg-slate-50 pb-8
|
||||
}
|
||||
|
||||
.ha-lettertext {
|
||||
@apply shrink-0 border-l-2 ml-12 px-4 pt-4 relative font-serif leading-[1.48] pb-7 bg-slate-50
|
||||
@apply shrink-0 border-l-2 ml-12 px-4 pt-4 relative font-serif leading-[1.48] bg-slate-50 numeric-mediaeval
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition div {
|
||||
@apply inline
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition {
|
||||
@apply max-w-3xl
|
||||
}
|
||||
|
||||
.ha-additions {
|
||||
@apply ml-12 px-4 pt-4 relative font-serif leading-[1.48] bg-slate-50 numeric-mediaeval
|
||||
}
|
||||
|
||||
.ha-additions .ha-app {
|
||||
@apply !inline-block font-bold pt-6
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-app:first-child {
|
||||
@apply pt-0
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext {
|
||||
@apply !block font-serif relative w-fit -ml-4 pl-4
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-firstline {
|
||||
@apply shadow rounded
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount {
|
||||
@apply absolute -left-[8.6rem] text-right w-32 text-xs oldstyle-nums mt-1 font-sans
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-zhpage,
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-zhline {
|
||||
@apply px-1 pb-1 bg-slate-50 caps-allpetite normal-nums
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-linecount .ha-hiddenlinecount {
|
||||
@apply hidden
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox {
|
||||
@apply absolute -right-[28rem] w-[24rem] text-sm border-l-2 border-slate-300 leading-tight pl-2 bg-slate-50 mr-4 pr-1 hyphenate mt-1 rounded-sm font-sans flex flex-wrap
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal {
|
||||
@apply inline-block
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox.ha-expanded-box {
|
||||
@apply pb-1
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition a {
|
||||
@apply !underline decoration-dotted hover:decoration-solid text-slate-700 hover:text-slate-900
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal {
|
||||
@apply pr-6
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-marginalbox .ha-marginal a {
|
||||
@apply !underline decoration-dotted hover:decoration-solid text-slate-800 hover:text-slate-900
|
||||
}
|
||||
|
||||
.ha-additions .ha-tradition .ha-tradzhtext .ha-btn-collapsed-box {
|
||||
@apply hidden desktop:block absolute text-slate-600 hover:text-slate-900 cursor-pointer -right-[2.5rem] leading-none mt-[2px]
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands {
|
||||
@apply pt-6
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands .ha-handstitle {
|
||||
@apply font-bold
|
||||
}
|
||||
|
||||
|
||||
.ha-additions .ha-hands .ha-handentries .ha-handfrom,
|
||||
.ha-additions .ha-hands .ha-handentries .ha-handto {
|
||||
@apply inline text-sm font-semibold whitespace-nowrap
|
||||
}
|
||||
|
||||
.ha-additions .ha-hands .ha-handentries .ha-handperson {
|
||||
@apply inline pl-4 whitespace-nowrap
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editstitle {
|
||||
@apply font-bold
|
||||
}
|
||||
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editfrom,
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editto {
|
||||
@apply text-sm font-semibold pl-1 whitespace-nowrap
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreference {
|
||||
@apply whitespace-nowrap
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreference div {
|
||||
@apply inline
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits {
|
||||
@apply pt-6
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editstitle {
|
||||
@apply font-bold
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries td {
|
||||
@apply pr-4 align-top
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreas div {
|
||||
@apply inline font-sans
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries table {
|
||||
@apply w-full
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries table tr:nth-child(even) {
|
||||
@apply bg-slate-200
|
||||
}
|
||||
|
||||
.ha-additions .ha-edits .ha-editentries .ha-editreas .ha-zh * {
|
||||
@apply !font-serif
|
||||
}
|
||||
|
||||
.hide {
|
||||
@apply hidden
|
||||
}
|
||||
|
||||
.ha-rightsidebar {
|
||||
@apply shrink-0 grow basis-1/3
|
||||
}
|
||||
|
||||
.ha-lettertext div {
|
||||
@apply inline
|
||||
}
|
||||
@@ -460,20 +589,20 @@
|
||||
@apply pb-1
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal:first {
|
||||
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal {
|
||||
@apply pr-6
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal .ha-text {
|
||||
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-marginalbox .ha-marginal a {
|
||||
@apply underline decoration-dotted hover:decoration-solid hover:text-slate-900
|
||||
@apply !underline decoration-dotted hover:decoration-solid text-slate-800 hover:text-slate-900
|
||||
}
|
||||
|
||||
.ha-lettertext .ha-btn-collapsed-box {
|
||||
@apply hidden desktop:block absolute text-slate-600 hover:text-slate-900 cursor-pointer -right-[2.5rem] leading-none mt-[2px]
|
||||
@apply hidden desktop:block absolute text-slate-700 hover:text-slate-900 cursor-pointer -right-[2.5rem] leading-none mt-[2px]
|
||||
}
|
||||
|
||||
|
||||
@@ -481,8 +610,13 @@
|
||||
|
||||
|
||||
/* Classes from .NET */
|
||||
|
||||
.ha-up {
|
||||
@apply -top-3 relative
|
||||
}
|
||||
|
||||
.ha-bzg {
|
||||
@apply font-serif text-xs font-semibold
|
||||
@apply !font-serif !text-xs !font-semibold
|
||||
}
|
||||
|
||||
.ha-text {
|
||||
@@ -502,37 +636,36 @@
|
||||
}
|
||||
|
||||
.ha-aq,
|
||||
.ha-aq * {
|
||||
.ha-aq * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply font-sans
|
||||
}
|
||||
|
||||
.ha-ul
|
||||
.ha-ul * {
|
||||
.ha-ul,
|
||||
.ha-ul * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply underline
|
||||
}
|
||||
|
||||
.ha-del,
|
||||
.ha-del * {
|
||||
.ha-del * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply line-through
|
||||
}
|
||||
|
||||
.ha-hand,
|
||||
.ha-hand * {
|
||||
.ha-hand * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply font-classy text-[0.9rem]
|
||||
}
|
||||
|
||||
.ha-added,
|
||||
.ha-added * {
|
||||
@apply bg-slate-300 px-1
|
||||
.ha-added * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply bg-slate-300 px-1 rounded-sm
|
||||
}
|
||||
|
||||
.ha-note,
|
||||
.ha-note * {
|
||||
.ha-note * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply italic text-slate-700
|
||||
}
|
||||
|
||||
.ha-sup,
|
||||
.ha-sup * {
|
||||
.ha-sup {
|
||||
@apply relative -top-[0.3em] text-[80%]
|
||||
}
|
||||
|
||||
@@ -546,18 +679,18 @@
|
||||
}
|
||||
|
||||
.ha-ful,
|
||||
.ha-ful * {
|
||||
.ha-ful * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply inline border-b border-black pb-[2px]
|
||||
}
|
||||
|
||||
.ha-dul,
|
||||
.ha-dul * {
|
||||
.ha-dul * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply underline decoration-double
|
||||
}
|
||||
|
||||
.ha-tul,
|
||||
.ha-tul * {
|
||||
@apply underline border-b-[3px] border-double
|
||||
.ha-tul * :not(.ha-marginal *, .ha-marginal) {
|
||||
@apply underline border-b-[3px] border-double border-black
|
||||
}
|
||||
|
||||
.up {
|
||||
@@ -807,8 +940,9 @@ body {
|
||||
}
|
||||
|
||||
.ha-tooltip .ha-tooltiptext {
|
||||
white-space: nowrap;
|
||||
visibility: hidden;
|
||||
width: 160px;
|
||||
min-width: 160px;
|
||||
bottom: 155%;
|
||||
left: 50%;
|
||||
margin-left: -80px;
|
||||
|
||||
Reference in New Issue
Block a user