コード例 #1
0
        private async Task <IFile> CompilePage(IPage page, ISite site, ILocation loc)
        {
            m_Logger.LogInformation($"Compiling page: '{loc.ToId()}'", true);

            var url = loc.ToUrl();

            var content = await m_ContentTransformer.Transform(page.RawContent);

            var layout = page.Layout;

            if (layout != null)
            {
                content = await m_LayoutParser.InsertContent(layout, content, site, page, url);
            }

            content = await m_IncludesHandler.ResolveAll(content, site, page, url);

            var contentStrBuilder = new StringBuilder(content);

            await m_Ext.WritePageContent(contentStrBuilder, page.Data, url);

            content = contentStrBuilder.ToString();

            if (!string.IsNullOrEmpty(site.BaseUrl))
            {
                var baseUrl = LocationExtension.URL_SEP + site.BaseUrl.TrimStart(LocationExtension.URL_SEP).TrimEnd(LocationExtension.URL_SEP);

                content = SetBaseUrl(content, baseUrl);
            }

            return(new File(loc, ContentExtension.ToByteArray(content), page.Id));
        }
コード例 #2
0
        public async Task TextAssetTest()
        {
            var site  = new Site("", "", new PageMock("page1", ""), null);
            var asset = new AssetMock("file.txt", ContentExtension.ToByteArray("test"));

            site.MainPage.Assets.Add(asset);

            var files = await m_Compiler.Compile(site).ToListAsync();

            Assert.AreEqual("test", files.First(f => f.Location.ToId() == "file.txt").Content);
        }
コード例 #3
0
        private async Task <IFile> CompileAsset(IAsset asset, ISite site, IPage page, ILocation loc)
        {
            m_Logger.LogInformation($"Compiling asset: '{loc.ToId()}'", true);

            var url = loc.ToUrl();

            var rawContent = asset.AsTextContent();
            var content    = await m_IncludesHandler.ResolveAll(rawContent, site, page, url);

            return(new File(loc, ContentExtension.ToByteArray(content), asset.Id));
        }
コード例 #4
0
        public async Task SubPageAssetTest()
        {
            var site  = new Site("", "", new PageMock("", ""), null);
            var asset = new AssetMock("file.txt", ContentExtension.ToByteArray("test"));
            var p2    = new PageMock("p2", "");

            site.MainPage.SubPages.Add(p2);
            p2.Assets.Add(asset);

            var files = await m_Compiler.Compile(site).ToListAsync();

            var a = files.FirstOrDefault(f => f.Location.ToId() == "p2::file.txt");

            Assert.IsNotNull(a);
            Assert.AreEqual("test", a.AsTextContent());
        }
コード例 #5
0
 public CommentListViewModel(ContentExtension ce)
 {
     this.contentExtension = ce;
 }
コード例 #6
0
 public FilesController(IFilesManagerService fms, IContentManagerService cms, ContentExtension ce)
 {
     this.fms = fms;
     this.cms = cms;
     this.ce  = ce;
 }
コード例 #7
0
 public CommentController(ICommentManagerService cms, ContentExtension ce)
 {
     this.cms = cms;
     this.ce  = ce;
 }
コード例 #8
0
 public FileMock(string location, string content)
     : this(Xarial.Docify.Core.Location.FromPath(location), ContentExtension.ToByteArray(content))
 {
 }
コード例 #9
0
 public FileMock(Location location, string content)
     : this(location, ContentExtension.ToByteArray(content))
 {
 }
コード例 #10
0
 public PluginAsset(string content, string name)
     : this(ContentExtension.ToByteArray(content), name)
 {
 }
コード例 #11
0
 public static void AddTextAsset(string content, IPage page, string path)
 => AddAsset(ContentExtension.ToByteArray(content), page, path);
コード例 #12
0
 public AssetMock(string name, string content)
     : this(name, ContentExtension.ToByteArray(content))
 {
 }
コード例 #13
0
 public PluginFile(string content, ILocation loc, string id)
     : this(ContentExtension.ToByteArray(content), loc, id)
 {
 }
コード例 #14
0
 public FilesListViewModel(ContentExtension ce)
 {
     this.contentExtension = ce;
 }