mirror of
https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
synced 2025-10-28 08:45:33 +00:00
Added category to app defs
This commit is contained in:
@@ -98,67 +98,65 @@ static void ReplaceStructure(List<(XElement appNode, List<XNode> childNodes)> no
|
||||
|
||||
foreach (var node in n.childNodes)
|
||||
node.Remove();
|
||||
}
|
||||
}
|
||||
|
||||
var children = n.appNode.Nodes();
|
||||
foreach (var c in children) {
|
||||
if (c.NodeType == XmlNodeType.Element) {
|
||||
var e = (XElement)c;
|
||||
if (e.Name == "line" && e.Attribute("type") != null && e.Attribute("type").Value == "break")
|
||||
c.Remove();
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(c.ToString()))
|
||||
break;
|
||||
}
|
||||
static void CleanupLineBreaks(XDocument traditions) {
|
||||
var apps = traditions.Descendants("app");
|
||||
foreach (var a in apps) {
|
||||
var children = a.Nodes();
|
||||
RemoveLineBreaks(children);
|
||||
|
||||
children = children.Reverse();
|
||||
foreach (var c in children) {
|
||||
if (c.NodeType == XmlNodeType.Element) {
|
||||
var e = (XElement)c;
|
||||
if (e.Name == "line" && e.Attribute("type") != null && e.Attribute("type").Value == "break")
|
||||
c.Remove();
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(c.ToString()))
|
||||
break;
|
||||
}
|
||||
RemoveLineBreaks(children);
|
||||
|
||||
var siblings = n.appNode.NodesAfterSelf();
|
||||
foreach (var c in siblings) {
|
||||
if (c.NodeType == XmlNodeType.Element) {
|
||||
var e = (XElement)c;
|
||||
if (e.Name == "line" && e.Attribute("type") != null && e.Attribute("type").Value == "break")
|
||||
c.Remove();
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(c.ToString()))
|
||||
break;
|
||||
}
|
||||
var siblings = a.NodesAfterSelf();
|
||||
RemoveLineBreaks(siblings);
|
||||
|
||||
siblings = n.appNode.NodesBeforeSelf();
|
||||
foreach (var c in siblings) {
|
||||
if (c.NodeType == XmlNodeType.Element) {
|
||||
var e = (XElement)c;
|
||||
if (e.Name == "line" && e.Attribute("type") != null && e.Attribute("type").Value == "break")
|
||||
c.Remove();
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(c.ToString()))
|
||||
siblings = a.NodesBeforeSelf();
|
||||
RemoveLineBreaks(siblings);
|
||||
}
|
||||
}
|
||||
|
||||
static void RemoveLineBreaks(IEnumerable<XNode> nodes) {
|
||||
foreach (var c in nodes) {
|
||||
if (c.NodeType == XmlNodeType.Element) {
|
||||
var e = (XElement)c;
|
||||
if (e.Name == "line" && e.Attribute("type") != null && e.Attribute("type").Value == "break")
|
||||
c.Remove();
|
||||
break;
|
||||
}
|
||||
if (!String.IsNullOrWhiteSpace(c.ToString()))
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void FindSingles(XDocument traditions) {
|
||||
var tradition = traditions.Descendants("letterTradition");
|
||||
foreach (var t in tradition) {
|
||||
var nodes = t.Nodes();
|
||||
var singles = new List<XNode> ();
|
||||
var isnonws = false;
|
||||
foreach (var n in nodes) {
|
||||
if (n.NodeType == XmlNodeType.Element && ((XElement)n).Name == "app")
|
||||
break;
|
||||
singles.Add(n);
|
||||
if (!String.IsNullOrWhiteSpace(n.ToString()))
|
||||
isnonws = true;
|
||||
}
|
||||
if (isnonws) {
|
||||
var elem = new XElement("app");
|
||||
elem.SetAttributeValue("ref", "-1");
|
||||
elem.Add(singles);
|
||||
t.AddFirst(elem);
|
||||
foreach (var n in singles)
|
||||
n.Remove();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void Cleanup(XDocument traditions) {
|
||||
var tradition = traditions.Descendants("letterTradition").SelectMany(x => x.Descendants());
|
||||
var notapp = tradition.Where(x => x.Name != "app" && !x.Ancestors("app").Any());
|
||||
foreach (var e in notapp) {
|
||||
if (e.Name != "line" || (e.Attribute("type") != null && e.Attribute("type")!.Value != "break"))
|
||||
Console.WriteLine("Nicht app zugehöriges Element " + e.Name + " Zeile " + ((IXmlLineInfo)e).LineNumber);
|
||||
}
|
||||
|
||||
// notapp.Remove();
|
||||
|
||||
var apps = traditions.Descendants("app");
|
||||
foreach (var a in apps) {
|
||||
if (a.Value.Last() != '\n')
|
||||
@@ -182,5 +180,7 @@ var names = GetNormalizeNames(documents.Item1);
|
||||
var appnumbers = GetAppNumbers(documents.Item2, names);
|
||||
var contents = GetAppContents(documents.Item1);
|
||||
ReplaceStructure(contents, appnumbers);
|
||||
FindSingles(documents.Item1);
|
||||
CleanupLineBreaks(documents.Item1);
|
||||
Cleanup(documents.Item1);
|
||||
Save(documents);
|
||||
@@ -236,15 +236,17 @@
|
||||
<sourceDef index="12" name="BdIII: Nachtrag zu BdII [aus einer Abschrift Lavaters] – betrifft nur BdII 221f" />
|
||||
</sourceDefs>
|
||||
<appDefs>
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="false" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="false" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="false" />
|
||||
<appDef index="4" name="Provenienz" category="false" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="false" />
|
||||
<appDef index="6" name="Digitalisat" category="false" />
|
||||
<appDef index="7" name="Exzerpte" category="false" />
|
||||
<appDef index="8" name="Abschriften" category="true" />
|
||||
<appDef index="9" name="Anhänge" category="true" />
|
||||
<appDef index="10" name="Entwürfe" category="true" />
|
||||
<appDef index="-1" name="" category="Überlieferung & Textkritik" />
|
||||
<appDef index="0" name="Brieftext" category="Brieftext" />
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="4" name="Provenienz" category="Überlieferung & Textkritik" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="Überlieferung & Textkritik" />
|
||||
<appDef index="6" name="Digitalisat" category="Überlieferung & Textkritik" />
|
||||
<appDef index="7" name="Exzerpte" category="Überlieferung & Textkritik" />
|
||||
<appDef index="8" name="Abschriften" category="Abschriften" />
|
||||
<appDef index="9" name="Anhänge" category="Anhänge" />
|
||||
<appDef index="10" name="Entwürfe" category="Entwürfe" />
|
||||
</appDefs>
|
||||
</definitions></opus>
|
||||
@@ -11793,6 +11793,7 @@ Universitätsbibliothek Basel, Autographensammlung Karl Geigy-Hagenbach, 1027.<l
|
||||
<app>Bisherige Drucke</app><line type="break" />
|
||||
ZH VII 142 f., Nr. 1055.</letterTradition>
|
||||
<letterTradition autopsic="1056" ref="1063">
|
||||
<app>Provenienz</app>
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.<line type="break" />
|
||||
<app>Bisherige Drucke</app><line type="break" />
|
||||
ZH VII 143–146, Nr. 1056.<line type="break" /></letterTradition>
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><opus><traditions>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<opus><traditions>
|
||||
|
||||
<letterTradition autopsic="0" ref="1192">
|
||||
<app ref="4">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Hamann-Nachlass, Kaps. 2, 50. Neujahrsglückwünsche von Martinus Maletius mit einer späteren Notiz von Hamann. Abschrift von Arthur Warda. Original verschollen. Letzter bekannter Aufbewahrungsort: Unbekannt.
|
||||
@@ -14644,9 +14646,11 @@ ZH VI 262 f., Nr. 927.
|
||||
</letterTradition>
|
||||
|
||||
|
||||
<letterTradition autopsic="928" ref="935">
|
||||
<letterTradition autopsic="928" ref="935"><app ref="-1">
|
||||
<note>ZH druckte an dieser Stelle einen Hinweis auf einen Brief von Hamann an Elisa von der Recke. Der Wortlaut des Briefes findet sich
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note></letterTradition>
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note>
|
||||
</app>
|
||||
</letterTradition>
|
||||
|
||||
|
||||
<letterTradition autopsic="929" ref="936">
|
||||
@@ -17271,7 +17275,9 @@ ZH VII 142 f., Nr. 1055.
|
||||
|
||||
|
||||
<letterTradition autopsic="1056" ref="1063">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.<line type="break" />
|
||||
<app ref="4">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.
|
||||
</app>
|
||||
<app ref="5">
|
||||
ZH VII 143–146, Nr. 1056.
|
||||
</app>
|
||||
@@ -20144,4 +20150,4 @@ ZH VII 515, Nr. 552a.
|
||||
</letterTradition>
|
||||
|
||||
|
||||
</traditions></opus>
|
||||
</traditions></opus>
|
||||
@@ -2,12 +2,12 @@ namespace HaDocument.Models {
|
||||
public class App {
|
||||
public string Index { get; } = "";
|
||||
public string Name { get; } = "";
|
||||
public bool Category { get; } = false;
|
||||
public string Category { get; } = "";
|
||||
|
||||
public App(
|
||||
string index,
|
||||
string name,
|
||||
bool category
|
||||
string category
|
||||
) {
|
||||
Index = index;
|
||||
Name = name;
|
||||
|
||||
@@ -13,7 +13,7 @@ namespace HaDocument.Reactors {
|
||||
// State
|
||||
private string Index;
|
||||
private string Name;
|
||||
private bool Category;
|
||||
private string Category;
|
||||
|
||||
internal AppDefsReactor(IReader reader, IntermediateLibrary lib) : base(reader, lib) {
|
||||
lib.Apps = new Dictionary<string, App>();
|
||||
@@ -26,8 +26,7 @@ namespace HaDocument.Reactors {
|
||||
!tag.EndTag &&
|
||||
tag.IsEmpty &&
|
||||
tag.Name == "appDef" &&
|
||||
!String.IsNullOrWhiteSpace(tag["index"]) &&
|
||||
!String.IsNullOrWhiteSpace(tag["name"])
|
||||
!String.IsNullOrWhiteSpace(tag["index"])
|
||||
) {
|
||||
Activate(_reader, tag);
|
||||
}
|
||||
@@ -39,8 +38,7 @@ namespace HaDocument.Reactors {
|
||||
_active = true;
|
||||
Index = tag["index"];
|
||||
Name = tag["name"];
|
||||
if (!String.IsNullOrWhiteSpace(tag["category"] ))
|
||||
Category = tag["category"] == "true" ? true : false;
|
||||
Category = tag["category"];
|
||||
Add();
|
||||
_active = false;
|
||||
}
|
||||
@@ -49,7 +47,7 @@ namespace HaDocument.Reactors {
|
||||
protected override void Reset() {
|
||||
Index = "";
|
||||
Name = "";
|
||||
Category = false;
|
||||
Category = "";
|
||||
}
|
||||
|
||||
protected void Add() {
|
||||
|
||||
@@ -151138,16 +151138,18 @@
|
||||
<locationDef index="43" name="Welbergen" />
|
||||
|
||||
</locationDefs><appDefs>
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="false" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="false" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="false" />
|
||||
<appDef index="4" name="Provenienz" category="false" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="false" />
|
||||
<appDef index="6" name="Digitalisat" category="false" />
|
||||
<appDef index="7" name="Exzerpte" category="false" />
|
||||
<appDef index="8" name="Abschriften" category="true" />
|
||||
<appDef index="9" name="Anhänge" category="true" />
|
||||
<appDef index="10" name="Entwürfe" category="true" />
|
||||
<appDef index="-1" name="" category="Überlieferung & Textkritik" />
|
||||
<appDef index="0" name="Brieftext" category="Brieftext" />
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="4" name="Provenienz" category="Überlieferung & Textkritik" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="Überlieferung & Textkritik" />
|
||||
<appDef index="6" name="Digitalisat" category="Überlieferung & Textkritik" />
|
||||
<appDef index="7" name="Exzerpte" category="Überlieferung & Textkritik" />
|
||||
<appDef index="8" name="Abschriften" category="Abschriften" />
|
||||
<appDef index="9" name="Anhänge" category="Anhänge" />
|
||||
<appDef index="10" name="Entwürfe" category="Entwürfe" />
|
||||
</appDefs></definitions><kommentare><kommcat value="neuzeit" sorting="1">
|
||||
|
||||
A
|
||||
@@ -213611,9 +213613,11 @@ Staatsbibliothek zu Berlin, Lessing-Sammlung Nr. 1841 n.
|
||||
Ludwig Schmitz-Kallenberg (Hg.): Aus dem Briefwechsel des Magus im Norden. Johann Georg Hamann an Franz Kaspar Bucholtz 1784–1788. Münster 1917, 84 f.<line type="break" />
|
||||
ZH VI 262 f., Nr. 927.
|
||||
</app>
|
||||
</letterTradition><letterTradition autopsic="928" ref="935">
|
||||
</letterTradition><letterTradition autopsic="928" ref="935"><app ref="-1">
|
||||
<note>ZH druckte an dieser Stelle einen Hinweis auf einen Brief von Hamann an Elisa von der Recke. Der Wortlaut des Briefes findet sich
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note></letterTradition><letterTradition autopsic="929" ref="936">
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note>
|
||||
</app>
|
||||
</letterTradition><letterTradition autopsic="929" ref="936">
|
||||
<app ref="4">
|
||||
Druck ZH nach der überlieferten handschriftlichen Abschrift Arthur Wardas. Original verschollen. Letzter bekannter Aufbewahrungsort: Staats- und Universitätsbibliothek Königsberg, Msc. 2552 [Roths Hamanniana], I 5.
|
||||
</app>
|
||||
@@ -215851,7 +215855,9 @@ Universitätsbibliothek Basel, Autographensammlung Karl Geigy-Hagenbach, 1027.
|
||||
ZH VII 142 f., Nr. 1055.
|
||||
</app>
|
||||
</letterTradition><letterTradition autopsic="1056" ref="1063">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.<line type="break" />
|
||||
<app ref="4">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.
|
||||
</app>
|
||||
<app ref="5">
|
||||
ZH VII 143–146, Nr. 1056.
|
||||
</app>
|
||||
|
||||
@@ -51,7 +51,6 @@ public class LetterRules {
|
||||
( ( x, _) => x.Name == "bzg", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.BZGCLASS)) ),
|
||||
( ( x, _) => x.Name == "zh", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHCLASS)) ),
|
||||
( ( x, _) => x.Name == "emph", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.EMPHCLASS)); } ),
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.APPCLASS)); } ),
|
||||
( ( x, _) => x.Name == "subsection", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.SUBSECTIONCLASS, tag["id"])) ),
|
||||
( ( x, _) => x.Name == "kommentar", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.COMMENTCLASS, tag["id"])) ),
|
||||
( ( x, _) => x.Name == "editreason", (sb, tag, _) => sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.EDITREASONCLASS)) ),
|
||||
@@ -78,6 +77,16 @@ public class LetterRules {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.HANDMARKERCLASS, "ha-" + tag["ref"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.HANDCLASS));
|
||||
}),
|
||||
|
||||
// Tradition specific:
|
||||
( ( x, _) => x.Name == "app", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.APPCLASS));
|
||||
reader.State.activelinecount = false;
|
||||
} ),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.TRADZHTEXTCLASS));
|
||||
reader.State.activelinecount = true;
|
||||
})
|
||||
};
|
||||
|
||||
@@ -115,7 +124,6 @@ public class LetterRules {
|
||||
( ( 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)) ),
|
||||
@@ -127,7 +135,17 @@ public class LetterRules {
|
||||
reader.State.mustwrap = (true, true);
|
||||
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 specific:
|
||||
( ( x, _) => x.Name == "app", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.activelinecount = true;
|
||||
} ),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.activelinecount = false;
|
||||
})
|
||||
};
|
||||
|
||||
public static readonly TextFuncList TextRules = new TextFuncList() {
|
||||
@@ -147,88 +165,95 @@ public class LetterRules {
|
||||
reader.State.mustwrap = (false, true);
|
||||
}
|
||||
|
||||
// This is NOT the beginning of the text, so we set a br, and then, linecount
|
||||
if(reader.State.currline != "-1") {
|
||||
if (!reader.State.mustwrap.Item2)
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br", CSSClasses.ZHBREAKCLASS));
|
||||
else
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br"));
|
||||
reader.State.mustwrap = (false, false);
|
||||
|
||||
// Linecount
|
||||
if(!String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
reader.State.currline = tag["index"];
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
|
||||
// Fall 1: Neue Seite
|
||||
if (reader.State.pagebreak == true) {
|
||||
reader.State.pagebreak = false;
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.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, CSSClasses.ZHLINECLASS, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
// Line count, do if in counted lines
|
||||
if(reader.State.activelinecount) {
|
||||
// This is NOT the beginning of the text, so we set a br, and then, linecount
|
||||
if(reader.State.currline != "-1") {
|
||||
if (!reader.State.mustwrap.Item2)
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br", CSSClasses.ZHBREAKCLASS));
|
||||
else
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement("br"));
|
||||
reader.State.mustwrap = (false, false);
|
||||
|
||||
// Fall 3: Neue Zeile, nicht teilbar durch 5, deswegen versteckt
|
||||
else {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHLINECLASS + " " + CSSClasses.HIDDENZHLINECOUNT, ""));
|
||||
sb.Append(tag["index"]);
|
||||
// Linecount
|
||||
if(!String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
reader.State.currline = tag["index"];
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHLINECOUNTCLASS, reader.State.currpage + "-" + reader.State.currline));
|
||||
|
||||
// Fall 1: Neue Seite
|
||||
if (reader.State.pagebreak == true) {
|
||||
reader.State.pagebreak = false;
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.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, CSSClasses.ZHLINECLASS, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
|
||||
// Fall 3: Neue Zeile, nicht teilbar durch 5, deswegen versteckt
|
||||
else {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.ZHLINECLASS + " " + CSSClasses.HIDDENZHLINECOUNT, ""));
|
||||
sb.Append(tag["index"]);
|
||||
}
|
||||
|
||||
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));
|
||||
} else if (reader.State.currline == "-1" && !String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
reader.State.Startline = tag["index"];
|
||||
reader.State.currline = tag["index"];
|
||||
reader.State.pagebreak = false;
|
||||
}
|
||||
} else if (reader.State.currline == "-1" && !String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
reader.State.Startline = tag["index"];
|
||||
reader.State.currline = tag["index"];
|
||||
reader.State.pagebreak = false;
|
||||
}
|
||||
|
||||
// Marginalien, only for lines with a linenumber
|
||||
if(reader.State.Marginals != null && !String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline);
|
||||
if (margs != null && margs.Any())
|
||||
{
|
||||
if(reader.State.ParsedMarginals == null) reader.State.ParsedMarginals = new List<(string, string, string)>();
|
||||
var sb2 = new StringBuilder();
|
||||
margs = margs.OrderBy(x => Int32.Parse(x.Index));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.COMMENTMARKERCLASS, "ma-" + reader.State.currpage + "-" + reader.State.currline));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.MARGINGALBOXCLASS));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.MARGINALLISTCLASS));
|
||||
foreach (var marginal in margs)
|
||||
// Marginalien, only for lines with a linenumber
|
||||
if(reader.State.Marginals != null && !String.IsNullOrWhiteSpace(tag["index"])) {
|
||||
var margs = reader.State.Marginals.Where(x => x.Page == reader.State.currpage && x.Line == reader.State.currline);
|
||||
if (margs != null && margs.Any())
|
||||
{
|
||||
// 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.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.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();
|
||||
if(reader.State.ParsedMarginals == null) reader.State.ParsedMarginals = new List<(string, string, string)>();
|
||||
var sb2 = new StringBuilder();
|
||||
margs = margs.OrderBy(x => Int32.Parse(x.Index));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.COMMENTMARKERCLASS, "ma-" + reader.State.currpage + "-" + reader.State.currline));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.MARGINGALBOXCLASS));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.MARGINALLISTCLASS));
|
||||
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.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.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();
|
||||
}
|
||||
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()));
|
||||
}
|
||||
}
|
||||
|
||||
// Line type=line
|
||||
if(tag["type"] == "line") {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.LINELINECLASS));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.mustwrap = (false, true);
|
||||
}
|
||||
|
||||
// Line tab=
|
||||
if(!String.IsNullOrWhiteSpace(tag["tab"])) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.LINEINDENTCLASS + tag["tab"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.ParsedMarginals.Add((reader.State.currpage, reader.State.currline, sb2.ToString()));
|
||||
if (tag["tab"] != "1") reader.State.mustwrap = (false, true);
|
||||
}
|
||||
}
|
||||
|
||||
// Line type=line
|
||||
if(tag["type"] == "line") {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.LINELINECLASS));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
reader.State.mustwrap = (false, true);
|
||||
}
|
||||
|
||||
// Line tab=
|
||||
if(!String.IsNullOrWhiteSpace(tag["tab"])) {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.LINEINDENTCLASS + tag["tab"]));
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateEndElement(DEFAULTELEMENT));
|
||||
if (tag["tab"] != "1") reader.State.mustwrap = (false, true);
|
||||
if (!reader.State.activelinecount) {
|
||||
sb.Append("<br>");
|
||||
}
|
||||
}
|
||||
)};
|
||||
|
||||
@@ -81,7 +81,7 @@ public static class TraditionRules {
|
||||
sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.HANDCLASS));
|
||||
}),
|
||||
|
||||
// Tradition specific:
|
||||
// Tradition specific:
|
||||
( ( x, _) => x.Name == "app", (sb, tag, _) => { sb.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.APPCLASS)); } ),
|
||||
( ( x, _) => x.Name == "ZHText", (sb, tag, reader) => {
|
||||
reader.State.sb_tradition.Append(HaWeb.HTMLHelpers.TagHelpers.CreateElement(DEFAULTELEMENT, CSSClasses.TRADZHTEXTCLASS));
|
||||
|
||||
@@ -39,6 +39,8 @@ public class LetterState : HaWeb.HTMLParser.IState {
|
||||
internal bool minwidth;
|
||||
// Did a pagebreak just occur?
|
||||
internal bool pagebreak = false;
|
||||
// Are we in line-counted territory?
|
||||
internal bool activelinecount;
|
||||
|
||||
// Results
|
||||
internal StringBuilder sb_lettertext;
|
||||
@@ -63,6 +65,7 @@ public class LetterState : HaWeb.HTMLParser.IState {
|
||||
currline = "-1";
|
||||
mustwrap = (false, false);
|
||||
minwidth = false;
|
||||
activelinecount = true;
|
||||
|
||||
// Initialize State
|
||||
if (Meta.ZH != null && !String.IsNullOrWhiteSpace(Meta.ZH.Page)) {
|
||||
|
||||
@@ -236,15 +236,17 @@
|
||||
<sourceDef index="12" name="BdIII: Nachtrag zu BdII [aus einer Abschrift Lavaters] – betrifft nur BdII 221f" />
|
||||
</sourceDefs>
|
||||
<appDefs>
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="false" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="false" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="false" />
|
||||
<appDef index="4" name="Provenienz" category="false" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="false" />
|
||||
<appDef index="6" name="Digitalisat" category="false" />
|
||||
<appDef index="7" name="Exzerpte" category="false" />
|
||||
<appDef index="8" name="Abschriften" category="true" />
|
||||
<appDef index="9" name="Anhänge" category="true" />
|
||||
<appDef index="10" name="Entwürfe" category="true" />
|
||||
<appDef index="-1" name="" category="Überlieferung & Textkritik" />
|
||||
<appDef index="0" name="Brieftext" category="Brieftext" />
|
||||
<appDef index="1" name="Veränderte Einsortierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="2" name="Korrigierte Nummerierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="3" name="Korrigierte Datierung" category="Überlieferung & Textkritik" />
|
||||
<appDef index="4" name="Provenienz" category="Überlieferung & Textkritik" />
|
||||
<appDef index="5" name="Bisherige Drucke" category="Überlieferung & Textkritik" />
|
||||
<appDef index="6" name="Digitalisat" category="Überlieferung & Textkritik" />
|
||||
<appDef index="7" name="Exzerpte" category="Überlieferung & Textkritik" />
|
||||
<appDef index="8" name="Abschriften" category="Abschriften" />
|
||||
<appDef index="9" name="Anhänge" category="Anhänge" />
|
||||
<appDef index="10" name="Entwürfe" category="Entwürfe" />
|
||||
</appDefs>
|
||||
</definitions></opus>
|
||||
@@ -1,4 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?><opus><traditions>
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<opus><traditions>
|
||||
|
||||
<letterTradition autopsic="0" ref="1192">
|
||||
<app ref="4">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Hamann-Nachlass, Kaps. 2, 50. Neujahrsglückwünsche von Martinus Maletius mit einer späteren Notiz von Hamann. Abschrift von Arthur Warda. Original verschollen. Letzter bekannter Aufbewahrungsort: Unbekannt.
|
||||
@@ -14644,9 +14646,11 @@ ZH VI 262 f., Nr. 927.
|
||||
</letterTradition>
|
||||
|
||||
|
||||
<letterTradition autopsic="928" ref="935">
|
||||
<letterTradition autopsic="928" ref="935"><app ref="-1">
|
||||
<note>ZH druckte an dieser Stelle einen Hinweis auf einen Brief von Hamann an Elisa von der Recke. Der Wortlaut des Briefes findet sich
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note></letterTradition>
|
||||
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16–260/16). Original nicht überliefert.</note>
|
||||
</app>
|
||||
</letterTradition>
|
||||
|
||||
|
||||
<letterTradition autopsic="929" ref="936">
|
||||
@@ -17271,7 +17275,9 @@ ZH VII 142 f., Nr. 1055.
|
||||
|
||||
|
||||
<letterTradition autopsic="1056" ref="1063">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.<line type="break" />
|
||||
<app ref="4">
|
||||
Universitäts- und Landesbibliothek Münster, Signatur: Nachlass Gallitzin, 20, 3. Zeitgenössische Abschrift von unbekannter Hand.
|
||||
</app>
|
||||
<app ref="5">
|
||||
ZH VII 143–146, Nr. 1056.
|
||||
</app>
|
||||
@@ -20144,4 +20150,4 @@ ZH VII 515, Nr. 552a.
|
||||
</letterTradition>
|
||||
|
||||
|
||||
</traditions></opus>
|
||||
</traditions></opus>
|
||||
Reference in New Issue
Block a user