private ViewFolder <T> buildFolder(string path) { var views = ViewEngineSettings.FileSystem.FindFiles(path, _match).Select(x => new FubuFile(x, Provenance) { ProvenancePath = _content.Path }) .Select(_builder).Where(x => !_settings.IsExcluded(x)); var folder = new ViewFolder <T>(path) { IsShared = _settings.IsSharedFolder(path) }; folder.RelativePath = string.Empty; folder.Views.AddRange(views); _folders.Add(folder); ViewEngineSettings.FileSystem.ChildDirectoriesFor(path).Where(x => !_settings.FolderShouldBeIgnored(x)).Each(child => { var childFolder = buildFolder(child); childFolder.Parent = folder; childFolder.RelativePath = (folder.RelativePath + "/" + childFolder.Name).TrimStart('/'); if (childFolder.IsShared) { folder.LayoutFolders.Add(childFolder); } }); return(folder); }