Markdown update
This commit is contained in:
@ -1,4 +1,5 @@
|
|||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Text;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
namespace View_by_Distance.Shared.Models.Stateless.Methods;
|
||||||
@ -10,7 +11,6 @@ internal abstract class MarkDown
|
|||||||
|
|
||||||
internal static void WriteFile(string personKeyFormatted, long ticks, Models.PersonName personName, List<GenealogicalDataCommunicationRelation> genealogicalDataCommunicationRelations, string a2PeopleContentDirectory, ReadOnlyDictionary<string, string> personKeyFormattedToPersonFullName, ReadOnlyDictionary<int, List<GenealogicalDataCommunicationRelation>> familyIndexToCollection, bool isDefaultName, Models.GenealogicalDataCommunication genealogicalDataCommunication, bool first)
|
internal static void WriteFile(string personKeyFormatted, long ticks, Models.PersonName personName, List<GenealogicalDataCommunicationRelation> genealogicalDataCommunicationRelations, string a2PeopleContentDirectory, ReadOnlyDictionary<string, string> personKeyFormattedToPersonFullName, ReadOnlyDictionary<int, List<GenealogicalDataCommunicationRelation>> familyIndexToCollection, bool isDefaultName, Models.GenealogicalDataCommunication genealogicalDataCommunication, bool first)
|
||||||
{
|
{
|
||||||
|
|
||||||
string decade;
|
string decade;
|
||||||
string jrOrSr;
|
string jrOrSr;
|
||||||
string? personFullName;
|
string? personFullName;
|
||||||
@ -18,7 +18,7 @@ internal abstract class MarkDown
|
|||||||
const char mother = 'M';
|
const char mother = 'M';
|
||||||
bool hasRelation = false;
|
bool hasRelation = false;
|
||||||
const string wife = "WIFE";
|
const string wife = "WIFE";
|
||||||
string lowerHyphenRelation;
|
StringBuilder link = new();
|
||||||
const string child = "CHIL";
|
const string child = "CHIL";
|
||||||
const string husband = "HUSB";
|
const string husband = "HUSB";
|
||||||
const string person = "person";
|
const string person = "person";
|
||||||
@ -30,12 +30,12 @@ internal abstract class MarkDown
|
|||||||
List<string> lines = new()
|
List<string> lines = new()
|
||||||
{
|
{
|
||||||
"---",
|
"---",
|
||||||
$"type: {person}",
|
$"type: '{person}'",
|
||||||
$"created: {now}",
|
$"created: {now}",
|
||||||
$"updated: {now}",
|
$"updated: {now}",
|
||||||
$"draft: false",
|
$"draft: false",
|
||||||
$"title: '{fullName}'",
|
$"title: '{fullName}'",
|
||||||
$"{nameof(fullName)}: '{fullName}'",
|
$"{nameof(lowerHyphenFullName)}: '{lowerHyphenFullName}'",
|
||||||
};
|
};
|
||||||
if (string.IsNullOrEmpty(personName.Alias.Value))
|
if (string.IsNullOrEmpty(personName.Alias.Value))
|
||||||
jrOrSr = string.Empty;
|
jrOrSr = string.Empty;
|
||||||
@ -77,10 +77,12 @@ internal abstract class MarkDown
|
|||||||
lines.Add($"{nameof(personKeyFormatted)}: '{personKeyFormatted}'");
|
lines.Add($"{nameof(personKeyFormatted)}: '{personKeyFormatted}'");
|
||||||
lines.Add("---");
|
lines.Add("---");
|
||||||
lines.Add(string.Empty);
|
lines.Add(string.Empty);
|
||||||
lines.Add($"# {lowerHyphenFullName}");
|
lines.Add($"# {fullName}");
|
||||||
lines.Add(string.Empty);
|
lines.Add(string.Empty);
|
||||||
foreach (GenealogicalDataCommunicationRelation genealogicalDataCommunicationRelation in genealogicalDataCommunicationRelations)
|
foreach (GenealogicalDataCommunicationRelation genealogicalDataCommunicationRelation in genealogicalDataCommunicationRelations)
|
||||||
{
|
{
|
||||||
|
if (genealogicalDataCommunication?.NickName is null || genealogicalDataCommunication.NickName.Length < 4)
|
||||||
|
continue;
|
||||||
if (genealogicalDataCommunicationRelation.Relation != child)
|
if (genealogicalDataCommunicationRelation.Relation != child)
|
||||||
continue;
|
continue;
|
||||||
if (genealogicalDataCommunicationRelation.NickName != personKeyFormatted)
|
if (genealogicalDataCommunicationRelation.NickName != personKeyFormatted)
|
||||||
@ -100,28 +102,40 @@ internal abstract class MarkDown
|
|||||||
hasRelation = true;
|
hasRelation = true;
|
||||||
}
|
}
|
||||||
decade = relation.NickName[..3];
|
decade = relation.NickName[..3];
|
||||||
|
_ = link.Clear();
|
||||||
|
_ = link.Append("- [");
|
||||||
if (!personKeyFormattedToPersonFullName.TryGetValue(relation.NickName, out personFullName))
|
if (!personKeyFormattedToPersonFullName.TryGetValue(relation.NickName, out personFullName))
|
||||||
lowerHyphenRelation = relation.NickName;
|
_ = link.Append(relation.NickName);
|
||||||
else
|
else
|
||||||
lowerHyphenRelation = Regex.Replace(personFullName.ToLower(), "[^a-z0-9-]", "-").Replace("--", "-");
|
_ = link.Append(personFullName);
|
||||||
|
if (genealogicalDataCommunication.NickName[..3] == decade)
|
||||||
|
_ = link.Append("](");
|
||||||
|
else
|
||||||
|
_ = link.Append("](../").Append(decade).Append('/');
|
||||||
|
if (personFullName is null)
|
||||||
|
_ = link.Append(relation.NickName);
|
||||||
|
else
|
||||||
|
_ = link.Append(Regex.Replace(personFullName.ToLower(), "[^a-z0-9-]", "-").Replace("--", "-"));
|
||||||
|
_ = link.Append(".md) ");
|
||||||
if (string.IsNullOrEmpty(genealogicalDataCommunicationRelation.LineTwo))
|
if (string.IsNullOrEmpty(genealogicalDataCommunicationRelation.LineTwo))
|
||||||
lines.Add($"- [[{person}/{decade}/{lowerHyphenRelation}]]");
|
lines.Add(link.ToString());
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (genealogicalDataCommunicationRelation.LineTwo[1] == father)
|
if (genealogicalDataCommunicationRelation.LineTwo[1] == father)
|
||||||
{
|
{
|
||||||
if (relation.Relation == wife)
|
if (relation.Relation == wife)
|
||||||
lines.Add($"- [[{person}/{decade}/{lowerHyphenRelation}]] {nameof(mother)}");
|
_ = link.Append(nameof(mother));
|
||||||
else if (relation.Relation == husband)
|
else if (relation.Relation == husband)
|
||||||
lines.Add($"- [[{person}/{decade}/{lowerHyphenRelation}]] {genealogicalDataCommunicationRelation.LineTwo.Split(' ').Last()} {nameof(father)}");
|
_ = link.Append(genealogicalDataCommunicationRelation.LineTwo.Split(' ').Last()).Append(nameof(father));
|
||||||
}
|
}
|
||||||
else if (genealogicalDataCommunicationRelation.LineTwo[1] == mother)
|
else if (genealogicalDataCommunicationRelation.LineTwo[1] == mother)
|
||||||
{
|
{
|
||||||
if (relation.Relation == husband)
|
if (relation.Relation == husband)
|
||||||
lines.Add($"- [[{person}/{decade}/{lowerHyphenRelation}]] {nameof(father)}");
|
_ = link.Append(nameof(father));
|
||||||
else if (relation.Relation == wife)
|
else if (relation.Relation == wife)
|
||||||
lines.Add($"- [[{person}/{decade}/{lowerHyphenRelation}]] {genealogicalDataCommunicationRelation.LineTwo.Split(' ').Last()} {nameof(mother)}");
|
_ = link.Append(genealogicalDataCommunicationRelation.LineTwo.Split(' ').Last()).Append(nameof(mother));
|
||||||
}
|
}
|
||||||
|
lines.Add(link.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user