MarkdownDeep.SpanFormatter.ProcessAutoLink C# (CSharp) Méthode

ProcessAutoLink() private méthode

private ProcessAutoLink ( ) : Token
Résultat Token
        Token ProcessAutoLink()
        {
            if (DisableLinks)
                return null;

            // Skip the angle bracket and remember the start
            SkipForward(1);
            Mark();

            bool ExtraMode = m_Markdown.ExtraMode;

            // Allow anything up to the closing angle, watch for escapable characters
            while (!Eof)
            {
                char ch = Current;

                // No whitespace allowed
                if (char.IsWhiteSpace(ch))
                    break;

                // End found?
                if (ch == '>')
                {
                    string url = Utils.UnescapeString(Extract(), ExtraMode);

                    LinkInfo li = null;
                    if (Utils.IsEmailAddress(url))
                    {
                        string link_text;
                        if (url.StartsWith("mailto:"))
                        {
                            link_text = url.Substring(7);
                        }
                        else
                        {
                            link_text = url;
                            url = "mailto:" + url;
                        }

                        li = new LinkInfo(new LinkDefinition("auto", url, null), link_text, null);
                    }
                    else if (Utils.IsWebAddress(url))
                    {
                        li=new LinkInfo(new LinkDefinition("auto", url, null), url, null);
                    }

                    if (li!=null)
                    {
                        SkipForward(1);
                        return CreateToken(TokenType.link, li);
                    }

                    return null;
                }

                this.SkipEscapableChar(ExtraMode);
            }

            // Didn't work
            return null;
        }