public Method

BlueCloth.to_html( lite=false )

Render Markdown-formatted text in this string object as HTML and return it. The parameter is for compatibility with RedCloth, and is currently unused, though that may change in the future.

Source Code

# File bluecloth.rb, line 163
def to_html( lite=false )

        # Create a StringScanner we can reuse for various lexing tasks
        @scanner = StringScanner::new( '' )

        # Make a structure to carry around stuff that gets placeholdered out of
        # the source.
        rs = RenderState::new( {}, {}, {} )

        # Make a copy of the string with normalized line endings, tabs turned to
        # spaces, and a couple of guaranteed newlines at the end
        text = self.gsub( /\r\n?/, "\n" ).detab
        text += "\n\n"
        @log.debug "Normalized line-endings: %p" % text

        # Filter HTML if we're asked to do so
        if self.filter_html
                text.gsub!( "<", "&lt;" )
                text.gsub!( ">", "&gt;" )
                @log.debug "Filtered HTML: %p" % text
        end

        # Simplify blank lines
        text.gsub!( /^ +$/, '' )
        @log.debug "Tabs -> spaces/blank lines stripped: %p" % text

        # Replace HTML blocks with placeholders
        text = hide_html_blocks( text, rs )
        @log.debug "Hid HTML blocks: %p" % text
        @log.debug "Render state: %p" % rs

        # Strip link definitions, store in render state
        text = strip_link_definitions( text, rs )
        @log.debug "Stripped link definitions: %p" % text
        @log.debug "Render state: %p" % rs

        # Escape meta-characters
        text = escape_special_chars( text )
        @log.debug "Escaped special characters: %p" % text

        # Transform block-level constructs
        text = apply_block_transforms( text, rs )
        @log.debug "After block-level transforms: %p" % text

        # Now swap back in all the escaped characters
        text = unescape_special_chars( text )
        @log.debug "After unescaping special characters: %p" % text

        return text
end
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.