@@ -39,6 +39,7 @@ public class StaticWebService : IStaticWebService
3939 public event EventHandler < StaticWebIOEvent > AfterIODelete ;
4040
4141 public ITextResourceDependencyService _htmlDependencyService = new HtmlDependencyService ( ) ;
42+ public ITextResourceDependencyService _svgDependencyService = new SvgDependencyService ( ) ;
4243 public ITextResourceDependencyService _cssDependencyService = new CssDependencyService ( ) ;
4344
4445 public StaticWebService ( )
@@ -598,18 +599,24 @@ protected static string TryToFixLinkUrls(string html)
598599
599600 protected string EnsureDependencies ( string referencingUrl , string content , SiteConfigurationElement siteConfiguration , bool ? useTemporaryAttribute , bool ignoreHtmlDependencies , AllowedResourceTypeConfigurationElement typeConfiguration , Dictionary < string , string > currentPageResourcePairs = null , ConcurrentDictionary < string , string > replaceResourcePairs = null , int callDepth = 0 )
600601 {
601- switch ( typeConfiguration . DenendencyLookup )
602- {
603- case ResourceDependencyLookup . Html :
604- if ( ignoreHtmlDependencies && callDepth != 0 )
605- return content ;
606- return _htmlDependencyService . EnsureDependencies ( referencingUrl , content , this , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , currentPageResourcePairs , replaceResourcePairs , ++ callDepth ) ;
607- case ResourceDependencyLookup . Css :
608- return _cssDependencyService . EnsureDependencies ( referencingUrl , content , this , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , currentPageResourcePairs , replaceResourcePairs , ++ callDepth ) ;
609- case ResourceDependencyLookup . None :
610- default :
611- return content ;
602+ string workingContent = content ;
603+ if ( typeConfiguration . DenendencyLookup . HasFlag ( ResourceDependencyLookup . Html ) )
604+ {
605+ if ( ! ignoreHtmlDependencies || callDepth == 0 )
606+ {
607+ workingContent = _htmlDependencyService . EnsureDependencies ( referencingUrl , workingContent , this , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , currentPageResourcePairs , replaceResourcePairs , ++ callDepth ) ;
608+ }
609+ }
610+ if ( typeConfiguration . DenendencyLookup . HasFlag ( ResourceDependencyLookup . Svg ) )
611+ {
612+ workingContent = _svgDependencyService . EnsureDependencies ( referencingUrl , workingContent , this , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , currentPageResourcePairs , replaceResourcePairs , ++ callDepth ) ;
613+ }
614+ if ( typeConfiguration . DenendencyLookup . HasFlag ( ResourceDependencyLookup . Css ) )
615+ {
616+ workingContent = _cssDependencyService . EnsureDependencies ( referencingUrl , workingContent , this , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , currentPageResourcePairs , replaceResourcePairs , ++ callDepth ) ;
612617 }
618+
619+ return workingContent ;
613620 }
614621
615622 public string EnsureResource ( SiteConfigurationElement siteConfiguration , string resourceUrl , Dictionary < string , string > currentPageResourcePairs , ConcurrentDictionary < string , string > replaceResourcePairs , bool ? useTemporaryAttribute , bool ignoreHtmlDependencies , int callDepth = 0 )
@@ -641,7 +648,7 @@ public string EnsureResource(SiteConfigurationElement siteConfiguration, string
641648 return null ;
642649 }
643650
644- if ( ignoreHtmlDependencies && callDepth != 0 && resourceInfo . TypeConfiguration . DenendencyLookup == ResourceDependencyLookup . Html )
651+ if ( ignoreHtmlDependencies && callDepth != 0 && resourceInfo . TypeConfiguration . DenendencyLookup . HasFlag ( ResourceDependencyLookup . Html ) )
645652 {
646653 return null ;
647654 }
@@ -658,7 +665,7 @@ public string EnsureResource(SiteConfigurationElement siteConfiguration, string
658665 currentPageResourcePairs . Add ( resourceUrl , newResourceUrl ) ;
659666 }
660667
661- if ( resourceInfo . TypeConfiguration . DenendencyLookup != ResourceDependencyLookup . None )
668+ if ( ! resourceInfo . TypeConfiguration . DenendencyLookup . HasFlag ( ResourceDependencyLookup . None ) )
662669 {
663670 var content = Encoding . UTF8 . GetString ( resourceInfo . Data ) ;
664671 content = EnsureDependencies ( resourceUrl , content , siteConfiguration , useTemporaryAttribute , ignoreHtmlDependencies , resourceInfo . TypeConfiguration , currentPageResourcePairs , replaceResourcePairs , callDepth ) ;
0 commit comments