def t2_parse_blocks(src, output)
			while src.cur_line
				l = src.shift_line
				
				# ignore empty line
				if l.t2_empty? then 
					src.shift_line
					next 
				end
				
				# TODO: lists
				# TODO: xml
				# TODO: `==`

				signature, l =
					if l.t2_contains_signature?
						l.t2_get_signature
					else
						[Textile2Signature.new, l]
					end

				if handling = T2_Handling.has_key?(signature.block_name)
					if self.responds_to? handling.method
						# read as many non-empty lines that you can
						lines = [l]
						if handling.parse_lines
							while not src.cur_line.t2_empty?
								lines.push src.shift_line
							end
						end
					
						self.send(handling.method, src, output, signature, lines)
					else
						maruku_error("We don't know about method #{handling.method.inspect}")
						next
					end
				end
				
				
			end
		end
def t2_parse_blocks(src, output)
			while src.cur_line
				l = src.shift_line
				
				# ignore empty line
				if l.t2_empty? then 
					src.shift_line
					next 
				end
				
				# TODO: lists
				# TODO: xml
				# TODO: `==`

				signature, l =
					if l.t2_contains_signature?
						l.t2_get_signature
					else
						[Textile2Signature.new, l]
					end

				if handling = T2_Handling.has_key?(signature.block_name)
					if self.responds_to? handling.method
						# read as many non-empty lines that you can
						lines = [l]
						if handling.parse_lines
							while not src.cur_line.t2_empty?
								lines.push src.shift_line
							end
						end
					
						self.send(handling.method, src, output, signature, lines)
					else
						maruku_error("We don't know about method #{handling.method.inspect}")
						next
					end
				end
				
				
			end
		end
Input is a LineSource