aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/v5/ao_doc_str.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu/v5/ao_doc_str.rb')
-rw-r--r--lib/sisu/v5/ao_doc_str.rb131
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