# File lib/bluecloth.rb, line 159
        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