Remove .Any
H2 Records
This commit is contained in:
parent
4ba2a42ed1
commit
f810af3ebe
@ -9,7 +9,7 @@
|
|||||||
<UserSecretsId>eb9e8f58-fcb5-45bb-9d4d-54f064c485b1</UserSecretsId>
|
<UserSecretsId>eb9e8f58-fcb5-45bb-9d4d-54f064c485b1</UserSecretsId>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="7.0.10" />
|
<PackageReference Include="runtime.win-x64.Microsoft.DotNet.ILCompiler" Version="7.0.11" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
|
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.1" />
|
||||||
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
|
<PackageReference Include="Microsoft.Extensions.Logging.Console" Version="7.0.0" />
|
||||||
<PackageReference Include="System.Text.Json" Version="7.0.3" />
|
<PackageReference Include="System.Text.Json" Version="7.0.3" />
|
||||||
|
@ -279,7 +279,7 @@ internal static partial class HelperCreateNoteFiles
|
|||||||
CleanExistingFiles(argsZero, ticks);
|
CleanExistingFiles(argsZero, ticks);
|
||||||
importFiles.AddRange(Directory.GetFiles(argsZero, "*.csv", SearchOption.TopDirectoryOnly));
|
importFiles.AddRange(Directory.GetFiles(argsZero, "*.csv", SearchOption.TopDirectoryOnly));
|
||||||
importFiles.AddRange(Directory.GetFiles(argsZero, "*.tsv", SearchOption.TopDirectoryOnly));
|
importFiles.AddRange(Directory.GetFiles(argsZero, "*.tsv", SearchOption.TopDirectoryOnly));
|
||||||
if (!importFiles.Any())
|
if (importFiles.Count == 0)
|
||||||
CreateDailyNotes(argsZero, ticks);
|
CreateDailyNotes(argsZero, ticks);
|
||||||
else
|
else
|
||||||
CreateImportFiles(ticks, importFiles);
|
CreateImportFiles(ticks, importFiles);
|
||||||
|
@ -96,7 +96,7 @@ internal static partial class HelperKanbanMetadata
|
|||||||
return results;
|
return results;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static void SetMetadata(ILogger log, AppSettings appSettings, string sourceDirectory)
|
internal static void SetMetadata(ILogger log, AppSettings appSettings, string sourceDirectory, bool addTicks)
|
||||||
{
|
{
|
||||||
bool? match;
|
bool? match;
|
||||||
string? paramCase;
|
string? paramCase;
|
||||||
@ -119,10 +119,11 @@ internal static partial class HelperKanbanMetadata
|
|||||||
if (itemLineNumber == 0)
|
if (itemLineNumber == 0)
|
||||||
throw new NotSupportedException();
|
throw new NotSupportedException();
|
||||||
(lines, lineNumber) = HelperMarkdown.GetStatusAndFrontMatterYamlEndLineNumbers(fileInfo);
|
(lines, lineNumber) = HelperMarkdown.GetStatusAndFrontMatterYamlEndLineNumbers(fileInfo);
|
||||||
if (!lines.Any())
|
if (lines.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
statusLine = $"status: \"{groupCount}-{group}\"";
|
statusLine = $"status: \"{groupCount}-{group}\"";
|
||||||
paramCase = lineNumber.H1 is null ? null : GetParamCase(lines[lineNumber.H1.Value]);
|
paramCase = lineNumber.H1 is null ? null : GetParamCase(lines[lineNumber.H1.Value]);
|
||||||
|
if (addTicks)
|
||||||
indexFileLines[itemLineNumber] = $"{fileInfo.LastWriteTime.Ticks}~~~{indexFileLines[itemLineNumber]}";
|
indexFileLines[itemLineNumber] = $"{fileInfo.LastWriteTime.Ticks}~~~{indexFileLines[itemLineNumber]}";
|
||||||
match = lineNumber.H1 is null || paramCase is null ? null : Path.GetFileNameWithoutExtension(fileInfo.Name) == paramCase;
|
match = lineNumber.H1 is null || paramCase is null ? null : Path.GetFileNameWithoutExtension(fileInfo.Name) == paramCase;
|
||||||
if (lineNumber.FrontMatterYamlEnd is null)
|
if (lineNumber.FrontMatterYamlEnd is null)
|
||||||
@ -139,6 +140,7 @@ internal static partial class HelperKanbanMetadata
|
|||||||
}
|
}
|
||||||
File.WriteAllLines(fileInfo.FullName, lines);
|
File.WriteAllLines(fileInfo.FullName, lines);
|
||||||
}
|
}
|
||||||
|
if (addTicks)
|
||||||
File.WriteAllLines(indexFile, indexFileLines);
|
File.WriteAllLines(indexFile, indexFileLines);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,12 +4,16 @@ using System.Collections.ObjectModel;
|
|||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
using System.Text.RegularExpressions;
|
||||||
|
|
||||||
namespace File_Folder_Helper.Helpers;
|
namespace File_Folder_Helper.Helpers;
|
||||||
|
|
||||||
internal static partial class HelperMarkdown
|
internal static partial class HelperMarkdown
|
||||||
{
|
{
|
||||||
|
|
||||||
|
[GeneratedRegex("(~~)?(#)([a-zA-Z0-9]{6})(~~)?( )")]
|
||||||
|
private static partial Regex HtmlColor();
|
||||||
|
|
||||||
private record Input(string Source,
|
private record Input(string Source,
|
||||||
string? StartAt,
|
string? StartAt,
|
||||||
string? Destination);
|
string? Destination);
|
||||||
@ -21,6 +25,12 @@ internal static partial class HelperMarkdown
|
|||||||
private record MarkdownFileAndLines(MarkdownFile MarkdownFile,
|
private record MarkdownFileAndLines(MarkdownFile MarkdownFile,
|
||||||
string[] Lines);
|
string[] Lines);
|
||||||
|
|
||||||
|
private record MarkdownExtra(ReadOnlyCollection<string>? Assignees,
|
||||||
|
ReadOnlyCollection<H2HexColor>? H2HexColorCollection,
|
||||||
|
ReadOnlyCollection<H2NoCheckboxes>? H2NoCheckboxesCollection,
|
||||||
|
ReadOnlyCollection<H2WithCheckboxes>? H2WithCheckboxesCollection,
|
||||||
|
string? RequestedDateTime);
|
||||||
|
|
||||||
private record MarkdownFileH1AndRelativePath(MarkdownFile? MarkdownFile, string[]? Lines, string? H1, string? RelativePath);
|
private record MarkdownFileH1AndRelativePath(MarkdownFile? MarkdownFile, string[]? Lines, string? H1, string? RelativePath);
|
||||||
|
|
||||||
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||||
@ -29,6 +39,12 @@ internal static partial class HelperMarkdown
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||||
|
[JsonSerializable(typeof(ReadOnlyDictionary<string, List<MarkdownFile>>))]
|
||||||
|
internal partial class ColumnAndLinksSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private static void SetRecursiveLines(AppSettings appSettings, ILogger<Worker> logger, ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs, string linkTitle, MarkdownFile markdownFile, string[] lines, List<char> indentations, List<string> recursiveLines)
|
private static void SetRecursiveLines(AppSettings appSettings, ILogger<Worker> logger, ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs, string linkTitle, MarkdownFile markdownFile, string[] lines, List<char> indentations, List<string> recursiveLines)
|
||||||
{
|
{
|
||||||
if (recursiveLines is null)
|
if (recursiveLines is null)
|
||||||
@ -200,7 +216,7 @@ internal static partial class HelperMarkdown
|
|||||||
result = JsonSerializer.Serialize(keyValuePairs, DictionaryStringAndJsonElementSourceGenerationContext.Default.DictionaryStringJsonElement);
|
result = JsonSerializer.Serialize(keyValuePairs, DictionaryStringAndJsonElementSourceGenerationContext.Default.DictionaryStringJsonElement);
|
||||||
string[] parsedLines = result.Split(Environment.NewLine).ToArray();
|
string[] parsedLines = result.Split(Environment.NewLine).ToArray();
|
||||||
results = GetFrontMatterLines(parsedLines);
|
results = GetFrontMatterLines(parsedLines);
|
||||||
if (!results.Any())
|
if (results.Count == 0)
|
||||||
{
|
{
|
||||||
result = null;
|
result = null;
|
||||||
keyValuePairs = null;
|
keyValuePairs = null;
|
||||||
@ -249,7 +265,7 @@ internal static partial class HelperMarkdown
|
|||||||
updatedLineNumber = i;
|
updatedLineNumber = i;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
if (h1LineNumber is null && line.Length > 2 && line[..2] == "# ")
|
if (h1LineNumber is null && line.Length > 2 && line[0] == '#' && line[1] == ' ')
|
||||||
{
|
{
|
||||||
h1LineNumber = i;
|
h1LineNumber = i;
|
||||||
continue;
|
continue;
|
||||||
@ -358,7 +374,7 @@ internal static partial class HelperMarkdown
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (jsonLines.Any())
|
if (jsonLines.Count > 0)
|
||||||
(result, keyValuePairs, results) = Get(jsonLines);
|
(result, keyValuePairs, results) = Get(jsonLines);
|
||||||
else
|
else
|
||||||
(result, keyValuePairs, results) = (null, null, new());
|
(result, keyValuePairs, results) = (null, null, new());
|
||||||
@ -438,7 +454,7 @@ internal static partial class HelperMarkdown
|
|||||||
MarkdownFile markdownFile;
|
MarkdownFile markdownFile;
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
markdownFile = relativeTo.Value.MarkdownFile;
|
markdownFile = relativeTo.Value.MarkdownFile;
|
||||||
@ -497,7 +513,7 @@ internal static partial class HelperMarkdown
|
|||||||
(lines, lineNumber) = GetStatusAndFrontMatterYamlEndLineNumbers(fileInfo);
|
(lines, lineNumber) = GetStatusAndFrontMatterYamlEndLineNumbers(fileInfo);
|
||||||
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.FullName);
|
fileNameWithoutExtension = Path.GetFileNameWithoutExtension(fileInfo.FullName);
|
||||||
h1 = fileNameWithoutExtension.ToLower().Replace("%20", "-").Replace(' ', '-');
|
h1 = fileNameWithoutExtension.ToLower().Replace("%20", "-").Replace(' ', '-');
|
||||||
if (lines.Any())
|
if (lines.Count > 0)
|
||||||
(type, h1) = GetTypeAndH1(appSettings, h1, lines, lineNumber);
|
(type, h1) = GetTypeAndH1(appSettings, h1, lines, lineNumber);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -505,7 +521,21 @@ internal static partial class HelperMarkdown
|
|||||||
File.WriteAllLines(file, new string[] { "---", $"type: \"{type}\"", "---", string.Empty, $"# {h1}" });
|
File.WriteAllLines(file, new string[] { "---", $"type: \"{type}\"", "---", string.Empty, $"# {h1}" });
|
||||||
lines = File.ReadAllLines(file).ToList();
|
lines = File.ReadAllLines(file).ToList();
|
||||||
}
|
}
|
||||||
markdownFile = new(file, fileInfo.DirectoryName, fileInfo.Name, fileNameWithoutExtension, fileInfo.Extension, fileInfo.CreationTime, fileInfo.LastWriteTime, lineNumber, type, h1);
|
markdownFile = new(null,
|
||||||
|
fileInfo.CreationTime,
|
||||||
|
fileInfo.DirectoryName,
|
||||||
|
fileInfo.Extension,
|
||||||
|
file,
|
||||||
|
fileInfo.Name,
|
||||||
|
fileNameWithoutExtension,
|
||||||
|
h1,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
null,
|
||||||
|
fileInfo.LastWriteTime,
|
||||||
|
lineNumber,
|
||||||
|
null,
|
||||||
|
type);
|
||||||
if (force || input.StartAt is null || file.StartsWith(input.StartAt))
|
if (force || input.StartAt is null || file.StartsWith(input.StartAt))
|
||||||
results.Add(key, new(markdownFile, lines.ToArray()));
|
results.Add(key, new(markdownFile, lines.ToArray()));
|
||||||
else
|
else
|
||||||
@ -613,7 +643,7 @@ internal static partial class HelperMarkdown
|
|||||||
string[] frontMatterYamlLines;
|
string[] frontMatterYamlLines;
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
results.Clear();
|
results.Clear();
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
@ -621,7 +651,7 @@ internal static partial class HelperMarkdown
|
|||||||
if (markdownFile.LineNumber.FrontMatterYamlEnd is null)
|
if (markdownFile.LineNumber.FrontMatterYamlEnd is null)
|
||||||
continue;
|
continue;
|
||||||
(_, _, frontMatterYamlLines) = Get(markdownFile.LineNumber.FrontMatterYamlEnd.Value, lines);
|
(_, _, frontMatterYamlLines) = Get(markdownFile.LineNumber.FrontMatterYamlEnd.Value, lines);
|
||||||
if (!frontMatterYamlLines.Any())
|
if (frontMatterYamlLines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
results.Add("---");
|
results.Add("---");
|
||||||
results.AddRange(frontMatterYamlLines);
|
results.AddRange(frontMatterYamlLines);
|
||||||
@ -658,7 +688,7 @@ internal static partial class HelperMarkdown
|
|||||||
MarkdownFile markdownFile;
|
MarkdownFile markdownFile;
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
circularReference = false;
|
circularReference = false;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
@ -719,7 +749,7 @@ internal static partial class HelperMarkdown
|
|||||||
MarkdownFile markdownFile;
|
MarkdownFile markdownFile;
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
found = false;
|
found = false;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
@ -771,7 +801,7 @@ internal static partial class HelperMarkdown
|
|||||||
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
write = false;
|
write = false;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
@ -828,7 +858,7 @@ internal static partial class HelperMarkdown
|
|||||||
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
markdownFile = relativeTo.Value.MarkdownFile;
|
markdownFile = relativeTo.Value.MarkdownFile;
|
||||||
@ -922,7 +952,7 @@ internal static partial class HelperMarkdown
|
|||||||
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
ReadOnlyDictionary<string, List<MarkdownFileAndLines>> keyValuePairs = GetKeyValuePairs(relativeToCollection);
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
if (input.StartAt is null || !relativeTo.Value.MarkdownFile.File.StartsWith(input.StartAt) || Path.GetFileName(relativeTo.Value.MarkdownFile.Directory) != Path.GetFileName(input.StartAt))
|
if (input.StartAt is null || !relativeTo.Value.MarkdownFile.File.StartsWith(input.StartAt) || Path.GetFileName(relativeTo.Value.MarkdownFile.Directory) != Path.GetFileName(input.StartAt))
|
||||||
continue;
|
continue;
|
||||||
@ -964,7 +994,7 @@ internal static partial class HelperMarkdown
|
|||||||
ReadOnlyDictionary<string, MarkdownFileAndLines> relativeToCollection = GetRelativeToCollection(appSettings, input);
|
ReadOnlyDictionary<string, MarkdownFileAndLines> relativeToCollection = GetRelativeToCollection(appSettings, input);
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
markdownFile = relativeTo.Value.MarkdownFile;
|
markdownFile = relativeTo.Value.MarkdownFile;
|
||||||
@ -1028,7 +1058,7 @@ internal static partial class HelperMarkdown
|
|||||||
|
|
||||||
private static (string type, string h1) GetTypeAndH1(AppSettings appSettings, string h1, List<string> lines, LineNumber lineNumber)
|
private static (string type, string h1) GetTypeAndH1(AppSettings appSettings, string h1, List<string> lines, LineNumber lineNumber)
|
||||||
{
|
{
|
||||||
string type = lineNumber.Type is null ? appSettings.DefaultNoteType : lines[lineNumber.Type.Value].Replace("type: ", string.Empty);
|
string type = lineNumber.Type is null ? appSettings.DefaultNoteType : lines[lineNumber.Type.Value][5..].Trim().Trim('"');
|
||||||
string h1FromFile = lineNumber.H1 is null ? h1 : lines[lineNumber.H1.Value][2..];
|
string h1FromFile = lineNumber.H1 is null ? h1 : lines[lineNumber.H1.Value][2..];
|
||||||
return (type, h1FromFile);
|
return (type, h1FromFile);
|
||||||
}
|
}
|
||||||
@ -1048,7 +1078,7 @@ internal static partial class HelperMarkdown
|
|||||||
string updatedLineCompare;
|
string updatedLineCompare;
|
||||||
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
{
|
{
|
||||||
if (!relativeTo.Value.Lines.Any())
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
continue;
|
continue;
|
||||||
results.Clear();
|
results.Clear();
|
||||||
lines = relativeTo.Value.Lines;
|
lines = relativeTo.Value.Lines;
|
||||||
@ -1161,6 +1191,8 @@ internal static partial class HelperMarkdown
|
|||||||
List<MarkdownFileAndLines> markdownFileAndLinesCollection = GetRecursiveLines(appSettings, input, logger, relativeToCollection);
|
List<MarkdownFileAndLines> markdownFileAndLinesCollection = GetRecursiveLines(appSettings, input, logger, relativeToCollection);
|
||||||
Write(input, markdownFileAndLinesCollection);
|
Write(input, markdownFileAndLinesCollection);
|
||||||
}
|
}
|
||||||
|
if (!string.IsNullOrEmpty(input.StartAt) && !string.IsNullOrEmpty(input.Destination))
|
||||||
|
Save(input, relativeToCollection);
|
||||||
string directory = Path.Combine(Environment.CurrentDirectory, ".vscode");
|
string directory = Path.Combine(Environment.CurrentDirectory, ".vscode");
|
||||||
if (!Directory.Exists(directory))
|
if (!Directory.Exists(directory))
|
||||||
{
|
{
|
||||||
@ -1175,13 +1207,173 @@ internal static partial class HelperMarkdown
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static void Save(Input input, ReadOnlyDictionary<string, MarkdownFileAndLines> relativeToCollection)
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(input.StartAt) || string.IsNullOrEmpty(input.Destination))
|
||||||
|
throw new NotSupportedException();
|
||||||
|
ReadOnlyDictionary<string, List<MarkdownFile>> columnsToLinks = GetColumnsToLinks(input, relativeToCollection);
|
||||||
|
if (columnsToLinks.Count > 0)
|
||||||
|
{
|
||||||
|
string json = JsonSerializer.Serialize(columnsToLinks, ColumnAndLinksSourceGenerationContext.Default.ReadOnlyDictionaryStringListMarkdownFile);
|
||||||
|
File.WriteAllText(Path.Combine(input.Destination, $"{nameof(columnsToLinks)}.json"), json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static ReadOnlyDictionary<string, List<MarkdownFile>> GetColumnsToLinks(Input input, ReadOnlyDictionary<string, MarkdownFileAndLines> relativeToCollection)
|
||||||
|
{
|
||||||
|
Dictionary<string, List<MarkdownFile>> results = new();
|
||||||
|
string key;
|
||||||
|
string[] lines;
|
||||||
|
string[] segmentsA;
|
||||||
|
string? column = null;
|
||||||
|
MarkdownFile markdownFile;
|
||||||
|
MarkdownExtra markdownExtra;
|
||||||
|
List<MarkdownFile> links = new();
|
||||||
|
MarkdownFileAndLines? markdownFileAndLines;
|
||||||
|
foreach (KeyValuePair<string, MarkdownFileAndLines> relativeTo in relativeToCollection)
|
||||||
|
{
|
||||||
|
if (relativeTo.Value.Lines.Length == 0)
|
||||||
|
continue;
|
||||||
|
lines = relativeTo.Value.Lines;
|
||||||
|
markdownFile = relativeTo.Value.MarkdownFile;
|
||||||
|
if (markdownFile.FileNameWithoutExtension != "index" && markdownFile.Directory.EndsWith(".kanbn"))
|
||||||
|
continue;
|
||||||
|
if (!File.Exists(markdownFile.File))
|
||||||
|
continue;
|
||||||
|
for (int i = 0; i < lines.Length; i++)
|
||||||
|
{
|
||||||
|
if (lines[i].Length < 4 || lines[i][0] != '#' || lines[i][1] != '#' || lines[i][2] != ' ')
|
||||||
|
continue;
|
||||||
|
if (links.Count > 1)
|
||||||
|
{
|
||||||
|
if (column is null)
|
||||||
|
throw new NullReferenceException(nameof(column));
|
||||||
|
results.Add(column, links);
|
||||||
|
links = new();
|
||||||
|
}
|
||||||
|
column = lines[i][3..].TrimEnd();
|
||||||
|
if (lines.Length == i + 1)
|
||||||
|
continue;
|
||||||
|
for (int j = i + 1; j < lines.Length; j++)
|
||||||
|
{
|
||||||
|
if (lines[j].Length < 5)
|
||||||
|
continue;
|
||||||
|
if (lines[j].Length >= 4 && lines[j][0] == '#' && lines[j][1] == '#' && lines[j][2] == ' ')
|
||||||
|
break;
|
||||||
|
segmentsA = lines[j].Split("](");
|
||||||
|
if (segmentsA.Length != 2 || segmentsA[1][^1] != ')')
|
||||||
|
continue;
|
||||||
|
key = Path.GetRelativePath(input.Source, Path.Combine(input.Source, segmentsA[1][..^1]));
|
||||||
|
if (!relativeToCollection.TryGetValue(key, out markdownFileAndLines))
|
||||||
|
continue;
|
||||||
|
markdownExtra = GetMarkdownExtra(markdownFileAndLines);
|
||||||
|
markdownFile = new(markdownExtra.Assignees,
|
||||||
|
markdownFileAndLines.MarkdownFile.CreationDateTime,
|
||||||
|
markdownFileAndLines.MarkdownFile.Directory,
|
||||||
|
markdownFileAndLines.MarkdownFile.Extension,
|
||||||
|
markdownFileAndLines.MarkdownFile.File,
|
||||||
|
markdownFileAndLines.MarkdownFile.FileName,
|
||||||
|
markdownFileAndLines.MarkdownFile.FileNameWithoutExtension,
|
||||||
|
markdownFileAndLines.MarkdownFile.H1,
|
||||||
|
markdownExtra.H2HexColorCollection,
|
||||||
|
markdownExtra.H2NoCheckboxesCollection,
|
||||||
|
markdownExtra.H2WithCheckboxesCollection,
|
||||||
|
markdownFileAndLines.MarkdownFile.LastWriteDateTime,
|
||||||
|
markdownFileAndLines.MarkdownFile.LineNumber,
|
||||||
|
markdownExtra.RequestedDateTime,
|
||||||
|
markdownFileAndLines.MarkdownFile.Type);
|
||||||
|
links.Add(markdownFile);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return new(results);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MarkdownExtra GetMarkdownExtra(MarkdownFileAndLines markdownFileAndLines)
|
||||||
|
{
|
||||||
|
MarkdownExtra result;
|
||||||
|
int skip;
|
||||||
|
Match match;
|
||||||
|
string line;
|
||||||
|
int completed;
|
||||||
|
int notCompleted;
|
||||||
|
List<string> lines;
|
||||||
|
List<string> assignees = new();
|
||||||
|
string? requestedDateTime = null;
|
||||||
|
ReadOnlyCollection<Group> groups;
|
||||||
|
List<H2HexColor> h2HexColors = new();
|
||||||
|
List<H2NoCheckboxes> h2NoCheckboxes = new();
|
||||||
|
List<H2WithCheckboxes> h2WithCheckboxes = new();
|
||||||
|
if (markdownFileAndLines.MarkdownFile.LineNumber.FrontMatterYamlEnd is not null)
|
||||||
|
{
|
||||||
|
for (int i = 1; i < markdownFileAndLines.Lines.Length; i++)
|
||||||
|
{
|
||||||
|
line = markdownFileAndLines.Lines[i];
|
||||||
|
if (line.Length < 3)
|
||||||
|
continue;
|
||||||
|
if (line.Length > 10 && line[..10] == "assigned: ")
|
||||||
|
{
|
||||||
|
foreach (string item in line[10..].Split(','))
|
||||||
|
assignees.Add(item.Trim().Trim('"'));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (line.Length > 11 && line[..11] == "requested: ")
|
||||||
|
{
|
||||||
|
requestedDateTime = line[10..].Trim().Trim('"');
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (line.Length > 3 && line[0] == '#' && line[1] == '#' && line[2] == ' ')
|
||||||
|
{
|
||||||
|
completed = 0;
|
||||||
|
notCompleted = 0;
|
||||||
|
match = HtmlColor().Match(line[3..]);
|
||||||
|
if (line.Length > 3 && match.Success)
|
||||||
|
{
|
||||||
|
groups = match.Groups.AsReadOnly();
|
||||||
|
skip = 3 + groups.Skip(1).Sum(l => l.Length);
|
||||||
|
h2HexColors.Add(new(line[skip..], $"#{groups.First(l => l.Value.Length == 6)}"));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
lines = new();
|
||||||
|
if (i + 1 == markdownFileAndLines.Lines.Length)
|
||||||
|
continue;
|
||||||
|
for (int j = i + 1; j < markdownFileAndLines.Lines.Length; j++)
|
||||||
|
{
|
||||||
|
line = markdownFileAndLines.Lines[j];
|
||||||
|
if (line.Length == 0)
|
||||||
|
continue;
|
||||||
|
if (line.Length > 2 && line[0] == '#')
|
||||||
|
break;
|
||||||
|
lines.Add(line);
|
||||||
|
if (line.Length < 5 || line[0] != '-' || line[1] != ' ' || line[2] != '[')
|
||||||
|
continue;
|
||||||
|
if (line[3] == ' ' && line[4] == ']')
|
||||||
|
notCompleted++;
|
||||||
|
else if (line[3] is 'x' or 'X' && line[4] == ']')
|
||||||
|
completed++;
|
||||||
|
}
|
||||||
|
if (completed != 0 || notCompleted != 0)
|
||||||
|
h2WithCheckboxes.Add(new(completed,
|
||||||
|
markdownFileAndLines.Lines[i][3..],
|
||||||
|
notCompleted,
|
||||||
|
notCompleted + completed));
|
||||||
|
else if (lines.Count > 0)
|
||||||
|
h2NoCheckboxes.Add(new(markdownFileAndLines.Lines[i][3..], new(lines)));
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
result = new(new(assignees), new(h2HexColors), new(h2NoCheckboxes), new(h2WithCheckboxes), requestedDateTime);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
internal static void MarkdownConvertLinksForHugo(AppSettings appSettings, ILogger<Worker> logger, List<string> args)
|
internal static void MarkdownConvertLinksForHugo(AppSettings appSettings, ILogger<Worker> logger, List<string> args)
|
||||||
{
|
{
|
||||||
Input input = GetInput(args);
|
Input input = GetInput(args);
|
||||||
if (string.IsNullOrEmpty(input.Destination))
|
if (string.IsNullOrEmpty(input.Destination))
|
||||||
throw new NotSupportedException("This method requires frontMatterYamlLines -d path!");
|
throw new NotSupportedException("This method requires frontMatterYamlLines -d path!");
|
||||||
List<Record> collection = GetWithLinksForHugo(appSettings, input);
|
List<Record> collection = GetWithLinksForHugo(appSettings, input);
|
||||||
if (!collection.Any())
|
if (collection.Count == 0)
|
||||||
logger.LogInformation("No files?");
|
logger.LogInformation("No files?");
|
||||||
List<string> distinct = GetDistinct(collection);
|
List<string> distinct = GetDistinct(collection);
|
||||||
CreateMissingDirectories(distinct);
|
CreateMissingDirectories(distinct);
|
||||||
|
@ -34,7 +34,7 @@ internal static class HelperPackageFilesByDate
|
|||||||
continue;
|
continue;
|
||||||
json = File.ReadAllText(packageJsonFile);
|
json = File.ReadAllText(packageJsonFile);
|
||||||
packageJson = JsonSerializer.Deserialize(json, PackageJsonSourceGenerationContext.Default.PackageJson);
|
packageJson = JsonSerializer.Deserialize(json, PackageJsonSourceGenerationContext.Default.PackageJson);
|
||||||
if (packageJson is null || !packageJson.Times.Any())
|
if (packageJson is null || packageJson.Times.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
packageJsonDirectoryName = Path.GetFileName(packageJsonDirectory);
|
packageJsonDirectoryName = Path.GetFileName(packageJsonDirectory);
|
||||||
tgzFiles = Directory.GetFiles(packageJsonDirectory, "*.tgz", SearchOption.TopDirectoryOnly);
|
tgzFiles = Directory.GetFiles(packageJsonDirectory, "*.tgz", SearchOption.TopDirectoryOnly);
|
||||||
@ -52,7 +52,7 @@ internal static class HelperPackageFilesByDate
|
|||||||
if (fileInfo.LastWriteTime != dateTime)
|
if (fileInfo.LastWriteTime != dateTime)
|
||||||
File.SetLastWriteTime(fileInfo.FullName, dateTime);
|
File.SetLastWriteTime(fileInfo.FullName, dateTime);
|
||||||
}
|
}
|
||||||
if (!dateTimes.Any())
|
if (dateTimes.Count == 0)
|
||||||
{
|
{
|
||||||
if (fileNameWithoutExtension.Length + 1 < packageJsonDirectoryName.Length)
|
if (fileNameWithoutExtension.Length + 1 < packageJsonDirectoryName.Length)
|
||||||
continue;
|
continue;
|
||||||
@ -64,7 +64,7 @@ internal static class HelperPackageFilesByDate
|
|||||||
File.SetLastWriteTime(fileInfo.FullName, dateTime);
|
File.SetLastWriteTime(fileInfo.FullName, dateTime);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!dateTimes.Any())
|
if (dateTimes.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
dateTime = dateTimes.Max();
|
dateTime = dateTimes.Max();
|
||||||
fileInfo = new(packageJsonFile);
|
fileInfo = new(packageJsonFile);
|
||||||
|
2
Models/Binder/.editorconfig
Normal file
2
Models/Binder/.editorconfig
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
[*.cs]
|
||||||
|
csharp_preserve_single_line_statements = true
|
@ -25,22 +25,14 @@ public class AppSettings
|
|||||||
private static Models.AppSettings Get(AppSettings? appSettings)
|
private static Models.AppSettings Get(AppSettings? appSettings)
|
||||||
{
|
{
|
||||||
Models.AppSettings result;
|
Models.AppSettings result;
|
||||||
if (appSettings?.Company is null)
|
if (appSettings?.Company is null) throw new NullReferenceException(nameof(appSettings.Company));
|
||||||
throw new NullReferenceException(nameof(appSettings.Company));
|
if (appSettings?.DefaultNoteType is null) throw new NullReferenceException(nameof(appSettings.DefaultNoteType));
|
||||||
if (appSettings?.DefaultNoteType is null)
|
if (appSettings?.ExcludeDirectoryNames is null) throw new NullReferenceException(nameof(appSettings.ExcludeDirectoryNames));
|
||||||
throw new NullReferenceException(nameof(appSettings.DefaultNoteType));
|
if (appSettings?.ExcludeSchemes is null) throw new NullReferenceException(nameof(appSettings.ExcludeSchemes));
|
||||||
if (appSettings?.ExcludeDirectoryNames is null)
|
if (appSettings?.PersonBirthdayFormat is null) throw new NullReferenceException(nameof(appSettings.PersonBirthdayFormat));
|
||||||
throw new NullReferenceException(nameof(appSettings.ExcludeDirectoryNames));
|
if (appSettings?.PersonCharacters is null) throw new NullReferenceException(nameof(appSettings.PersonCharacters));
|
||||||
if (appSettings?.ExcludeSchemes is null)
|
if (appSettings?.PersonTitleFilters is null) throw new NullReferenceException(nameof(appSettings.PersonTitleFilters));
|
||||||
throw new NullReferenceException(nameof(appSettings.ExcludeSchemes));
|
if (appSettings?.WorkingDirectoryName is null) throw new NullReferenceException(nameof(appSettings.WorkingDirectoryName));
|
||||||
if (appSettings?.PersonBirthdayFormat is null)
|
|
||||||
throw new NullReferenceException(nameof(appSettings.PersonBirthdayFormat));
|
|
||||||
if (appSettings?.PersonCharacters is null)
|
|
||||||
throw new NullReferenceException(nameof(appSettings.PersonCharacters));
|
|
||||||
if (appSettings?.PersonTitleFilters is null)
|
|
||||||
throw new NullReferenceException(nameof(appSettings.PersonTitleFilters));
|
|
||||||
if (appSettings?.WorkingDirectoryName is null)
|
|
||||||
throw new NullReferenceException(nameof(appSettings.WorkingDirectoryName));
|
|
||||||
result = new(
|
result = new(
|
||||||
appSettings.Company,
|
appSettings.Company,
|
||||||
appSettings.DefaultNoteType,
|
appSettings.DefaultNoteType,
|
||||||
@ -60,6 +52,19 @@ public class AppSettings
|
|||||||
#pragma warning disable IL3050, IL2026
|
#pragma warning disable IL3050, IL2026
|
||||||
AppSettings? appSettings = configurationRoot.Get<AppSettings>();
|
AppSettings? appSettings = configurationRoot.Get<AppSettings>();
|
||||||
#pragma warning restore IL3050, IL2026
|
#pragma warning restore IL3050, IL2026
|
||||||
|
if (appSettings?.Company is null)
|
||||||
|
{
|
||||||
|
foreach (IConfigurationProvider configurationProvider in configurationRoot.Providers)
|
||||||
|
{
|
||||||
|
if (configurationProvider is not Microsoft.Extensions.Configuration.Json.JsonConfigurationProvider jsonConfigurationProvider)
|
||||||
|
continue;
|
||||||
|
if (jsonConfigurationProvider.Source.FileProvider is not Microsoft.Extensions.FileProviders.PhysicalFileProvider physicalFileProvider)
|
||||||
|
continue;
|
||||||
|
if (!physicalFileProvider.Root.Contains("UserSecrets"))
|
||||||
|
continue;
|
||||||
|
throw new NotSupportedException(physicalFileProvider.Root);
|
||||||
|
}
|
||||||
|
}
|
||||||
result = Get(appSettings);
|
result = Get(appSettings);
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
12
Models/H2HexColor.cs
Normal file
12
Models/H2HexColor.cs
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace File_Folder_Helper.Models;
|
||||||
|
|
||||||
|
internal record H2HexColor(string H2,
|
||||||
|
string HexColor);
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||||
|
[JsonSerializable(typeof(H2HexColor))]
|
||||||
|
internal partial class H2PatternMatchesSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
13
Models/H2NoCheckboxes.cs
Normal file
13
Models/H2NoCheckboxes.cs
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace File_Folder_Helper.Models;
|
||||||
|
|
||||||
|
internal record H2NoCheckboxes(string H2,
|
||||||
|
ReadOnlyCollection<string> Lines);
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||||
|
[JsonSerializable(typeof(H2NoCheckboxes))]
|
||||||
|
internal partial class H2NoCheckboxesSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
14
Models/H2WithCheckboxes.cs
Normal file
14
Models/H2WithCheckboxes.cs
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
|
namespace File_Folder_Helper.Models;
|
||||||
|
|
||||||
|
internal record H2WithCheckboxes(int Completed,
|
||||||
|
string H2,
|
||||||
|
int NotCompleted,
|
||||||
|
int Total);
|
||||||
|
|
||||||
|
[JsonSourceGenerationOptions(WriteIndented = true, DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull)]
|
||||||
|
[JsonSerializable(typeof(H2WithCheckboxes))]
|
||||||
|
internal partial class H2WithCheckboxesSourceGenerationContext : JsonSerializerContext
|
||||||
|
{
|
||||||
|
}
|
@ -2,7 +2,7 @@ using System.Text.Json.Serialization;
|
|||||||
|
|
||||||
namespace File_Folder_Helper.Models;
|
namespace File_Folder_Helper.Models;
|
||||||
|
|
||||||
public record LineNumber(int? Created,
|
internal record LineNumber(int? Created,
|
||||||
int? H1,
|
int? H1,
|
||||||
int? FrontMatterYamlEnd,
|
int? FrontMatterYamlEnd,
|
||||||
int? Status,
|
int? Status,
|
||||||
|
@ -1,17 +1,23 @@
|
|||||||
|
using System.Collections.ObjectModel;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
|
|
||||||
namespace File_Folder_Helper.Models;
|
namespace File_Folder_Helper.Models;
|
||||||
|
|
||||||
public record MarkdownFile(string File,
|
internal record MarkdownFile(ReadOnlyCollection<string>? Assignees,
|
||||||
|
DateTime CreationDateTime,
|
||||||
string Directory,
|
string Directory,
|
||||||
|
string Extension,
|
||||||
|
string File,
|
||||||
string FileName,
|
string FileName,
|
||||||
string FileNameWithoutExtension,
|
string FileNameWithoutExtension,
|
||||||
string Extension,
|
string H1,
|
||||||
DateTime CreationDateTime,
|
ReadOnlyCollection<H2HexColor>? H2HexColorCollection,
|
||||||
|
ReadOnlyCollection<H2NoCheckboxes>? H2NoCheckboxesCollection,
|
||||||
|
ReadOnlyCollection<H2WithCheckboxes>? H2WithCheckboxesCollection,
|
||||||
DateTime LastWriteDateTime,
|
DateTime LastWriteDateTime,
|
||||||
LineNumber LineNumber,
|
LineNumber LineNumber,
|
||||||
string Type,
|
string? RequestedDateTime,
|
||||||
string H1);
|
string Type);
|
||||||
|
|
||||||
[JsonSourceGenerationOptions(WriteIndented = true)]
|
[JsonSourceGenerationOptions(WriteIndented = true)]
|
||||||
[JsonSerializable(typeof(MarkdownFile))]
|
[JsonSerializable(typeof(MarkdownFile))]
|
||||||
|
@ -81,7 +81,7 @@ public class Worker : BackgroundService
|
|||||||
consoleKey = ConsoleKey.End;
|
consoleKey = ConsoleKey.End;
|
||||||
if (singleCharIndex is not null)
|
if (singleCharIndex is not null)
|
||||||
_Args.RemoveAt(singleCharIndex.Value);
|
_Args.RemoveAt(singleCharIndex.Value);
|
||||||
if (!_Args.Any())
|
if (_Args.Count == 0)
|
||||||
_Logger.LogInformation("Must pass a argument!");
|
_Logger.LogInformation("Must pass a argument!");
|
||||||
else if (Directory.Exists(_Args[0]) && File.Exists(Path.Combine(_Args[0], string.Concat(Path.GetFileName(_Args[0]), ".dll"))))
|
else if (Directory.Exists(_Args[0]) && File.Exists(Path.Combine(_Args[0], string.Concat(Path.GetFileName(_Args[0]), ".dll"))))
|
||||||
Helpers.HelperILMerge.ILMerge(_Args[0]);
|
Helpers.HelperILMerge.ILMerge(_Args[0]);
|
||||||
@ -142,7 +142,7 @@ public class Worker : BackgroundService
|
|||||||
Helpers.HelperPackageFilesByDate.SetDateFromJsonEntry(_Logger, _Args[0]);
|
Helpers.HelperPackageFilesByDate.SetDateFromJsonEntry(_Logger, _Args[0]);
|
||||||
break;
|
break;
|
||||||
case ConsoleKey.K:
|
case ConsoleKey.K:
|
||||||
Helpers.HelperKanbanMetadata.SetMetadata(_Logger, _AppSettings, _Args[0]);
|
Helpers.HelperKanbanMetadata.SetMetadata(_Logger, _AppSettings, _Args[0], addTicks: true);
|
||||||
break;
|
break;
|
||||||
case ConsoleKey.L:
|
case ConsoleKey.L:
|
||||||
Helpers.HelperLogMerge.LogMerge(_Args[0]);
|
Helpers.HelperLogMerge.LogMerge(_Args[0]);
|
||||||
@ -152,7 +152,7 @@ public class Worker : BackgroundService
|
|||||||
break;
|
break;
|
||||||
case ConsoleKey.M:
|
case ConsoleKey.M:
|
||||||
if (_Args[0].EndsWith(".kanbn") && Directory.Exists(_Args[0]))
|
if (_Args[0].EndsWith(".kanbn") && Directory.Exists(_Args[0]))
|
||||||
Helpers.HelperKanbanMetadata.SetMetadata(_Logger, _AppSettings, _Args[0]);
|
Helpers.HelperKanbanMetadata.SetMetadata(_Logger, _AppSettings, _Args[0], addTicks: false);
|
||||||
Helpers.HelperMarkdown.MarkdownWikiLinkVerification(_AppSettings, _Logger, _Args);
|
Helpers.HelperMarkdown.MarkdownWikiLinkVerification(_AppSettings, _Logger, _Args);
|
||||||
break;
|
break;
|
||||||
case ConsoleKey.O:
|
case ConsoleKey.O:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user