Exemple #1
0
        public IEnumerable <ViewPageRef> FindRazorPages(string dirPath)
        {
            var hasReloadableWebPages = false;

            foreach (var entry in templateServices)
            {
                var ext         = entry.Key;
                var csHtmlFiles = VirtualPathProvider.GetAllMatchingFiles("*." + ext).ToList();
                foreach (var csHtmlFile in csHtmlFiles)
                {
                    if (ShouldSkipPath(csHtmlFile))
                    {
                        continue;
                    }

                    if (csHtmlFile.GetType().Name != "ResourceVirtualFile")
                    {
                        hasReloadableWebPages = true;
                    }

                    var pageName     = csHtmlFile.Name.WithoutExtension();
                    var pageContents = GetPageContents(csHtmlFile);

                    var pageType = RazorPageType.ContentPage;
                    if (VirtualPathProvider.IsSharedFile(csHtmlFile))
                    {
                        pageType = RazorPageType.SharedViewPage;
                    }
                    else if (VirtualPathProvider.IsViewFile(csHtmlFile))
                    {
                        pageType = RazorPageType.ViewPage;
                    }

                    var templateService = entry.Value;
                    templateService.RegisterPage(csHtmlFile.VirtualPath, pageName);

                    var templatePath = pageType == RazorPageType.ContentPage
                                                ? TemplateProvider.GetTemplatePath(csHtmlFile.Directory)
                        : null;

                    yield return(new ViewPageRef(this, csHtmlFile.VirtualPath, pageName, pageContents, pageType)
                    {
                        Template = templatePath,
                        LastModified = csHtmlFile.LastModified,
                        Service = templateService
                    });
                }
            }

            if (!hasReloadableWebPages)
            {
                WatchForModifiedPages = false;
            }
        }
        public IEnumerable <MarkdownPage> FindMarkdownPages(string dirPath)
        {
            var hasReloadableWebPages = false;

            var markDownFiles = VirtualPathProvider.GetAllMatchingFiles("*." + MarkdownExt);

            foreach (var markDownFile in markDownFiles)
            {
                if (markDownFile.ShouldSkipPath())
                {
                    continue;
                }

                if (markDownFile.GetType().GetOperationName() != "ResourceVirtualFile")
                {
                    hasReloadableWebPages = true;
                }

                var pageName     = markDownFile.Name.WithoutExtension();
                var pageContents = GetPageContents(markDownFile);

                var pageType = MarkdownPageType.ContentPage;
                if (VirtualPathProvider.IsSharedFile(markDownFile))
                {
                    pageType = MarkdownPageType.SharedViewPage;
                }
                else if (VirtualPathProvider.IsViewFile(markDownFile))
                {
                    pageType = MarkdownPageType.ViewPage;
                }

                var templatePath = pageType == MarkdownPageType.ContentPage
                    ? templateProvider.GetTemplatePath(markDownFile.Directory)
                    : null;

                yield return(new MarkdownPage(this, markDownFile.VirtualPath,
                                              pageName, pageContents, pageType)
                {
                    Template = templatePath,
                    LastModified = markDownFile.LastModified,
                });
            }

            if (!hasReloadableWebPages)
            {
                WatchForModifiedPages = false;
            }
        }
Exemple #3
0
        public void RegisterMarkdownPages(string dirPath)
        {
            foreach (var page in FindMarkdownPagesFn(dirPath))
            {
                AddPage(page);
            }

            var templateFiles = VirtualPathProvider.GetAllMatchingFiles("*." + TemplateExt);

            foreach (var templateFile in templateFiles)
            {
                try
                {
                    var templateContents = GetPageContents(templateFile);
                    AddTemplate(templateFile.VirtualPath, templateContents);
                }
                catch (Exception ex)
                {
                    Log.Error("AddTemplate(): " + ex.Message, ex);
                }
            }
        }