From e1b6e755686e40a0133fa4fa75e66d257de9ba0c Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Wed, 20 Aug 2014 18:49:24 -0400 Subject: v5 v6: ao, book index related --- data/doc/sisu/CHANGELOG_v5 | 4 +++- data/doc/sisu/CHANGELOG_v6 | 4 +++- lib/sisu/v5/ao_doc_str.rb | 39 +++++++++++++++++++++++++-------------- lib/sisu/v5/ao_misc_arrange.rb | 4 ++-- lib/sisu/v6/ao_doc_str.rb | 39 +++++++++++++++++++++++++-------------- lib/sisu/v6/ao_misc_arrange.rb | 4 ++-- 6 files changed, 60 insertions(+), 34 deletions(-) diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5 index bd4cd945..9c795654 100644 --- a/data/doc/sisu/CHANGELOG_v5 +++ b/data/doc/sisu/CHANGELOG_v5 @@ -38,7 +38,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.6.2.orig.tar.xz sisu_5.6.2.orig.tar.xz sisu_5.6.2-1.dsc -* ao_expand_insertions, blocked text match, adjust +* ao + * book index related + * ao_expand_insertions, blocked text match, adjust * texpdf, output, copyright & license diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6 index f7d7997d..a1b20529 100644 --- a/data/doc/sisu/CHANGELOG_v6 +++ b/data/doc/sisu/CHANGELOG_v6 @@ -28,7 +28,9 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.2.3.orig.tar.xz sisu_6.2.3.orig.tar.xz sisu_6.2.3-1.dsc -* ao_expand_insertions, blocked text match, adjust +* ao + * book index related + * ao_expand_insertions, blocked text match, adjust * texpdf, output, copyright & license diff --git a/lib/sisu/v5/ao_doc_str.rb b/lib/sisu/v5/ao_doc_str.rb index d9a7c9f2..e10cc4ef 100644 --- a/lib/sisu/v5/ao_doc_str.rb +++ b/lib/sisu/v5/ao_doc_str.rb @@ -305,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 \ @@ -314,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 @@ -842,14 +843,17 @@ module SiSU_AO_DocumentStructureExtract if (@@flag[:code]==:curls \ && t_o =~/^\}code/) \ or (@@flag[:code]==:tics \ - && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + && 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], @@ -897,6 +901,7 @@ module SiSU_AO_DocumentStructureExtract h={ is_for: :poem, obj: '', + idx: idx, sym: :poem_close, num: @num_id[:poem], } @@ -909,6 +914,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:box], } @@ -918,6 +924,7 @@ module SiSU_AO_DocumentStructureExtract h={ is_for: :box, obj: '', + idx: idx, sym: :box_close, num: @num_id[:box], } @@ -930,6 +937,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:group], } @@ -951,6 +959,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:block], } @@ -972,6 +981,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:alt], } @@ -990,6 +1000,7 @@ module SiSU_AO_DocumentStructureExtract @@flag[:quote]=:off h={ is_for: :quote, + idx: idx, obj: '', sym: :quote_close, num: @num_id[:quote], diff --git a/lib/sisu/v5/ao_misc_arrange.rb b/lib/sisu/v5/ao_misc_arrange.rb index 09842fcc..ab61671c 100644 --- a/lib/sisu/v5/ao_misc_arrange.rb +++ b/lib/sisu/v5/ao_misc_arrange.rb @@ -98,11 +98,11 @@ module SiSU_AO_MiscArrangeText else para << block_open end - elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m \ + elsif para =~/\A.+?\n```(?:\s+\~\{.+?\}\~)?(?:\s+[~-][#])?(\s*=\{.+?\})?\s*\Z/m \ and @flag==:open @flag=:close text,block_close= - /\A(.+?)\n(```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1,2] + /\A(.+?)\n(```(?:\s+\~\{.+?\}\~)?(?:\s+[~-][#])?(?:\s+=\{.+?\})?)\s*\Z/m.match(para)[1,2] para=[] if not text.to_s.empty? para << text.to_s << block_close diff --git a/lib/sisu/v6/ao_doc_str.rb b/lib/sisu/v6/ao_doc_str.rb index 25735de7..6e7a103f 100644 --- a/lib/sisu/v6/ao_doc_str.rb +++ b/lib/sisu/v6/ao_doc_str.rb @@ -305,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 \ @@ -314,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 @@ -842,14 +843,17 @@ module SiSU_AO_DocumentStructureExtract if (@@flag[:code]==:curls \ && t_o =~/^\}code/) \ or (@@flag[:code]==:tics \ - && t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/) + && 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], @@ -897,6 +901,7 @@ module SiSU_AO_DocumentStructureExtract h={ is_for: :poem, obj: '', + idx: idx, sym: :poem_close, num: @num_id[:poem], } @@ -909,6 +914,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:box], } @@ -918,6 +924,7 @@ module SiSU_AO_DocumentStructureExtract h={ is_for: :box, obj: '', + idx: idx, sym: :box_close, num: @num_id[:box], } @@ -930,6 +937,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:group], } @@ -951,6 +959,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:block], } @@ -972,6 +981,7 @@ module SiSU_AO_DocumentStructureExtract obj,tags=extract_tags(@tuned_block.join("\n")) h={ obj: obj, + idx: idx, tags: tags, num: @num_id[:alt], } @@ -990,6 +1000,7 @@ module SiSU_AO_DocumentStructureExtract @@flag[:quote]=:off h={ is_for: :quote, + idx: idx, obj: '', sym: :quote_close, num: @num_id[:quote], diff --git a/lib/sisu/v6/ao_misc_arrange.rb b/lib/sisu/v6/ao_misc_arrange.rb index 8adebfd5..f1aa1e02 100644 --- a/lib/sisu/v6/ao_misc_arrange.rb +++ b/lib/sisu/v6/ao_misc_arrange.rb @@ -98,11 +98,11 @@ module SiSU_AO_MiscArrangeText else para << block_open end - elsif para =~/\A.+?\n```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*\Z/m \ + elsif para =~/\A.+?\n```(?:\s+\~\{.+?\}\~)?(?:\s+[~-][#])?(\s*=\{.+?\})?\s*\Z/m \ and @flag==:open @flag=:close text,block_close= - /\A(.+?)\n(```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?)\s*\Z/m.match(para)[1,2] + /\A(.+?)\n(```(?:\s+\~\{.+?\}\~)?(?:\s+[~-][#])?(?:\s+=\{.+?\})?)\s*\Z/m.match(para)[1,2] para=[] if not text.to_s.empty? para << text.to_s << block_close -- cgit v1.2.3