Added category to app defs

This commit is contained in:
Simon Martens
2022-11-26 00:58:31 +01:00
parent e12223209a
commit 49c32dcc6a
12 changed files with 225 additions and 176 deletions

View File

@@ -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);

View File

@@ -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 &amp; Textkritik" />
<appDef index="0" name="Brieftext" category="Brieftext" />
<appDef index="1" name="Veränderte Einsortierung" category="Überlieferung &amp; Textkritik" />
<appDef index="2" name="Korrigierte Nummerierung" category="Überlieferung &amp; Textkritik" />
<appDef index="3" name="Korrigierte Datierung" category="Überlieferung &amp; Textkritik" />
<appDef index="4" name="Provenienz" category="Überlieferung &amp; Textkritik" />
<appDef index="5" name="Bisherige Drucke" category="Überlieferung &amp; Textkritik" />
<appDef index="6" name="Digitalisat" category="Überlieferung &amp; Textkritik" />
<appDef index="7" name="Exzerpte" category="Überlieferung &amp; 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>

View File

@@ -11793,6 +11793,7 @@ Universitätsbibliothek Basel, Autographensammlung Karl Geigy-Hagenbach, 1027.<l
<app>Bisherige Drucke</app><line type="break" />
ZH VII 142f., 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 143146, Nr. 1056.<line type="break" /></letterTradition>

View File

@@ -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 262f., 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/16260/16). Original nicht überliefert.</note></letterTradition>
in dem Brief an Jacobi, 6. Februar 1786, HKB 926 (VI 258/16260/16). Original nicht überliefert.</note>
</app>
</letterTradition>
<letterTradition autopsic="929" ref="936">
@@ -17271,7 +17275,9 @@ ZH VII 142f., 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 143146, Nr. 1056.
</app>
@@ -20144,4 +20150,4 @@ ZH VII 515, Nr. 552a.
</letterTradition>
</traditions></opus>
</traditions></opus>