class SiSU_XML_Docbook_Book::Source::Scroll

Public Class Methods

new(data='',md='') click to toggle source
# File lib/sisu/xml_docbook5.rb, line 119
def initialize(data='',md='')
  @data,@md=data,md
  @trans=SiSU_XML_Munge::Trans.new(md)
  @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(md.opt)
  @env=@particulars.env
  @make ||=SiSU_Env::ProcessingSettings.new(md)
end

Public Instance Methods

adjust_output(o,ocn,filename_docbook,splv) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 239
def adjust_output(o,ocn,filename_docbook,splv)
  if o.obj =~/#{Xx[:split]}/
    outs=o.obj.split(/#{Xx[:split]}/)
    outs.each do |out|
      if out =~/<figure id=/m
        out=out.gsub(/:spaces0:/m,
            %{#{spaces*(splv)}#{spaces}}).
          gsub(/:spaces1:/m,
            %{#{spaces*(splv)}#{spaces*2}})
        filename_docbook.puts out
        filename_docbook.puts "#{spaces*3}#{ocn}"
      else
        unless out.empty?
          filename_docbook.puts SiSU_TextUtils::Wrap.new(out,80,(splv*2+2),nil).line_wrap
          filename_docbook.puts "#{spaces*3}#{ocn}"
        end
      end
    end
  else
    filename_docbook.puts SiSU_TextUtils::Wrap.new(o.obj,80,(splv*2+2),nil,ocn).line_wrap
  end
end
code_output(o,ocn,filename_docbook) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 236
def code_output(o,ocn,filename_docbook)
  filename_docbook.puts o.obj.gsub(/\n?(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\n?/m,"\n")
end
collapsed() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 165
def collapsed
  %w[ 0 1 2 3 4 5 ]
end
docbook_tag(lc,chlv='') click to toggle source
# File lib/sisu/xml_docbook5.rb, line 168
def docbook_tag(lc,chlv='')
  case lc
  when 0 then 'book'
  when 1 then lc==chlv ? 'chapter' : 'section'
  when 2 then lc==chlv ? 'chapter' : 'section'
  when 3 then lc==chlv ? 'chapter' : 'section'
  when 4 then 'section'
  when 5 then 'section'
  when 6 then 'section'
  end
end
document_images() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 139
def document_images
  img_pth={
    src:  @md.opt.image_src_path,
    dest: @md.env.path.webserv + '/_sisu/image',
  }
  unless FileTest.directory?(img_pth[:dest])
    #mkdir?
  end
  if FileTest.directory?(img_pth[:dest])
    @md.ec[:image].each do |x|
      img={
        src:  "#{img_pth[:src]}/#{x}",
        dest: "#{img_pth[:dest]}/#{x}",
      }
      if FileTest.file?(img[:src])
        FileUtils::cp(img[:src],img[:dest])
      else p "Not Found: #{img[:src]}/#{x}"
      end
    end
  end
end
head() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 185
      def head
        rdf=SiSU_XML_Tags::RDF.new(@md)
        stylesheet=SiSU_Style::CSS_HeadInfo.new(@md,'xml_docbook').stylesheet
        <<-WOK
<?xml version="1.0" encoding="utf-8"?>
#{stylesheet.css_head_xml}
#{rdf.comment_xml}
<book xmlns="http://docbook.org/ns/docbook"
  xmlns:xl="http://www.w3.org/1999/xlink"
  version="5.0">
        WOK
      end
markup_text(data) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 197
def markup_text(data)
  data.each_with_index do |o,i|
    if o.is ==:heading \
    || o.is ==:para \
    || o.of ==:block \
    || o.is ==:open_close_tags
      o=@trans.markup_docbook(o) #unless o.obj==nil
    end
  end
  data
end
output(o,comment='') click to toggle source
# File lib/sisu/xml_docbook5.rb, line 214
def output(o,comment='')
   puts o.lc == (0..6) \
   ? "#{spaces*o.lc}<#{o.lc}>[#{o.ocn}] #{o.ln} #{o.obj}</#{o.lc}>#{comment}"
   : "<#{o.lc}>[#{o.ocn}] #{o.ln} #{o.obj}</#{o.lc}>#{comment}"
end
put(line) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 181
def put(line)
  #@file_docbook.puts line                           #look into and use perhaps
  puts line if @md.opt.act[:verbose_plus][:set]==:on
end
songsheet() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 126
def songsheet
  @t='sisu'
  data=@data
  if @md.opt.act[:verbose_plus][:set]==:on
    structure_collapsed(data)
  end
  #head
  #extract_endnotes
  data=markup_text(data)
  structure_build_collapsed(data)
  document_images if @md.ec[:image] and @md.ec[:image].length > 0
  #tail
end
spaces() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 160
def spaces
  Ax[:spaces]
end
structure_build_collapsed(data) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 261
      def structure_build_collapsed(data)
        #output_file=@md.file.output_path.xml_docbook_book.dir + '/' + @md.file.base_filename.xml_docbook_book
        file=SiSU_Env::FileOp.new(@md)
        filename_docbook=file.write_file.xml_docbook_book
        h=0
        @chlv=chlv=0
        doc_position=:head
        filename_docbook.puts head
        filename_docbook.puts xml_head
        data.each_with_index do |o,i|
          if (defined? o.ocn and not o.ocn.nil?)
            ocn=(@make.build.ocn?) \
            ? "<!-- o#{o.ocn} -->"
            : ''
            id=%{ id="o#{o.ocn}" }
          else
            ocn,id='',''
          end
          if  (o.is ==:heading || o.is ==:heading_insert)
            chlv=(o.lv.to_i == 1) \
            ? @chlv=o.lc.to_i
            : 0
            @splv=o.lc
            tag_id=o.tags[0] ? %{ id="#{o.tags[0]}" } : ''
            if doc_position ==:head
               filename_docbook.puts  %{#{spaces*o.lc}<title#{id}>}
              doc_position=:body_and_tail
            else
              filename_docbook.puts structure_build_tag_close(o.lc,h)
              filename_docbook.puts  %{#{spaces*(o.lc)}<#{tags.docbook_tag(o.lc,chlv)}#{tag_id}>
#{spaces*o.lc}<title#{id}>
}
            end
            adjust_output(o,ocn,filename_docbook,@splv)
            filename_docbook.puts %{#{spaces*o.lc}</title>}
            h=o.lc
          elsif o.of ==:layout \
          and o.is ==:open_close_tags
            xml_tag=case o.sym
            when :quote_open then '<blockquote>'
            when :quote_close then '</blockquote>'
            else ''
            end
            unless xml_tag.empty?
              filename_docbook.puts "#{spaces*(@splv)}#{xml_tag}"
            end
          elsif o.of ==:block
            if o.is ==:table
              filename_docbook.puts SiSU_Tables::TableXMLdocbook.new(o,id).table.obj
            elsif o.is ==:code
              filename_docbook.puts "#{spaces*(@splv)}<para#{id}>"
              filename_docbook.puts "#{spaces*(@splv+1)}<programlisting>"
              code_output(o,ocn,filename_docbook)
              filename_docbook.puts "#{spaces*(@splv+1)}</programlisting>"
              filename_docbook.puts "#{spaces*(@splv)}</para>"
            else
              filename_docbook.puts "#{spaces*(@splv)}<para#{id}>"
              adjust_output(o,ocn,filename_docbook,@splv)
              filename_docbook.puts "#{spaces*(@splv)}</para>"
            end
          elsif o.of ==:para
            filename_docbook.puts "#{spaces*(@splv)}<para#{id}>"
            adjust_output(o,ocn,filename_docbook,@splv)
            filename_docbook.puts "#{spaces*(@splv)}</para>"
          end
        end
        filename_docbook.puts structure_build_tag_close(0,h)
        filename_docbook.close
      end
structure_build_tag_close(lc,h) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 330
def structure_build_tag_close(lc,h)
  x=[]
  case h
  when 0
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 1
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 2
    x << "#{spaces*2}</#{tags.docbook_tag(2,@chlv)}>" if (lc <= 2)
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 3
    x << "#{spaces*3}</#{tags.docbook_tag(3,@chlv)}>" if (lc <= 3)
    x << "#{spaces*2}</#{tags.docbook_tag(2,@chlv)}>" if (lc <= 2)
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 4
    x << "#{spaces*4}</#{tags.docbook_tag(4,@chlv)}>" if (lc <= 4)
    x << "#{spaces*3}</#{tags.docbook_tag(3,@chlv)}>" if (lc <= 3)
    x << "#{spaces*2}</#{tags.docbook_tag(2,@chlv)}>" if (lc <= 2)
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 5
    x << "#{spaces*5}</#{tags.docbook_tag(5)}>"       if (lc <= 5)
    x << "#{spaces*4}</#{tags.docbook_tag(4,@chlv)}>" if (lc <= 4)
    x << "#{spaces*5}</#{tags.docbook_tag(3,@chlv)}>" if (lc <= 3)
    x << "#{spaces*2}</#{tags.docbook_tag(2,@chlv)}>" if (lc <= 2)
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  when 6
    x << "#{spaces*6}</#{tags.docbook_tag(6)}>"       if (lc <= 6)
    x << "#{spaces*5}</#{tags.docbook_tag(5)}>"       if (lc <= 5)
    x << "#{spaces*4}</#{tags.docbook_tag(4,@chlv)}>" if (lc <= 4)
    x << "#{spaces*3}</#{tags.docbook_tag(3,@chlv)}>" if (lc <= 3)
    x << "#{spaces*2}</#{tags.docbook_tag(2,@chlv)}>" if (lc <= 2)
    x << "#{spaces*1}</#{tags.docbook_tag(1,@chlv)}>" if (lc <= 1)
    x << "#{spaces*0}</#{tags.docbook_tag(0)}>"       if (lc <= 0)
  end
  x.join("\n")
end
structure_collapsed(data) click to toggle source
# File lib/sisu/xml_docbook5.rb, line 219
def structure_collapsed(data)
  puts "\ncollapsed structure, heading outline --->\n\n"
  data.each_with_index do |o,i|
    if  (o.is ==:heading || o.is ==:heading_insert)
      output(o)
    end
  end
end
tags() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 163
def tags
  # collapsed -->
  def collapsed
    %w[ 0 1 2 3 4 5 ]
  end
  def docbook_tag(lc,chlv='')
    case lc
    when 0 then 'book'
    when 1 then lc==chlv ? 'chapter' : 'section'
    when 2 then lc==chlv ? 'chapter' : 'section'
    when 3 then lc==chlv ? 'chapter' : 'section'
    when 4 then 'section'
    when 5 then 'section'
    when 6 then 'section'
    end
  end
  self
end
tail() click to toggle source
# File lib/sisu/xml_docbook5.rb, line 208
      def tail
        tail=<<-WOK
</book>
        WOK
        put(tail)
      end
xml_head() click to toggle source

def chapterlevel end

# File lib/sisu/xml_docbook5.rb, line 229
def xml_head
  [
    '<docinfo>',
    SiSU_Metadata::Summary.new(@md).xml_docbook.metadata,
    '</docinfo>'
  ].flatten
end