@@ -51,8 +51,7 @@ public void Configure(IWebHostBuilder builder) => builder
5151 includes . LoadFrom ( "_includes" ) ;
5252 pages . LoadFrom ( "_pages" ) ;
5353 videos . LoadFrom ( "_videos" ) ;
54- AppConfig . Instance . GitPagesBaseUrl ??= ResolveGitBlobBaseUrl ( appHost . ContentRootDirectory ) ;
55- AppConfig . Instance . GitPagesRawBaseUrl ??= ResolveGitRawBlobBaseUrl ( appHost . ContentRootDirectory ) ;
54+ AppConfig . Instance . Init ( appHost . ContentRootDirectory ) ;
5655 } ,
5756 afterAppHostInit : appHost =>
5857 {
@@ -78,26 +77,23 @@ public void Configure(IWebHostBuilder builder) => builder
7877 RazorSsg . PrerenderAsync ( appHost , razorFiles , distDir ) . GetAwaiter ( ) . GetResult ( ) ;
7978 } ) ;
8079 } ) ;
81-
82- private string ? ResolveGitBlobBaseUrl ( IVirtualDirectory contentDir )
80+ }
81+
82+ public class AppConfig
83+ {
84+ public static AppConfig Instance { get ; } = new ( ) ;
85+ public string Title { get ; set ; }
86+ public string LocalBaseUrl { get ; set ; }
87+ public string PublicBaseUrl { get ; set ; }
88+ public string ? GitPagesBaseUrl { get ; set ; }
89+ public string ? GitPagesRawBaseUrl { get ; set ; }
90+
91+ public void Init ( IVirtualDirectory contentDir )
8392 {
84- var srcDir = new DirectoryInfo ( contentDir . RealPath ) ;
85- var gitConfig = new FileInfo ( Path . Combine ( srcDir . Parent ! . FullName , ".git" , "config" ) ) ;
86- if ( gitConfig . Exists )
87- {
88- var txt = gitConfig . ReadAllText ( ) ;
89- var pos = txt . IndexOf ( "url = " , StringComparison . Ordinal ) ;
90- if ( pos >= 0 )
91- {
92- var url = txt [ ( pos + "url = " . Length ) ..] . LeftPart ( ".git" ) . LeftPart ( '\n ' ) . Trim ( ) ;
93- var gitBaseUrl = url . CombineWith ( $ "blob/main/{ srcDir . Name } ") ;
94- return gitBaseUrl ;
95- }
96- }
97- return null ;
93+ ResolveGitBlobBaseUrls ( contentDir ) ;
9894 }
99-
100- private string ? ResolveGitRawBlobBaseUrl ( IVirtualDirectory contentDir )
95+
96+ public void ResolveGitBlobBaseUrls ( IVirtualDirectory contentDir )
10197 {
10298 var srcDir = new DirectoryInfo ( contentDir . RealPath ) ;
10399 var gitConfig = new FileInfo ( Path . Combine ( srcDir . Parent ! . FullName , ".git" , "config" ) ) ;
@@ -108,24 +104,13 @@ public void Configure(IWebHostBuilder builder) => builder
108104 if ( pos >= 0 )
109105 {
110106 var url = txt [ ( pos + "url = " . Length ) ..] . LeftPart ( ".git" ) . LeftPart ( '\n ' ) . Trim ( ) ;
111- var gitBaseUrl = url . Replace ( "github.com" , "raw.githubusercontent.com" ) . CombineWith ( $ "refs/heads /main/{ srcDir . Name } ") ;
112- return gitBaseUrl ;
107+ GitPagesBaseUrl = url . CombineWith ( $ "blob /main/{ srcDir . Name } ") ;
108+ GitPagesRawBaseUrl = url . Replace ( "github.com" , "raw.githubusercontent.com" ) . CombineWith ( $ "refs/heads/main/ { srcDir . Name } " ) ;
113109 }
114110 }
115- return null ;
116111 }
117112}
118113
119- public class AppConfig
120- {
121- public static AppConfig Instance { get ; } = new ( ) ;
122- public string Title { get ; set ; }
123- public string LocalBaseUrl { get ; set ; }
124- public string PublicBaseUrl { get ; set ; }
125- public string ? GitPagesBaseUrl { get ; set ; }
126- public string ? GitPagesRawBaseUrl { get ; set ; }
127- }
128-
129114// Add additional frontmatter info to include
130115public class MarkdownFileInfo : MarkdownFileBase
131116{
0 commit comments