diff options
author | Ralph Amissah <ralph@amissah.com> | 2014-08-20 20:36:21 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2014-08-20 20:36:21 -0400 |
commit | 68113824863c29cf751f492a170593360ea31f82 (patch) | |
tree | a4a1b776adeb9935321b26f98bae68c83ac3ed61 /lib/sisu/v5/ao_doc_str.rb | |
parent | debian/changelog (5.6.1-1) (diff) | |
parent | documentation related, sisu manual book index, and --no-stop command (diff) |
Merge tag 'sisu_5.6.2' into debian/sid
SiSU 5.6.2
Diffstat (limited to 'lib/sisu/v5/ao_doc_str.rb')
-rw-r--r-- | lib/sisu/v5/ao_doc_str.rb | 131 |
1 files changed, 88 insertions, 43 deletions
diff --git a/lib/sisu/v5/ao_doc_str.rb b/lib/sisu/v5/ao_doc_str.rb index 11990abf..e10cc4ef 100644 --- a/lib/sisu/v5/ao_doc_str.rb +++ b/lib/sisu/v5/ao_doc_str.rb @@ -230,8 +230,11 @@ module SiSU_AO_DocumentStructureExtract term_nodes << term_node use,plus=rgx_idx_ocn_seg.match(term_node)[1,2] @use=use.strip - idx_hash[@use]= - { sub: [], plus: plus } unless idx_hash[@use] and defined? idx_hash[@use] + unless idx_hash[@use] \ + and defined? idx_hash[@use] + idx_hash[@use]= + { sub: [], plus: plus } + end when Array subterm_nodes=[] term_node.each do |subterm_node| @@ -240,8 +243,11 @@ module SiSU_AO_DocumentStructureExtract : (subterm_node + '+0') subterm_nodes << subterm_node sub,sub_plus=rgx_idx_ocn_seg.match(subterm_node)[1,2] - idx_hash[@use]= - { sub: [], plus: 0 } unless idx_hash[@use] and defined? idx_hash[@use] + unless idx_hash[@use] \ + and defined? idx_hash[@use] + idx_hash[@use]= + { sub: [], plus: 0 } + end idx_hash[@use][:sub] << { sub.strip => { plus: sub_plus } } end @@ -299,6 +305,18 @@ module SiSU_AO_DocumentStructureExtract next end t_o=t_o.gsub(/(?:\n\s*\n)+/m,"\n") if @@flag[:code]==:off + unless t_o =~/^(?:@\S+?:|%+)\s/ # extract book index for paragraph if any + idx=if t_o=~/^=\{\s*(.+)\s*\}\s*$\Z/m + m=$1 + m=m.split(/[ ]*\n/).join(' '). + gsub(/\s+([|:;])\s+/,'\1'). + gsub(/\s+([+]\d+)\s+/,'\1') + t_o=t_o.gsub(/\n=\{.+?\}\s*$/m,'') + idx_array_and_hash=construct_idx_array_and_hash(m) + idx_array_and_hash[:hash] + else nil + end + end if t_o !~/^(?:code(?:\.[a-z][0-9a-z_]+)?|box(?:\.[a-z_]+)?|poem|alt|group|block)\{|^\}(?:code|poem|alt|group|block)|^(?:table\{|\{table)[ ~]/ \ and t_o !~/^```[ ]+(?:code(?:\.[a-z][0-9a-z_]+)?|box(?:\.[a-z_]+)?|poem|alt|group|block|table)|^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$|^`:quote_(?:open|close)`/ \ and @@flag[:code]==:off \ @@ -308,17 +326,6 @@ module SiSU_AO_DocumentStructureExtract and @@flag[:alt]==:off \ and @@flag[:box]==:off \ and @@flag[:table]==:off - unless t_o =~/^(?:@\S+?:|%+)\s/ # extract book index for paragraph if any - idx=if t_o=~/^=\{\s*(.+)\s*\}\s*$\Z/m; m=$1 - m=m.split(/[ ]*\n/).join(' '). - gsub(/\s+([|:;])\s+/,'\1'). - gsub(/\s+([+]\d+)\s+/,'\1') - t_o=t_o.gsub(/\n=\{.+?\}\s*$/m,'') - idx_array_and_hash=construct_idx_array_and_hash(m) - idx_array_and_hash[:hash] - else nil - end - end t_o=case t_o when /^#{Mx[:meta_o]}\S+?#{Mx[:meta_c]}/ #metadata, header if t_o=~/^#{Mx[:meta_o]}(\S+?)#{Mx[:meta_c]}\s*(.+)/m @@ -707,7 +714,8 @@ module SiSU_AO_DocumentStructureExtract tags: tags, num: @num_id[:table], } - t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil? + t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) \ + unless h.nil? tuned_file << t_o h={ is_for: :table, @@ -743,7 +751,8 @@ module SiSU_AO_DocumentStructureExtract tags: tags, num: @num_id[:table], } - t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil? + t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) \ + unless h.nil? tuned_file << t_o h={ is_for: :table, @@ -779,7 +788,8 @@ module SiSU_AO_DocumentStructureExtract tags: tags, num: @num_id[:table], } - t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil? + t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) \ + unless h.nil? tuned_file << t_o h={ is_for: :table, @@ -828,15 +838,22 @@ module SiSU_AO_DocumentStructureExtract t_o=nil end end - if @@flag[:code]==:curls or @@flag[:code]==:tics - if (@@flag[:code]==:curls and t_o =~/^\}code/) \ - or (@@flag[:code]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + if @@flag[:code]==:curls \ + or @@flag[:code]==:tics + if (@@flag[:code]==:curls \ + && t_o =~/^\}code/) \ + or (@@flag[:code]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/m) @@flag[:code]=:off - @tuned_code[-1].gsub!(/\s*(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*\Z/m,'') + if @tuned_code[-1] + @tuned_code[-1]. + gsub!(/\s*(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*\Z/m,'') + end obj=@tuned_code.join("\n") tags=[] h={ obj: obj, + idx: idx, syntax: @@flag[:lngsyn], tags: tags, num: @num_id[:code_block], @@ -854,7 +871,8 @@ module SiSU_AO_DocumentStructureExtract } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) end - if (@@flag[:code]==:curls or @@flag[:code]==:tics) \ + if (@@flag[:code]==:curls \ + || @@flag[:code]==:tics) \ and t_o.is_a?(String) sub_array=t_o.dup + "#{Mx[:br_nl]}" @line_mode=[] @@ -863,28 +881,40 @@ module SiSU_AO_DocumentStructureExtract @tuned_code << t_o t_o=nil end - elsif (@@flag[:poem]==:curls or @@flag[:poem]==:tics) \ - or (@@flag[:box]==:curls or @@flag[:box]==:tics) \ - or (@@flag[:group]==:curls or @@flag[:group]==:tics) \ - or (@@flag[:block]==:curls or @@flag[:block]==:tics) \ - or (@@flag[:alt]==:curls or @@flag[:alt]==:tics) \ - or (@@flag[:quote]==:open and t_o =~/`:quote_close`/m) #not - if (@@flag[:poem]==:curls and t_o =~/^\}poem/) \ - or (@@flag[:poem]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + elsif (@@flag[:poem]==:curls \ + || @@flag[:poem]==:tics) \ + or (@@flag[:box]==:curls \ + || @@flag[:box]==:tics) \ + or (@@flag[:group]==:curls \ + || @@flag[:group]==:tics) \ + or (@@flag[:block]==:curls \ + || @@flag[:block]==:tics) \ + or (@@flag[:alt]==:curls \ + || @@flag[:alt]==:tics) \ + or (@@flag[:quote]==:open \ + && t_o =~/`:quote_close`/m) #not + if (@@flag[:poem]==:curls \ + && t_o =~/^\}poem$/m) \ + or (@@flag[:poem]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) @@flag[:poem]=:off h={ is_for: :poem, obj: '', + idx: idx, sym: :poem_close, num: @num_id[:poem], } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) - elsif (@@flag[:box]==:curls and t_o =~/^\}box/) \ - or (@@flag[:box]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + elsif (@@flag[:box]==:curls \ + && t_o =~/^\}box/) \ + or (@@flag[:box]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) @@flag[:box]=:off obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:box], } @@ -894,16 +924,20 @@ module SiSU_AO_DocumentStructureExtract h={ is_for: :box, obj: '', + idx: idx, sym: :box_close, num: @num_id[:box], } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) - elsif (@@flag[:group]==:curls and t_o =~/^\}group/) \ - or (@@flag[:group]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + elsif (@@flag[:group]==:curls \ + && t_o =~/^\}group/) \ + or (@@flag[:group]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) @@flag[:group]=:off obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:group], } @@ -917,12 +951,15 @@ module SiSU_AO_DocumentStructureExtract num: @num_id[:group], } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) - elsif (@@flag[:block]==:curls and t_o =~/^\}block/) \ - or (@@flag[:block]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + elsif (@@flag[:block]==:curls \ + && t_o =~/^\}block/) \ + or (@@flag[:block]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) @@flag[:block]=:off obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:block], } @@ -936,12 +973,15 @@ module SiSU_AO_DocumentStructureExtract num: @num_id[:block], } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) - elsif (@@flag[:alt]==:curls and t_o =~/^\}alt/) \ - or (@@flag[:alt]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + elsif (@@flag[:alt]==:curls \ + && t_o =~/^\}alt/) \ + or (@@flag[:alt]==:tics \ + && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) @@flag[:alt]=:off obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:alt], } @@ -955,10 +995,12 @@ module SiSU_AO_DocumentStructureExtract num: @num_id[:alt], } t_o=SiSU_AO_DocumentStructure::ObjectLayout.new.open_close(h) - elsif @@flag[:quote]==:open and t_o =~/`:quote_close`/m + elsif @@flag[:quote]==:open \ + and t_o =~/`:quote_close`/m @@flag[:quote]=:off h={ is_for: :quote, + idx: idx, obj: '', sym: :quote_close, num: @num_id[:quote], @@ -977,9 +1019,12 @@ module SiSU_AO_DocumentStructureExtract } SiSU_AO_DocumentStructure::ObjectPara.new.paragraph(h) end - if (@@flag[:poem]==:curls or @@flag[:poem]==:tics \ - or @@flag[:group]==:curls or @@flag[:group]==:tics \ - or @@flag[:alt]==:curls or @@flag[:alt]==:tics) \ + if (@@flag[:poem]==:curls \ + || @@flag[:poem]==:tics) \ + or (@@flag[:group]==:curls \ + || @@flag[:group]==:tics) \ + or (@@flag[:alt]==:curls \ + || @@flag[:alt]==:tics) \ and t_o =~/\S/ \ and t_o !~/^(?:\}(?:verse|code|box|alt|group|block)|(?:verse|code(?:\.[a-z][0-9a-z_]+)?|box(?:\.[a-z_]+)?|alt|group|block)\{)/ \ and t_o !~/^```[ ]+(?:code(?:\.[a-z][0-9a-z_]+)?|box(?:\.[a-z_]+)?|poem|alt|group|block)|^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/ # fix logic |