diff options
Diffstat (limited to 'org/config.org')
| -rw-r--r-- | org/config.org | 310 | 
1 files changed, 310 insertions, 0 deletions
| diff --git a/org/config.org b/org/config.org new file mode 100644 index 00000000..b44d9792 --- /dev/null +++ b/org/config.org @@ -0,0 +1,310 @@ +-*- mode: org -*- +#+TITLE:       sisu configure site +#+DESCRIPTION: documents - structuring, various output representations & search +#+FILETAGS:    :sisu:config: +#+AUTHOR:      Ralph Amissah +#+EMAIL:       [[mailto:ralph.amissah@gmail.com][ralph.amissah@gmail.com]] +#+COPYRIGHT:   Copyright (C) 2015 - 2021 Ralph Amissah +#+LANGUAGE:    en +#+STARTUP:     content hideblocks hidestars noindent entitiespretty +#+OPTIONS:     H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil _:nil -:t f:t *:t <:t +#+PROPERTY:    header-args  :exports code +#+PROPERTY:    header-args+ :noweb yes +#+PROPERTY:    header-args+ :eval no +#+PROPERTY:    header-args+ :results no +#+PROPERTY:    header-args+ :cache no +#+PROPERTY:    header-args+ :padline no + +* conf.rb + +#+BEGIN_SRC ruby  :tangle "../lib/sisu/conf.rb" +# <<sisu_document_header>> +module SiSU_Initialize +  require_relative 'se'                                 # se.rb +    include SiSU_Env +    include SiSU_Screen +  require_relative 'relaxng'                            # relaxng.rb +    include SiSU_Relaxng +  require_relative 'css'                                # css.rb +    include SiSU_Style +  class Source +    def initialize(opt) +      @opt=opt +    end +    def read +      ConfigSite.new(@opt).make_homepage +      ConfigSite.new(@opt).css +      ConfigSite.new(@opt).dtd +      ConfigSite.new(@opt).cp_local_images +      ConfigSite.new(@opt).cp_external_images +      ConfigSite.new(@opt).cp_webserver_images +    end +  end +  class ConfigSite #config files such as css are not updated if they already exist unless forced using the --init=site modifier +    require_relative 'se'                               # se.rb +    def initialize(opt) +      @opt=opt +      @env=SiSU_Env::InfoEnv.new(@opt.fns) +      @suffix={ +        rnc: 'rnc', +        rng: 'rng', +        xsd: 'xsd', +      } +      @path={ +        xml: @env.path.output + '/_sisu/xml', +        xsd: @env.path.output + '/_sisu/xml/xsd', +        rnc: @env.path.output + '/_sisu/xml/rnc', +        rng: @env.path.output + '/_sisu/xml/rng', +        style: @env.path.output + '/' + @env.path.style, +      } +      @pwd,@home=Dir.pwd,@env.path.home +    end +    def make_homepage +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Make homepage', +        '' +      ).colorize unless @opt.act[:quiet][:set]==:on +      SiSU_Env::CreateSite.new(@opt).homepage +    end +    def cp_local_images +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Copy images', +        '' +      ).colorize unless @opt.act[:quiet][:set]==:on +      SiSU_Env::CreateSite.new(@opt).cp_local_images +      SiSU_Env::CreateSite.new(@opt).cp_webserver_images_local #this should not have been necessary +      SiSU_Env::CreateSite.new(@opt).cp_base_images #base images (nav etc.) used by all html +    end +    def cp_external_images +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Copy external images', +        '' +      ).colorize if @opt.act[:verbose_plus][:set]==:on +      SiSU_Env::CreateSite.new(@opt).cp_external_images +    end +    def cp_webserver_images +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Copy webserver/output file images', +        '' +      ).colorize unless @opt.act[:quiet][:set]==:on +      SiSU_Env::CreateSite.new(@opt).cp_webserver_images +    end +    def css +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Configuring CSSs', +        '' +      ).colorize unless @opt.act[:quiet][:set]==:on +      SiSU_Env::CreateSite.new(@opt).cp_css +    end +    def dtd +      SiSU_Screen::Ansi.new( +        @opt.act[:color_state][:set], +        'invert', +        'Configuring DTDs', +        '' +      ).colorize unless @opt.act[:quiet][:set]==:on +      @rxng=SiSU_Relaxng::RelaxNG.new +      @path.each { |d| FileUtils::mkdir_p(d[1]) \ +      unless FileTest.directory?(d[1]) } +      #ugly code, sort later +      if @rxng.methods.join =~/[^_]dtd_sax\b/ +        if @rxng.dtd_sax.length > 200 +          dtd=File.new("#{@path[:style]}/#{@rxng.rng_name.output_sax}",'w') +          dtd << @rxng.dtd_sax +          dtd.close +        else trang_rnc_model_output_sax +        end +      else trang_rnc_model_output_sax +      end +      if @rxng.methods.join =~/[^_]dtd_dom\b/ +        if @rxng.dtd_dom.length > 200 +          dtd=File.new("#{@path[:style]}/#{@rxng.rng_name.output_dom}",'w') +          dtd << @rxng.dtd_dom +          dtd.close +        else trang_rnc_model_output_dom +        end +      else trang_rnc_model_output_dom +      end +      if @rxng.methods.join =~/[^_]dtd_node\b/ +        if @rxng.dtd_node.length > 200 +          dtd=File.new("#{@path[:style]}/#{@rxng.rng_name.input_node}",'w') +          dtd << @rxng.dtd_node +          dtd.close +        else trang_rnc_model_input_node +        end +      else trang_rnc_model_input_node +      end +      if @rxng.methods.join =~/[^_]dtd_xhtml\b/ +        if @rxng.dtd_xhtml.length > 200 +          dtd=File.new("#{@path[:style]}/#{@rxng.rng_name.output_xhtml}",'w') +          dtd << @rxng.dtd_xhtml +          dtd.close +        else trang_rnc_model_output_xhtml +        end +      else trang_rnc_model_output_xhtml +      end +    end +    def trang_rnc_model_output_sax +      s=@suffix +      rnc_src=@env.processing_path.ao + '/sax.' + s[:rnc] +      rnc_file=@path[:rnc] + '/' + @rxng.rnc_name.output_sax +      rng_file=@path[:rng] + '/' + @rxng.rng_name.output_sax +      xsd_file=@path[:xsd] + '/' + @rxng.xsd_name.output_sax +      rnc=File.new(rnc_src,'w') +      rnc << @rxng.rnc_model_output_sax +      rnc.close +      #xsd +      schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) +      schema.relaxng(@opt.selections.str) +      #rng +      schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) +      schema.relaxng(@opt.selections.str) +      #rnc +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end +    end +    def trang_rnc_model_output_dom +      s=@suffix +      rnc_src=@env.processing_path.ao + '/dom.' + s[:rnc] +      rnc_file=@path[:rnc] + '/' + @rxng.rnc_name.output_dom +      rng_file=@path[:rng] + '/' + @rxng.rng_name.output_dom +      xsd_file=@path[:xsd] + '/' + @rxng.xsd_name.output_dom +      rnc=File.new(rnc_src,'w') +      rnc << @rxng.rnc_model_output_dom +      rnc.close +      #xsd +      schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) +      schema.relaxng(@opt.selections.str) +      #rng +      schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) +      schema.relaxng(@opt.selections.str) +      #rnc +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end +    end +    def trang_rnc_model_output_xhtml +      s=@suffix +      rnc_src=@env.processing_path.ao + '/xhtml.' + s[:rnc] +      rnc_file=@path[:rnc] + '/' + @rxng.rnc_name.output_xhtml +      rng_file=@path[:rng] + '/' + @rxng.rng_name.output_xhtml +      xsd_file=@path[:xsd] + '/' + @rxng.xsd_name.output_xhtml +      rnc=File.new(rnc_src,'w') +      rnc << @rxng.rnc_model_output_xhtml +      rnc.close +      #xsd +      schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) +      schema.relaxng(@opt.selections.str) +      #rng +      schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) +      schema.relaxng(@opt.selections.str) +      #rnc +      if FileTest.file?(rnc_src) +        FileUtils::cp(rnc_src,rnc_file) +        FileUtils::chmod(0644,rnc_file) +      else STDERR.puts %{\t*WARN* did not find rnc - "#{rnc_src}" [#{__FILE__}:#{__LINE__}]} +      end +    end +    def trang_rnc_model_input_sax +      rnc_file=@env.processing_path.ao + '/sax.rnc' +      dtd_file=@path[:xsd] + '/' + @rxng.rng_name.input_sax +      rnc=File.new(rnc_file,'w') +      rnc << @rxng.rnc_model_output_sax +      rnc.close +      schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) +      schema.relaxng(@opt.selections.str) +    end +    def trang_rnc_model_input_dom +      rnc_file=@env.processing_path.ao + '/dom.rnc' +      dtd_file=@path[:xsd] + '/' + @rxng.rng_name.input_dom +      rnc=File.new(rnc_file,'w') +      rnc << @rxng.rnc_model_output_dom +      rnc.close +      schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) +      schema.relaxng(@opt.selections.str) +    end +    def trang_rnc_model_input_node +      rnc_file=@env.processing_path.ao + '/node.rnc' +      dtd_file=@path[:xsd] + '/' + @rxng.rng_name.input_node +      rnc=File.new(rnc_file,'w') +      rnc << @rxng.rnc_model_input_node +      rnc.close +      schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) +      schema.relaxng(@opt.selections.str) +    end +  end +end +__END__ +#+END_SRC + +* document header + +#+NAME: sisu_document_header +#+BEGIN_SRC text +encoding: utf-8 +- Name: SiSU + +  - Description: documents, structuring, processing, publishing, search +    config + +  - Author: Ralph Amissah +    <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, 2017, 2019, +    2020, 2021, Ralph Amissah, + +  - 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 + +  - Homepages: +    <http://www.sisudoc.org> + +  - Git +    <https://git.sisudoc.org/projects/> +    <https://git.sisudoc.org/projects/?p=software/sisu.git;a=summary> +    <https://git.sisudoc.org/projects/?p=markup/sisu-markup-samples.git;a=summary> +#+END_SRC | 
