# encoding: utf-8 =begin * Name: SiSU ** Description: documents, structuring, processing, publishing, search *** summary of generated outputs and metadata ** 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, 2016 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] ** 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/qrcode.rb;hb=HEAD] =end module SiSU_QRcode require_relative 'se' # se.rb include SiSU_Env require_relative 'prog_text_translation' # prog_text_translation.rb require_relative 'se_hub_particulars' # se_hub_particulars.rb include SiSU_Particulars require_relative 'html' # html.rb require_relative 'dp' # dp.rb include SiSU_Param require_relative 'generic_parts' # generic_parts.rb require_relative 'i18n' # i18n.rb class Source def initialize(opt) @opt=opt @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) l=SiSU_Env::StandardiseLanguage.new(@opt.lng).language @doc_language=l[:n] end def read begin @env=SiSU_Env::InfoEnv.new(@opt.fns,@opt) @md=SiSU_Param::Parameters.new(@opt).get xbrowser=@env.program.web_browser browser=@env.program.console_web_browser unless @opt.act[:quiet][:set]==:on url_html="file://#{@md.file.output_path.manifest.dir}/#{@md.file.base_filename.manifest}" (@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], 'QR code', "#{xbrowser} #{url_html}" ).green_hi_blue : SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], 'QR code', "[#{@opt.f_pth[:lng_is]}] #{@opt.fns}" ).green_title_hi if (@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], "#{browser} #{url_html}" ).grey_tab end end data=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions OutputInfo.new(@md).check_output(data) rescue SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure end end private class OutputInfo 0 @manifest[:txt] << %{#{@translate.topic_register}:\n} @md.topic_register_array.each do |t| t.each_with_index do |st,i| if st.is_a?(Array) st.each do |v| @manifest[:txt] << %{#{spaces*i}#{v}\n} end else @manifest[:txt] << %{#{spaces*i}#{st}\n} end end end end if @md.fns id,info=@translate.sourcefile,@md.fns metadata(id,info) end if @md.en[:mismatch] > 0 id,info='WARNING document error in endnote markup, number mismatch',"endnotes: #{@md.en[:note]} != endnote reference marks: #{@md.en[:mark]} (difference = #{@md.en[:mismatch]})" metadata(id,info) end if @md.wc_words id,info=@translate.word_count,@md.wc_words metadata(id,info) end if @md.dgst id,info="#{@translate.sourcefile_digest} (#{@dg})",@md.dgst[1] metadata(id,info) end if @md.sc_number id,info=@translate.sc_number,@md.sc_number metadata(id,info) end if @md.sc_date id,info=@translate.sc_date,"#{@md.sc_date} at #{@md.sc_time}" metadata(id,info) end end def check_output(data) begin @f=SiSU_Env::FileOp.new(@md) #.base_filename url=@f.output_path.base.url @en_manifest=if @env.output_dir_structure.by_language_code? "#{url}/en/manifest/#{@md.fnb}.html" elsif @env.output_dir_structure.by_filetype? "#{url}/manifest/#{@md.fnb}.#{@md.opt.lng}.html" else "#{url}/sisu_manifest.#{@md.opt.lng}.html" end @manifest[:txt] <<<