diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v0/composite.rb | 17 | ||||
| -rw-r--r-- | lib/sisu/v0/texinfo.rb | 25 | 
2 files changed, 27 insertions, 15 deletions
| diff --git a/lib/sisu/v0/composite.rb b/lib/sisu/v0/composite.rb index 2569474b..6223743c 100644 --- a/lib/sisu/v0/composite.rb +++ b/lib/sisu/v0/composite.rb @@ -151,12 +151,19 @@ module SiSU_Assemble        rgx_image=/([a-zA-Z0-9._-]+?\.(?:png|jpg|gif))/        #file[:prepared] << "#% Date " << "\n"        file[:prepared] << "\n% |#{fni}|@|^|>>ok\n" +      @code_flag=false        insert_array.each do |i| -        i.gsub!(/^([12]|:?[AB])~\? /,'% [conditional heading:] \1~ ')            #off conditional heading (consider syntax) -        if i =~/^0~|^@\S+?:/ -          i.gsub!(/\n/m,"\n%  ") -          i.gsub!(/\n%\s+$/m,'') -          i.gsub!(/^0~|^@\S+?:/m,"\n% [imported header:] ")                          #off imported headers +        @code_flag=if i =~/^code\{/; true +        elsif i =~/^\}code/; false +        else @code_flag +        end +        unless @code_flag +          i.gsub!(/^([12]|:?[AB])~\? /,'% [conditional heading:] \1~ ')            #off conditional heading (consider syntax) +          if i =~/^0~|^@\S+?:/ +            i.gsub!(/\n/m,"\n%  ") +            i.gsub!(/\n%\s+$/m,'') +            i.gsub!(/^0~|^@\S+?:/m,"\n% [imported header:] ")                          #off imported headers +          end          end          file[:prepared] << i          file[:images] << i.scan(rgx_image).uniq if i =~rgx_image #flag diff --git a/lib/sisu/v0/texinfo.rb b/lib/sisu/v0/texinfo.rb index c46f81ba..6c47ae4c 100644 --- a/lib/sisu/v0/texinfo.rb +++ b/lib/sisu/v0/texinfo.rb @@ -191,17 +191,17 @@ module SiSU_TexInfo        @@counting=0        data.each do |para|          if para =~ /<:code>/ -          @@flag['code']=1 +          @@flag['code']=true            @@counting=1          end          if para =~ /<:verse>/            @@flag['poem']=1          end -        if @@flag['code']==1 -          if @@flag['code']==1 and para =~ /<:code[-_](?:end|close)>/ #watch change not tested 200501 -            @@flag['code']=0 +        if @@flag['code'] +          if @@flag['code'] and para =~ /<:code[-_](?:end|close)>/ #watch change not tested 200501 +            @@flag['code']=false            end -          if @@flag['code']==1 and para =~ /\S/ +          if @@flag['code'] and para =~ /\S/              sub_array=para.dup              @@line_mode=sub_array.scan(/.+/)              Tune.code_lines(@@line_mode) @@ -225,9 +225,9 @@ module SiSU_TexInfo        data=@data        data.each do |line|          if line =~ /\S/ and line !~ /<:(code|verse).+/ -          if @@flag['code']==1 +          if @@flag['code']              line.gsub!(/^\s*(.+)/m, "\\noindent \\marginpar\[left-text\]{\\begin{tiny}#{@@counting}\\end{tiny}}\\1\\") -            @@counting+=1 if @@flag['code']==1 +            @@counting+=1 if @@flag['code']            else line.gsub!(/(.+)/m,'\noindent\1')            end          end @@ -248,6 +248,8 @@ module SiSU_TexInfo      def markup        data=@data        @tex_file=[] +      @row_break='\\\\\\' +      @break_page="#@row_break\n#@row_break \n"        md={}        @tex_file << TexInfoFormat::Texinfo.new('',@md).head        mono=TexInfoFormat::Texinfo.new(@md.title,@md) @@ -256,11 +258,11 @@ module SiSU_TexInfo        n_menu,n_submenu=0,0        @submenu,@subsubmenu={},{}        data.each do |para| +        para.gsub!(/\s*<:name#example>\s*/,' ')          if para =~ /^[1-3]\\+~\S*(.+?)\s*$/            toc=TexInfoFormat::Texinfo.new($1,@md)            texinfo_menu << toc.menu -        end -        if para =~ /^[4-6]\\+~(?:\S+)?\s+(.+?)\s*$/ +        elsif para =~ /^[4-6]\\+~(?:\S+)?\s+(.+?)\s*$/            toc=TexInfoFormat::Texinfo.new($1,@md)            texinfo_menu << toc.menu            case para @@ -276,6 +278,9 @@ module SiSU_TexInfo              @subsubmenu[n_submenu]=[]              @subsubmenu[n_submenu] << toc.menu            end +        else +          #para.gsub!(/\s*(?:<:?br>|<br \/>)\s*/,"\n#@row_break ") +          para.gsub!(/\s*(?:<:?br>|<br \/>)\s*/,"\n\n")          end        end        texinfo_menu.compact! @@ -332,7 +337,7 @@ module SiSU_TexInfo              para.gsub!(/<\\~(\d+);(?:\w|[0-6]:)\d+;\w\d+><#@dp:#@dp>$/,'<\1>')              #para.gsub!(/<\\~(\d+);\w\d+;\w\d+><#@dp:#@dp>/,'<\1>')              #para.gsub!(/<\\~(\d+);\w\d+;\w\d+><#@dp:#@dp>/,'<\1>') -            para=para +            para            end          end          #%case with endnotes | 
