예제 #1
0
        public void GetToken_ReturnHeadToken_WhenTextContainsOneHeadTag()
        {
            var mark          = new HeadMark();
            var expectedToken = new TokenMd("#aaaaa", mark);
            var tags          = new Dictionary <Mark, IMarkParser>();
            var parser        = new MarkdownParser(tags);

            var tokens = parser.GetTokens("#aaaaa");

            tokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #2
0
        public void GetToken_ReturnStrongToken_WhenTextContainsOneStrongTag()
        {
            var mark          = new StrongMark();
            var expectedToken = new TokenMd("__aaaaa__", mark);

            expectedToken.Token = "__aaaaa__";
            var tags   = new Dictionary <Mark, IMarkParser>();
            var parser = new MarkdownParser(tags);

            var tokens = parser.GetTokens("__aaaaa__");

            tokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #3
0
        public void GetToken_ReturnWordTokenWithInners_WhenWordContainsTag2()
        {
            var mark          = new ItalicMark();
            var expectedToken = new TokenMd("aaaa_b_", new EmptyMark());

            expectedToken.InnerTokens.Add(new TokenMd("aaaa", new EmptyMark(), expectedToken));
            expectedToken.InnerTokens.Add(new TokenMd("_b_", mark, expectedToken));
            var tags   = new Dictionary <Mark, IMarkParser>();
            var parser = new MarkdownParser(tags);

            var tokens = parser.GetTokens("aaaa_b_");

            tokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #4
0
        private TokenMd GetResultToken(string tokenText, bool isEnd)
        {
            if (!isEnd)
            {
                resultToken = new TokenMd(tokenText, new EmptyMark());
                return(resultToken);
            }

            resultToken = new TokenMd(tokenText, mark);

            return(resultToken.TokenWithoutMark.Length == 0
                ? new TokenMd("__", new EmptyMark())
                : resultToken);
        }
예제 #5
0
        public void FormatToken_ReturnStrongFormattedToken_WhenTokenContainsOneStrongTag()
        {
            var mark          = new StrongMark();
            var expectedToken = new TokenMd("\\<strong>12345\\</strong>", mark);
            var tags          = new Dictionary <Mark, IMarkProcessor>();
            var tokens        = new List <TokenMd>();

            tokens.Add(new TokenMd("__12345__", mark));
            var processor = new MarkdownProcessor(tags);

            var formattedTokens = processor.FormatTokens(tokens);

            formattedTokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #6
0
        public TokenMd FormatToken(TokenMd token)
        {
            var startMark = token.Mark.FormattedMarkSymbols.startFormattedMark;
            var endMark   = token.Mark.FormattedMarkSymbols.endFormattedMark;

            var formattedTokenText = startMark + token.FormattedText + endMark;

            var resultToken = new TokenMd(formattedTokenText, token.Mark)
            {
                FormattedText = formattedTokenText,
                InnerTokens   = token.InnerTokens,
            };

            return(resultToken);
        }
예제 #7
0
        public void FormatToken_ReturnItalicFormattedToken_WhenTokenContainsOneItalicTag()
        {
            var MP            = new ItalicProcessor();
            var mark          = new ItalicMark();
            var expectedToken = new TokenMd("\\<em>12345\\</em>", mark);
            var tags          = new Dictionary <Mark, IMarkProcessor>();
            var tokens        = new List <TokenMd>();

            tokens.Add(new TokenMd("_12345_", mark));
            var processor = new MarkdownProcessor(tags);

            var formattedTokens = processor.FormatTokens(tokens);

            formattedTokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #8
0
        public void FormatToken_ReturnHeadFormattedToken_WhenTokenContainsOneHeadTag()
        {
            var MP            = new HeadProcessor();
            var mark          = new HeadMark();
            var expectedToken = new TokenMd("\\<h1>12345\\</h1>", mark);
            var tags          = new Dictionary <Mark, IMarkProcessor>();
            //tags.Add(mark, MP);
            var tokens = new List <TokenMd>();

            tokens.Add(new TokenMd("#12345", mark));
            var processor = new MarkdownProcessor(tags);

            var formattedTokens = processor.FormatTokens(tokens);

            formattedTokens.First().Token.Should().BeEquivalentTo(expectedToken.Token);
        }
예제 #9
0
        public TokenMd FormatToken(TokenMd token)
        {
            var resultToken = token;

            if (!(token.Mark is LinkMark))
            {
                throw new AggregateException();
            }
            var mark = token.Mark as LinkMark;

            var tokenText = $"<a href=\"{mark?.Link}\">{resultToken.FormattedText}</a>";

            resultToken.Token         = tokenText;
            resultToken.FormattedText = tokenText;

            return(resultToken);
        }
예제 #10
0
        public TokenMd FormatToken(TokenMd token)
        {
            var startMark = token.Mark.FormattedMarkSymbols.startFormattedMark;
            var endMark   = token.Mark.FormattedMarkSymbols.endFormattedMark;

            var formattedTokenText = "";

            if (!(token.External?.Mark is ItalicMark))
            {
                formattedTokenText = startMark + token.FormattedText + endMark;
            }

            var resultToken = new TokenMd(formattedTokenText, token.Mark)
            {
                FormattedText = formattedTokenText,
                InnerTokens   = token.InnerTokens
            };

            return(resultToken);
        }