@@ -48,6 +48,8 @@ interface ProviderConfig {
4848 getRawBaseUrl ( ref : RepoRef , branch ?: string ) : string
4949 /** Get blob/rendered URL base for markdown files */
5050 getBlobBaseUrl ( ref : RepoRef , branch ?: string ) : string
51+ /** Convert file URLs to blob URLs (for images) */
52+ fileToRaw ?( url : string ) : string
5153 /** Convert blob URLs to raw URLs (for images) */
5254 blobToRaw ?( url : string ) : string
5355}
@@ -69,6 +71,7 @@ const providers: ProviderConfig[] = [
6971 `https://raw.githubusercontent.com/${ ref . owner } /${ ref . repo } /${ branch } ` ,
7072 getBlobBaseUrl : ( ref , branch = 'HEAD' ) =>
7173 `https://github.com/${ ref . owner } /${ ref . repo } /blob/${ branch } ` ,
74+ fileToRaw : url => url . replace ( '/tree/' , '/raw/' ) ,
7275 blobToRaw : url => url . replace ( '/blob/' , '/raw/' ) ,
7376 } ,
7477 {
@@ -386,12 +389,16 @@ export function getProviderConfig(providerId: ProviderId): ProviderConfig | unde
386389 return providers . find ( p => p . id === providerId )
387390}
388391
389- export function convertBlobToRawUrl ( url : string , providerId : ProviderId ) : string {
392+ export function convertBlobOrFileToRawUrl ( url : string , providerId : ProviderId ) : string {
390393 const provider = providers . find ( p => p . id === providerId )
394+ let rawUrl = url
395+ if ( provider ?. fileToRaw ) {
396+ rawUrl = provider . fileToRaw ( url )
397+ }
391398 if ( provider ?. blobToRaw ) {
392- return provider . blobToRaw ( url )
399+ rawUrl = provider . blobToRaw ( rawUrl )
393400 }
394- return url
401+ return rawUrl
395402}
396403
397404export function isKnownGitProvider ( url : string ) : boolean {
0 commit comments