コード例 #1
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void EmptyContentTest()
        {
            WikiEngine engine = new WikiEngine();

            Assert.AreEqual(null, engine.Render(null));
            Assert.AreEqual(null, engine.Render(string.Empty));
        }
コード例 #2
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void SkipLinesTest()
        {
            WikiEngine engine = new WikiEngine();

            engine.RenderingOptions.SkipLinesEnabled = true;
            Assert.AreEqual("<p>TEXT 1</p><p>TEXT 2</p>", engine.Render("TEXT 1\n? COMMENT\nTEXT 2"));

            engine.RenderingOptions.SkipLinesEnabled = false;
            Assert.AreEqual("<p>TEXT 1</p><p>? COMMENT</p><p>TEXT 2</p>", engine.Render("TEXT 1\n? COMMENT\nTEXT 2"));
        }
コード例 #3
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void UrlNormalizationTest()
        {
            WikiEngine engine = new WikiEngine();

            Assert.AreEqual("<p><a href=\"http://www.abc.com\">www.abc.com</a></p>", engine.Render("[url:www.abc.com]"));
            Assert.AreEqual("<p><a href=\"http://www.abc.com\">http://www.abc.com</a></p>", engine.Render("[url:http://www.abc.com]"));
            Assert.AreEqual("<p><a href=\"/link\">/link</a></p>", engine.Render("[url:/link]"));

            Assert.AreEqual("<p><a href=\"mailto:[email protected]\">[email protected]</a></p>", engine.Render("[mailto:[email protected]]"));
        }
コード例 #4
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void NonStandardhyphenTest()
        {
            WikiEngine engine = new WikiEngine();

            Assert.AreEqual("<p>TEXT-TEXT</p>", engine.Render("TEXT\x2013TEXT"));
            Assert.AreEqual("<p>TEXT \x2014 TEXT</p>", engine.Render("TEXT \x2013 TEXT"));
            
            Assert.AreEqual("<ul><li>TEXT</li></ul>", engine.Render("\x2013 TEXT"));

            Assert.AreEqual("<ul><li>TEXT</li></ul>", engine.Render("\x2013 TEXT"));
        }
コード例 #5
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void FormattingTest()
        {
            WikiEngine engine = new WikiEngine();

            Assert.AreEqual("<p><b>TEXT</b></p>", engine.Render("*TEXT*"));
            Assert.AreEqual("<p><b><i>TEXT</i></b></p>", engine.Render("*_TEXT_*"));
            Assert.AreEqual("<p><b><i>TEXT</i> TEXT</b></p>", engine.Render("*_TEXT_ TEXT*"));
            Assert.AreEqual("<p><b><i><b>TEXT</b></i></b></p>", engine.Render("*_*TEXT*_*"));

            Assert.AreEqual("<p><b>TEXT</b>.</p>", engine.Render("*TEXT*."));
            Assert.AreEqual("<p><i>TEXT</i>.</p>", engine.Render("_TEXT_."));
        }
コード例 #6
0
ファイル: WikiFixture.cs プロジェクト: kostrse/MayMart.Wiki
        public void HeaderOptionsText()
        {
            WikiEngine engine = new WikiEngine();

            engine.RenderingOptions.Headers = HeaderTypes.All;
            Assert.AreEqual("<h1>TEXT</h1><h2>TEXT</h2><h3>TEXT</h3><h4>TEXT</h4><p>=====TEXT</p>", engine.Render("=TEXT\n==TEXT\n===TEXT\n====TEXT\n=====TEXT\n"));

            engine.RenderingOptions.Headers = HeaderTypes.Default;
            Assert.AreEqual("<p>TEXT</p><h2>TEXT</h2><h3>TEXT</h3><h4>TEXT</h4><p>=====TEXT</p>", engine.Render("=TEXT\n==TEXT\n===TEXT\n====TEXT\n=====TEXT\n"));

            engine.RenderingOptions.Headers = HeaderTypes.Header2;
            Assert.AreEqual("<p>TEXT</p><h2>TEXT</h2><p>TEXT</p><p>TEXT</p><p>=====TEXT</p>", engine.Render("=TEXT\n==TEXT\n===TEXT\n====TEXT\n=====TEXT\n"));

            engine.RenderingOptions.Headers = HeaderTypes.Header1 | HeaderTypes.Header2;
            Assert.AreEqual("<h1>TEXT</h1><h2>TEXT</h2><p>TEXT</p><p>TEXT</p><p>=====TEXT</p>", engine.Render("=TEXT\n==TEXT\n===TEXT\n====TEXT\n=====TEXT\n"));
        }
コード例 #7
0
        public void ProcessRequest(HttpContext context)
        {
            if (!SecurityContext.IsAuthenticated)
            {
                if (!SecurityContext.AuthenticateMe(CookiesManager.GetCookies(CookiesType.AuthKey)))
                {
                    context.Response.StatusCode = (int)HttpStatusCode.Forbidden;
                    context.Response.End();
                    return;
                }
            }

            context.Response.Clear();
            if (string.IsNullOrEmpty(context.Request["file"]))
            {
                context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                context.Response.End();
                return;
            }

            var file = new WikiEngine().GetFile(context.Request["file"]);
            if (file == null)
            {
                file = new WikiEngine().GetFile(context.Request["file"].Replace('_', ' '));
                if (file == null)
                {
                    context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                    context.Response.End();
                    return;
                }
            }
            if (string.IsNullOrEmpty(file.FileLocation))
            {
                context.Response.StatusCode = (int)HttpStatusCode.BadRequest;
                context.Response.End();
                return;
            }

            var storage = StorageFactory.GetStorage(CoreContext.TenantManager.GetCurrentTenant().TenantId.ToString(), WikiSection.Section.DataStorage.ModuleName);
            context.Response.Redirect(storage.GetUri(WikiSection.Section.DataStorage.DefaultDomain, file.FileLocation).OriginalString);
        }
コード例 #8
0
        public static SaveResult MoveContentFromTemp(Guid userId, string fromFileName, string toFileName, string configLocation, WikiSection section, int tenantId, HttpContext context, string rootFile, out string _fileName)
        {
            var storage = StorageFactory.GetStorage(tenantId.ToString(), section.DataStorage.ModuleName);

            var fileName     = toFileName;
            var fileLocation = GetFileLocation(fileName);
            var file         = new File
            {
                FileName       = fileName,
                UploadFileName = fileName,
                UserID         = userId,
                FileLocation   = fileLocation,
                FileSize       = (int)storage.GetFileSize(section.DataStorage.TempDomain, fromFileName),
            };

            var wiki = new WikiEngine();

            wiki.SaveFile(file);

            storage.Move(section.DataStorage.TempDomain, fromFileName, section.DataStorage.DefaultDomain, fileLocation);
            _fileName = file.FileName;

            return(SaveResult.Ok);
        }
コード例 #9
0
 public WikiApi(ApiContext apiContext)
 {
     _apiContext = apiContext;
     _engine     = new WikiEngine();
 }
コード例 #10
0
ファイル: Wiki.asmx.cs プロジェクト: angaratosurion/MultiPlex
 public string GetWikiPreview(int id, string slug, string source)
 {
     var wikiEngine = new WikiEngine();
     return wikiEngine.Render(source, GetFormatter());
 }
コード例 #11
0
        public static IHtmlString Wiki(this HtmlHelper <string> htmlHelper, string wikiContent)
        {
            var wiki = new WikiEngine();

            return(new HtmlString(wiki.Render(wikiContent)));
        }
コード例 #12
0
        public static SaveResult DirectFileSave(Guid UserId, FileUpload fuFile, string rootFile, WikiSection section, string configLocation, int tenantId, HttpContext context)
        {
            if (!fuFile.HasFile)
                return SaveResult.FileEmpty;

            //var fileName = fuFile.FileName;
            //var fileLocation = GetFileLocation(fileName, section, rootFile);
            //var file = new File
            //               {
            //                   FileName = fileName,
            //                   UploadFileName = fileName,
            //                   UserID = UserId,
            //                   FileLocation = fileLocation,
            //                   FileSize = fuFile.FileBytes.Length,
            //               };

            var wikiEngine = new WikiEngine();
            //wikiEngine.SaveFile(file);
            var file = wikiEngine.CreateOrUpdateFile(new File {FileName = fuFile.FileName, FileSize = fuFile.FileBytes.Length});
            try
            {
                FileContentSave(file.FileLocation/*fileLocation*/, fuFile.FileBytes, section, configLocation, tenantId, context);
            }
            catch (TenantQuotaException)
            {
                wikiEngine.RemoveFile(file.FileName);
                return SaveResult.FileSizeExceeded;
            }

            return SaveResult.Ok;
        }
コード例 #13
0
        public static SaveResult MoveContentFromTemp(Guid UserId, string fromFileName, string toFileName, string configLocation, WikiSection section, int tenantId, HttpContext context, string rootFile, out string _fileName)
        {
            var storage = StorageFactory.GetStorage(configLocation, tenantId.ToString(), section.DataStorage.ModuleName, context);

            var fileName = toFileName;
            var fileLocation = GetFileLocation(fileName, section, rootFile);
            var file = new File
                           {
                               FileName = fileName,
                               UploadFileName = fileName,
                               UserID = UserId,
                               FileLocation = fileLocation,
                               FileSize = (int) storage.GetFileSize(section.DataStorage.TempDomain, fromFileName),
                           };

            var wiki = new WikiEngine();
            wiki.SaveFile(file);

            storage.Move(section.DataStorage.TempDomain, fromFileName, section.DataStorage.DefaultDomain, fileLocation);
            _fileName = file.FileName;

            return SaveResult.Ok;
        }
コード例 #14
0
        public static SaveResult DirectFileSave(Guid userId, FileUpload fuFile, string rootFile, WikiSection section, string configLocation, int tenantId, HttpContext context)
        {
            if (!fuFile.HasFile)
                return SaveResult.FileEmpty;

            var wikiEngine = new WikiEngine();
            File file = null;

            try
            {
                file = wikiEngine.CreateOrUpdateFile(new File {FileName = fuFile.FileName, FileSize = fuFile.FileBytes.Length});
                FileContentSave(file.FileLocation, fuFile.FileBytes, section, configLocation, tenantId, context);
            }
            catch (TenantQuotaException)
            {
                if (file != null)
                    wikiEngine.RemoveFile(file.FileName);
                return SaveResult.FileSizeExceeded;
            }

            return SaveResult.Ok;
        }
コード例 #15
0
ファイル: WikiRenderer.cs プロジェクト: jeswin/AgileFx
        public static string Render(string source)
        {
            var wikiEngine = new WikiEngine();

            return(wikiEngine.Render(source, new MacroFormatter(Renderers.All)));
        }