From 67aadcb2fc2e65d9431f3bfa27123bf3815103d7 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 2 Oct 2025 16:40:26 +0200 Subject: [PATCH 1/3] LocalConfigurationDirectory should not use Paths.WorkingDirectoryRoot but Directory.GetCurrentDirectory() --- .../ConfigurationFileProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs index 58c06111d..dbb4430ca 100644 --- a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs +++ b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs @@ -216,7 +216,7 @@ private StreamReader GetEmbeddedStream(string fileName) } public static string AppDataConfigurationDirectory { get; } = Path.Combine(Paths.ApplicationData.FullName, "config-clone", "config"); - public static string LocalConfigurationDirectory { get; } = Path.Combine(Paths.WorkingDirectoryRoot.FullName, "config"); + public static string LocalConfigurationDirectory { get; } = Path.Combine(Directory.GetCurrentDirectory(), "config"); private static string GetLocalPath(string file) => Path.Combine(LocalConfigurationDirectory, file); private static string GetAppDataPath(string file) => Path.Combine(AppDataConfigurationDirectory, file); From baaf66fb6cc94194e40a97571a184bf83abb995b Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Thu, 2 Oct 2025 16:59:42 +0200 Subject: [PATCH 2/3] save local should path as is, restored defaulting to local (with spot checks looking for config files) --- .../ConfigurationFileProvider.cs | 17 ++++++++++++----- .../Configuration/ConfigurationCloneService.cs | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs index dbb4430ca..7b6f5c03b 100644 --- a/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs +++ b/src/Elastic.Documentation.Configuration/ConfigurationFileProvider.cs @@ -45,11 +45,18 @@ public ConfigurationFileProvider( // fileSystem.Directory.Exists(LocalConfigurationDirectory) // ? ConfigurationSource.Local : ConfigurationSource.Embedded // ); - - - // Using Embedded as default for now - ConfigurationSource = configurationSource ?? ConfigurationSource.Embedded; - + if (configurationSource is { } source) + ConfigurationSource = source; + else + { + string[] spotChecks = ["navigation.yml", "versions.yml", "products.yml", "assembler.yml"]; + var defaultSource = + fileSystem.Directory.Exists(LocalConfigurationDirectory) + && spotChecks.All(f => fileSystem.File.Exists(Path.Combine(LocalConfigurationDirectory, f))) + ? ConfigurationSource.Local + : ConfigurationSource.Embedded; + ConfigurationSource = defaultSource; + } if (ConfigurationSource == ConfigurationSource.Local && !fileSystem.Directory.Exists(LocalConfigurationDirectory)) throw new Exception($"Required directory form {nameof(ConfigurationSource)}.{nameof(ConfigurationSource.Local)} directory {LocalConfigurationDirectory} does not exist."); diff --git a/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs b/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs index 956dfdef2..bbcbcd39d 100644 --- a/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs +++ b/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs @@ -29,7 +29,7 @@ Cancel ctx { var checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.AppDataConfigurationDirectory).Parent; if (saveLocal) - checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.LocalConfigurationDirectory).Parent; + checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.LocalConfigurationDirectory); if (checkoutFolder is null) { collector.EmitGlobalError($"Unable to find checkout folder {checkoutFolder}"); From d5552e61e1ad01691b0bd3d7bb8fd368d56ee592 Mon Sep 17 00:00:00 2001 From: Martijn Laarman Date: Fri, 3 Oct 2025 08:36:15 +0200 Subject: [PATCH 3/3] Fix --local argument to config init --- .../Configuration/ConfigurationCloneService.cs | 2 +- tests/Elastic.Markdown.Tests/Directives/AdmonitionTests.cs | 6 ++++-- tests/authoring/Framework/MarkdownDocumentAssertions.fs | 6 +++++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs b/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs index bbcbcd39d..956dfdef2 100644 --- a/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs +++ b/src/services/Elastic.Documentation.Assembler/Configuration/ConfigurationCloneService.cs @@ -29,7 +29,7 @@ Cancel ctx { var checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.AppDataConfigurationDirectory).Parent; if (saveLocal) - checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.LocalConfigurationDirectory); + checkoutFolder = fs.DirectoryInfo.New(ConfigurationFileProvider.LocalConfigurationDirectory).Parent; if (checkoutFolder is null) { collector.EmitGlobalError($"Unable to find checkout folder {checkoutFolder}"); diff --git a/tests/Elastic.Markdown.Tests/Directives/AdmonitionTests.cs b/tests/Elastic.Markdown.Tests/Directives/AdmonitionTests.cs index 7f976b892..49d427b2b 100644 --- a/tests/Elastic.Markdown.Tests/Directives/AdmonitionTests.cs +++ b/tests/Elastic.Markdown.Tests/Directives/AdmonitionTests.cs @@ -170,6 +170,8 @@ A regular paragraph. """ ) { + private readonly ITestOutputHelper _output = output; + [Fact] public void SetsCorrectAdmonitionType() => Block!.Admonition.Should().Be("dropdown"); @@ -194,8 +196,8 @@ public void ContainsNestedDirective() { var html = Html; // Output the full HTML for inspection - output.WriteLine("Generated HTML:"); - output.WriteLine(html); + _output.WriteLine("Generated HTML:"); + _output.WriteLine(html); html.Should().Contain("Nested Note"); html.Should().Contain("This is a nested note with colons: 10:30 AM"); diff --git a/tests/authoring/Framework/MarkdownDocumentAssertions.fs b/tests/authoring/Framework/MarkdownDocumentAssertions.fs index 1380f4d7e..49acc10b1 100644 --- a/tests/authoring/Framework/MarkdownDocumentAssertions.fs +++ b/tests/authoring/Framework/MarkdownDocumentAssertions.fs @@ -34,7 +34,11 @@ module MarkdownDocumentAssertions = match matter with | NonNull m -> match expectedAvailability with - | NonNull a -> m.AppliesTo.Diagnostics <- a.Diagnostics + | NonNull a -> + match m.AppliesTo with + | NonNull ma -> ma.Diagnostics <- a.Diagnostics + | _ -> () + m.AppliesTo.Diagnostics <- a.Diagnostics | _ -> () let apply = m.AppliesTo