diff options
Diffstat (limited to 'lib/sisu/v5/xml_docbook5.rb')
-rw-r--r-- | lib/sisu/v5/xml_docbook5.rb | 60 |
1 files changed, 35 insertions, 25 deletions
diff --git a/lib/sisu/v5/xml_docbook5.rb b/lib/sisu/v5/xml_docbook5.rb index dc5de48a..0dddf264 100644 --- a/lib/sisu/v5/xml_docbook5.rb +++ b/lib/sisu/v5/xml_docbook5.rb @@ -132,18 +132,20 @@ module SiSU_XML_Docbook_Book def tags # collapsed --> def collapsed - %w[ 0 1 2 3 4 5 6 ] + %w[ 0 1 2 3 4 5 ] end def docbook(lc,chlv='') case lc - when 1 + when 0 'book' + when 1 + lc==chlv ? 'chapter' : 'section' when 2 lc==chlv ? 'chapter' : 'section' when 3 lc==chlv ? 'chapter' : 'section' when 4 - lc==chlv ? 'chapter' : 'section' + 'section' when 5 'section' when 6 @@ -219,7 +221,7 @@ module SiSU_XML_Docbook_Book doc_position=:body_and_tail else filename_docbook.puts structure_build_tag_close(o.lc,h) - filename_docbook.puts %{#{space*(o.lc-1)}<#{tags.docbook(o.lc,chlv)}#{tag_id}> + filename_docbook.puts %{#{space*(o.lc)}<#{tags.docbook(o.lc,chlv)}#{tag_id}> #{space*o.lc}<title#{id}> } end @@ -238,33 +240,41 @@ module SiSU_XML_Docbook_Book def structure_build_tag_close(lc,h) x=[] case h + when 0 + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 1 - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 2 - x << "#{space*1}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*2}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 3 - x << "#{space*2}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) - x << "#{space*1}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*3}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) + x << "#{space*2}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 4 - x << "#{space*3}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) - x << "#{space*2}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) - x << "#{space*1}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*4}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) + x << "#{space*3}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) + x << "#{space*2}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 5 - x << "#{space*4}</#{tags.docbook(5)}>" if (lc <= 5) - x << "#{space*3}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) - x << "#{space*2}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) - x << "#{space*1}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*5}</#{tags.docbook(5)}>" if (lc <= 5) + x << "#{space*4}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) + x << "#{space*5}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) + x << "#{space*2}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) when 6 - x << "#{space*5}</#{tags.docbook(6)}>" if (lc <= 6) - x << "#{space*4}</#{tags.docbook(5)}>" if (lc <= 5) - x << "#{space*3}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) - x << "#{space*2}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) - x << "#{space*1}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) - x << "#{space*0}</#{tags.docbook(1)}>" if (lc <= 1) + x << "#{space*6}</#{tags.docbook(6)}>" if (lc <= 6) + x << "#{space*5}</#{tags.docbook(5)}>" if (lc <= 5) + x << "#{space*4}</#{tags.docbook(4,@chlv)}>" if (lc <= 4) + x << "#{space*3}</#{tags.docbook(3,@chlv)}>" if (lc <= 3) + x << "#{space*2}</#{tags.docbook(2,@chlv)}>" if (lc <= 2) + x << "#{space*1}</#{tags.docbook(1,@chlv)}>" if (lc <= 1) + x << "#{space*0}</#{tags.docbook(0)}>" if (lc <= 0) end x.join("\n") end |