aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--data/doc/sisu/CHANGELOG_v51
-rw-r--r--data/doc/sisu/CHANGELOG_v61
-rw-r--r--lib/sisu/v5/ao_doc_objects.rb9
-rw-r--r--lib/sisu/v5/ao_doc_str.rb22
-rw-r--r--lib/sisu/v6/ao_doc_objects.rb9
-rw-r--r--lib/sisu/v6/ao_doc_str.rb22
6 files changed, 54 insertions, 10 deletions
diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5
index 6605fc8e..9d14921a 100644
--- a/data/doc/sisu/CHANGELOG_v5
+++ b/data/doc/sisu/CHANGELOG_v5
@@ -43,6 +43,7 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_5.4.3.orig.tar.xz
* book index, strip white spaces around terms
(fix uppercase first character where spaces used)
* quote block, insert text indent markup, exclude book index
+ * doc objects, layout group open & close identify is_for
* code cosmetic rearrangement
* ao*, param, hub, options, composite
diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6
index 266f1219..72369d35 100644
--- a/data/doc/sisu/CHANGELOG_v6
+++ b/data/doc/sisu/CHANGELOG_v6
@@ -33,6 +33,7 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_6.0.9.orig.tar.xz
* book index, strip white spaces around terms
(fix uppercase first character where spaces used)
* quote block, insert text indent markup, exclude book index
+ * doc objects, layout group open & close identify is_for
* code cosmetic rearrangement
* ao*, param, hub, options, composite
diff --git a/lib/sisu/v5/ao_doc_objects.rb b/lib/sisu/v5/ao_doc_objects.rb
index 1357ee90..b372da4c 100644
--- a/lib/sisu/v5/ao_doc_objects.rb
+++ b/lib/sisu/v5/ao_doc_objects.rb
@@ -499,10 +499,10 @@ module SiSU_AO_DocumentStructure
end
end
class ObjectLayout
- attr_accessor :obj,:sym,:attr,:is,:of,:from,:tmp,:num
+ attr_accessor :obj,:sym,:attr,:is,:is_for,:of,:from,:tmp,:num
def initialize
@of=:layout
- @is=@obj=@from=@tmp=@num=nil
+ @is=@is_for=@obj=@from=@tmp=@num=nil
end
def break(h,f=nil) #decide how to deal with
of= @of #Symbol, classification - group
@@ -524,13 +524,14 @@ module SiSU_AO_DocumentStructure
def open_close(h,o=nil) #useful for poem & quote
of= @of #Symbol, classification - group
is= :open_close_tags #Symbol, classification - specific type
+ is_for= h[:is_for] || ((defined? o.is_for) ? o.is_for : nil) #String, text content
obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content
sym= h[:sym] || ((defined? o.sym) ? o.sym : nil) #Symbol tag_open, tag_close
attr= h[:attr] || ((defined? o.attr) ? o.attr : nil) #String, text content
tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use
num= h[:num] || ((defined? o.num) ? o.num : nil)
- @of,@is,@obj,@sym,@attr,@tmp,@num=
- of, is, obj, sym, attr, tmp, num
+ @of,@is,@is_for,@obj,@sym,@attr,@tmp,@num=
+ of, is, is_for, obj, sym, attr, tmp, num
self
end
end
diff --git a/lib/sisu/v5/ao_doc_str.rb b/lib/sisu/v5/ao_doc_str.rb
index c3b65ee1..5b93819e 100644
--- a/lib/sisu/v5/ao_doc_str.rb
+++ b/lib/sisu/v5/ao_doc_str.rb
@@ -533,6 +533,7 @@ module SiSU_AO_DocumentStructureExtract
: false
@num_id[:code_block] +=1
h={
+ is_for: :code,
obj: '',
sym: :code_block_open,
num: @num_id[:code_block],
@@ -547,6 +548,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:poem] +=1
h={
+ is_for: :poem,
obj: '',
sym: :poem_open,
num: @num_id[:poem],
@@ -561,6 +563,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:box] +=1
h={
+ is_for: :box,
obj: '',
sym: :box_open,
num: @num_id[:box],
@@ -575,6 +578,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:group] +=1
h={
+ is_for: :group,
obj: '',
sym: :group_open,
num: @num_id[:group],
@@ -589,6 +593,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:block] +=1
h={
+ is_for: :block,
obj: '',
sym: :block_open,
num: @num_id[:block],
@@ -603,6 +608,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:alt] +=1
h={
+ is_for: :alt,
obj: '',
sym: :alt_open,
num: @num_id[:alt],
@@ -613,6 +619,7 @@ module SiSU_AO_DocumentStructureExtract
@@flag[:quote]=:open
@num_id[:quote] +=1
h={
+ is_for: :quote,
obj: '',
sym: :quote_open,
num: @num_id[:quote],
@@ -622,6 +629,7 @@ module SiSU_AO_DocumentStructureExtract
elsif t_o =~/^(?:table\{|```[ ]+table|\{table)[ ~]/
@num_id[:table] +=1
h={
+ is_for: :table,
obj: '',
sym: :table_open,
num: @num_id[:table],
@@ -701,6 +709,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -736,6 +745,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -771,6 +781,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -799,6 +810,7 @@ module SiSU_AO_DocumentStructureExtract
tuned_file << t_o
@h,@rows=nil,''
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -834,6 +846,7 @@ module SiSU_AO_DocumentStructureExtract
@tuned_code=[]
tuned_file << t_o
h={
+ is_for: :code,
obj: '',
sym: :code_close,
num: @num_id[:code_block],
@@ -859,6 +872,7 @@ module SiSU_AO_DocumentStructureExtract
or (@@flag[:poem]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/)
@@flag[:poem]=:off
h={
+ is_for: :poem,
obj: '',
sym: :poem_close,
num: @num_id[:poem],
@@ -877,6 +891,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.box(h)
tuned_file << t_o
h={
+ is_for: :box,
obj: '',
sym: :box_close,
num: @num_id[:box],
@@ -895,6 +910,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.group(h)
tuned_file << t_o
h={
+ is_for: :group,
obj: '',
sym: :group_close,
num: @num_id[:group],
@@ -912,7 +928,9 @@ module SiSU_AO_DocumentStructureExtract
@tuned_block=[]
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.block(h)
tuned_file << t_o
- h={ obj: '',
+ h={
+ is_for: :block,
+ obj: '',
sym: :block_close,
num: @num_id[:block],
}
@@ -930,6 +948,7 @@ module SiSU_AO_DocumentStructureExtract
@tuned_block=[]
tuned_file << t_o
h={
+ is_for: :alt,
obj: '',
sym: :alt_close,
num: @num_id[:alt],
@@ -938,6 +957,7 @@ module SiSU_AO_DocumentStructureExtract
elsif @@flag[:quote]==:open and t_o =~/`:quote_close`/m
@@flag[:quote]=:off
h={
+ is_for: :quote,
obj: '',
sym: :quote_close,
num: @num_id[:quote],
diff --git a/lib/sisu/v6/ao_doc_objects.rb b/lib/sisu/v6/ao_doc_objects.rb
index 909bb600..44660469 100644
--- a/lib/sisu/v6/ao_doc_objects.rb
+++ b/lib/sisu/v6/ao_doc_objects.rb
@@ -499,10 +499,10 @@ module SiSU_AO_DocumentStructure
end
end
class ObjectLayout
- attr_accessor :obj,:sym,:attr,:is,:of,:from,:tmp,:num
+ attr_accessor :obj,:sym,:attr,:is,:is_for,:of,:from,:tmp,:num
def initialize
@of=:layout
- @is=@obj=@from=@tmp=@num=nil
+ @is=@is_for=@obj=@from=@tmp=@num=nil
end
def break(h,f=nil) #decide how to deal with
of= @of #Symbol, classification - group
@@ -524,13 +524,14 @@ module SiSU_AO_DocumentStructure
def open_close(h,o=nil) #useful for poem & quote
of= @of #Symbol, classification - group
is= :open_close_tags #Symbol, classification - specific type
+ is_for= h[:is_for] || ((defined? o.is_for) ? o.is_for : nil) #String, text content
obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content
sym= h[:sym] || ((defined? o.sym) ? o.sym : nil) #Symbol tag_open, tag_close
attr= h[:attr] || ((defined? o.attr) ? o.attr : nil) #String, text content
tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use
num= h[:num] || ((defined? o.num) ? o.num : nil)
- @of,@is,@obj,@sym,@attr,@tmp,@num=
- of, is, obj, sym, attr, tmp, num
+ @of,@is,@is_for,@obj,@sym,@attr,@tmp,@num=
+ of, is, is_for, obj, sym, attr, tmp, num
self
end
end
diff --git a/lib/sisu/v6/ao_doc_str.rb b/lib/sisu/v6/ao_doc_str.rb
index 001b2aef..0c07eee7 100644
--- a/lib/sisu/v6/ao_doc_str.rb
+++ b/lib/sisu/v6/ao_doc_str.rb
@@ -533,6 +533,7 @@ module SiSU_AO_DocumentStructureExtract
: false
@num_id[:code_block] +=1
h={
+ is_for: :code,
obj: '',
sym: :code_block_open,
num: @num_id[:code_block],
@@ -547,6 +548,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:poem] +=1
h={
+ is_for: :poem,
obj: '',
sym: :poem_open,
num: @num_id[:poem],
@@ -561,6 +563,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:box] +=1
h={
+ is_for: :box,
obj: '',
sym: :box_open,
num: @num_id[:box],
@@ -575,6 +578,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:group] +=1
h={
+ is_for: :group,
obj: '',
sym: :group_open,
num: @num_id[:group],
@@ -589,6 +593,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:block] +=1
h={
+ is_for: :block,
obj: '',
sym: :block_open,
num: @num_id[:block],
@@ -603,6 +608,7 @@ module SiSU_AO_DocumentStructureExtract
end
@num_id[:alt] +=1
h={
+ is_for: :alt,
obj: '',
sym: :alt_open,
num: @num_id[:alt],
@@ -613,6 +619,7 @@ module SiSU_AO_DocumentStructureExtract
@@flag[:quote]=:open
@num_id[:quote] +=1
h={
+ is_for: :quote,
obj: '',
sym: :quote_open,
num: @num_id[:quote],
@@ -622,6 +629,7 @@ module SiSU_AO_DocumentStructureExtract
elsif t_o =~/^(?:table\{|```[ ]+table|\{table)[ ~]/
@num_id[:table] +=1
h={
+ is_for: :table,
obj: '',
sym: :table_open,
num: @num_id[:table],
@@ -701,6 +709,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -736,6 +745,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -771,6 +781,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectTable.new.table(h) unless h.nil?
tuned_file << t_o
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -799,6 +810,7 @@ module SiSU_AO_DocumentStructureExtract
tuned_file << t_o
@h,@rows=nil,''
h={
+ is_for: :table,
obj: '',
sym: :table_close,
num: @num_id[:table],
@@ -834,6 +846,7 @@ module SiSU_AO_DocumentStructureExtract
@tuned_code=[]
tuned_file << t_o
h={
+ is_for: :code,
obj: '',
sym: :code_close,
num: @num_id[:code_block],
@@ -859,6 +872,7 @@ module SiSU_AO_DocumentStructureExtract
or (@@flag[:poem]==:tics and t_o =~/^```(?:\s+[~-][#]|\s+\~\{.+?\}\~)?\s*$/)
@@flag[:poem]=:off
h={
+ is_for: :poem,
obj: '',
sym: :poem_close,
num: @num_id[:poem],
@@ -877,6 +891,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.box(h)
tuned_file << t_o
h={
+ is_for: :box,
obj: '',
sym: :box_close,
num: @num_id[:box],
@@ -895,6 +910,7 @@ module SiSU_AO_DocumentStructureExtract
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.group(h)
tuned_file << t_o
h={
+ is_for: :group,
obj: '',
sym: :group_close,
num: @num_id[:group],
@@ -912,7 +928,9 @@ module SiSU_AO_DocumentStructureExtract
@tuned_block=[]
t_o=SiSU_AO_DocumentStructure::ObjectBlockTxt.new.block(h)
tuned_file << t_o
- h={ obj: '',
+ h={
+ is_for: :block,
+ obj: '',
sym: :block_close,
num: @num_id[:block],
}
@@ -930,6 +948,7 @@ module SiSU_AO_DocumentStructureExtract
@tuned_block=[]
tuned_file << t_o
h={
+ is_for: :alt,
obj: '',
sym: :alt_close,
num: @num_id[:alt],
@@ -938,6 +957,7 @@ module SiSU_AO_DocumentStructureExtract
elsif @@flag[:quote]==:open and t_o =~/`:quote_close`/m
@@flag[:quote]=:off
h={
+ is_for: :quote,
obj: '',
sym: :quote_close,
num: @num_id[:quote],