diff options
author | Ralph Amissah <ralph@amissah.com> | 2015-04-21 14:45:52 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2015-05-01 18:49:41 -0400 |
commit | 960c3088bc88f2db879154053280b06c160d4d70 (patch) | |
tree | 624e14806190ac7edcd1400e8e2142ffba17afec /lib/sisu/current/xml_docbook5.rb | |
parent | version & changelog v7 (diff) |
lib/sisu/*, single libs directory (c&d gone) (7)
* removed lib/sisu/{current,develop} dir branches
v7 (v5 & v6 retired)
* simplify dir structure, offer single version per snapshot
* have enjoyed carrying stable and development versions v5 & v6
in a single tarball, may return to this structure
Diffstat (limited to 'lib/sisu/current/xml_docbook5.rb')
-rw-r--r-- | lib/sisu/current/xml_docbook5.rb | 376 |
1 files changed, 0 insertions, 376 deletions
diff --git a/lib/sisu/current/xml_docbook5.rb b/lib/sisu/current/xml_docbook5.rb deleted file mode 100644 index 384efbe0..00000000 --- a/lib/sisu/current/xml_docbook5.rb +++ /dev/null @@ -1,376 +0,0 @@ -# encoding: utf-8 -=begin - -* Name: SiSU - -** Description: documents, structuring, processing, publishing, search -*** Docbook book XML rendition - -** Author: Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - -** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah, - All Rights Reserved. - -** License: GPL 3 or later: - - SiSU, a framework for document structuring, publishing and search - - Copyright (C) Ralph Amissah - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program. If not, see <http://www.gnu.org/licenses/>. - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - <http://www.fsf.org/licensing/licenses/gpl.html> - <http://www.gnu.org/licenses/gpl.html> - - <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html> - -** SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - -** Hompages: - <http://www.jus.uio.no/sisu> - <http://www.sisudoc.org> - -** Git - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/current/xml_docbook_book.rb;hb=HEAD> - -=end -module SiSU_XML_Docbook_Book - require_relative 'se_hub_particulars' # se_hub_particulars.rb - include SiSU_Particulars - require_relative 'ao' # ao.rb - require_relative 'se' # se.rb - include SiSU_Env - require_relative 'txt_shared' # txt_shared.rb - include SiSU_TextUtils - require_relative 'xml_shared' # xml_shared.rb - include SiSU_XML_Munge - require_relative 'shared_metadata' # shared_metadata.rb - class Source - def initialize(opt) - @opt=opt - @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) - end - def read - begin - @md,@ao_array=@particulars.md,@particulars.ao_array - @env=@particulars.env - report - SiSU_XML_Docbook_Book::Source::Scroll.new(@ao_array,@md).songsheet - rescue - SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do - __LINE__.to_s + ':' + __FILE__ - end - ensure - #SiSU_Env::CreateSite.new(@opt.selections.str).cp_css - #SiSU_Env::CreateSite.new(@opt.selections.str).cp_base_images - Dir.chdir(@opt.f_pth[:pth]) - end - end - private - def report - unless @opt.act[:quiet][:set]==:on - tool=(@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) \ - ? "#{@env.program.docbook_viewer} #{@md.file.output_path.xml_docbook_book.dir}/#{@md.file.base_filename.xml_docbook_book}" - : "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}" - (@opt.act[:verbose][:set]==:on \ - || @opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) \ - ? SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - 'DocBook', - tool - ).green_hi_blue - : SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - 'DocBook', - tool - ).green_title_hi - if (@opt.act[:verbose_plus][:set]==:on \ - || @opt.act[:maintenance][:set]==:on) - SiSU_Screen::Ansi.new( - @opt.act[:color_state][:set], - @opt.fns, - "#{@md.file.output_path.xml_docbook_book.dir}/#{@md.file.base_filename.xml_docbook_book}" - ).flow - end - end - end - class Scroll <Source - 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 - 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 - 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 - def spaces - Ax[:spaces] - end - 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 - def put(line) - #@file_docbook.puts line #look into and use perhaps - puts line if @md.opt.act[:verbose_plus][:set]==:on - end - 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 - 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 - def tail - tail=<<-WOK -</book> - WOK - put(tail) - end - 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 - 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 - #def chapterlevel - #end - def xml_head - [ - '<docinfo>', - SiSU_Metadata::Summary.new(@md).xml_docbook.metadata, - '</docinfo>' - ].flatten - end - def code_output(o,ocn,filename_docbook) - filename_docbook.puts o.obj.gsub(/\n?(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\n?/m,"\n") - end - 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 - 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 - 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 - end - end -end -__END__ |