diff --git a/DocsifyBuildSidebar.sln b/DocsifyBuildSidebar.sln
index 40e1d39..5f5623f 100644
--- a/DocsifyBuildSidebar.sln
+++ b/DocsifyBuildSidebar.sln
@@ -1,9 +1,11 @@
Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.30717.126
+# Visual Studio Version 17
+VisualStudioVersion = 17.5.33516.290
MinimumVisualStudioVersion = 10.0.40219.1
-Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocsifyBuildSidebar", "DocsifyBuildSidebar\DocsifyBuildSidebar.csproj", "{7B85196D-D0E6-4724-BF44-1FA2917797B5}"
+Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "DocsifyBuildSidebar", "DocsifyBuildSidebar\DocsifyBuildSidebar.csproj", "{7B85196D-D0E6-4724-BF44-1FA2917797B5}"
+EndProject
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DocsifyBuildSidebarTests", "DocsifyBuildSidebarTests\DocsifyBuildSidebarTests.csproj", "{D4C87DBB-8C34-4B9A-90D6-EF00911C759E}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -15,6 +17,10 @@ Global
{7B85196D-D0E6-4724-BF44-1FA2917797B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{7B85196D-D0E6-4724-BF44-1FA2917797B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{7B85196D-D0E6-4724-BF44-1FA2917797B5}.Release|Any CPU.Build.0 = Release|Any CPU
+ {D4C87DBB-8C34-4B9A-90D6-EF00911C759E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {D4C87DBB-8C34-4B9A-90D6-EF00911C759E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {D4C87DBB-8C34-4B9A-90D6-EF00911C759E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {D4C87DBB-8C34-4B9A-90D6-EF00911C759E}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
diff --git a/DocsifyBuildSidebar/Utils.cs b/DocsifyBuildSidebar/Utils.cs
index 833f8c6..e87504a 100644
--- a/DocsifyBuildSidebar/Utils.cs
+++ b/DocsifyBuildSidebar/Utils.cs
@@ -51,7 +51,7 @@ public static string GenerateSpace(int n)
///
public static string ReplaceSpace(string data)
{
- return Regex.Replace(data, @"/\s{1,1}/g", "%20");
+ return Regex.Replace(data, @"\s{1,1}", "%20");
}
///
@@ -61,7 +61,7 @@ public static string ReplaceSpace(string data)
///
public static string GetFileNameWithoutExtension(this FileInfo file)
{
- return file.Name.Replace(file.Extension, "");
+ return Path.GetFileNameWithoutExtension(file.Name);
}
///
@@ -71,7 +71,7 @@ public static string GetFileNameWithoutExtension(this FileInfo file)
///
public static string GetFileRelativePath(this FileInfo file)
{
- return file.FullName.Replace(GetCurrentDirectory(), "").TrimStart('\\').Replace("\\", "/");
+ return file.FullName.Replace(GetCurrentDirectory(), "").TrimStart('\\').Replace("\\", "/");
}
///
diff --git a/DocsifyBuildSidebarTests/DocsifyBuildSidebarTests.csproj b/DocsifyBuildSidebarTests/DocsifyBuildSidebarTests.csproj
new file mode 100644
index 0000000..fb853cc
--- /dev/null
+++ b/DocsifyBuildSidebarTests/DocsifyBuildSidebarTests.csproj
@@ -0,0 +1,29 @@
+
+
+
+ net7.0
+ enable
+ enable
+
+ false
+ true
+
+
+
+
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+ runtime; build; native; contentfiles; analyzers; buildtransitive
+ all
+
+
+
+
+
+
+
+
diff --git a/DocsifyBuildSidebarTests/Usings.cs b/DocsifyBuildSidebarTests/Usings.cs
new file mode 100644
index 0000000..a611174
--- /dev/null
+++ b/DocsifyBuildSidebarTests/Usings.cs
@@ -0,0 +1 @@
+global using Xunit;
\ No newline at end of file
diff --git a/DocsifyBuildSidebarTests/UtilsTests.cs b/DocsifyBuildSidebarTests/UtilsTests.cs
new file mode 100644
index 0000000..d30ad84
--- /dev/null
+++ b/DocsifyBuildSidebarTests/UtilsTests.cs
@@ -0,0 +1,33 @@
+using DocsifyBuildSidebar;
+
+using Xunit.Abstractions;
+
+namespace DocsifyBuildSidebarTests
+{
+ public class UtilsTests
+ {
+
+ public ITestOutputHelper Log { get; set; }
+ public UtilsTests(ITestOutputHelper log)
+ {
+ Log = log;
+ }
+
+ [Fact]
+ public void Test_GenerateSpace()
+ {
+
+ Assert.Equal(" ", Utils.GenerateSpace(1));
+ Assert.Equal(" ", Utils.GenerateSpace(2));
+ Assert.Equal(" ", Utils.GenerateSpace(3));
+ }
+
+ [Fact]
+ public void Test_ReplaceSpace()
+ {
+ var res = Utils.ReplaceSpace("测试数据 嘿嘿嘿 按按 问问");
+ Assert.Equal("测试数据%20嘿嘿嘿%20按按%20问问", res);
+ }
+
+ }
+}
\ No newline at end of file