Beispiel #1
0
        private SitemapElementOptions GetOptions(SitemapOptions rootOptions, string sourcePath)
        {
            var options = GetMatchingOptions(rootOptions, sourcePath);

            if (options == rootOptions)
            {
                return(options);
            }

            if (string.IsNullOrEmpty(options.BaseUrl))
            {
                options.BaseUrl = rootOptions.BaseUrl;
            }
            else
            {
                if (!options.BaseUrl.EndsWith("/", StringComparison.Ordinal))
                {
                    options.BaseUrl += '/';
                }
            }

            options.BaseUrl         = options.BaseUrl ?? rootOptions.BaseUrl;
            options.ChangeFrequency = options.ChangeFrequency ?? rootOptions.ChangeFrequency;
            options.Priority        = options.Priority ?? rootOptions.Priority;
            options.LastModified    = options.LastModified ?? rootOptions.LastModified;

            if (options.Priority.HasValue && (options.Priority < 0 || options.Priority > 1))
            {
                Logger.LogWarning($"Invalid priority {options.Priority}, priority must be between 0.0 and 1.0. Use default value 0.5 instead.");
                options.Priority = null;
            }

            return(options);
        }
Beispiel #2
0
        private SitemapElementOptions GetMatchingOptions(SitemapOptions options, string sourcePath)
        {
            if (options.FileOptions != null)
            {
                // As the latter one overrides the former one, match the pattern from latter to former
                for (var i = options.FileOptions.Count - 1; i >= 0; i--)
                {
                    var item = options.FileOptions[i];
                    var glob = new GlobMatcher(item.Key);
                    if (glob.Match(sourcePath))
                    {
                        return(item.Value);
                    }
                }
            }

            return(options);
        }
Beispiel #3
0
 private static Task <int> HandleSitemapOptions(SitemapOptions options)
 {
     return(Task.FromResult(0));
 }