HgCV
CDE Use of LinkTarget
This commit is contained in:
@ -159,12 +159,8 @@ internal static partial class HelperMarkdown
|
||||
return results;
|
||||
}
|
||||
|
||||
private static string[] GetFiles(AppSettings appSettings, string directory, SearchOption searchOption)
|
||||
{
|
||||
string[] results = Directory.GetFiles(directory, "*.md", searchOption).
|
||||
Where(l => !appSettings.ExcludeDirectoryNames.Any(m => l.Contains(m))).ToArray();
|
||||
return results;
|
||||
}
|
||||
private static FileInfo[] GetFiles(AppSettings appSettings, DirectoryInfo directoryInfo, SearchOption searchOption) =>
|
||||
directoryInfo.GetFiles("*.md", searchOption).Where(l => !appSettings.ExcludeDirectoryNames.Any(m => l.FullName.Contains(m))).ToArray();
|
||||
|
||||
/// <summary>
|
||||
/// Determines files text file's encoding by analyzing its byte order mark (BOM).
|
||||
@ -293,16 +289,19 @@ internal static partial class HelperMarkdown
|
||||
return results;
|
||||
}
|
||||
|
||||
private static ReadOnlyCollection<string> GetFiles(AppSettings appSettings, Input input)
|
||||
private static ReadOnlyCollection<FileInfo> GetFiles(AppSettings appSettings, Input input)
|
||||
{
|
||||
List<string> results = [];
|
||||
List<string> files = [];
|
||||
string[] directories = Directory.GetDirectories(input.Source, "*", SearchOption.AllDirectories);
|
||||
foreach (string directory in directories)
|
||||
List<FileInfo> results = [];
|
||||
List<FileInfo> collection = [];
|
||||
DirectoryInfo sourceDirectoryInfo = new(input.Source);
|
||||
DirectoryInfo[] directories = sourceDirectoryInfo.GetDirectories("*", SearchOption.AllDirectories);
|
||||
foreach (DirectoryInfo directoryInfo in directories)
|
||||
{
|
||||
files.Clear();
|
||||
files.AddRange(GetFiles(appSettings, directory, SearchOption.TopDirectoryOnly));
|
||||
foreach (string file in files)
|
||||
collection.Clear();
|
||||
if (!directoryInfo.Exists || (!string.IsNullOrEmpty(directoryInfo.LinkTarget) && !Directory.Exists(directoryInfo.LinkTarget)))
|
||||
continue;
|
||||
collection.AddRange(GetFiles(appSettings, directoryInfo, SearchOption.TopDirectoryOnly));
|
||||
foreach (FileInfo file in collection)
|
||||
results.Add(file);
|
||||
}
|
||||
return new(results);
|
||||
@ -660,7 +659,6 @@ internal static partial class HelperMarkdown
|
||||
string h1;
|
||||
string key;
|
||||
string type;
|
||||
FileInfo fileInfo;
|
||||
bool isKanbanIndex;
|
||||
List<string> lines;
|
||||
bool isWithinSource;
|
||||
@ -670,15 +668,14 @@ internal static partial class HelperMarkdown
|
||||
string fileNameWithoutExtension;
|
||||
ReadOnlyDictionary<string, object> frontMatterYaml;
|
||||
bool isGitOthersModifiedAndDeletedExcludingStandard;
|
||||
ReadOnlyCollection<string> files = GetFiles(appSettings, input);
|
||||
foreach (string file in files)
|
||||
ReadOnlyCollection<FileInfo> files = GetFiles(appSettings, input);
|
||||
foreach (FileInfo fileInfo in files)
|
||||
{ // cSpell:disable
|
||||
fileInfo = new(file);
|
||||
if (fileInfo.DirectoryName is null)
|
||||
continue;
|
||||
key = Path.GetRelativePath(input.Source, file);
|
||||
isWithinSource = file.Contains(input.Source);
|
||||
isGitOthersModifiedAndDeletedExcludingStandard = gitOthersModifiedAndDeletedExcludingStandardFiles.Contains(file);
|
||||
key = Path.GetRelativePath(input.Source, fileInfo.FullName);
|
||||
isWithinSource = fileInfo.FullName.Contains(input.Source);
|
||||
isGitOthersModifiedAndDeletedExcludingStandard = gitOthersModifiedAndDeletedExcludingStandardFiles.Contains(fileInfo.FullName);
|
||||
if (!isWithinSource && results.ContainsKey(key))
|
||||
continue;
|
||||
(lines, lineNumber) = GetStatusAndFrontMatterYamlEndLineNumbers(fileInfo);
|
||||
@ -692,15 +689,15 @@ internal static partial class HelperMarkdown
|
||||
if (!isGitOthersModifiedAndDeletedExcludingStandard)
|
||||
continue;
|
||||
type = appSettings.DefaultNoteType;
|
||||
File.WriteAllLines(file, ["---", $"type: {type}\"", "---", string.Empty, $"# {h1}"]);
|
||||
lines = File.ReadAllLines(file).ToList();
|
||||
File.WriteAllLines(fileInfo.FullName, ["---", $"type: {type}\"", "---", string.Empty, $"# {h1}"]);
|
||||
lines = File.ReadAllLines(fileInfo.FullName).ToList();
|
||||
}
|
||||
isKanbanMarkdown = fileInfo.Name.EndsWith(".knb.md");
|
||||
isKanbanIndex = fileNameWithoutExtension == "index" && type.StartsWith("kanb", StringComparison.OrdinalIgnoreCase);
|
||||
markdownFile = new(fileInfo.CreationTime,
|
||||
fileInfo.DirectoryName,
|
||||
fileInfo.Extension,
|
||||
file,
|
||||
fileInfo.FullName,
|
||||
fileInfo.Name,
|
||||
fileNameWithoutExtension,
|
||||
frontMatterYaml,
|
||||
|
Reference in New Issue
Block a user