| 12 | | DOCBOOK_RULES = [:refs_docbook, :block_docbook_table, :block_docbook_lists, :block_docbook_simple_lists, |
| 13 | | :block_docbook_defs, :block_docbook_prefix, :inline_docbook_image, :inline_docbook_link, |
| | 12 | DOCBOOK_RULES = [:refs_docbook, :block_docbook_table, :block_docbook_lists, :block_docbook_simple_lists, |
| | 13 | :block_docbook_defs, :block_docbook_prefix, :inline_docbook_image, :inline_docbook_link, |
| 403 | | @current_class ||= nil |
| 404 | | |
| 405 | | # Find all occurences of div(class). and process them as blocks |
| 406 | | text.gsub!( /^div\((.*?)\)\.\s*(.*?)(?=div\([^\)]+\)\.\s*)/m ) do |blk| |
| 407 | | block_class = (@current_class == $1) ? nil : %{ class=#{$1.inspect}} |
| 408 | | @current_class = $1 |
| 409 | | BLOCK_GROUP_SPLITTER + ( ($2.strip.empty? || block_class.nil?) ? $2 : textile_p('div', block_class, nil, "\n\n#{$2.strip}\n\n") ) |
| 410 | | end |
| 411 | | |
| 412 | | # Take care of the very last div |
| 413 | | text.sub!( /div\((.*?)\)\.\s*(.*)/m ) do |blk| |
| 414 | | block_class = (@current_class == $1) ? nil : %{ class=#{$1.inspect}} |
| 415 | | @current_class = $1 |
| 416 | | BLOCK_GROUP_SPLITTER + ( ($2.strip.empty? || block_class.nil?) ? $2 : textile_p('div', block_class, nil, "\n\n#{$2.strip}\n\n") ) |
| 417 | | end |
| | 403 | @current_class ||= nil |
| | 404 | |
| | 405 | # Find all occurences of div(class). and process them as blocks |
| | 406 | text.gsub!( /^div\((.*?)\)\.\s*(.*?)(?=div\([^\)]+\)\.\s*)/m ) do |blk| |
| | 407 | block_class = (@current_class == $1) ? nil : %{ class=#{$1.inspect}} |
| | 408 | @current_class = $1 |
| | 409 | BLOCK_GROUP_SPLITTER + ( ($2.strip.empty? || block_class.nil?) ? $2 : textile_p('div', block_class, nil, "\n\n#{$2.strip}\n\n") ) |
| | 410 | end |
| | 411 | |
| | 412 | # Take care of the very last div |
| | 413 | text.sub!( /div\((.*?)\)\.\s*(.*)/m ) do |blk| |
| | 414 | block_class = (@current_class == $1) ? nil : %{ class=#{$1.inspect}} |
| | 415 | @current_class = $1 |
| | 416 | BLOCK_GROUP_SPLITTER + ( ($2.strip.empty? || block_class.nil?) ? $2 : textile_p('div', block_class, nil, "\n\n#{$2.strip}\n\n") ) |
| | 417 | end |
| 424 | | |
| 425 | | def block_groups( text, deep_code = false ) |
| 426 | | text.replace text.split( BLOCKS_GROUP_RE ).collect { |blk| blk(blk, deep_code) }.join("\n") |
| 427 | | end |
| 428 | | |
| 429 | | # Surrounds blocks with paragraphs and shelves them when necessary |
| 430 | | def blk( text, deep_code = false ) |
| 431 | | return text if text =~ /<[0-9]+>/ |
| 432 | | |
| 433 | | plain = text !~ /\A[#*> ]/ |
| | 424 | |
| | 425 | def block_groups( text, deep_code = false ) |
| | 426 | text.replace text.split( BLOCKS_GROUP_RE ).collect { |blk| blk(blk, deep_code) }.join("\n") |
| | 427 | end |
| | 428 | |
| | 429 | # Surrounds blocks with paragraphs and shelves them when necessary |
| | 430 | def blk( text, deep_code = false ) |
| | 431 | return text if text =~ /<[0-9]+>/ |
| | 432 | |
| | 433 | plain = text !~ /\A[#*> ]/ |