public void AddUrlIncludeSpeedy(UrlInclude urlInclude, AssetLinks result) { if (urlInclude.Type == AssetType.Script) { result.Scripts.Add($"{urlInclude.Url}"); } else { result.Styles.Add($"<link async=\"true\" href=\"{urlInclude.Url}\" rel=\"stylesheet\" />"); } }
protected virtual void AddThemeIncludeSpeedy(ThemeInclude themeInclude, AssetLinks result, IThemesProvider themesProvider) { Item item = themeInclude.Theme; if (item == null && !themeInclude.ThemeId.IsNull) { item = ContentRepository.GetItem(themeInclude.ThemeId); } if (item != null) { Log.Debug($"Starting optimized files generation process for {item.Name} with following configuration {_configuration}"); IList <Item> allThemes = ServiceLocator.ServiceProvider.GetService <IThemingContext>().GetAllThemes(item); GetLinksSpeedy(allThemes.FilterBaseThemes(), _configuration.ScriptsMode, _configuration.StylesMode, result); GetLinksSpeedy(themesProvider.GetThemes(item, allThemes), _configuration.ScriptsMode, _configuration.StylesMode, result); } }
protected virtual void GetLinksSpeedy(IEnumerable <Item> allThemes, AssetServiceMode scriptsMode, AssetServiceMode stylesMode, AssetLinks result) { foreach (Item allTheme in allThemes) { AssetLinks assetLinks = new AssetLinks(); GetScriptLinks(allTheme, scriptsMode, assetLinks); GetStylesLinks(allTheme, stylesMode, assetLinks); foreach (string item in from link in assetLinks.Styles select $"<link async=\"true\" href=\"{link}\" rel=\"stylesheet\" />") { result.Styles.Add(item); } foreach (string item2 in from link in assetLinks.Scripts select link) { result.Scripts.Add(item2); } } }
protected virtual void GetLinksSpeedy(IEnumerable <Item> allThemes, AssetServiceMode scriptsMode, AssetServiceMode stylesMode, SpeedyAssetLinks result) { foreach (Item allTheme in allThemes) { AssetLinks assetLinks = new AssetLinks(); GetScriptLinks(allTheme, scriptsMode, assetLinks); GetStylesLinks(allTheme, stylesMode, assetLinks); foreach (string item in from link in assetLinks.Styles select $"<link async=\"true\" href=\"{link}\" rel=\"stylesheet\" />") { var cssFileUri = item.Replace($"<link async=\"true\" href=\"", string.Empty).Replace($"\" rel=\"stylesheet\" />", string.Empty); var prefetchInclude = item.Replace($"async=\"true\"", $"async=\"true\" rel=\"prefetch\""); result.PlainStyles.Add(cssFileUri); result.PrefetchStyles.Add(prefetchInclude); result.Styles.Add(item); } foreach (string item2 in from link in assetLinks.Scripts select link) { result.Scripts.Add(item2); } } }
public SpeedyAssetLinks(AssetLinks links) { this.Scripts = links.Scripts; this.Styles = links.Styles; }