diff options
| author | Ralph Amissah <ralph@amissah.com> | 2014-08-08 00:38:36 -0400 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2014-08-08 00:38:36 -0400 | 
| commit | fe909890122d015ab05273e8d181b2b30765710f (patch) | |
| tree | e922edaef0997e926a4983593ec088dcca7f7d77 | |
| parent | debian/changelog (5.5.6-1) (diff) | |
| parent | documentation related (diff) | |
Merge tag 'sisu_5.6.0' into debian/sid
SiSU 5.6.0
107 files changed, 3512 insertions, 2110 deletions
| @@ -81,9 +81,9 @@ specify sisu version for sisu installed via gem    gem search sisu -  sisu _5.5.1_ --version +  sisu _5.6.0_ --version -  sisu _6.1.1_ --version +  sisu _6.2.1_ --version  to uninstall sisu installed via gem @@ -233,12 +233,8 @@ more see: <http://sisudoc.org> or <http://www.jus.uio.no/sisu>  DOCUMENT PROCESSING COMMAND FLAGS  ................................. -*-a [filename/wildcard]* -produces /plaintext/ with Unix linefeeds and without markup, (object numbers -are omitted), has footnotes at end of each paragraph that contains them [ -A -for equivalent dos (linefeed) output file] [see -e for endnotes]. (Options -include: --endnotes for endnotes --footnotes for footnotes at the end of each -paragraph --unix for unix linefeed (default) --msdos for msdos linefeed) +*-[0-9] [filename/wildcard]* +see --act  *--ao [filename/wildcard/url]*  assumed for most other flags, creates new intermediate files for processing @@ -246,6 +242,13 @@ assumed for most other flags, creates new intermediate files for processing  processing of other output. This step is assumed for most processing flags. To  skip it see -n. Alias -m. +*--act[0-9] [filename/wildcard]* +--act0 to --act9 configurable shortcuts for multiple flags, -0 to -9 synonyms, +configure in sisurc.yml, sisu default action on a specified file where no flag +is provided is --act0, current default setting for --act0 is --digest --qrcode +--text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax +--xml-dom --sqlite --manifest --verbose +  *--asciitext [filename/wildcard]*  asciitext, smart text (not available) @@ -263,9 +266,6 @@ site more extensive than -C on its own, shared output directory files/force  update, existing shared output config files such as css and dtd files are  updated if this modifier is used. -*-CC* -see --configure -  *-c [filename/wildcard]*  see --color-toggle @@ -317,6 +317,9 @@ screen.  *--docbook [filename/wildcard/url]*  docbook xml +*--dom [filename/wildcard/url]* +see --xml-dom +  *--dump[=directory_path] [filename/wildcard]*  places output in directory specified, if none is specified in the current  directory (pwd). Unlike using default settings /HTML/ files have embedded css. @@ -616,6 +619,9 @@ additional parameters: --db-user='www-data'. The samples are dumped in the  present work directory which must be writable, (with screen instructions given  that they be copied to the cgi-bin directory). Alias -F +*--sax [filename/wildcard/url]* +see --xml-sax +  *--scp [filename/wildcard]*  copies sisu output files to remote host using scp. This requires that  sisurc.yml has been provided with information on hostname and username, and @@ -843,44 +849,6 @@ kills data" and drops (/PostgreSQL/ or /SQLite/) db, tables & indexes [ -d  The -v is for verbose output. -SHORTCUTS, SHORTHAND FOR MULTIPLE FLAGS ---------------------------------------- - -*--update [filename/wildcard]* -Checks existing file output and runs the flags required to update this output. -This means that if only html and pdf output was requested on previous runs, -only the -hp files will be applied, and only these will be generated this time, -together with the summary. This can be very convenient, if you offer different -outputs of different files, and just want to do the same again. - -*-0 to -5 [filename or wildcard]* -Default shorthand mappings (note that the defaults can be changed/configured in -the sisurc.yml file): - -*-0* --NQhewpotbxXyYv [this is the default action run when no options are give, i.e. -on 'sisu [filename]'] - -*-1* --Qhewpoty - -*-2* --NQhewpotbxXy - -*-3* --NQhewpotbxXyY - -*-4* --NQhewpotbxXDyY --update - -*-5* --NQhewpotbxXDyYv --update - -add -v for verbose mode and -c to toggle color state, e.g. sisu -2vc [filename -or wildcard] - -consider -u for appended url info or -v for verbose output -  COMMAND LINE WITH FLAGS - BATCH PROCESSING  .......................................... diff --git a/data/doc/sisu/CHANGELOG_v5 b/data/doc/sisu/CHANGELOG_v5 index a4e158bb..1bcef2b4 100644 --- a/data/doc/sisu/CHANGELOG_v5 +++ b/data/doc/sisu/CHANGELOG_v5 @@ -31,6 +31,27 @@ v2 branch is removed; it is available in sisu =< 3.3.2  %% Reverse Chronological: +%% 5.6.0.orig.tar.xz (2014-08-08:31/5) +http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_5.6.0 +http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_5.6.0-1 +http://www.jus.uio.no/sisu/pkg/src/sisu_5.6.0.orig.tar.xz +  sisu_5.6.0.orig.tar.xz +  sisu_5.6.0-1.dsc + +* merged v6 (6.2.0) +  * some file renames, fairly extensive +  * commandline, --act0 to --act9 & rc-config with act instead of roman numeral +    * configurable command line options increased to 0 - 9 (instead of 0 - 5) +    * use --act0 to --act9 +    * default --act0 +    * rc config with flag:act0 to flag:act9 +    * legacy roman numeral configuration works (for now) +  * internally use opt.act (simplify, cleaner, instead of opt.cmd & opt.mod, now +    removed) + +* extend document structure, headings A - D, 1 - 4 +  * sql db table structure changed (needs to be rebuilt) +  %% 5.5.6.orig.tar.xz (2014-08-08:31/5)  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_5.5.6  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_5.5.6-1 diff --git a/data/doc/sisu/CHANGELOG_v6 b/data/doc/sisu/CHANGELOG_v6 index dd8a38b0..1f19f07f 100644 --- a/data/doc/sisu/CHANGELOG_v6 +++ b/data/doc/sisu/CHANGELOG_v6 @@ -21,6 +21,16 @@ v2 branch is removed; it is available in sisu =< 3.3.2  %% Reverse Chronological: +%% 6.2.1.orig.tar.xz (2014-08-08:31/5) +http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_6.2.1 +http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_6.2.1-1 +http://www.jus.uio.no/sisu/pkg/src/sisu_6.2.1.orig.tar.xz +  sisu_6.2.1.orig.tar.xz +  sisu_6.2.1-1.dsc + +* extend document structure, headings A - D, 1 - 4 +  * sql db table structure changed (needs to be rebuilt) +  %% 6.2.0.orig.tar.xz (2014-08-08:31/5)  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/sisu_6.2.0  http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=log;h=refs/tags/debian/sisu_6.2.0-1 diff --git a/data/doc/sisu/markup-samples/manual/_sisu/sisu_document_make b/data/doc/sisu/markup-samples/manual/_sisu/sisu_document_make index 3a4c8b9f..2327875e 100644 --- a/data/doc/sisu/markup-samples/manual/_sisu/sisu_document_make +++ b/data/doc/sisu/markup-samples/manual/_sisu/sisu_document_make @@ -3,7 +3,7 @@   :breaks: new=C; break=1   :bold: /Debian|Ruby|SiSU/   :italics: /Linux|GPL|GPLv3|LaTeX|PostgreSQL|SQLite|SQL|Vim|ascii|plaintext|UTF-?8|HTML|XHTML|XML|EPUB|OpenDocument|ODF|ODT|PDF|pgSQL|TeXinfo|YAML|YML|OCN|object citation system|object citation numbering|granular search|Dublin Core/ - :substitute: /${sisu_stable}/,'5.5.4'  /${sisu_dev}/,'6.1.4' /${debian_stable}/,'*{Wheezy}*' /${debian_testing}/,'*{Jessie}*' + :substitute: /${sisu_stable}/,'5.6.0'  /${sisu_dev}/,'6.2.1' /${debian_stable}/,'*{Wheezy}*' /${debian_testing}/,'*{Jessie}*'   :home_button_text: {SiSU}http://sisudoc.org; {git}http://git.sisudoc.org   :footer: {SiSU}http://sisudoc.org; {git}http://git.sisudoc.org diff --git a/data/doc/sisu/markup-samples/manual/en/sisu_commands.sst b/data/doc/sisu/markup-samples/manual/en/sisu_commands.sst index 7af33161..2de5ff43 100644 --- a/data/doc/sisu/markup-samples/manual/en/sisu_commands.sst +++ b/data/doc/sisu/markup-samples/manual/en/sisu_commands.sst @@ -37,12 +37,15 @@ SiSU is a document publishing system, that from a simple single marked-up docume  2~ Document Processing Command Flags -!_ -a [filename/wildcard] \\ -produces plaintext with Unix linefeeds and without markup, (object numbers are omitted), has footnotes at end of each paragraph that contains them [ -A for equivalent dos (linefeed) output file] [see -e for endnotes]. (Options include: --endnotes for endnotes --footnotes for footnotes at the end of each paragraph --unix for unix linefeed (default) --msdos for msdos linefeed) +!_ -[0-9] [filename/wildcard] \\ +see --act  !_ --ao [filename/wildcard/url] \\  assumed for most other flags, creates new intermediate files for processing (abstract objects, document abstraction) that is used in all subsequent processing of other output. This step is assumed for most processing flags. To skip it see -n. Alias -m. +!_ --act[0-9] [filename/wildcard] \\ +--act0 to --act9 configurable shortcuts for multiple flags, -0 to -9 synonyms, configure in sisurc.yml, sisu default action on a specified file where no flag is provided is --act0, current default setting for --act0 is --digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --verbose +  !_ --asciitext [filename/wildcard] \\  asciitext, smart text (not available) @@ -55,9 +58,6 @@ see --output-by-*  !_ -C \\  configure/initialise shared output directory files initialize shared output directory (config files such as css and dtd files are not updated if they already exist unless modifier is used). -C --init-site configure/initialise site more extensive than -C on its own, shared output directory files/force update, existing shared output config files such as css and dtd files are updated if this modifier is used. -!_ -CC \\ -see --configure -  !_ -c [filename/wildcard] \\  see --color-toggle @@ -94,6 +94,9 @@ document digest or document content certificate ( DCC ) as sha digest tree of th  !_ --docbook [filename/wildcard/url] \\  docbook xml +!_ --dom [filename/wildcard/url] \\ +see --xml-dom +  !_ --dump[=directory_path] [filename/wildcard] \\  places output in directory specified, if none is specified in the current directory (pwd). Unlike using default settings HTML files have embedded css. Compare --redirect @@ -324,6 +327,9 @@ see --source  !_ --sample-search-form [--db-(pg|sqlite)] \\  generate examples of (naive) cgi search form for SQLite or PgSQL depends on your already having used sisu to populate an SQLite or PgSQL database, (the SQLite version scans the output directories for existing sisu_sqlite databases, so it is first necessary to create them, before generating the search form) see --sqlite & --pg and the database section below. Optional additional parameters: --db-user='www-data'. The samples are dumped in the present work directory which must be writable, (with screen instructions given that they be copied to the cgi-bin directory). Alias -F +!_ --sax [filename/wildcard/url] \\ +see --xml-sax +  !_ --scp [filename/wildcard] \\  copies sisu output files to remote host using scp. This requires that sisurc.yml has been provided with information on hostname and username, and that you have your "keys" and ssh agent in place. Also see --rsync. Alias -r @@ -484,36 +490,6 @@ kills data" and drops (PostgreSQL or SQLite) db, tables & indexes [ -d --dropall  The -v is for verbose output. -1~command_shorcuts Shortcuts, Shorthand for multiple flags - -!_ --update [filename/wildcard] \\ -Checks existing file output and runs the flags required to update this output. This means that if only html and pdf output was requested on previous runs, only the -hp files will be applied, and only these will be generated this time, together with the summary. This can be very convenient, if you offer different outputs of different files, and just want to do the same again. - -!_ -0 to -5 [filename or wildcard] \\ -Default shorthand mappings (note that the defaults can be changed/configured in the sisurc.yml file): - -!_ -0 \\ --NQhewpotbxXyYv [this is the default action run when no options are give, i.e. on 'sisu [filename]'] - -!_ -1 \\ --Qhewpoty - -!_ -2 \\ --NQhewpotbxXy - -!_ -3 \\ --NQhewpotbxXyY - -!_ -4 \\ --NQhewpotbxXDyY --update - -!_ -5 \\ --NQhewpotbxXDyYv --update - -add -v for verbose mode and -c to toggle color state, e.g. sisu -2vc [filename or wildcard] - -consider -u for appended url info or -v for verbose output -  2~ Command Line with Flags - Batch Processing  In the data directory run sisu -mh filename or wildcard eg. "sisu -h cisg.sst" or "sisu -h *.{sst,ssm}" to produce html version of all documents. diff --git a/data/sisu/v5/v/version.yml b/data/sisu/v5/v/version.yml index 7a1d9a77..d6865084 100644 --- a/data/sisu/v5/v/version.yml +++ b/data/sisu/v5/v/version.yml @@ -1,5 +1,5 @@  ---  :project: SiSU -:version: 5.5.6 +:version: 5.6.0  :date_stamp: 2014w31/5  :date: "2014-08-08" diff --git a/data/sisu/v6/v/version.yml b/data/sisu/v6/v/version.yml index 19a7f741..62a2c21c 100644 --- a/data/sisu/v6/v/version.yml +++ b/data/sisu/v6/v/version.yml @@ -1,5 +1,5 @@  ---  :project: SiSU -:version: 6.2.0 +:version: 6.2.1  :date_stamp: 2014w31/5  :date: "2014-08-08" diff --git a/lib/sisu/v5/ao.rb b/lib/sisu/v5/ao.rb index d7b418f5..0a494184 100644 --- a/lib/sisu/v5/ao.rb +++ b/lib/sisu/v5/ao.rb @@ -124,7 +124,7 @@ module SiSU_AO          : @opt.fns          create_ao        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@@fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@@fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -145,7 +145,7 @@ module SiSU_AO          ? read_fnc          : @@ao_array.dup        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -166,7 +166,7 @@ module SiSU_AO          ? read_idx_sst          : @@idx_arr[:sst].dup #check        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -187,7 +187,7 @@ module SiSU_AO          ? read_idx_raw          : @@idx_arr[:tex].dup #check        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -208,7 +208,7 @@ module SiSU_AO          ? read_idx_html          : @@idx_arr[:html].dup        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -229,7 +229,7 @@ module SiSU_AO          ? read_idx_xhtml          : @@idx_arr[:xhtml].dup        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -250,7 +250,7 @@ module SiSU_AO          ? read_map_nametags          : @@map_arr[:nametags].dup        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -271,7 +271,7 @@ module SiSU_AO          ? read_map_ocn_htmlseg          : @@map_arr[:ocn_htmlseg].dup        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selection,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/ao_composite.rb b/lib/sisu/v5/ao_composite.rb index af194db7..5a183d65 100644 --- a/lib/sisu/v5/ao_composite.rb +++ b/lib/sisu/v5/ao_composite.rb @@ -114,7 +114,7 @@ module SiSU_Assemble          end          Dir.chdir(pwd)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -157,7 +157,7 @@ module SiSU_Assemble          end          tuned_file=tuned_file.flatten.compact        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -253,7 +253,7 @@ module SiSU_Assemble          fns_array=IO.readlines(@opt.fns,'')          insertions?(fns_array)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/ao_doc_str.rb b/lib/sisu/v5/ao_doc_str.rb index 931e51d3..11990abf 100644 --- a/lib/sisu/v5/ao_doc_str.rb +++ b/lib/sisu/v5/ao_doc_str.rb @@ -1223,7 +1223,7 @@ module SiSU_AO_DocumentStructureExtract      end      def structure_info        def lv -        %w[A~ B~ C~ D~ 1 2 3] +        %w[A~ B~ C~ D~ 1 2 3 4]        end        def possible_parents(child)          case child @@ -1234,6 +1234,7 @@ module SiSU_AO_DocumentStructureExtract          when /1/  then 'A~, B~, C~, D~'          when /2/  then '1'          when /3/  then '2' +        when /4/  then '3'          end        end        def possible_children(parent) @@ -1244,20 +1245,21 @@ module SiSU_AO_DocumentStructureExtract          when /D~/ then '1'          when /1/  then '2'          when /2/  then '3' -        when /3/  then 'none' +        when /3/  then '4' +        when /4/  then 'none'          end        end        self      end      def document_structure_check_info(node,node_parent,status=:ok) -      node_ln=/^([0-6])/.match(node)[1].to_i -      node_parent_ln=/^([0-6])/.match(node_parent)[1].to_i +      node_ln=/^([0-7])/.match(node)[1].to_i +      node_parent_ln=/^([0-7])/.match(node_parent)[1].to_i        if status==:error \        or @md.opt.act[:maintenance][:set]==:on          puts %{node: #{node},    parent node: #{node_parent}  #{status.upcase}}          if status==:error -          node_ln=/^([0-6])/.match(node)[1].to_i -          node_parent_ln=/^([0-6])/.match(node_parent)[1].to_i +          node_ln=/^([0-7])/.match(node)[1].to_i +          node_parent_ln=/^([0-7])/.match(node_parent)[1].to_i            STDERR.puts %{current level: #{structure_info.lv[node_ln]} (possible parent levels: #{structure_info.possible_parents(structure_info.lv[node_ln])})  parent level:  #{structure_info.lv[node_parent_ln]} (possible child levels: #{structure_info.possible_children(structure_info.lv[node_parent_ln])})  SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"} @@ -1297,12 +1299,12 @@ SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"        required_headers_present?        data=@data        @o_array=[] -      node=ocn=ocn_dv=ocn_sp=ocnh=ocnh0=ocnh1=ocnh2=ocnh3=ocnh4=ocnh5=ocnh6=ocno=ocnp=ocnt=ocnc=ocng=ocni=ocnu=0 # h heading, o other, t table, g group, i image +      node=ocn=ocn_dv=ocn_sp=ocnh=ocnh0=ocnh1=ocnh2=ocnh3=ocnh4=ocnh5=ocnh6=ocnh7=ocno=ocnp=ocnt=ocnc=ocng=ocni=ocnu=0 # h heading, o other, t table, g group, i image        regex_exclude_ocn_and_node = /#{Rx[:meta]}|^@\S+?:\s|^4~endnotes|^#{Mx[:lv_o]}4:endnotes#{Mx[:lv_c]}|^\^~ |<:e[:_]\d+?>|^<:\#|<:- |<[:!]!4|<hr width|#{Mx[:br_endnotes]}|\A\s*\Z/mi #ocn here #  added with Tune.code #¡ -      parent=node1=node2=node3=node4=node5=node6=nil +      parent=node1=node2=node3=node4=node5=node6=node7=nil        node0='0:0;0'        @collapsed_lv0=0 -      @lev_occurences={ a: 0, b: 0, c: 0, d: 0, l1: 0, l2: 0, l3: 0 } +      @lev_occurences={ a: 0, b: 0, c: 0, d: 0, l1: 0, l2: 0, l3: 0, l4: 0 }        data.each do |dob|          h={}          if (dob.obj !~ regex_exclude_ocn_and_node || dob.is==:code) \ @@ -1336,7 +1338,8 @@ SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"            or ln.to_s =~@md.lv3 \            or ln.to_s =~@md.lv4 \            or ln.to_s =~@md.lv5 \ -          or ln.to_s =~@md.lv6) +          or ln.to_s =~@md.lv6 \ +          or ln.to_s =~@md.lv7)              if not dob.obj =~/~#|-#/                ocnh+=1              end @@ -1523,7 +1526,7 @@ or this level should be level :B~ rather than #{dob.lv}}                  warning_incorrect_parent_level_or_level(dob.obj)                  puts "parent is level 4~ & this level #{dob.lv}  either parent should be level 5~ -or this level should be 5~ rather #{dob.lv}" #level 6 +or this level should be 5~ rather #{dob.lv}"                  document_structure_check_info(node6,node4,:error)                  @collapsed_lv6=@collapsed_lv4+1                  node4 @@ -1549,6 +1552,59 @@ or this level should be 5~ rather #{dob.lv}" #level 6                end                collapsed_level=@collapsed_lv6                node,ocn_sp=node6,"h#{ocnh}" +            elsif ln==7 \ +            or ln=~@md.lv7 +              @lev_occurences[:l4] += 1 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh7+=1 +                node7="7:#{ocnh7};#{ocn}" +              else +                ocn_flag=false +                node7="7:0;0" +              end +              parent=if node6 +                document_structure_check_info(node7,node6) +                @collapsed_lv7=@collapsed_lv6+1 +                node5 +              elsif node5 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts "parent is level 5~ & this level #{dob.lv} +either parent should be level 6~ +or this level should be 6~ rather #{dob.lv}" +                document_structure_check_info(node7,node5,:error) +                @collapsed_lv6=@collapsed_lv5+1 +                node5 +              elsif node4 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts "parent is level 4~ & this level #{dob.lv} +either parent should be level 6~ +or this level should be 6~ rather #{dob.lv}" +                document_structure_check_info(node7,node4,:error) +                @collapsed_lv6=@collapsed_lv4+1 +                node4 +              elsif node3 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node3,:error) +                @collapsed_lv6=@collapsed_lv3+1 +                node3 +              elsif node2 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node2,:error) +                @collapsed_lv6=@collapsed_lv2+1 +                node2 +              elsif node1 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node1,:error) +                @collapsed_lv6=@collapsed_lv1+1 +                node1 +              else +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node0,:error) +                node0 +              end +              collapsed_level=@collapsed_lv7 +              node,ocn_sp=node7,"h#{ocnh}"              end            else              unless @lev_occurences[:l1] > 0 diff --git a/lib/sisu/v5/ao_endnotes.rb b/lib/sisu/v5/ao_endnotes.rb index 5517cd87..e83cdfc3 100644 --- a/lib/sisu/v5/ao_endnotes.rb +++ b/lib/sisu/v5/ao_endnotes.rb @@ -76,11 +76,11 @@ module SiSU_AO_Endnotes        endnote_ref=1        data.each do |dob|                                                                                 # manually numbered endnotes <!e(\d)!> <!e_(\d)!> --> -        if @md.opt.mod.inspect =~/--no-asterisk|--no-annotate/ +        if @md.opt.selections.str =~/--no-asterisk|--no-annotate/            dob.obj=dob.obj.              gsub(/#{Mx[:en_b_o]}\s.+?#{Mx[:en_b_c]}/,'')          end -        if @md.opt.mod.inspect =~/--no-dagger|--no-annotate/ +        if @md.opt.selections.str =~/--no-dagger|--no-annotate/            dob.obj=dob.obj.              gsub(/#{Mx[:en_b_o]}[+]\s.+?#{Mx[:en_b_c]}/,'')          end diff --git a/lib/sisu/v5/ao_expand_insertions.rb b/lib/sisu/v5/ao_expand_insertions.rb index dce14ee4..47ac9887 100644 --- a/lib/sisu/v5/ao_expand_insertions.rb +++ b/lib/sisu/v5/ao_expand_insertions.rb @@ -66,14 +66,18 @@ module SiSU_AO_Insertions        @md,@data=md,data      end      def output_filetypes_in_cmd(cmd_shortcut,lnk=nil) #make list of file types in shortcut command (as configured), e.g. when sisu -3 is used -      cf_defaults=SiSU_Env::InfoProcessingFlag.new -      cmd_list=case cmd_shortcut.inspect -      when /0/ then cf_defaults.cf_0 -      when /1/ then cf_defaults.cf_1 -      when /2/ then cf_defaults.cf_2 -      when /3/ then cf_defaults.cf_3 -      when /4/ then cf_defaults.cf_4 -      when /5/ then cf_defaults.cf_5 +      act_defaults=SiSU_Env::InfoProcessingFlag.new +      cmd_list=case cmd_shortcut.inspect #check on expectation, string v array +      when /0/ then act_defaults.act_0.str +      when /1/ then act_defaults.act_1.str +      when /2/ then act_defaults.act_2.str +      when /3/ then act_defaults.act_3.str +      when /4/ then act_defaults.act_4.str +      when /5/ then act_defaults.act_5.str +      when /6/ then act_defaults.act_6.str +      when /7/ then act_defaults.act_7.str +      when /8/ then act_defaults.act_8.str +      when /9/ then act_defaults.act_9.str        end        file_type_names={}        file_type_names[:gen],file_type_names[:src]=[],[] diff --git a/lib/sisu/v5/cgi.rb b/lib/sisu/v5/cgi.rb index efea863c..201f028b 100644 --- a/lib/sisu/v5/cgi.rb +++ b/lib/sisu/v5/cgi.rb @@ -61,7 +61,7 @@      (pgsql sqlite)  =end -module  SiSU_CGI                                                                 #% database building documents +module  SiSU_CGI                                        #% database building documents    require_relative 'se'                                 # se.rb    require_relative 'cgi_pgsql'                          # cgi_pgsql.rb    require_relative 'cgi_sqlite'                         # cgi_sqlite.rb @@ -71,9 +71,9 @@ module  SiSU_CGI        @webserv=@opt.files[0].to_s.strip      end      def read -      if @opt.mod.inspect =~/--db[=-]["']?(?:pg|pg?sql|postgres(?:ql)?)["']+/ +      if @opt.act[:psql][:set]==:on          SiSU_CGI_PgSQL::SearchPgSQL.new(@opt,@webserv).pgsql -      elsif @opt.mod.inspect =~/--db[=-](?:sqlite)/ +      elsif @opt.act[:sqlite][:set]==:on          SiSU_CGI_SQLite::SearchSQLite.new(@opt,@webserv).sqlite        else          puts <<-WOK diff --git a/lib/sisu/v5/cgi_pgsql.rb b/lib/sisu/v5/cgi_pgsql.rb index 633e20fc..e5b61cc1 100644 --- a/lib/sisu/v5/cgi_pgsql.rb +++ b/lib/sisu/v5/cgi_pgsql.rb @@ -60,7 +60,7 @@   ** Description: generates naive cgi search form for search of sisu database (pgsql)  =end -module  SiSU_CGI_PgSQL                                                            #% database building documents +module  SiSU_CGI_PgSQL                                  #% database building documents    require_relative 'se'                                 # se.rb    require_relative 'cgi_sql_common'                     # cgi_sql_common.rb      include SiSU_CGI_SQL diff --git a/lib/sisu/v5/cgi_sql_common.rb b/lib/sisu/v5/cgi_sql_common.rb index c760a9db..7fadb68e 100644 --- a/lib/sisu/v5/cgi_sql_common.rb +++ b/lib/sisu/v5/cgi_sql_common.rb @@ -64,7 +64,6 @@ module SiSU_CGI_SQL    class CGI_Common      def initialize(webserv,opt,image_src,dir)        @webserv,@opt,@image_src,@env=webserv,opt,image_src,dir -      @cmd=opt.cmd      end      def about        <<-'WOK_SQL' diff --git a/lib/sisu/v5/cgi_sqlite.rb b/lib/sisu/v5/cgi_sqlite.rb index 531071c4..4644dbc0 100644 --- a/lib/sisu/v5/cgi_sqlite.rb +++ b/lib/sisu/v5/cgi_sqlite.rb @@ -60,7 +60,7 @@   ** Description: generates naive cgi search form for search of sisu database (sqlite)  =end -module  SiSU_CGI_SQLite                                                            #% database building documents +module  SiSU_CGI_SQLite                                 #% database building documents    require_relative 'se'                                 # se.rb    require_relative 'cgi_sql_common'                     # cgi_sql_common.rb      include SiSU_CGI_SQL diff --git a/lib/sisu/v5/conf.rb b/lib/sisu/v5/conf.rb index 820d0941..b126d320 100644 --- a/lib/sisu/v5/conf.rb +++ b/lib/sisu/v5/conf.rb @@ -206,10 +206,10 @@ module SiSU_Initialize        rnc.close        #xsd        schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rng        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rnc        if FileTest.file?(rnc_src)          FileUtils::cp(rnc_src,rnc_file) @@ -228,10 +228,10 @@ module SiSU_Initialize        rnc.close        #xsd        schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rng        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rnc        if FileTest.file?(rnc_src)          FileUtils::cp(rnc_src,rnc_file) @@ -250,10 +250,10 @@ module SiSU_Initialize        rnc.close        #xsd        schema=SiSU_Env::SystemCall.new(rnc_src,xsd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rng        schema=SiSU_Env::SystemCall.new(rnc_src,rng_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)        #rnc        if FileTest.file?(rnc_src)          FileUtils::cp(rnc_src,rnc_file) @@ -268,7 +268,7 @@ module SiSU_Initialize        rnc << @rxng.rnc_model_output_sax        rnc.close        schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)      end      def trang_rnc_model_input_dom        rnc_file=@env.processing_path.ao + '/dom.rnc' @@ -277,7 +277,7 @@ module SiSU_Initialize        rnc << @rxng.rnc_model_output_dom        rnc.close        schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)      end      def trang_rnc_model_input_node        rnc_file=@env.processing_path.ao + '/node.rnc' @@ -286,7 +286,7 @@ module SiSU_Initialize        rnc << @rxng.rnc_model_input_node        rnc.close        schema=SiSU_Env::SystemCall.new(rnc_file,dtd_file) -      schema.relaxng(@opt.cmd) +      schema.relaxng(@opt.selections.str)      end    end  end diff --git a/lib/sisu/v5/constants.rb b/lib/sisu/v5/constants.rb index 55c3ff2a..e0f28a6d 100644 --- a/lib/sisu/v5/constants.rb +++ b/lib/sisu/v5/constants.rb @@ -267,8 +267,8 @@ else    }  end  Db={ -  name_prefix:               "SiSU#{SiSU_is[:version_dir]}b_", -  name_prefix_db:            "sisu_#{SiSU_is[:version_dir]}b_", +  name_prefix:               "SiSU#{SiSU_is[:version_dir]}c_", +  name_prefix_db:            "sisu_#{SiSU_is[:version_dir]}c_",    col_title:                  800,    col_title_part:             400,    col_title_edition:           10, diff --git a/lib/sisu/v5/css.rb b/lib/sisu/v5/css.rb index b99359aa..f1598550 100644 --- a/lib/sisu/v5/css.rb +++ b/lib/sisu/v5/css.rb @@ -236,7 +236,7 @@ WOK      margin-bottom: 0px;      text-indent: 0mm;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -447,7 +447,7 @@ WOK      padding-left: 0em;      text-indent: 0em;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -1307,18 +1307,18 @@ WOK      font-weight: bold;    } -  h0, h1, h2, h3, h4, h5, h6 { +  h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight: bold;      line-height: 120%;      text-align: left;      margin-top: 20px;      margin-bottom: 10px;    } -  h4.norm, h5.norm, h6.norm { +  h4.norm, h5.norm, h6.norm, h7.norm {      margin-top: 10px;      margin-bottom: 0px;    } -  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center { +  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {      text-align: center;    }    h1 { font-size: 120%; } @@ -1327,6 +1327,7 @@ WOK    h4 { font-size: 105%; }    h5 { font-size: 100%; }    h6 { font-size: 100%; } +  h7 { font-size: 100%; }    h0 { font-size: 80%; }    h1.i {margin-left: 2em;} @@ -1418,6 +1419,8 @@ WOK    }    h6.banner {    } +  h7.banner { +  }    .toc {      font-weight: normal; @@ -1454,6 +1457,11 @@ WOK      font-size: 90%;      line-height: 110%;    } +  h7.toc { +    margin-left: 7em; +    font-size: 85%; +    line-height: 100%; +  }    .microtoc {      margin-top: 2px; @@ -1487,6 +1495,11 @@ WOK      font-weight: normal;      font-size: 90%;    } +  h7.microtoc { +    margin-left: 30mm; +    font-weight: normal; +    font-size: 85%; +  }    .subtoc {      margin-right: 34%; @@ -1504,6 +1517,12 @@ WOK      margin-top: 0px;      margin-bottom: 0px;    } +  h7.subtoc { +    margin-left: 4em; +    font-size: 70%; +    margin-top: 0px; +    margin-bottom: 0px; +  }    div.substance {      width: 100%; @@ -1629,15 +1648,19 @@ WOK      margin-left: 2em;      font-size: 85%;    } +  h7.minitoc { +    margin-left: 3em; +    font-size: 80%; +  }    h0.minitoc {      margin-left: 0em;      font-size: 90%;    } -  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, p.c { +  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {      text-align: center    } -  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red { +  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {      text-align: center;      color: #ff0000;      margin-left: 5mm; @@ -1646,7 +1669,7 @@ WOK      margin-bottom: 20px;      margin-right: 15mm;    } -  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby { +  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {      text-align: center;      color: #990000;      margin-left: 5mm; @@ -1856,6 +1879,11 @@ WOK        font-weight: bold;        text-align: left;      } +    text[class|="h7"] { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      text[class|="indent0"] {        padding-left: 10%;      } @@ -2591,6 +2619,11 @@ WOK        font-weight: bold;        text-align: left;      } +    text[class|="h7"] { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      text[class|="indent0"] {        padding-left: 10%;      } @@ -3271,6 +3304,11 @@ WOK        font-weight: bold;        text-align: left;      } +    para.h7 { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      table {        margin-left: 5%;        display: block; @@ -3427,6 +3465,11 @@ WOK        font-weight: bold;        text-align: left;      } +    p.h7 { +      font-size: 150%; +      font-weight: bold; +      text-align: left; +    }      ocn {        display: block;        text-align: right; diff --git a/lib/sisu/v5/db_create.rb b/lib/sisu/v5/db_create.rb index 35b15ada..956a470a 100644 --- a/lib/sisu/v5/db_create.rb +++ b/lib/sisu/v5/db_create.rb @@ -264,6 +264,7 @@ module SiSU_DbCreate              lev4            SMALLINT,              lev5            SMALLINT,              lev6            SMALLINT, +            lev7            SMALLINT,              en_a            SMALLINT NULL,              en_z            SMALLINT NULL,              en_a_asterisk   SMALLINT NULL, @@ -506,9 +507,9 @@ module SiSU_DbCreate            %{COMMENT ON COLUMN doc_objects.metadata_tid              IS 'tie to title in metadata_and_text';},            %{COMMENT ON COLUMN doc_objects.lev_an -            IS 'doc level A-D 1-6';}, +            IS 'doc level A-D 1-4';},            %{COMMENT ON COLUMN doc_objects.lev -            IS 'doc level 0-6 \d\~';}, +            IS 'doc level 0-7 \d\~';},            %{COMMENT ON COLUMN doc_objects.seg              IS 'segment name from level number 4 (lv 1)';},            %{COMMENT ON COLUMN doc_objects.ocn @@ -547,6 +548,8 @@ module SiSU_DbCreate              IS 'document structure, level number 5';},            %{COMMENT ON COLUMN doc_objects.lev6              IS 'document structure, level number 6';}, +          %{COMMENT ON COLUMN doc_objects.lev7 +            IS 'document structure, level number 7';},            %{COMMENT ON COLUMN doc_objects.t_of              IS 'document structure, type of object (object is of)';},            %{COMMENT ON COLUMN doc_objects.t_is diff --git a/lib/sisu/v5/db_import.rb b/lib/sisu/v5/db_import.rb index 791eef43..5bb886ff 100644 --- a/lib/sisu/v5/db_import.rb +++ b/lib/sisu/v5/db_import.rb @@ -79,7 +79,7 @@ module SiSU_DbImport        @env=SiSU_Env::InfoEnv.new(@opt.fns)        @dal="#{@env.processing_path.ao}"        @fnb=if @opt.fns.empty? \ -      or @opt.cmd.empty? +      or @opt.selections.str.empty?          ''        else          @md=SiSU_Param::Parameters.new(@opt).get @@ -118,7 +118,7 @@ module SiSU_DbImport          puts "#{__FILE__}:#{__LINE__}" if @opt.act[:maintenance][:set]==:on        end        @id_n =0 if @col[:lid].nil? or @col[:lid].to_s.empty? -      @col[:lv0]=@col[:lv1]=@col[:lv2]=@col[:lv3]=@col[:lv4]=@col[:lv5]=@col[:lv6]=0 +      @col[:lv0]=@col[:lv1]=@col[:lv2]=@col[:lv3]=@col[:lv4]=@col[:lv5]=@col[:lv6]=@col[:lv7]=0        @db=SiSU_Env::InfoDb.new        @pdf_fn=SiSU_Env::FileOp.new(@md).base_filename        @@dl ||=SiSU_Env::InfoEnv.new.digest.length @@ -233,7 +233,7 @@ module SiSU_DbImport              @conn.exec("COMMIT")            end          rescue -          SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do              __LINE__.to_s + ':' + __FILE__            end            sqlfn="#{@env.processing_path.sql}/#{@md.fnb}.sql" @@ -390,6 +390,7 @@ module SiSU_DbImport                when /1/ then @col[:lv1]+=1                when /2/ then @col[:lv2]+=1                when /3/ then @col[:lv3]+=1 +              when /4/ then @col[:lv4]+=1                end                @col[:lev]=@col[:plaintext]=@col[:body]=''              elsif data.is==:heading \ @@ -480,7 +481,8 @@ module SiSU_DbImport                @col[:lev]=@col[:plaintext]=@col[:body]=''              elsif data.is==:heading \              && data.ln==6 -              txt,@col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]=data.obj,data.ocn,data.lv,data.odv,data.osp,data.of,data.is,data.node,data.parent,'','' +              txt,       @col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]= +                data.obj,data.ocn,  data.lv,      data.odv,   data.osp,   data.of,    data.is,    data.node,  data.parent,  '',                 ''                @@seg_full=data.name if data.is==:heading && data.ln==6 && data.name #check data.name                @@seg ||='' #nil # watch                @col[:seg]=@@seg @@ -508,6 +510,37 @@ module SiSU_DbImport                t=SiSU_DbTuple::LoadDocuments.new(@conn,@col,@opt,@file_maint)                @tuple_array << t.tuple                @col[:lev]=@col[:plaintext]=@col[:body]='' +            elsif data.is==:heading \ +            && data.ln==7 +              txt,       @col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]= +                data.obj,data.ocn,  data.lv,      data.odv,   data.osp,   data.of,    data.is,    data.node,  data.parent,  '',                 '' +              @@seg_full=data.name if data.is==:heading && data.ln==7 && data.name #check data.name +              @@seg ||='' #nil # watch +              @col[:seg]=@@seg +              @col[:lv7]+=1 +              @col[:lid]+=1 +              @col[:lev]=7 +              @hname=if @col[:seg] \ +              and not @col[:seg].to_s.empty? +                @@hname=@col[:seg].to_s +              else @@hname +              end +              @env=SiSU_Env::InfoEnv.new(@md.fns) +              @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" +              txt=endnotes(txt).extract_any +              body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus +              @col[:body]=special_character_escape(body) +              plaintext=@col[:body].dup +              plaintext=strip_markup(plaintext) +              @col[:plaintext]=clean_searchable_text(plaintext) +              book_idx=book_idx_hash_to_str(data.idx) +              @col[:book_idx]=clean_searchable_text(book_idx) +              @en_a,@en_z=@en[0].first,@en[0].last if @en[0] +              @en_a_asterisk,@en_z_asterisk=@en_ast[0].first,@en_ast[0].last if @en_ast[0] +              @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last if @en_pls[0] +              t=SiSU_DbTuple::LoadDocuments.new(@conn,@col,@opt,@file_maint) +              @tuple_array << t.tuple +              @col[:lev]=@col[:plaintext]=@col[:body]=''                                                                                 #% :structure :layout :comment              elsif data.of==:structure \              || data.of==:layout \ @@ -700,7 +733,7 @@ module SiSU_DbImport            end          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -833,7 +866,7 @@ module SiSU_DbImport          t=SiSU_DbTuple::LoadUrls.new(@conn,f,u,@@id_t,@opt,@file_maint)          tuple=t.tuple        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/db_load_tuple.rb b/lib/sisu/v5/db_load_tuple.rb index 98310bfd..36c8fddf 100644 --- a/lib/sisu/v5/db_load_tuple.rb +++ b/lib/sisu/v5/db_load_tuple.rb @@ -69,8 +69,8 @@ module SiSU_DbTuple      def initialize(conn,col,opt,file_maint)        @conn,@col,@opt,@file_maint=conn,col,opt,file_maint        @col[:lev]=@col[:lev].to_i -      unless @col[:lev].inspect=~/^[0-6]/ \ -      or @col[:lev]==0..6 +      unless @col[:lev].inspect=~/^[0-7]/ \ +      or @col[:lev]==0..7          @col[:lev]=9        end        @col[:ocn]=0 unless @col[:ocn].inspect=~/\d+/ @@ -78,11 +78,11 @@ module SiSU_DbTuple      end      def tuple                                                                    #% import line        sql_entry=if @col[:en_a] -        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, en_a, en_z, t_of, t_is, node, parent, digest_clean, digest_all) " + -        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:en_a]}', '#{@col[:en_z]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');" +        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, lev7, en_a, en_z, t_of, t_is, node, parent, digest_clean, digest_all) " + +        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:lv7]}', '#{@col[:en_a]}', '#{@col[:en_z]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');"        else -        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, t_of, t_is, node, parent, digest_clean, digest_all) " + -        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');" +        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, lev7, t_of, t_is, node, parent, digest_clean, digest_all) " + +        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:lv7]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');"        end        if @opt.act[:verbose_plus][:set]==:on          if @opt.act[:maintenance][:set]==:on @@ -97,7 +97,7 @@ module SiSU_DbTuple          end        end        if @opt.act[:verbose][:set]==:on -        if @col[:lev].inspect =~/[0-356]/ +        if @col[:lev].inspect =~/[0-35-7]/            lev=case @col[:lev].inspect            when /0/ then ':A'            when /1/ then ':B' @@ -105,10 +105,11 @@ module SiSU_DbTuple            when /3/ then ':D'            when /5/ then ' 2'            when /6/ then ' 3' +          when /7/ then ' 4'            end -          puts %{#{lev}>\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}} +          puts %{#{lev}>\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:lv7]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}}          elsif @col[:lev].inspect =~/[4]/ -          puts %{ #{@cX.green}1>#{@cX.off}\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}\t#{@col[:seg]}} +          puts %{ #{@cX.green}1>#{@cX.off}\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:lv7]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}\t#{@col[:seg]}}          end        end        sql_entry diff --git a/lib/sisu/v5/db_remove.rb b/lib/sisu/v5/db_remove.rb index cff42409..324dbee4 100644 --- a/lib/sisu/v5/db_remove.rb +++ b/lib/sisu/v5/db_remove.rb @@ -178,7 +178,7 @@ module SiSU_DbRemove          || @opt.act[:verbose_plus][:set]==:on \          || @opt.act[:maintenance][:set]==:on)            SiSU_Screen::Ansi.new( -            @opt.cmd, +            @opt.selections.str,              "no such file in database #{@db.psql.db}::#{@opt.fns}"            ).puts_grey          end diff --git a/lib/sisu/v5/dbi.rb b/lib/sisu/v5/dbi.rb index 75b07372..a7bbd822 100644 --- a/lib/sisu/v5/dbi.rb +++ b/lib/sisu/v5/dbi.rb @@ -97,8 +97,7 @@ module  SiSU_DBI        end      end      def maintenance_check(opt,file,line) -      p opt.mod -      p opt.cmd +      p opt.selections.str        p "at #{file} #{line}"      end      def read_psql @@ -134,7 +133,7 @@ manually create the database: "#{cX.green}#{@db.db}#{cX.off}" if it does not yet        end        SiSU_Screen::Ansi.new(          @opt.act[:color_state][:set], -        "DBI (#{@sql_type}) #{@opt.mod}", +        "SQL DB #{@sql_type.upcase}",          @opt.fno        ).dbi_title unless @opt.act[:quiet][:set]==:on        begin diff --git a/lib/sisu/v5/dbi_discrete.rb b/lib/sisu/v5/dbi_discrete.rb index 73976756..79d3f70a 100644 --- a/lib/sisu/v5/dbi_discrete.rb +++ b/lib/sisu/v5/dbi_discrete.rb @@ -127,7 +127,7 @@ module  SiSU_DBI_Discrete                               #% database building        begin          SiSU_Screen::Ansi.new(            @opt.act[:color_state][:set], -          'SQLite', +          'SQLite (discrete)',            "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"          ).green_title_hi unless @opt.act[:quiet][:set]==:on          sdb.create_db diff --git a/lib/sisu/v5/digests.rb b/lib/sisu/v5/digests.rb index 83f26714..e1d51b1d 100644 --- a/lib/sisu/v5/digests.rb +++ b/lib/sisu/v5/digests.rb @@ -111,7 +111,7 @@ module SiSU_DigestView            SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('*EXITED* hash digests will not run without openssl')          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/dp.rb b/lib/sisu/v5/dp.rb index 0dde14b8..ef61f6b4 100644 --- a/lib/sisu/v5/dp.rb +++ b/lib/sisu/v5/dp.rb @@ -103,8 +103,7 @@ module SiSU_Param      def initialize(opt)        @opt=opt        @cX||=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]) -      @cmd,@mod=opt.cmd,opt.mod -      @fns=if @opt.cmd =~/P/ #revisit CHECK +      @fns=if @opt.act[:psql][:set] == [:on] #revisit CHECK          opt.fns        else opt.fns.gsub(/\.ssm$/,'.ssm.sst')        end @@ -886,7 +885,7 @@ module SiSU_Param          Dir.chdir(@opt.f_pth[:pth])          begin          rescue -          SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@fns).location do +          SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure @@ -951,10 +950,10 @@ module SiSU_Param            end            @concord_make=(@wc_words > @env.concord_max) ? false : true            @locale=@sys.locale -          @file_encoding=@sys.file_encoding(fns,@opt.cmd) +          @file_encoding=@sys.file_encoding(fns,@opt.act)            # programs set here for things that affect output appearance only            @programs[:pdf]=SiSU_Env::SystemCall.new.program_found?('pdflatex') -          if @opt.cmd =~/P/ #if @env.multilingual? +          if @opt.act[:psql][:set] == [:ok]              m=/((.+?)(?:\~\w\w(?:_\w\w)?)?)\.((?:-|ssm\.)?sst|ssm|ssi)$/ #watch added match for sss              @fnn,@fnb,@fnt=@fns[m,1],@fns[m,2],@fns[m,3]              @flv=@env.document_language_versions_found[:f] @@ -967,7 +966,7 @@ module SiSU_Param            @papersize=@env.papersize #'A4' #default size #get first from SiSU_Env:: # @env is probably no longer most appropriate name! as default info is more general            @sfx_src=@fns[m,2]            if @fns =~ /(?:-|ssm\.)?sst$/ \ -          and not @opt.cmd =~/P/ #watch +          and not @opt.act[:psql][:set] == [:ok]              @env_out_root=@env.path.output              @dir_out="#{@env.path.output}/#{@fnb}"              @dir_tex=@env.processing_path.tex @@ -1485,6 +1484,9 @@ module SiSU_Param            Store.new(self,@env).store                                             #% pstore            self          rescue +          if @opt.act[:harvest][:set]==:on +            exit +          end          end        end        private @@ -1510,7 +1512,7 @@ module SiSU_Param              end              @@md=@md=nil            rescue -            SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +            SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do                __LINE__.to_s + ':' + __FILE__              end            ensure diff --git a/lib/sisu/v5/dp_identify_markup.rb b/lib/sisu/v5/dp_identify_markup.rb index f6884c7d..82e63fd4 100644 --- a/lib/sisu/v5/dp_identify_markup.rb +++ b/lib/sisu/v5/dp_identify_markup.rb @@ -51,7 +51,7 @@   * Git     <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> -   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/param_identify_markup.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dp_identify_markup.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v5/dp_make.rb b/lib/sisu/v5/dp_make.rb index 05b5cbdf..bba58847 100644 --- a/lib/sisu/v5/dp_make.rb +++ b/lib/sisu/v5/dp_make.rb @@ -51,7 +51,7 @@   * Git     <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> -   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/param_make.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dp_make.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v5/embedded.rb b/lib/sisu/v5/embedded.rb index b46975fd..325d7780 100644 --- a/lib/sisu/v5/embedded.rb +++ b/lib/sisu/v5/embedded.rb @@ -83,7 +83,7 @@ module SiSU_Embedded        multimedia        begin        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -103,7 +103,7 @@ module SiSU_Embedded            src_ec=@f.place_file.images.rel + '/' + @md.ec[:image].join(" #{@f.output_path.images.rel}/")            unless @opt.fns =~/\.-sst$/              SiSU_Env::SystemCall.new(src_ec,ldest,'q').rsync('--relative',@opt.base_path) -            #if @md.opt.cmd.inspect =~/R/ #rsync to remote image directory +            #if @md.opt.selections.str.inspect =~/R/ #rsync to remote image directory              #  SiSU_Env::SystemCall.new(src_ec,remote_rel,'q').rsync('--relative')              #end            end diff --git a/lib/sisu/v5/harvest.rb b/lib/sisu/v5/harvest.rb index cc12b08e..ddc85055 100644 --- a/lib/sisu/v5/harvest.rb +++ b/lib/sisu/v5/harvest.rb @@ -76,7 +76,7 @@ module SiSU_Harvest      end      def read        begin -        harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" +        harvest_pth=@env.path.webserv + '/' + @opt.base_stub          FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth)          cases(@opt,@env)        rescue @@ -99,7 +99,7 @@ WOK        style.close      end      def cases(opt,env) -      case opt.mod.inspect +      case opt.selections.str.inspect        when/--harvest/i          css(opt) if @opt.act[:maintenance][:set]==:on          SiSU_HarvestAuthors::Songsheet.new(opt,env).songsheet diff --git a/lib/sisu/v5/harvest_authors.rb b/lib/sisu/v5/harvest_authors.rb index 7904ab15..26a0a9e3 100644 --- a/lib/sisu/v5/harvest_authors.rb +++ b/lib/sisu/v5/harvest_authors.rb @@ -88,20 +88,36 @@ module SiSU_HarvestAuthors          end          lang_hash_file_array.each_pair do |lang,a|            idx_array[lang] ||= [] -          idx_array=SiSU_HarvestAuthors::Harvest.new(@opt,@env,a,filename,name,idx_array,lang).extract_harvest +          idx_array=SiSU_HarvestAuthors::Harvest.new( +            @opt, +            @env, +            a, +            filename, +            name, +            idx_array, +            lang +          ).extract_harvest          end        end -      the_idx=SiSU_HarvestAuthors::Index.new(idx_array,@@the_idx_authors).construct_book_author_index -      SiSU_HarvestAuthors::OutputIndex.new(@opt,the_idx).html_print.html_songsheet +      the_idx=SiSU_HarvestAuthors::Index.new( +        idx_array, +        @@the_idx_authors +      ).construct_book_author_index +      SiSU_HarvestAuthors::OutputIndex.new( +        @opt, +        the_idx +      ).html_print.html_songsheet      end    end    class Harvest      def initialize(opt,env,data,filename,name,idx_array,lang) -      @opt,@env,@data,@filename,@name,@idx_array,@lang=opt,env,data,filename,name,idx_array,lang +      @opt, @env,@data,@filename,@name,@idx_array,@lang= +        opt,env, data, filename, name, idx_array, lang      end      def extract_harvest -      data,filename,name,idx_array,lang=@data,@filename,@name,@idx_array,@lang -      @title,@subtitle,@fulltitle,@author,@author_format,@date=nil,nil,nil,nil,nil,nil +      data,   filename, name, idx_array, lang = +        @data,@filename,@name,@idx_array,@lang +      @title=@subtitle=@fulltitle=@author=@author_format=@date=nil        @authors=[]        rgx={}        rgx[:author]=/^@creator:(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m @@ -123,7 +139,9 @@ module SiSU_HarvestAuthors          end          break if @title && @subtitle && @author && @date        end -      @fulltitle=@subtitle ? (@title + ' - ' + @subtitle) : @title +      @fulltitle=@subtitle \ +      ? (@title + ' - ' + @subtitle) +      : @title        if @title \        and @author_format          creator=SiSU_FormatAuthor::Author.new(@author_format.strip).author_details @@ -138,7 +156,15 @@ module SiSU_HarvestAuthors          else            "sisu_manifest.#{lang}.html"          end -        idx_array[lang] <<= { filename: filename, file: file, date: @date, title: @fulltitle, author: creator, page: page, lang: lang } +        idx_array[lang] <<= { +          filename: filename, +          file: file, +          date: @date, +          title: @fulltitle, +          author: creator, +          page: page, +          lang: lang +        }        else          #p "missing author field: #{@filename} title: #{@title}; author: #{@author_format}"        end @@ -164,7 +190,15 @@ module SiSU_HarvestAuthors              if @@the_idx_authors[lang][author].is_a?(NilClass)                @@the_idx_authors[lang][author]={ md: [] }              end -            @@the_idx_authors[lang][author][:md] << { filename: idx[:filename], file: idx[:file], author: idx[:author], title: idx[:title], date: idx[:date], page: idx[:page], lang: idx[:lang] } +            @@the_idx_authors[lang][author][:md] << { +              filename: idx[:filename], +              file: idx[:file], +              author: idx[:author], +              title: idx[:title], +              date: idx[:date], +              page: idx[:page], +              lang: idx[:lang] +            }            end          end        end @@ -188,18 +222,26 @@ module SiSU_HarvestAuthors          @output[lng] ||={}          harvest_pth,file='',''          if @env.output_dir_structure.by? == :language -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/#{lng}/manifest" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub + '/' \ +          + lng + '/' \ +          + 'manifest'            file="#{harvest_pth}/authors.html"          elsif @env.output_dir_structure.by? == :filetype -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/manifest" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub + '/' \ +          + 'manifest'            file="#{harvest_pth}/authors.#{lng}.html"          elsif @env.output_dir_structure.by? == :filename -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub            file="#{harvest_pth}/authors.#{lng}.html"          end -        FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) +        FileUtils::mkdir_p(harvest_pth) \ +          unless FileTest.directory?(harvest_pth)          fileinfo=(@opt.act[:verbose][:set]==:on \          || @opt.act[:verbose_plus][:set]==:on \ +        || @opt.act[:urls_selected][:set]==:on \          || @opt.act[:maintenance][:set]==:on) \          ? ("file://#{file}") : ''          SiSU_Screen::Ansi.new( @@ -213,7 +255,8 @@ module SiSU_HarvestAuthors      def html_file_close        @the_idx.keys.each do |lng|          @output[lng][:html].close -        @output[lng][:html_mnt].close if @output[lng][:html_mnt].is_a?(File) +        @output[lng][:html_mnt].close \ +          if @output[lng][:html_mnt].is_a?(File)        end      end      def html_print @@ -257,18 +300,22 @@ module SiSU_HarvestAuthors              file="#{harvest_pth}/authors.#{lg}.html"            end            l=ln[lg][:t] -          harvest_languages += %{<a href="#{file}">#{l}</a>   } +          harvest_languages += +            %{<a href="#{file}">#{l}</a>   }          end          sv=SiSU_Env::InfoVersion.instance.get_version          if @env.output_dir_structure.by? == :language            home_pth='../..' -          output_structure_by='(output organised by language & filetype)' +          output_structure_by= +            '(output organised by language & filetype)'          elsif @env.output_dir_structure.by? == :filetype            home_pth='..' -          output_structure_by='(output organised by filetype)' +          output_structure_by= +            '(output organised by filetype)'          elsif @env.output_dir_structure.by? == :filename            home_pth='.' -          output_structure_by='(output organised by filename)' +          output_structure_by= +            '(output organised by filename)'          else            home_pth='.'            output_structure_by='(output organised by ?)' @@ -301,8 +348,11 @@ WOK        end        def html_head          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << html_head_adjust(lng,'maintenance') if @opt.act[:maintenance][:set]==:on -          @output[lng][:html] << html_head_adjust(lng) +          @output[lng][:html_mnt] \ +          << html_head_adjust(lng,'maintenance') \ +            if @opt.act[:maintenance][:set]==:on +          @output[lng][:html] \ +          << html_head_adjust(lng)          end        end        def html_alph @@ -315,7 +365,8 @@ WOK          end          a=a.join          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << a if @opt.act[:maintenance][:set]==:on +          @output[lng][:html_mnt] << a \ +            if @opt.act[:maintenance][:set]==:on            @output[lng][:html] << a          end        end @@ -333,12 +384,14 @@ WOK  </html>  WOK          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << a if @output[lng][:html_mnt].is_a?(File) +          @output[lng][:html_mnt] << a \ +            if @output[lng][:html_mnt].is_a?(File)            @output[lng][:html] << a          end        end        def do_html(lng,html) -        @output[lng][:html_mnt] << html if @output[lng][:html_mnt].is_a?(File) +        @output[lng][:html_mnt] << html \ +          if @output[lng][:html_mnt].is_a?(File)          @output[lng][:html] << html        end        def do_string_name(lng,attrib,string) @@ -353,9 +406,11 @@ WOK              if @alph.length > 0                @letter=@alph.shift                if @output[lng][:html_mnt].is_a?(File) -                @output[lng][:html_mnt] << %{\n<p class="letter"><a name="#{@letter}"></p>#{@letter}</a><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} +                @output[lng][:html_mnt] \ +                << %{\n<p class="letter"><a name="#{@letter}"></p>#{@letter}</a><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}                end -              @output[lng][:html] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} +              @output[lng][:html] \ +              << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}              else break              end            end @@ -383,14 +438,18 @@ WOK                  "./#{i[:file]}/#{i[:page]}"                else '' #error                end -              work=[ "#{i[:date]} #{i[:title]}", %{<p class="publication">#{i[:date]} <a href="#{manifest_at}">#{i[:title]}</a>, #{i[:author][:authors_s]}</p>} ] +              work=[ +                "#{i[:date]} #{i[:title]}", +                %{<p class="publication">#{i[:date]} <a href="#{manifest_at}">#{i[:title]}</a>, #{i[:author][:authors_s]}</p>} +              ]                works<<=(@output[lng][:html_mnt].is_a?(File)) \                ? (work.concat([%{<p class="publication">[<a href="#{i[:file]}.sst">src</a>]  #{i[:date]} <a href="file://#{manifest_at}">#{i[:title]}</a>, #{i[:author][:authors_s]} -- [<a href="#{i[:file]}.sst">#{i[:file]}.sst</a>]</p>}]))                : work              end              works.sort_by {|y| y[0]}.each do |z|                @output[lng][:html] << z[1] -              @output[lng][:html_mnt] << z[2] if @output[lng][:html_mnt].is_a?(File) +              @output[lng][:html_mnt] << z[2] \ +                if @output[lng][:html_mnt].is_a?(File)              end            end          end diff --git a/lib/sisu/v5/harvest_topics.rb b/lib/sisu/v5/harvest_topics.rb index cd507f63..62103618 100644 --- a/lib/sisu/v5/harvest_topics.rb +++ b/lib/sisu/v5/harvest_topics.rb @@ -90,11 +90,27 @@ module SiSU_HarvestTopics          end          lang_hash_file_array.each_pair do |lang,a|            idx_array[lang] ||=[] -          idx_array=SiSU_HarvestTopics::Harvest.new(@opt,@env,a,filename,name,idx_array,lang).extract_harvest +          idx_array=SiSU_HarvestTopics::Harvest.new( +            @opt, +            @env, +            a, +            filename, +            name, +            idx_array, +            lang +          ).extract_harvest          end        end -      the_hash=SiSU_HarvestTopics::Index.new(@opt,@env,idx_array,@@the_idx_topics).song -      SiSU_HarvestTopics::OutputIndex.new(@opt,the_hash).html_print.html_songsheet +      the_hash=SiSU_HarvestTopics::Index.new( +        @opt, +        @env, +        idx_array, +        @@the_idx_topics +      ).song +      SiSU_HarvestTopics::OutputIndex.new( +        @opt, +        the_hash +      ).html_print.html_songsheet      end    end    class Mix @@ -104,11 +120,13 @@ module SiSU_HarvestTopics    end    class Harvest      def initialize(opt,env,data,filename,name,idx_array,lang) -      @opt,@env,@data,@filename,@name,@idx_array,@lang=opt,env,data,filename,name,idx_array,lang +      @opt, @env,@data,@filename,@name,@idx_array,@lang= +        opt,env, data, filename, name, idx_array, lang      end      def extract_harvest -      data,filename,name,idx_array,lang=@data,@filename,@name,@idx_array,@lang -      @idx_lst,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil +      data,   filename, name, idx_array, lang= +        @data,@filename,@name,@idx_array,@lang +      @idx_lst=@title=@subtitle=@fulltitle=@author=@author_format=nil        rgx={}        rgx[:author]=/^@creator:(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m        rgx[:title]=/^@title:[ ]+(.+)/ @@ -150,10 +168,26 @@ module SiSU_HarvestTopics            idxl=[]            g.each do |i|              i=i.strip -            idxl << { filename: filename, file: file, rough_idx: i, title: @fulltitle, author: creator, page: page, lang: lang  } +            idxl << { +              filename: filename, +              file: file, +              rough_idx: i, +              title: @fulltitle, +              author: creator, +              page: page, +              lang: lang +            }            end            idxl -        else { filename: filename, file: file, rough_idx: @idx_list, title: @fulltitle, author: creator, page: page, lang: lang  } +        else { +            filename: filename, +            file: file, +            rough_idx: @idx_list, +            title: @fulltitle, +            author: creator, +            page: page, +            lang: lang, +          }          end        else          if (@opt.act[:verbose_plus][:set]==:on \ @@ -167,7 +201,8 @@ module SiSU_HarvestTopics    end    class Index < Mix      def initialize(opt,env,idx_array,the_idx) -      @opt,@env,@idx_array,@the_idx=opt,env,idx_array,the_idx +      @opt, @env,@idx_array,@the_idx= +        opt,env, idx_array, the_idx        @@the_idx_topics=@the_idx      end      def song @@ -195,7 +230,13 @@ module SiSU_HarvestTopics            names += %{<a href="authors.#{lang}.html##{s}">#{n}</a>, }          end        end -      { filename: idx[:filename], file: idx[:file], author: names, title: idx[:title], page: idx[:page] } +      { +        filename: idx[:filename], +        file: idx[:file], +        author: names, +        title: idx[:title], +        page: idx[:page] +      }      end      def capital_(txt)        txt[0].chr.capitalize + txt[1,txt.length] @@ -471,18 +512,26 @@ module SiSU_HarvestTopics          @output[lng] ||={}          harvest_pth,file='',''          if @env.output_dir_structure.by? == :language -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/#{lng}/manifest" -          file="#{harvest_pth}/topics.html" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub + '/' \ +          + lng + '/' \ +          + 'manifest' +          file=harvest_pth + '/' + 'topics.html'          elsif @env.output_dir_structure.by? == :filetype -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}/manifest" -          file="#{harvest_pth}/topics.#{lng}.html" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub + '/' \ +          + 'manifest' +          file=harvest_pth + '/' + 'topics.' + lng + '.html'          elsif @env.output_dir_structure.by? == :filename -          harvest_pth="#{@env.path.webserv}/#{@opt.base_stub}" -          file="#{harvest_pth}/topics.#{lng}.html" +          harvest_pth=@env.path.webserv + '/' \ +          + @opt.base_stub +          file=harvest_pth + '/' + 'topics.' + lng + '.html'          end -        FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) +        FileUtils::mkdir_p(harvest_pth) \ +          unless FileTest.directory?(harvest_pth)          fileinfo=(@opt.act[:verbose][:set]==:on \          || @opt.act[:verbose_plus][:set]==:on \ +        || @opt.act[:urls_selected][:set]==:on \          || @opt.act[:maintenance][:set]==:on) \          ? ("file://#{file}")          : '' @@ -615,16 +664,17 @@ module SiSU_HarvestTopics          @the_idx.keys.each do |lg|            if @env.output_dir_structure.by? == :language              harvest_pth="../../#{lg}/manifest" -            file="#{harvest_pth}/topics.html" +            file=harvest_pth + '/' + 'topics.html'            elsif @env.output_dir_structure.by? == :filetype              harvest_pth='.' -            file="#{harvest_pth}/topics.#{lg}.html" +            file=harvest_pth + '/' + 'topics.' + lg + '.html'            elsif @env.output_dir_structure.by? == :filename              harvest_pth='.' -            file="#{harvest_pth}/topics.#{lg}.html" +            file=harvest_pth + '/topics.' + lg + '.html'            end            l=ln[lg][:t] -          harvest_languages += %{<a href="#{file}">#{l}</a>   } +          harvest_languages += +            %{<a href="#{file}">#{l}</a>   }          end          sv=SiSU_Env::InfoVersion.instance.get_version          if @env.output_dir_structure.by? == :language @@ -668,7 +718,9 @@ WOK        end        def html_head          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << html_head_adjust(lng,'maintenance') if @opt.act[:maintenance][:set]==:on +          @output[lng][:html_mnt] \ +          << html_head_adjust(lng,'maintenance') \ +            if @opt.act[:maintenance][:set]==:on            @output[lng][:html] << html_head_adjust(lng)          end        end @@ -682,7 +734,8 @@ WOK          end          a=a.join          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << a if @opt.act[:maintenance][:set]==:on +          @output[lng][:html_mnt] << a \ +            if @opt.act[:maintenance][:set]==:on            @output[lng][:html] << a          end        end @@ -700,7 +753,8 @@ WOK  </html>  WOK          @the_idx.keys.each do |lng| -          @output[lng][:html_mnt] << a if @output[lng][:html_mnt].is_a?(File) +          @output[lng][:html_mnt] << a \ +            if @output[lng][:html_mnt].is_a?(File)            @output[lng][:html] << a          end        end @@ -708,12 +762,14 @@ WOK          @output[lng][:html] << html        end        def do_html_maintenance(lng,html) -        @output[lng][:html_mnt] << html if @output[lng][:html_mnt].is_a?(File) +        @output[lng][:html_mnt] << html \ +          if @output[lng][:html_mnt].is_a?(File)        end        def do_string(lng,attrib,string)          html=%{<p class="#{attrib}">#{string}</p>}          do_html(lng,html) -        do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) +        do_html_maintenance(lng,html) \ +          if @output[lng][:html_mnt].is_a?(File)        end        def do_string_default(lng,attrib,string)          html=%{<p class="#{attrib}">#{string}</p>} @@ -721,7 +777,8 @@ WOK        end        def do_string_maintenance(lng,attrib,string)          html=%{<p class="#{attrib}">#{string}</p>} -        do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) +        do_html_maintenance(lng,html) \ +          if @output[lng][:html_mnt].is_a?(File)        end        def do_string_name(lng,attrib,string)          f=/^(\S)/.match(string)[1] @@ -735,9 +792,11 @@ WOK              if @alph.length > 0                @letter=@alph.shift                if @output[lng][:html_mnt].is_a?(File) -                @output[lng][:html_mnt] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} +                @output[lng][:html_mnt] \ +                << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}                end -              @output[lng][:html] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} +              @output[lng][:html] \ +              << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>}              else break              end            end @@ -745,7 +804,8 @@ WOK          name=string.strip.gsub(/\s+/,'_')          html=%{<p class="#{attrib}"><a name="#{name}">#{string}</a></p>}          do_html(lng,html) -        do_html_maintenance(lng,html) if @output[lng][:html_mnt].is_a?(File) +        do_html_maintenance(lng,html) \ +          if @output[lng][:html_mnt].is_a?(File)        end        def do_array(lng,lv,array)          lv+=1 diff --git a/lib/sisu/v5/html.rb b/lib/sisu/v5/html.rb index a613f56f..683eba96 100644 --- a/lib/sisu/v5/html.rb +++ b/lib/sisu/v5/html.rb @@ -150,7 +150,7 @@ module SiSU_HTML            SiSU_HTML::Source::Output.new(scroll,@md).scroll          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -163,7 +163,7 @@ module SiSU_HTML              end            end          end -        SiSU_Env::Clear.new(@opt.cmd,@opt.fns,@md).param_instantiate +        SiSU_Env::Clear.new(@opt.selections.str,@opt.fns,@md).param_instantiate          @@flag,@@scr,@@seg,@@seg_endnotes,@@seg_subtoc,@@seg_ad={},{},{},{},{},{}          @@seg_total,@@tracker,@@loop_count,@@tablehead,@@number_of_cols=0,0,0,0,0          @@seg_name,@@seg_name_html,@@seg_subtoc_array,@@seg_endnotes_array,@@segtocband,@@tablefoot=Array.new(7){[]} @@ -305,7 +305,7 @@ module SiSU_HTML                  @@toc[:seg_mini] << toc[:seg_mini] if toc[:seg_mini]                  @@toc[:scr] << toc[:scr] if toc[:scr]                rescue -                SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +                SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do                    __LINE__.to_s + ':' + __FILE__                  end                end @@ -729,7 +729,7 @@ WOK                end              end            rescue -            SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +            SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do                __LINE__.to_s + ':' + __FILE__              end            ensure @@ -751,7 +751,7 @@ WOK                end              end            rescue -            SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +            SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do                __LINE__.to_s + ':' + __FILE__              end            ensure diff --git a/lib/sisu/v5/html_concordance.rb b/lib/sisu/v5/html_concordance.rb index dbaf83cf..c02b8f5c 100644 --- a/lib/sisu/v5/html_concordance.rb +++ b/lib/sisu/v5/html_concordance.rb @@ -51,7 +51,7 @@   * Git     <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> -   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/concordance.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_concordance.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -118,7 +118,7 @@ module SiSU_Concordance            SiSU_Concordance::Source::Words.new(@particulars).songsheet          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -236,18 +236,19 @@ WOK            @alphlst=SiSU_i18n::Alphabet.new(@md.opt.lng).hash_strings            @rgx_scanlist=%r{#{Mx[:fa_italics_o]}[#{@alphlst[:l]}#{@alphlst[:u]}0-9"\s]{2,12}#{Mx[:fa_italics_c]}|#{Mx[:fa_bold_o]}[#{@alphlst[:l]}#{@alphlst[:u]}0-9"\s]{2,12}#{Mx[:fa_bold_c]}|(?:https?|file)://\S+|<\S+?>|[#{@alphlst[:l]}#{@alphlst[:u]}]+|\w+}mi          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end        end        def songsheet          begin -          FileUtils::mkdir_p(@file.output_path.html_concordance.dir) unless FileTest.directory?(@file.output_path.html_concordance.dir) +          FileUtils::mkdir_p(@file.output_path.html_concordance.dir) \ +            unless FileTest.directory?(@file.output_path.html_concordance.dir)            @file_concordance=File.open(@file.place_file.html_concordance.dir,'w')            map_para          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure diff --git a/lib/sisu/v5/html_format.rb b/lib/sisu/v5/html_format.rb index 058a8f34..7731464a 100644 --- a/lib/sisu/v5/html_format.rb +++ b/lib/sisu/v5/html_format.rb @@ -1065,6 +1065,9 @@ WOK      def heading_body6        heading_normal('h6','norm')      end +    def heading_body7 +      heading_normal('h7','norm') +    end      def title_heading(tag,attrib)        cl=(@make.build.html_minitoc?) \        ? 'content' @@ -1228,6 +1231,8 @@ WOK      end      def navigation_toc_lev6      end +    def navigation_toc_lev7 +    end      def endnote_seg_body(fn='')  #FIX                                                #url construction keep within single line... BUG WATCH 200408        fn='doc' if fn.to_s.empty? #you may wish to reconsider, sends to 'doc' where no segment info        %{ @@ -1265,6 +1270,9 @@ WOK      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      def heading_sub(tag,attrib)        @txt=@txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        %{ @@ -1357,6 +1365,9 @@ WOK      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +    end      def strip_endnotes(txt)        txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        txt @@ -1389,6 +1400,10 @@ WOK        @txt=strip_endnotes(@txt)        lev('h6','minitoc')      end +    def mini_lev7 +      @txt=strip_endnotes(@txt) +      lev('h7','minitoc') +    end      def mini_lev0 #docinfo        lev('h1','minitoc')      end diff --git a/lib/sisu/v5/html_scroll.rb b/lib/sisu/v5/html_scroll.rb index 01fe2940..c11a532a 100644 --- a/lib/sisu/v5/html_scroll.rb +++ b/lib/sisu/v5/html_scroll.rb @@ -76,7 +76,7 @@ module SiSU_HTML_Scroll          scr[:tails]=SiSU_HTML_Scroll::Scroll.new(@md).tails          scr        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -88,11 +88,13 @@ module SiSU_HTML_Scroll        @rcdc=false        @scr={ body: [], metadata: [], owner_details: [] }        data.each do |dob| -        dob.obj=dob.obj.gsub(/#{@md.file.output_path.html_seg.rel_image}/m,@md.file.output_path.html_scroll.rel_image) +        dob.obj=dob.obj.gsub(/#{@md.file.output_path.html_seg.rel_image}/m, +          @md.file.output_path.html_scroll.rel_image)          if defined? dob.name and dob.name =~/^meta/ \          and dob.obj =~/Document Information/ -          dob.obj=dob.obj.gsub(/(Document Information(?: \(metadata\))?)/, -            '\1<a name="docinfo"></a>') +          dob.obj=dob.obj. +            gsub(/(Document Information(?: \(metadata\))?)/, +              '\1<a name="docinfo"></a>')          end          if dob.obj =~/^Metadata$/ \          and dob.lv =='B' @@ -108,7 +110,8 @@ module SiSU_HTML_Scroll            gsub(/href="#{Xx[:segment]}/m,'href="')          if dob.obj !~/(^#{Rx[:meta]}|#{Mx[:br_eof]})/            unless dob.is ==:code -            dob.obj=dob.obj.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') +            dob.obj=dob.obj. +              gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')            end            if defined? dob.ocn              @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,dob.ocn) @@ -129,6 +132,8 @@ module SiSU_HTML_Scroll                sto.heading_body5              elsif dob.ln==6                sto.heading_body6 +            elsif dob.ln==7 +              sto.heading_body7              end            elsif dob.is==:break \            and dob.from==:markup @@ -162,7 +167,8 @@ module SiSU_HTML_Scroll              elsif dob.ln==4 \              and dob.obj=='Index'                sto.heading_body4 -              book_idx=SiSU_Particulars::CombinedSingleton.instance.get_idx_html(@md.opt).html_idx +              book_idx=SiSU_Particulars::CombinedSingleton. +                instance.get_idx_html(@md.opt).html_idx                book_idx.each do |y| #takes book index prepared for segments & strips segment identifying info                  y.gsub!(/<a href="\S+?\.html#(\d+)">(\1(?:-\d+)?)<\/a>/,                    '<a href="#\1">\2</a>') @@ -176,6 +182,10 @@ module SiSU_HTML_Scroll                unless dob.obj.empty?                  sto.heading_body6                end +            elsif dob.ln==7 +              unless dob.obj.empty? +                sto.heading_body7 +              end              end            elsif dob.is==:para              if dob.indent \ @@ -222,7 +232,9 @@ module SiSU_HTML_Scroll      def tails        scr_tail=[]        format_head_scroll=SiSU_HTML_Format::HeadToc.new(@md) -      scr_tail << format_head_scroll.scroll_tail << format_head_scroll.html_close +      scr_tail \ +      << format_head_scroll.scroll_tail \ +      << format_head_scroll.html_close        scr_tail      end    end diff --git a/lib/sisu/v5/html_segments.rb b/lib/sisu/v5/html_segments.rb index 5826163e..9b0cc1c7 100644 --- a/lib/sisu/v5/html_segments.rb +++ b/lib/sisu/v5/html_segments.rb @@ -67,7 +67,8 @@ module SiSU_HTML_Seg    require_relative 'shared_metadata'                    # shared_metadata.rb    class Output      def initialize(md,outputfile,seg,minitoc,type='') -      @md,@output_seg_file,@seg,@minitoc,@type=md,outputfile,seg,minitoc,type +      @md, @output_seg_file,@seg,@minitoc,@type= +        md,outputfile,      seg,minitoc,  type        @title_banner_=SiSU_Env::CreateSite.new(@md.opt).html_seg_title_banner?        @file=SiSU_Env::FileOp.new(@md)        @make=SiSU_Env::ProcessingSettings.new(@md) @@ -79,59 +80,97 @@ module SiSU_HTML_Seg        if @seg[:title] =~/\S/          filename_seg=[]          if @make.build.html_top_band? -          filename_seg << @seg[:title] << @seg[:tocband_banner] +          filename_seg \ +          << @seg[:title] \ +          << @seg[:tocband_banner]          else -          filename_seg << @seg[:title] +          filename_seg \ +          << @seg[:title]          end          if @type=='endnotes'            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Endnotes', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -          @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_endnotes] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << @seg[:endnote_all] << '</div>' # << '</div>' +          @seg[:headings] \ +          << format_seg.title_heading1 +          filename_seg \ +          << @seg[:heading_endnotes] \ +          << @minitoc << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << @seg[:endnote_all] \ +          << '</div>' # << '</div>'          elsif @type=='idx'            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Index', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)            @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_idx] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << @seg[:idx] << '</div>' # << '</div>' +          filename_seg \ +          << @seg[:heading_idx] \ +          << @minitoc << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << @seg[:idx] \ +          << '</div>' # << '</div>'          elsif @type=='metadata'            metadata=SiSU_Metadata::Summary.new(@md).xhtml_display.metadata            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Metadata', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)            @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_idx] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << metadata << '</div>' # << '</div>' +          filename_seg \ +          << @seg[:heading_idx] \ +          << @minitoc \ +          << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << metadata \ +          << '</div>' # << '</div>'          else            if @make.build.html_top_band? -            filename_seg << @minitoc << @seg[:headings] << @seg[:main] << "\n</div>\n" +            filename_seg \ +            << @minitoc \ +            << @seg[:headings] \ +            << @seg[:main] \ +            << "\n</div>\n"            else -            filename_seg << @minitoc << @seg[:main] << "\n</div>\n" +            filename_seg \ +            << @minitoc \ +            << @seg[:main] \ +            << "\n</div>\n"            end          end          filename_seg <<=if @make.build.html_top_band? -          @seg[:tail] << @seg[:tocband_bannerless] << @seg[:credits] +          @seg[:tail] \ +          << @seg[:tocband_bannerless] \ +          << @seg[:credits]          else -          @seg[:tail] << @seg[:credits] +          @seg[:tail] \ +          << @seg[:credits]          end          filename_seg=filename_seg.flatten.compact #watch          filename_seg.each do |str|            unless str =~/\A\s*\Z/              str=str.strip. -              gsub(Xx[:html_relative2],@file.path_rel_links.html_seg_2). -              gsub(Xx[:html_relative1],@file.path_rel_links.html_seg_1) +              gsub(Xx[:html_relative2], +                @file.path_rel_links.html_seg_2). +              gsub(Xx[:html_relative1], +                @file.path_rel_links.html_seg_1)              @output_seg_file << str            end          end @@ -146,7 +185,17 @@ module SiSU_HTML_Seg      @@loop_count=@@seg_total=@@tracker=0      @@is4=@@is3=@@is2=@@is1=@@is0=0      @@heading0=@@heading1=@@heading2=@@heading3=@@heading4=0 -    @@seg[:tocband_banner],@@seg[:tocband_bannerless],@@seg[:title],@@seg[:headings],@@seg[:main],@@seg[:idx],@@seg[:tail],@@seg[:credits],@@seg_subtoc_array,@@seg_endnotes_array,@@seg[:endnote_all]=Array.new(11){[]} +    @@seg[:tocband_banner], +      @@seg[:tocband_bannerless], +      @@seg[:title],@@seg[:headings], +      @@seg[:main], +      @@seg[:idx], +      @@seg[:tail], +      @@seg[:credits], +      @@seg_subtoc_array, +      @@seg_endnotes_array, +      @@seg[:endnote_all]= +      Array.new(11){[]}      @@seg[:heading_endnotes]=''      @@tablehead,@@number_of_cols=0,0      @@dp,@@segtocband=nil,nil @@ -177,7 +226,7 @@ module SiSU_HTML_Seg          SiSU_HTML_Seg::Seg.new.cleanup # (((( added ))))          #### (((( END )))) ####        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -192,7 +241,8 @@ module SiSU_HTML_Seg        idx_html=nil        if @md.book_idx          #my_make_source_file=SiSU_Env::CreateFile.new(@md.fns) -        idx_html=SiSU_Particulars::CombinedSingleton.instance.get_idx_html(@md.opt).html_idx +        idx_html=SiSU_Particulars::CombinedSingleton. +          instance.get_idx_html(@md.opt).html_idx          idx_html.each {|x| @@seg[:idx] << x }          @@seg[:heading_idx]=''        end @@ -215,7 +265,8 @@ module SiSU_HTML_Seg            @@seg_name.length          ).segmented        end -      map_nametags=SiSU_Particulars::CombinedSingleton.instance.get_map_nametags(@md).nametags_map #p map_nametags +      map_nametags=SiSU_Particulars::CombinedSingleton. +        instance.get_map_nametags(@md).nametags_map #p map_nametags        data.each do |dob|          if defined? dob.obj \          and dob.obj =~/href="#{Xx[:segment]}#+\S+?"/ @@ -227,10 +278,12 @@ module SiSU_HTML_Seg                lng=(inf.output_dir_structure.by_language_code?) \                ? ''                : '.' + @md.opt.lng -              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{lng}#{Sfx[:html]}#\\1"}) +              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/, +                %{href="#{map_nametags[m][:segname]}#{lng}#{Sfx[:html]}#\\1"})              else                p "NOT FOUND name_tags: #{m}" -              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#\\1"}) # not satisfactory +              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/, +                %{href="#\\1"}) # not satisfactory              end            end          end @@ -281,7 +334,8 @@ module SiSU_HTML_Seg                if tracking != 0                  @file=SiSU_Env::FileOp.new(@md)                  unless FileTest.directory?(@file.output_path.html_seg.dir) -                  FileUtils::mkdir_p(@file.output_path.html_seg.dir) if File.writable?("#{@file.output_path.base.dir}/.") +                  FileUtils::mkdir_p(@file.output_path.html_seg.dir) \ +                    if File.writable?("#{@file.output_path.base.dir}/.")                  end                  SiSU_HTML_Seg::Seg.new(@md).tail                  fnh={ @@ -357,7 +411,7 @@ module SiSU_HTML_Seg        && (@make.build.html_navigation_bar?)          x=if (dob.is==:heading \          || dob.is==:heading_insert) \ -        && (dob.ln.to_s =~/^[0-6]/) +        && (dob.ln.to_s =~/^[0-7]/)            x=if @@tracker < @@seg_total-1              format_head_seg.dot_control_pre_next            else @@ -387,10 +441,14 @@ module SiSU_HTML_Seg        @p_num ||= ''        if @@is0==1          @author=%{<b>#{@md.author}</b>\n} if @md.author.to_s =~/\S/ -        @@seg[:tocband_banner] << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav]) -        @@seg[:tocband_bannerless] << '<br />' << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav]) +        @@seg[:tocband_banner] \ +        << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav]) +        @@seg[:tocband_bannerless] \ +        << '<br />' \ +        << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav])          if @title_banner_ -          @@seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author).gsub(clean,'') +          @@seg[:headings] \ +          << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author).gsub(clean,'')          end          ocn=(@@heading0[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \          ? $1 @@ -398,8 +456,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: @@heading0, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading0.gsub(clean,'') -        @@heading0=@@heading0.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading0.gsub(clean,'') +        @@heading0=@@heading0. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is1==1          heading1=@@heading1 @@ -409,8 +469,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading1, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading1.gsub(clean,'') -        @@heading1=@@heading1.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading1.gsub(clean,'') +        @@heading1=@@heading1. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is2==1          heading2=@@heading2 @@ -420,8 +482,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading2, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading2.gsub(clean,'') -        @@heading2=@@heading2.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading2.gsub(clean,'') +        @@heading2=@@heading2. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is3==1          heading3=@@heading3 @@ -431,8 +495,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading3, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading3.gsub(clean,'') -        @@heading3=@@heading3.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading3.gsub(clean,'') +        @@heading3=@@heading3. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is4==1          heading4=@@heading4 @@ -442,7 +508,8 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading4, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading4.gsub(clean,'') +        @@seg[:headings] \ +        << format_seg.title_heading4.gsub(clean,'')        end        @@tracker=@@tracker+1      end @@ -467,6 +534,8 @@ module SiSU_HTML_Seg                sto.seg_heading5              elsif dob.ln==6                sto.seg_heading6 +            elsif dob.ln==7 +              sto.seg_heading6              end            elsif dob.is==:para              if dob.indent \ @@ -589,7 +658,7 @@ module SiSU_HTML_Seg            end          end          if dob.is==:heading \ -        && (dob.ln.to_s =~/^[56]/) +        && (dob.ln.to_s =~/^[5-7]/)            case dob.ln            when 5              txt_obj={ txt: dob.obj.strip, ocn: dob.ocn } @@ -599,6 +668,10 @@ module SiSU_HTML_Seg              txt_obj={ txt: dob.obj.strip, ocn: dob.ocn }              format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)              subtoc=format_seg.subtoc_lev6 #keep and make available, this is the subtoc +          when 7 +            txt_obj={ txt: dob.obj.strip, ocn: dob.ocn } +            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) +            subtoc=format_seg.subtoc_lev7 #keep and make available, this is the subtoc            end            @@seg_subtoc_array << subtoc          end diff --git a/lib/sisu/v5/html_tune.rb b/lib/sisu/v5/html_tune.rb index 1a2c9dee..3e8c2d68 100644 --- a/lib/sisu/v5/html_tune.rb +++ b/lib/sisu/v5/html_tune.rb @@ -150,7 +150,7 @@ module SiSU_HTML_Tune          end          SiSU_HTML_Tune::Tune.new(@data,@md).output        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/hub.rb b/lib/sisu/v5/hub.rb index 785da84d..fed4ae55 100644 --- a/lib/sisu/v5/hub.rb +++ b/lib/sisu/v5/hub.rb @@ -66,6 +66,7 @@ module SiSU    require_relative 'se'                                # se.rb      include SiSU_Env      include SiSU_Screen +  require_relative 'hub_actions'                       # hub_actions.rb    require_relative 'hub_options'                       # hub_options.rb    require_relative 'dp'                                # dp.rb      include SiSU_Param @@ -82,10 +83,12 @@ module SiSU      def initialize(argv,call_path)        begin                                            #% select what to do (set options & start processing (files selected if any))          opt=SiSU_Commandline::Options.new(argv,call_path) #  command line selection of what to do, files & operations set -        SiSU::Processing.new(opt).actions              #  do it +        SiSU::Processing.new(opt).version_info +        SiSU::Processing.new(opt).actions_without_files  #  do it +        SiSU::Processing.new(opt).actions_on_files       #  do it        rescue -        cmd=(opt ? opt.cmd : '') -        SiSU_Screen::Ansi.new(cmd,$!,$@).rescue do +        selection=(opt ? opt.selection : '') +        SiSU_Screen::Ansi.new(selection,$!,$@).rescue do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -202,81 +205,6 @@ module SiSU        end      end    end -  class Operations -    @@n_do=0 -    def initialize(opt='') -      @opt=opt -      @cX=SiSU_Screen::Ansi.new(@opt).cX -    end -    def counter -      @@n_do=0 -    end -    def remote_put_base_site_rsync                         # -CR -      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ -        if @opt.act[:maintenance][:set] ==:on -      require_relative 'remote'                        # remote.rb -      SiSU_Remote::Put.new(@opt).rsync_base -    end -    def remote_put_base_site_rsync_match                   # -CCRZ -      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ -        if @opt.act[:maintenance][:set] ==:on -      require_relative 'remote'                        # remote.rb -      SiSU_Remote::Put.new(@opt).rsync_base_sync -    end -    def remote_put_base_site                               # -Cr -      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ -        if @opt.act[:maintenance][:set] ==:on -      require_relative 'remote'                        # remote.rb -      SiSU_Remote::Put.new(@opt).scp_base -    end -    def remote_put_base_site_all                           # -CCr -      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ -        if @opt.act[:maintenance][:set] ==:on -      require_relative 'remote'                        # remote.rb -      SiSU_Remote::Put.new(@opt).scp_base_all -    end -    def cgi                                                # -F -      require_relative 'cgi'                               # cgi.rb -      SiSU_CGI::SearchSQL.new(@opt).read -    end -    def termsheet                                          # -t -      system("sisu_termsheet #{@opt.cmd} #{@opt.fns}\n") -      @@n_do=@@n_do+1 -      SiSU_Screen::Ansi.new( -        @opt.cmd,@@n_do, -        'Termsheet(s) processed' -      ).term_sheet_title unless @opt.act[:quiet][:set] ==:on -    end -    def webrick                                            # -W -      prt=SiSU_Env::InfoEnv.new(@fns).port.webrick_port -      puts %{#{@cX.blue}<<#{@cX.off}#{@cX.green}Start Webrick web server on port: #{prt}#{@cX.off}#{@cX.blue}>> #{@cX.off*2} } -      require_relative 'webrick' -      SiSU_Webserv::WebrickStart.new -    end -    def not_found -      puts "\n#{@cX.fuchsia}FILE NOT FOUND:#{@cX.off} << #{@opt.fns} >> - requested #{@opt.cmd} processing skipped\n" -    end -    def convert_name_message(fns,type,i,o,rune) -      %{\nIn filename: "#{@cX.fuchsia}#{fns}#{@cX.off}" << #{type} >> #{@cX.fuchsia}is apre 0.36 markup filename.#{@cX.off} #{@cX.brown}Please rename your file.#{@cX.off}\n\tAs of sisu-0.37, SiSU markup files with #{@cX.brown}the extensions #{i} should be re-named #{o}#{@cX.off}\n\tif you have the program called 'rename' installed, the following rune should do the trick:\n\t\t#{rune}\n\talternatively try:\n\t\tsisu --convert --36to37 #{fns}\n\trequested #{@opt.cmd} processing skipped\n} -    end -    def not_recognised -      case @opt.fns -      when /(\.s[123])$/ -        type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') -        rune=%q{rename 's/\.s[123]$/\.sst/' *.s{1,2,3}} -        puts convert_name_message(@opt.fns,type,'.s1 .s2 and .s3','.sst',rune) -      when /(\.r[123])$/ -        type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') -        rune=%q{rename 's/\.r[123]$/\.ssm/' *.r{1,2,3}} -        puts convert_name_message(@opt.fns,type,'.r1 .r2 and .r3','.sst',rune) -        puts %{\n\tNote also that you will need to change the names of the files called/required\n\twithin the document text to build the composite document\n\t\t.s1 .s2 .s3 should be .sst \n\t\t.si should be .ssi\n\trequested #{@opt.cmd} processing skipped\n} -      when /(\.ssi)$/ -        puts "\n#{@cX.fuchsia}component filetype:#{@cX.off} << #{@opt.fns} >> - is not a processed filetype, (it may be used as a component of a .ssm markup file)\n\trequested #{@opt.cmd} processing skipped\n" -      else -        puts "\n#{@cX.fuchsia}FILETYPE NOT RECOGNISED:#{@cX.off} << #{@opt.fns} >> - is not a recognized filetype,\n\trequested #{@opt.cmd} processing skipped\n" -      end -    end -  end    class Processing      begin        require 'fileutils' @@ -292,7 +220,11 @@ module SiSU        @@env=@env=SiSU_Env::InfoEnv.new        @msg,@msgs='',nil        @tell=lambda { -        SiSU_Screen::Ansi.new(@opt.cmd,@msg,"#{@msgs.inspect if @msgs}") +        SiSU_Screen::Ansi.new( +          @opt.selections.str, +          @msg, +          "#{@msgs.inspect if @msgs}" +        )        }      end      def remove_skipped_files_if_any_from_processing_files_array @@ -307,16 +239,6 @@ module SiSU            @remove_faulty_markup_files_array.join(',')        end      end -    def do_loops -      @remove_faulty_markup_files_array=[] -      if @opt.act[:zap][:set]==:on                     #% --zap, -Z -        do_loop_files_on_given_option_pre -      end -      do_each_file_loop_options -      remove_skipped_files_if_any_from_processing_files_array -      do_loop_files_on_given_option_post -      print_error_message_if_files_skipped -    end      def do_each_file_loop_options        @opt.files.each_with_index do |fno,i|          @opt.fno=fno @@ -336,129 +258,18 @@ module SiSU            Dir.chdir(@opt.pth) #watch          end          @env=SiSU_Env::InfoEnv.new(@opt.fns) -        if @opt.act[:ao][:set]==:on                   #% --ao --dal, -m -          $process_document = :ok -          unless @opt.act[:po4a][:set]==:on            # --po4a, -P -            if @opt.fno =~ /\.ssm$/ -              require_relative 'ao_composite'          # ao_composite.rb #pre-processing -              SiSU_Assemble::Composite.new(@opt).read -            end -            require_relative 'ao'                      # -m     ao.rb -            SiSU_AO::Source.new(@opt).read -          end -        end -        if $process_document == :ok -          if @opt.act[:qrcode][:set]==:on                #% --qrcode, -Q -            require_relative 'qrcode'                    #  qrcode.rb -            SiSU_QRcode::Source.new(@opt).read -          end -          if @opt.act[:hash_digests][:set]==:on          #% --hash-digests, -N digest tree -            require_relative 'digests'                   #  digests.rb -            SiSU_DigestView::Source.new(@opt).read -          end -          if @opt.act[:txt][:set]==:on                   #% --txt, -t -a -            require_relative 'txt_plain'                 #  txt_plain.rb -            SiSU_Txt_Plain::Source.new(@opt).read -          end -          if @opt.act[:txt_textile][:set]==:on           #% --textile -            require_relative 'txt_textile'               #  txt_textile.rb -            SiSU_Txt_Textile::Source.new(@opt).read -          end -          if @opt.act[:txt_asciidoc][:set]==:on          #% --asciidoc -            require_relative 'txt_asciidoc'              #  txt_asciidoc.rb -            SiSU_Txt_AsciiDoc::Source.new(@opt).read -          end -          if @opt.act[:txt_markdown][:set]==:on          #% --markdown -            require_relative 'txt_markdown'              #  txt_markdown.rb -            SiSU_Txt_Markdown::Source.new(@opt).read -          end -          if @opt.act[:txt_rst][:set]==:on               #% --rst, --rest -            require_relative 'txt_rst'                   #  txt_rst.rb -            SiSU_Txt_rST::Source.new(@opt).read -          end -          if @opt.act[:html][:set]==:on                  #% --html, -h -H -            require_relative 'html'                      #  html.rb -            SiSU_HTML::Source.new(@opt).read -          else -            if @opt.act[:html_seg][:set]==:on            #% --html-seg (-h -H) -              require_relative 'html'                    #  html.rb -              SiSU_HTML::Source.new(@opt).read -            end -            if @opt.act[:html_scroll][:set]==:on         #% --html-scroll (-h -H) -              require_relative 'html'                    #  html.rb -              SiSU_HTML::Source.new(@opt).read -            end -          end -          if @opt.act[:concordance][:set]==:on           #% --concordance, -w -            require_relative 'html_concordance'          #  html_concordance.rb -            SiSU_Concordance::Source.new(@opt).read -          end -          if @opt.act[:epub][:set]==:on                  #% --epub, -e -            require_relative 'xhtml_epub2'               # xhtml_epub2.rb -            SiSU_XHTML_EPUB2::Source.new(@opt).read -          end -          if @opt.act[:odt][:set]==:on                   #% --odt, -o opendocument -            require_relative 'xml_odf_odt'               #  xml_odf_odt.rb -            SiSU_XML_ODF_ODT::Source.new(@opt).read -          end -          if @opt.act[:xhtml][:set]==:on                 #% --xhtml, -b xhtml -            require_relative 'xhtml'                     #  xhtml.rb -            SiSU_XHTML::Source.new(@opt).read -          end -          if @opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu -            require_relative 'xml_scaffold_structure_sisu' #  xml_scaffold_structure_sisu.rb -            SiSU_XML_Scaffold_Structure_Sisu::Source.new(@opt).read -          end -          if @opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse -            require_relative 'xml_scaffold_structure_collapsed' # xml_scaffold_structure_collapsed.rb -            SiSU_XML_Scaffold_Structure_Collapse::Source.new(@opt).read -          end -          if @opt.act[:xml_docbook_book][:set]==:on      #% --xml-docbook -            require_relative 'xml_docbook5'              # xml_docbook5.rb -            SiSU_XML_Docbook_Book::Source.new(@opt).read -          end -          if @opt.act[:xml_fictionbook][:set]==:on       #% --xml-fictionbook -            require_relative 'xml_fictionbook2'          # xml_fictionbook2.rb -            SiSU_XML_Fictionbook::Source.new(@opt).read -          end -          if @opt.act[:xml_sax][:set]==:on               #% --xml-sax, -x xml sax type -            require_relative 'xml_sax'                   #  xml_sax.rb -            SiSU_XML_SAX::Source.new(@opt).read -          end -          if @opt.act[:xml_dom][:set]==:on               #% --xml-dom, -X xml dom type -            require_relative 'xml_dom'                   #  xml_dom.rb -            SiSU_XML_DOM::Source.new(@opt).read -          end -          if @opt.act[:pdf][:set]==:on \ -          or @opt.act[:pdf_p][:set]==:on \ -          or @opt.act[:pdf_l][:set]==:on                 #% --pdf-l --pdf, -p latex/ texpdf -            require_relative 'texpdf'                    #  texpdf.rb -            SiSU_TeX::Source.new(@opt).read -          end -          if @opt.act[:manpage][:set]==:on               #% --manpage, -i -            require_relative 'manpage'                   #  manpage.rb -            SiSU_Manpage::Source.new(@opt).read -          end -          if @opt.act[:texinfo][:set]==:on               #% --texinfo, -I -            require_relative 'texinfo'                   #  texinfo.rb -            SiSU_TexInfo::Source.new(@opt).read -          end -          if @opt.act[:sqlite_discrete][:set]==:on       #% --sqlite, -d DB sqlite -            require_relative 'dbi_discrete'              #  dbi_discrete.rb -            SiSU_DBI_Discrete::SQL.new(@opt).build -          end -          if @opt.act[:manifest][:set]==:on              #% --manifest, -y -            require_relative 'manifest'                  #  manifest.rb -            ((@opt.act[:sisupod][:set]==:on \ -            || @opt.act[:share_source][:set]==:on) \ -            && @opt.files.length < 2 ) \ -            ? nil -            : SiSU_Manifest::Source.new(@opt).read -          end -        else -          @remove_faulty_markup_files_array << fno -          $process_document=:ok -        end +        actions=SiSU_Hub_Actions::HubActions.new(@opt) +        actions.outputs.each_file.abstract_objects? +        actions.outputs.each_file.qrcode? +        actions.outputs.each_file.hash_digests? +        actions.outputs.each_file.text? +        actions.outputs.each_file.html? +        actions.outputs.each_file.xhtml? +        actions.outputs.each_file.xml? +        actions.outputs.each_file.pdf? +        actions.outputs.each_file.man_or_info? +        actions.outputs.each_file.sqlite_discrete? +        actions.outputs.each_file.manifest?        end      end      def do_loop_files_on_given_option_pre @@ -473,234 +284,27 @@ module SiSU        end      end      def do_loop_files_on_given_option_post -      if @opt.act[:share_source][:set]==:on \ -      or  @opt.act[:sisupod][:set]==:on \ -      or  @opt.act[:git][:set]==:on -        begin -          require_relative 'src_shared' -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_Source::SiSUpodSource.new(@opt).read -          end -          if @opt.act[:share_source][:set]==:on -            require_relative 'src_share'               # -s     src_share.rb -            begin -            ensure -              OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do -                SiSU_Markup::Source.new(@opt).read -              end -            end -          end -          if @opt.act[:sisupod][:set]==:on             #% --sisupod, -S make sisupod -            require_relative 'src_sisupod_make'        # -S     src_sisupod_make.rb -            begin -            ensure -              OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do -                SiSU_Doc::Source.new(@opt).sisupod_tar_xz -              end -            end -          end -          if @opt.act[:git][:set]==:on                 #% --git, -g sisu git -            require_relative 'git'                     # -g     git.rb -            begin -              OptionLoopFiles.new(@opt).loop_files_on_given_option do -                SiSU_Git::Source.new(@opt).read -              end -            ensure -              OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do -                SiSU_Git::Source.new(@opt).git_commit -              end -            end -          end -          if (@opt.act[:sisupod][:set]==:on \ -          || @opt.act[:share_source][:set]==:on) \ -          and @opt.act[:manifest][:set]==:on           #% --manifest, -y -            require_relative 'manifest'                # -y     manifest.rb -            begin -            ensure -              OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do -                SiSU_Manifest::Source.new(@opt).read -              end -            end -          end -        ensure -          path_pod=@env.processing_path.processing_sisupod(@opt).paths -          unless @opt.act[:maintenance][:set]==:on -            FileUtils::rm_rf("#{path_pod[:sisupod]}/*") \ -              if FileTest.directory?(path_pod[:sisupod]) -          end -        end -      end -      if @opt.act[:po4a][:set]==:on                    #% --po4a, -P -        require_relative 'po4a' -        begin -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_Po4a::Source.new(@opt).read             # -P     po4a.rb -          end -        ensure -        end -      end -      if @opt.act[:images][:set]==:on                  #% --images, -j -        require_relative 'shared_images' -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          SiSU_Images::Source.new(@opt).read           # -j     shared_images.rb -        end -      end -      if @opt.cmd =~/T/                                #% -T termsheet/standard form -        @opt.files.each do |fns| -          if FileTest.file?(fns) -            @opt.fns=fns -            case @opt.fns -            when /\.(termsheet.rb)$/ -              SiSU::Operations.new(@opt).termsheet -            else                                       #print "not processed --> ", fns, "\n" -            end -          else SiSU::Operations.new(@opt).not_found -          end -        end -        SiSU::Operations.new.counter -      end -      if @opt.act[:psql][:set]==:on                    #% --pg, -D DB postgresql -        require_relative 'dbi' -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb -        end -      end -      if @opt.act[:sqlite][:set]==:on                  #% --sqlite, -d DB sqlite -        require_relative 'dbi' -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb -        end -      end -      if @opt.act[:manifest][:set]==:on                #% --manifest, -y -        require_relative 'manifest' -        OptionLoopFiles.new(@opt).manifest_on_files_translated do -          SiSU_Manifest::Source.new(@opt).read         # -y     manifest.rb -        end -      end -      if @opt.act[:sitemap][:set]==:on                 #% --sitemap, -Y -        require_relative 'sitemaps' -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          SiSU_Sitemaps::Source.new(@opt).read         # -Y     sitemaps.rb -        end -      end -      if @opt.act[:harvest][:set] !=:on -        if @opt.act[:scp][:set]==:on                   #% -r copy to remote server -          require_relative 'remote'                    # -r     remote.rb -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_Remote::Put.new(@opt).scp -          end -        end -        if @opt.act[:rsync][:set]==:on                 #% -R copy to remote server -          require_relative 'remote'                    # -R     remote.rb -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_Remote::Put.new(@opt).rsync -          end -        end -      else -      end -      if @opt.act[:urls_selected][:set]==:on           #% --sitemap, -Y -        require_relative 'urls' -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          SiSU_Urls::Source.new(@opt).read              #% -u -v -V -M -        end -      end +      actions=SiSU_Hub_Actions::HubActions.new(@opt) +      actions.outputs.loop_files.share_source? +      actions.outputs.loop_files.run_termsheet? +      actions.outputs.loop_files.sql? +      SiSU_Hub_Actions::Operations.new.counter +      actions.outputs.loop_files.manifest? +      actions.outputs.loop_files.sitemaps? +      actions.outputs.loop_files.urls?      end -    def do_initialization -      @cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX -      SiSU_Env::InfoProcessingFlag.new -      if @opt.act[:version_info][:set]==:on            #% version information +    def version_info +      if @opt.act[:version_info][:set]==:on          SiSU_Env::InfoAbout.new(@opt).sisu_version -        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], -            ' ' + File.dirname(__FILE__) -          ).grey -        end -      end -      if @opt.act[:ao][:set]==:on \ -      or @opt.act[:maintenance][:set]==:on             #% --maintenance, -m for -C -        path={} -        path[:css]=@@env.path.output + '/_sisu/css' -        path[:xml]=@@env.path.output + '/_sisu/xml' -        path[:xsd]=path[:xml] + '/xsd' -        path[:xsd]=path[:xml] + '/rnc' -        path[:xsd]=path[:xml] + '/rng' -        re_p3=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ -        unless @opt.files.join(',') =~ re_p3 #do not mix pods with source markup files in command line -          if @opt.act[:maintenance][:set] ==:on -            $VERBOSE=false                               #debug $VERBOSE=true -          end -        end -        re_p2=/(sisupod(?:\.zip)?|\S+?\.ss[mt]\.zip)$/ -        unless @opt.files.join(',') =~ re_p2 #do not mix pods with source markup files in command line -          if @opt.act[:maintenance][:set] ==:on -            $VERBOSE=false                               #debug $VERBOSE=true -          end -        end -      end -      if @opt.act[:site_init][:set]==:on               #% --init-site, -C initialize/configure -        require_relative 'conf'                        #% --init-site, -C initialize/configure -        SiSU_Initialize::Source.new(@opt).read -        if @opt.act[:rsync][:set]==:on -          if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ -          and @opt.cmd =~/RZ/ -            SiSU::Operations.new(@opt).remote_put_base_site_rsync_match -          else SiSU::Operations.new(@opt).remote_put_base_site_rsync -          end -        elsif @opt.act[:scp][:set]==:on -          if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ -          and @opt.cmd =~/CCr/ -            SiSU::Operations.new(@opt).remote_put_base_site_all -          else SiSU::Operations.new(@opt).remote_put_base_site -          end -        end -      end -      if @opt.act[:sample_search_form][:set]==:on      #% --sample-search-form, -F cgi sample search form -        SiSU::Operations.new(@opt).cgi -      end -      if @opt.act[:webrick][:set]==:on                 #% --webrick, -W webrick -        SiSU::Operations.new(@opt).webrick -      end -      if @opt.act[:ao][:set]==:on -        @retry_count= -1 -        begin -          @get_s,@get_p,@get_pl=[],[],[] -          re_s=/(\S+?\.-sst)$/ -          re_p3=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/ -          re_pl3=/^(\/\S+?\.ss[mt]\.txz)/ -          @opt.files.each do |fns| -            if fns =~re_s -              @get_s << @opt.f_pths[0][:url] -            end -            if fns =~re_p3 -              @get_p << re_p3.match(fns)[1] if re_p3 -            end -            if fns =~re_pl3 -              @get_pl << re_pl3.match(fns)[1] if re_p3 -            end -          end -          if @get_s.length > 0                         #% remote markup file .sst -            require_relative 'remote'                  # remote.rb -            SiSU_Remote::Get.new(@opt,@get_s).fns -            SiSU::Operations.new.counter -          end -          if @get_p.length > 0                         #% remote sisupod -            require_relative 'remote'                  # remote.rb -            SiSU_Remote::Get.new(@opt,@get_p).sisupod -          end -        rescue -          SiSU_Errors::Rescued.new($!,$@,@opt,@fns).location do -            __LINE__.to_s + ':' + __FILE__ -          end -          @retry_count +=1 -          retry unless @retry_count > 1 -        ensure -        end        end      end -    def actions +    def actions_without_files +      actions=SiSU_Hub_Actions::HubActions.new(@opt) +      actions.prepare.site? +      actions.prepare.remote_site? +      actions.prepare.sql? +    end +    def actions_on_files        if @opt.act[:profile][:set]==:on          begin            require 'profile' @@ -709,150 +313,71 @@ module SiSU              error('profile NOT FOUND (LoadError)')          end        end -      action_on_file_ =if @opt.act[:rsync][:set]==:on \ -      && @opt.act[:site_init][:set]==:on -        :false -      elsif @opt.act[:rsync][:set]==:on \ -      && @opt.act[:site_init][:set] !=:on -        :true -      elsif ((@opt.act[:psql][:set]==:on \ -      or @opt.act[:sqlite][:set]==:on) \ -      and @opt.mod.join(';') =~/--(?:createdb|init(?:ialize)?|create(?:all)?|createtables|recreate|drop(?:all))/) -        :false -      else -        (@opt.act[:ao][:set]==:on \ -        || @opt.act[:manpage][:set]==:on \ -        || @opt.act[:texinfo][:set]==:on \ -        || @opt.act[:txt][:set]==:on \ -        || @opt.act[:txt_textile][:set]==:on \ -        || @opt.act[:txt_asciidoc][:set]==:on \ -        || @opt.act[:txt_markdown][:set]==:on \ -        || @opt.act[:txt_rst][:set]==:on \ -        || @opt.act[:html][:set]==:on \ -        || @opt.act[:html_scroll][:set]==:on \ -        || @opt.act[:html_seg][:set]==:on \ -        || @opt.act[:concordance][:set]==:on \ -        || @opt.act[:xhtml][:set]==:on \ -        || @opt.act[:epub][:set]==:on \ -        || @opt.act[:odt][:set]==:on \ -        || @opt.act[:xml_sax][:set]==:on \ -        || @opt.act[:xml_dom][:set]==:on \ -        || @opt.act[:xml_scaffold_structure_sisu][:set]==:on \ -        || @opt.act[:xml_scaffold_structure_collapse][:set]==:on \ -        || @opt.act[:xml_docbook_book][:set]==:on \ -        || @opt.act[:xml_fictionbook][:set]==:on \ -        || @opt.act[:pdf][:set]==:on \ -        || @opt.act[:pdf_p][:set]==:on \ -        || @opt.act[:pdf_l][:set]==:on \ -        || @opt.act[:psql][:set]==:on \ -        || @opt.act[:sqlite][:set]==:on \ -        || @opt.act[:sqlite_discrete][:set]==:on \ -        || @opt.act[:share_source][:set]==:on \ -        || @opt.act[:sisupod][:set]==:on \ -        || @opt.act[:qrcode][:set]==:on \ -        || @opt.act[:hash_digests][:set]==:on \ -        || @opt.act[:manifest][:set]==:on \ -        || @opt.act[:scp][:set]==:on \ -        || @opt.act[:webrick][:set]==:on \ -        || @opt.act[:zap][:set]==:on) \ -        ? (:true) -        : (:false) -      end -      if @opt.act[:harvest][:set]==:on -        require_relative 'harvest'                     # harvest.rb -        SiSU_Harvest::Source.new(@opt).read            # -h -H  html.rb -      elsif @opt.mod.inspect =~/--convert|--to|--from/ -        require_relative 'sst_convert_markup'          # sst_convert_markup.rb -      elsif action_on_file_ == :false \ -      and (@opt.act[:psql][:set]==:on \ -      or @opt.act[:sqlite][:set]==:on) -        if @opt.act[:psql][:set]==:on -          require_relative 'dbi' -          SiSU_DBI::SQL.new(@opt).connect -        end -        if @opt.act[:sqlite][:set]==:on -          require_relative 'dbi' -          SiSU_DBI::SQL.new(@opt).connect +      actions=SiSU_Hub_Actions::HubActions.new(@opt) +      actions.outputs.each_file.harvest? #check +      actions.outputs.init? +      do_loop_files_on_given_option_pre +      do_each_file_loop_options +      #remove_skipped_files_if_any_from_processing_files_array # NEEDS WORK +      do_loop_files_on_given_option_post +      print_error_message_if_files_skipped +      actions.outputs.sql? #check location +      if @opt.f_pths.length > 0 +        if (@opt.act[:verbose][:set]==:on \ +        || @opt.act[:verbose_plus][:set]==:on \ +        || @opt.act[:maintenance][:set]==:on) +          @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil          end -      elsif action_on_file_ == :true \ -      or (                                            #% ---> -        @opt.cmd =~/^-/ \ -        and @opt.cmd =~/([abCcDdeFGgHhIjikLMmNnoPpQqRrSsTtUuVvWwXxYyZ_0-9])/ \ -        and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ -        or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ -      ) -        do_initialization -        if action_on_file_ == :true \ -        and @opt.files.length > 0 -          do_loops -          if (@opt.act[:verbose][:set]==:on \ -          || @opt.act[:verbose_plus][:set]==:on \ -          || @opt.act[:maintenance][:set]==:on) -            @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil -          end -          if (@opt.act[:verbose][:set]==:on \ -          || @opt.act[:verbose_plus][:set]==:on \ -          || @opt.act[:maintenance][:set]==:on \ -          || @opt.act[:urls_selected][:set]==:on \ -          || @opt.act[:urls_all][:set]==:on) -            @tell.call.print_brown unless @opt.files.join.empty? -          end -          if defined? @@env.processing_path.processing \ -          and @@env.user \ -          and FileTest.directory?(@@env.processing_path.processing) \ -          and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area -            if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ -              FileUtils::cd(@@env.processing_path.processing_base_tmp) do -                FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on -              end +        if (@opt.act[:verbose][:set]==:on \ +        || @opt.act[:verbose_plus][:set]==:on \ +        || @opt.act[:maintenance][:set]==:on \ +        || @opt.act[:urls_selected][:set]==:on \ +        || @opt.act[:urls_all][:set]==:on) +          @tell.call.print_brown unless @opt.files.join.empty? +        end +        if defined? @@env.processing_path.processing \ +        and @@env.user \ +        and FileTest.directory?(@@env.processing_path.processing) \ +        and @@env.processing_path.processing =~/#{@@env.user}$/ #clean temporary processing directory of content as is located in public area +          if @@env.processing_path.processing_base_tmp =~/^\/tmp\/\S+/ +            FileUtils::cd(@@env.processing_path.processing_base_tmp) do +              FileUtils::rm_rf('.') unless @opt.act[:maintenance][:set] ==:on              end            end -        elsif action_on_file_ == :true \ -        and @opt.files.length == 0 -          STDERR.puts %{requested action requires valid sisu markup file [filename (.sst .ssm)] or wildcard (that includes a valid filename)} -          if (@opt.act[:verbose_plus][:set]==:on \ -          || @opt.act[:maintenance][:set]==:on) -            SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).warn(:fuchsia) -          end          end -      elsif @opt.mod.inspect =~/--query/ -        require_relative 'sst_identify_markup'          # sst_identify_markup.rb -        puts SiSU_Markup::MarkupHistory.new(@opt).query -      elsif @opt.mod.inspect =~/--identify/ -        require_relative 'sst_identify_markup'          # sst_identify_markup.rb -        SiSU_Markup::MarkupIdentify.new(@opt).markup_version? -      elsif  @opt.mod.inspect =~/--sitemaps/           #% sitemaps -        require_relative 'sitemaps'                    # sitemaps.rb -        SiSU_Sitemaps::Source.new(@opt).read -        if @opt.act[:rsync][:set]==:on -          require_relative 'remote'                    # remote.rb -          SiSU_Remote::Put.new(@opt).rsync_sitemaps +      elsif @opt.f_pths.length == 0 +        STDERR.puts %{requested action requires valid sisu markup file [filename (.sst .ssm)] or wildcard (that includes a valid filename)} +        if (@opt.act[:verbose_plus][:set]==:on \ +        || @opt.act[:maintenance][:set]==:on) +          SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).warn(:fuchsia)          end        else                                             #% sisu help refer to man pages -        SiSU_Env::InfoAbout.new(@opt).sisu_version -        SiSU_Env::InfoAbout.new(@opt).sisu_about +        actions.prepare(@opt).site? +        unless done==:ok +          #SiSU_Env::InfoAbout.new(@opt).sisu_about +        end        end        @opt.files.each do |fns|          if FileTest.file?(fns)            @opt.fns=fns            unless @opt.fns =~ /(?:\.(?:(?:-|ssm\.)?sst|ssm|ssp|sx[sdn]\.xml|termsheet.rb)|\S+?\.ss[mt]\.(?:txz|zip)|sisupod\.(?:txz|zip)?|\S+?\.ssp)$/ -            if @opt.cmd.inspect=~/-P/ +            if @opt.selections.str=~/--pg/              elsif @opt.fns=~/\.kdi$/ \              and @opt.mod.inspect =~/--(?:convert(?:-from)?|from)[=-]kdi/              elsif @opt.fns=~/\.sx[sdn]\.xml$/ \              and @opt.mod.inspect =~/--(?:(?:convert(?:-from)?|from)[=-])?(?:xml2sst|sxml)/              elsif @opt.fns=~/\.ssi$/ \              and @opt.mod.inspect =~/--identify/ -            else SiSU::Operations.new(@opt).not_recognised +            else SiSU_Hub_Actions::Operations.new(@opt).not_recognised              end            end            if @opt.fns =~/\.ssm\.sst$/ \ -          and @opt.cmd !~/[S_M]/ # rework necessry, revist, the _ flag is a hack, to keep ._sst files +          and @opt.selections.str !~/[S_M]/ # rework necessary, revist, the _ flag is a hack, to keep ._sst files              @msg,@msgs='temporary file removed',nil              @tell.call.warn unless @opt.act[:quiet][:set]==:on              File.unlink(@opt.fns) if File.exist?(@opt.fns) #CONSIDER            end -        else                          #SiSU::Operations.new(fns,'html').not_found +        else #SiSU::Operations.new(fns,'html').not_found          end        end      end diff --git a/lib/sisu/v5/hub_actions.rb b/lib/sisu/v5/hub_actions.rb new file mode 100644 index 00000000..8717f815 --- /dev/null +++ b/lib/sisu/v5/hub_actions.rb @@ -0,0 +1,585 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, +   2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 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> + + * Download: +   <http://www.sisudoc.org/sisu/en/SiSU/download.html> + + * Git +   <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/hub_actions.rb;hb=HEAD> + + * Ralph Amissah +   <ralph@amissah.com> +   <ralph.amissah@gmail.com> + + ** Description: SiSU information Structuring Universe, text structuring, +    processing, publishing, search + +=end +module SiSU_Hub_Actions +  class HubActions +    def initialize(opt) +      @opt=opt +    end +    def prepare +      def site? +        if @opt.act[:site_init][:set]==:on               #% --init-site, -C initialize/configure +          require_relative 'conf'                        #% --init-site, -C initialize/configure +          SiSU_Initialize::Source.new(@opt).read +          if @opt.act[:rsync][:set]==:on +            if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ +            and @opt.selections.str =~/RZ/ +              SiSU::Operations.new(@opt).remote_put_base_site_rsync_match +            else SiSU::Operations.new(@opt).remote_put_base_site_rsync +            end +          elsif @opt.act[:scp][:set]==:on +            if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ +            and @opt.selections.str =~/CCr/ +              SiSU::Operations.new(@opt).remote_put_base_site_all +            else SiSU::Operations.new(@opt).remote_put_base_site +            end +          end +        end +      end +      def remote_site? +        if @opt.act[:site_init][:set]==:on +          if @opt.act[:site_init][:set]==:on               #% --init-site, -C initialize/configure +            #require_relative 'conf'                        #% --init-site, -C initialize/configure +            #SiSU_Initialize::Source.new(@opt).read +            #if @opt.act[:rsync][:set]==:on +            #  if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ +            #  and @opt.selection =~/RZ/ +            #    SiSU::Operations.new(@opt).remote_put_base_site_rsync_match +            #  else SiSU::Operations.new(@opt).remote_put_base_site_rsync +            #  end +            #elsif @opt.act[:scp][:set]==:on +            #  if @opt.mod.inspect =~/--init(?:ialize)?=site/ \ +            #  and @opt.selection =~/CCr/ +            #    SiSU::Operations.new(@opt).remote_put_base_site_all +            #  else SiSU::Operations.new(@opt).remote_put_base_site +            #  end +            #end +          end +        end +      end +      def sql? +        if @opt.act[:psql_createdb][:set]==:on \ +        or @opt.act[:psql_create][:set]==:on \ +        or @opt.act[:psql_drop][:set]==:on +          done=:ok +          if @opt.act[:psql][:set]==:on +            require_relative 'dbi' +            SiSU_DBI::SQL.new(@opt).connect +          end +        end +        if @opt.act[:sqlite_createdb][:set]==:on \ +        or @opt.act[:sqlite_create][:set]==:on \ +        or @opt.act[:sqlite_drop][:set]==:on +          done=:ok +          if @opt.act[:sqlite][:set]==:on +            require_relative 'dbi' +            SiSU_DBI::SQL.new(@opt).connect +          end +        end +      end +      self +    end +    def outputs +      if @opt.f_pths.length > 0 +        def each_file +          def abstract_objects? +            if @opt.act[:ao][:set]==:on                   #% --ao --dal, -m +              unless @opt.act[:po4a][:set]==:on            # --po4a, -P +                if @opt.fno =~ /\.ssm$/ +                  require_relative 'ao_composite'          # ao_composite.rb #pre-processing +                  SiSU_Assemble::Composite.new(@opt).read +                end +                require_relative 'ao'                      # -m     ao.rb +                SiSU_AO::Source.new(@opt).read +              end +            end +          end +          def qrcode? +            if @opt.act[:qrcode][:set]==:on                #% --qrcode, -Q +              require_relative 'qrcode'                    #  qrcode.rb +              SiSU_QRcode::Source.new(@opt).read +            end +          end +          def hash_digests? +            if @opt.act[:hash_digests][:set]==:on          #% --hash-digests, -N digest tree +              require_relative 'digests'                   #  digests.rb +              SiSU_DigestView::Source.new(@opt).read +            end +          end +          def text? +            if @opt.act[:txt][:set]==:on                   #% --txt, -t -a +              require_relative 'txt_plain'                 #  txt_plain.rb +              SiSU_Txt_Plain::Source.new(@opt).read +            end +            if @opt.act[:txt_textile][:set]==:on           #% --textile +              require_relative 'txt_textile'               #  txt_textile.rb +              SiSU_Txt_Textile::Source.new(@opt).read +            end +            if @opt.act[:txt_asciidoc][:set]==:on          #% --asciidoc +              require_relative 'txt_asciidoc'              #  txt_asciidoc.rb +              SiSU_Txt_AsciiDoc::Source.new(@opt).read +            end +            if @opt.act[:txt_markdown][:set]==:on          #% --markdown +              require_relative 'txt_markdown'              #  txt_markdown.rb +              SiSU_Txt_Markdown::Source.new(@opt).read +            end +            if @opt.act[:txt_rst][:set]==:on               #% --rst, --rest +              require_relative 'txt_rst'                   #  txt_rst.rb +              SiSU_Txt_rST::Source.new(@opt).read +            end +          end +          def html? +            if @opt.act[:html][:set]==:on                  #% --html, -h -H +              require_relative 'html'                      #  html.rb +              SiSU_HTML::Source.new(@opt).read +            else +              if @opt.act[:html_seg][:set]==:on            #% --html-seg (-h -H) +                require_relative 'html'                    #  html.rb +                SiSU_HTML::Source.new(@opt).read +              end +              if @opt.act[:html_scroll][:set]==:on         #% --html-scroll (-h -H) +                require_relative 'html'                    #  html.rb +                SiSU_HTML::Source.new(@opt).read +              end +            end +            if @opt.act[:concordance][:set]==:on           #% --concordance, -w +              require_relative 'html_concordance'          #  html_concordance.rb +              SiSU_Concordance::Source.new(@opt).read +            end +          end +          def xhtml? +            if @opt.act[:xhtml][:set]==:on                 #% --xhtml, -b xhtml +              require_relative 'xhtml'                     #  xhtml.rb +              SiSU_XHTML::Source.new(@opt).read +            end +            if @opt.act[:epub][:set]==:on                  #% --epub, -e +              require_relative 'xhtml_epub2'               # xhtml_epub2.rb +              SiSU_XHTML_EPUB2::Source.new(@opt).read +            end +          end +          def xml? +            if @opt.act[:odt][:set]==:on                   #% --odt, -o opendocument +              require_relative 'xml_odf_odt'               #  xml_odf_odt.rb +              SiSU_XML_ODF_ODT::Source.new(@opt).read +            end +            if @opt.act[:xml_scaffold_structure_sisu][:set]==:on #% --xml-scaffold --xml-scaffold-sisu +              require_relative 'xml_scaffold_structure_sisu' #  xml_scaffold_structure_sisu.rb +              SiSU_XML_Scaffold_Structure_Sisu::Source.new(@opt).read +            end +            if @opt.act[:xml_scaffold_structure_collapse][:set]==:on #% --xml-scaffold-collapse +              require_relative 'xml_scaffold_structure_collapsed' # xml_scaffold_structure_collapsed.rb +              SiSU_XML_Scaffold_Structure_Collapse::Source.new(@opt).read +            end +            if @opt.act[:xml_docbook_book][:set]==:on      #% --xml-docbook +              require_relative 'xml_docbook5'              # xml_docbook5.rb +              SiSU_XML_Docbook_Book::Source.new(@opt).read +            end +            if @opt.act[:xml_fictionbook][:set]==:on       #% --xml-fictionbook +              require_relative 'xml_fictionbook2'          # xml_fictionbook2.rb +              SiSU_XML_Fictionbook::Source.new(@opt).read +            end +            if @opt.act[:xml_sax][:set]==:on               #% --xml-sax, -x xml sax type +              require_relative 'xml_sax'                   #  xml_sax.rb +              SiSU_XML_SAX::Source.new(@opt).read +            end +            if @opt.act[:xml_dom][:set]==:on               #% --xml-dom, -X xml dom type +              require_relative 'xml_dom'                   #  xml_dom.rb +              SiSU_XML_DOM::Source.new(@opt).read +            end +          end +          def pdf? +            if @opt.act[:pdf][:set]==:on \ +            or @opt.act[:pdf_p][:set]==:on \ +            or @opt.act[:pdf_l][:set]==:on                 #% --pdf-l --pdf, -p latex/ texpdf +              require_relative 'texpdf'                    #  texpdf.rb +              SiSU_TeX::Source.new(@opt).read +            end +          end +          def man_or_info? +            if @opt.act[:manpage][:set]==:on               #% --manpage, -i +              require_relative 'manpage'                   #  manpage.rb +              SiSU_Manpage::Source.new(@opt).read +            end +            if @opt.act[:texinfo][:set]==:on               #% --texinfo, -I +              require_relative 'texinfo'                   #  texinfo.rb +              SiSU_TexInfo::Source.new(@opt).read +            end +          end +          def sqlite_discrete? +            if @opt.act[:sqlite_discrete][:set]==:on       #% --sqlite, -d DB sqlite +              require_relative 'dbi_discrete'              #  dbi_discrete.rb +              SiSU_DBI_Discrete::SQL.new(@opt).build +            end +          end +          def manifest? +            if @opt.act[:manifest][:set]==:on              #% --manifest, -y +              require_relative 'manifest'                  #  manifest.rb +              ((@opt.act[:sisupod][:set]==:on \ +              || @opt.act[:share_source][:set]==:on) \ +              && @opt.f_pths.length < 2 ) \ +              ? nil +              : SiSU_Manifest::Source.new(@opt).read +            end +          end +          def harvest? +            if @opt.act[:harvest][:set]==:on +              require_relative 'harvest'                     # harvest.rb +              SiSU_Harvest::Source.new(@opt).read            # -h -H  html.rb +            end +          end +          self +        end +        def loop_files +          def share_source? +            if @opt.act[:share_source][:set]==:on \ +            or @opt.act[:sisupod][:set]==:on \ +            or @opt.act[:git][:set]==:on +              begin +                require_relative 'src_shared' +                SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                  SiSU_Source::SiSUpodSource.new(@opt).read +                end +                if @opt.act[:share_source][:set]==:on +                  require_relative 'src_share'               # -s     src_share.rb +                  begin +                  ensure +                    SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do +                      SiSU_Markup::Source.new(@opt).read +                    end +                  end +                end +                if @opt.act[:sisupod][:set]==:on             #% --sisupod, -S make sisupod +                  require_relative 'src_sisupod_make'        # -S     src_sisupod_make.rb +                  begin +                    SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do +                      SiSU_Doc::Source.new(@opt).sisupod_tar_xz +                    end +                  ensure +                  end +                end +                if @opt.act[:git][:set]==:on                 #% --git, -g sisu git +                  require_relative 'git'                     # -g     git.rb +                  begin +                    SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                      SiSU_Git::Source.new(@opt).read +                    end +                  ensure +                    SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do +                      SiSU_Git::Source.new(@opt).git_commit +                    end +                  end +                end +                if (@opt.act[:sisupod][:set]==:on \ +                || @opt.act[:share_source][:set]==:on) \ +                and @opt.act[:manifest][:set]==:on           #% --manifest, -y +                  require_relative 'manifest'                # -y     manifest.rb +                  begin +                  ensure +                    SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option_bundle do +                      SiSU_Manifest::Source.new(@opt).read +                    end +                  end +                end +              ensure +                env=SiSU_Env::InfoEnv.new(@opt.fns) +                path_pod=env.processing_path.processing_sisupod(@opt).paths +                unless @opt.act[:maintenance][:set]==:on +                  FileUtils::rm_rf("#{path_pod[:sisupod]}/*") \ +                    if FileTest.directory?(path_pod[:sisupod]) +                end +              end +            end +            if @opt.act[:po4a][:set]==:on                    #% --po4a, -P +              require_relative 'po4a' +              begin +                SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                  SiSU_Po4a::Source.new(@opt).read             # -P     po4a.rb +                end +              ensure +              end +            end +            if @opt.act[:images][:set]==:on                  #% --images, -j +              require_relative 'shared_images' +              SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                SiSU_Images::Source.new(@opt).read           # -j     shared_images.rb +              end +            end +          end +          def run_termsheet? #broken, revisit later +            if @opt.selections.str =~/--termsheet/             #% -T termsheet/standard form #fix later +              @opt.files.each do |fns| +                if FileTest.file?(fns) +                  @opt.fns=fns +                  case @opt.fns +                  when /\.(termsheet.rb)$/ +                    SiSU::Operations.new(@opt).termsheet +                  else                                       #print "not processed --> ", fns, "\n" +                  end +                else SiSU::Operations.new(@opt).not_found +                end +              end +            end +          end +          def sql? +            if @opt.act[:psql][:set]==:on                    #% --pg, -D DB postgresql +              require_relative 'dbi' +              SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb +              end +            end +            if @opt.act[:sqlite][:set]==:on                  #% --sqlite, -d DB sqlite +              require_relative 'dbi' +              SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb +              end +            end +          end +          def manifest? +            if @opt.act[:manifest][:set]==:on                #% --manifest, -y +              require_relative 'manifest' +              SiSU::OptionLoopFiles.new(@opt).manifest_on_files_translated do +                SiSU_Manifest::Source.new(@opt).read         # -y     manifest.rb +              end +            end +          end +          def sitemaps? +            if @opt.act[:sitemap][:set]==:on                 #% --sitemap, -Y +              require_relative 'sitemaps' +              SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                SiSU_Sitemaps::Source.new(@opt).read         # -Y     sitemaps.rb +              end +            end +          end +          def remote_placement? +            if @opt.act[:harvest][:set] !=:on +              if @opt.act[:scp][:set]==:on                   #% -r copy to remote server +                require_relative 'remote'                    # -r     remote.rb +                SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                  SiSU_Remote::Put.new(@opt).scp +                end +              end +              if @opt.act[:rsync][:set]==:on                 #% -R copy to remote server +                require_relative 'remote'                    # -R     remote.rb +                SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                  SiSU_Remote::Put.new(@opt).rsync +                end +              end +            else +            end +          end +          def urls? +            if @opt.act[:urls_selected][:set]==:on           #% --sitemap, -Y +              require_relative 'urls' +              SiSU::OptionLoopFiles.new(@opt).loop_files_on_given_option do +                SiSU_Urls::Source.new(@opt).read              #% urls.rb +              end +            end +          end +          self +        end +      end +      def init? +        SiSU_Env::InfoProcessingFlag.new +        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], +            ' ' + File.dirname(__FILE__) +          ).grey +        end +        if @opt.act[:ao][:set]==:on \ +        or @opt.act[:maintenance][:set]==:on             #% --maintenance, -m for -C +          env=SiSU_Env::InfoEnv.new(@opt.fns) +          path={} +          path[:css]=env.path.output + '/_sisu/css' +          path[:xml]=env.path.output + '/_sisu/xml' +          path[:xsd]=path[:xml] + '/xsd' +          path[:xsd]=path[:xml] + '/rnc' +          path[:xsd]=path[:xml] + '/rng' +          re_p3=/(sisupod(?:\.txz)?|\S+?\.ss[mt]\.txz|[^\/]+?\.ssp)$/ +          unless @opt.files.join(',') =~ re_p3 #do not mix pods with source markup files in command line +            if @opt.act[:maintenance][:set] ==:on +              $VERBOSE=false                               #debug $VERBOSE=true +            end +          end +          re_p2=/(sisupod(?:\.zip)?|\S+?\.ss[mt]\.zip)$/ +          unless @opt.files.join(',') =~ re_p2 #do not mix pods with source markup files in command line +            if @opt.act[:maintenance][:set] ==:on +              $VERBOSE=false                               #debug $VERBOSE=true +            end +          end +        end +        if @opt.act[:sample_search_form][:set]==:on      #% --sample-search-form, -F cgi sample search form +          SiSU::Operations.new(@opt).cgi +        end +        if @opt.act[:webrick][:set]==:on                 #% --webrick, -W webrick +          SiSU::Operations.new(@opt).webrick +        end +        if @opt.act[:ao][:set]==:on +          @retry_count= -1 +          begin +            @get_s,@get_p,@get_pl=[],[],[] +            re_s=/(\S+?\.-sst)$/ +            re_p3=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/ +            re_pl3=/^(\/\S+?\.ss[mt]\.txz)/ +            @opt.files.each do |fns| +              if fns =~re_s +                @get_s << @opt.f_pths[0][:url] +              end +              if fns =~re_p3 +                @get_p << re_p3.match(fns)[1] if re_p3 +              end +              if fns =~re_pl3 +                @get_pl << re_pl3.match(fns)[1] if re_p3 +              end +            end +            if @get_s.length > 0                         #% remote markup file .sst +              require_relative 'remote'                  # remote.rb +              SiSU_Remote::Get.new(@opt,@get_s).fns +              SiSU::Operations.new.counter +            end +            if @get_p.length > 0                         #% remote sisupod +              require_relative 'remote'                  # remote.rb +              SiSU_Remote::Get.new(@opt,@get_p).sisupod +            end +          rescue +            SiSU_Errors::Rescued.new($!,$@,@opt,@fns).location do +              __LINE__.to_s + ':' + __FILE__ +            end +            @retry_count +=1 +            retry unless @retry_count > 1 +          ensure +          end +        end +      end +      self +    end +  end +  class Operations +    @@n_do=0 +    def initialize(opt='') +      @opt=opt +      @cX=SiSU_Screen::Ansi.new(@opt).cX +    end +    def counter +      @@n_do=0 +    end +    def remote_put_base_site_rsync                         # -CR +      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ +        if @opt.act[:maintenance][:set] ==:on +      require_relative 'remote'                        # remote.rb +      SiSU_Remote::Put.new(@opt).rsync_base +    end +    def remote_put_base_site_rsync_match                   # -CCRZ +      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ +        if @opt.act[:maintenance][:set] ==:on +      require_relative 'remote'                        # remote.rb +      SiSU_Remote::Put.new(@opt).rsync_base_sync +    end +    def remote_put_base_site                               # -Cr +      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ +        if @opt.act[:maintenance][:set] ==:on +      require_relative 'remote'                        # remote.rb +      SiSU_Remote::Put.new(@opt).scp_base +    end +    def remote_put_base_site_all                           # -CCr +      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:cyan) \ +        if @opt.act[:maintenance][:set] ==:on +      require_relative 'remote'                        # remote.rb +      SiSU_Remote::Put.new(@opt).scp_base_all +    end +    def cgi                                                # -F +      require_relative 'cgi'                               # cgi.rb +      SiSU_CGI::SearchSQL.new(@opt).read +    end +    def termsheet                                          # -t +      system("sisu_termsheet #{@opt.selections.str} #{@opt.fns}\n") +      @@n_do=@@n_do+1 +      SiSU_Screen::Ansi.new( +        @opt.selections.str,@@n_do, +        'Termsheet(s) processed' +      ).term_sheet_title unless @opt.act[:quiet][:set] ==:on +    end +    def webrick                                            # -W +      prt=SiSU_Env::InfoEnv.new(@fns).port.webrick_port +      puts %{#{@cX.blue}<<#{@cX.off}#{@cX.green}Start Webrick web server on port: #{prt}#{@cX.off}#{@cX.blue}>> #{@cX.off*2} } +      require_relative 'webrick' +      SiSU_Webserv::WebrickStart.new +    end +    def not_found +      puts "\n#{@cX.fuchsia}FILE NOT FOUND:#{@cX.off} << #{@opt.fns} >> - requested #{@opt.selections.str} processing skipped\n" +    end +    def convert_name_message(fns,type,i,o,rune) +      %{\nIn filename: "#{@cX.fuchsia}#{fns}#{@cX.off}" << #{type} >> #{@cX.fuchsia}is apre 0.36 markup filename.#{@cX.off} #{@cX.brown}Please rename your file.#{@cX.off}\n\tAs of sisu-0.37, SiSU markup files with #{@cX.brown}the extensions #{i} should be re-named #{o}#{@cX.off}\n\tif you have the program called 'rename' installed, the following rune should do the trick:\n\t\t#{rune}\n\talternatively try:\n\t\tsisu --convert --36to37 #{fns}\n\trequested #{@opt.selections.str} processing skipped\n} +    end +    def not_recognised +      case @opt.fns +      when /(\.s[123])$/ +        type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') +        rune=%q{rename 's/\.s[123]$/\.sst/' *.s{1,2,3}} +        puts convert_name_message(@opt.fns,type,'.s1 .s2 and .s3','.sst',rune) +      when /(\.r[123])$/ +        type=@opt.fns.gsub(/\S+?(#{$1})/,'\1') +        rune=%q{rename 's/\.r[123]$/\.ssm/' *.r{1,2,3}} +        puts convert_name_message(@opt.fns,type,'.r1 .r2 and .r3','.sst',rune) +        puts %{\n\tNote also that you will need to change the names of the files called/required\n\twithin the document text to build the composite document\n\t\t.s1 .s2 .s3 should be .sst \n\t\t.si should be .ssi\n\trequested #{@opt.selections.str} processing skipped\n} +      when /(\.ssi)$/ +        puts "\n#{@cX.fuchsia}component filetype:#{@cX.off} << #{@opt.fns} >> - is not a processed filetype, (it may be used as a component of a .ssm markup file)\n\trequested #{@opt.selections.str} processing skipped\n" +      else +        puts "\n#{@cX.fuchsia}FILETYPE NOT RECOGNISED:#{@cX.off} << #{@opt.fns} >> - is not a recognized filetype,\n\trequested #{@opt.selections.str} processing skipped\n" +      end +    end +  end +end +__END__ diff --git a/lib/sisu/v5/hub_options.rb b/lib/sisu/v5/hub_options.rb index f851b985..d822ebd5 100644 --- a/lib/sisu/v5/hub_options.rb +++ b/lib/sisu/v5/hub_options.rb @@ -51,7 +51,7 @@   * Git     <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> -   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v6/hub_options.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/hub_options.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -156,11 +156,12 @@ module SiSU_Commandline      end    end    class Options -    attr_accessor :cmd,:mod,:act,:dir_structure_by,:lingual,:f_pths,:files,:files_mod,:call_path,:base_path,:base_stub,:sub_location,:image_src_path,:paths,:lngs,:f_pth,:pth,:fno,:fns,:fnb,:fnc,:fng,:fncb,:lng,:lng_base,:what,:make_instructions,:make_instructions_pod +    attr_accessor :selections,:opt_ch,:act,:dir_structure_by,:lingual,:f_pths,:files,:files_mod,:call_path,:base_path,:base_stub,:sub_location,:image_src_path,:paths,:lngs,:f_pth,:pth,:fno,:fns,:fnb,:fnc,:fng,:fncb,:lng,:lng_base,:what,:make_instructions,:make_instructions_pod      @@act=nil      def initialize(a,call_path) -      @cmd=@f_pth=@pth=@fno=@fns=@fnb=@fnc=@fng=@fncb=@what=@lng=@lng_base=@call_path=@base_path=@base_stub=@image_src_path=@sub_location='' -      @f_pths,@files,@files_mod,@paths,@mod,@act=Array.new(5){[]} +      @opt_ch=@f_pth=@pth=@fno=@fns=@fnb=@fnc=@fng=@fncb=@what=@lng=@lng_base=@call_path=@base_path=@base_stub=@image_src_path=@sub_location='' +      @f_pths,@files,@files_mod,@paths,@select_arr,@act=Array.new(5){[]} +      @select_str=nil        @env=SiSU_Env::InfoEnv.new        @lng_base=@env.language_default_set        @dir_structure_by=SiSU_Env::EnvCall.new.output_dir_structure.by? @@ -269,24 +270,25 @@ module SiSU_Commandline        if a.length > 0          s=expand_numeric_shortcuts(a)          q=set_files_and_paths_and_general_extract(s) -        @cmd,@mod=opt_cmd_and_mod_adjust(q[:cmd],q[:mod]) +        files=(q[:files].length > 0) ? :true : :false +        @select_arr=opt_cmd_and_mod_adjust(q[:opt_ch],q[:selections],files)          @what=q[:what] unless q[:what].empty?          @paths = q[:paths]          @files = q[:files]          @f_pths = q[:f_pths]          @lngs = q[:lngs]          if @files.length > 0 \ -        and @cmd.empty? \ -        and @mod.length==0 #% if no other action called on filename given, default is sisu --v5 -0 [filename(s)] configured as flag default +        and @opt_ch.empty? \ +        and @select_arr.length==0 #% if no other action called on filename given, default is sisu --v5 -0 [filename(s)] configured as flag default            shortcut=SiSU_Env::InfoProcessingFlag.new -          @mod=['--v5'] -          @cmd=shortcut.cf_0 + ' --dal' +          @select_arr=['--v5'] +          @select_arr << shortcut.act_0.arr #+ ' --dal'          end -        if @cmd =~/[vVM]/ \ -        && @cmd !~/-[ku]*v[ku]*$/ +        if @select_arr.inspect =~/--verbose/ \ +        && @opt_ch !~/-[ku]*v[ku]*$/            SiSU_Screen::Ansi.new( -            @cmd, -            "\tsisu " + @cmd +  ' ' + @mod.join(' ') + ' ' + @files.join(' ') + "\n" +            @opt_ch, +            "\tsisu " + @opt_ch +  ' ' + @select_arr.join(' ') + ' ' + @files.join(' ') + "\n"            ).print_brown          end        end @@ -443,8 +445,8 @@ module SiSU_Commandline          end        end        { -        cmd: c, -        mod: m, +        opt_ch: c, +        selections: m,          what: w,          paths: pth,          files: f, @@ -454,387 +456,583 @@ module SiSU_Commandline        }      end      def expand_numeric_shortcuts(a) +      s='' +      a.each do |x| +        y=case x +        when /0/ +          (x=~/^-0\S+/) \ +          ? x.gsub(/^-0(\S+)/,'--act0' + ' -\1') +          : x.gsub(/^-0/,'--act0' + ' ') +        when /1/ +          (x=~/^-1\S+/) \ +          ? x.gsub(/^-1(\S+)/,'--act1' + ' -\1') +          : x.gsub(/^-1/,'--act1' + ' ') +        when /2/ +          (x=~/^-2\S+/) \ +          ? x.gsub(/^-2(\S+)/,'--act2' + ' -\1') +          : x.gsub(/^-2/,'--act2' + ' ') +        when /3/ +          (x=~/^-3\S+/) \ +          ? x.gsub(/^-3(\S+)/,'--act3' + ' -\1') +          : x.gsub(/^-3/,'--act3' + ' ') +        when /4/ +          (x=~/^-4\S+/) \ +          ? x.gsub(/^-4(\S+)/,'--act4' + ' -\1') +          : x.gsub(/^-4/,'--act4' + ' ') +        when /5/ +          (x=~/^-5\S+/) \ +          ? x.gsub(/^-5(\S+)/,'--act5' + ' -\1') +          : x.gsub(/^-5/,'--act5' + ' ') +        when /6/ +          (x=~/^-6\S+/) \ +          ? x.gsub(/^-6(\S+)/,'--act6' + ' -\1') +          : x.gsub(/^-6/,'--act6' + ' ') +        when /7/ +          (x=~/^-7\S+/) \ +          ? x.gsub(/^-7(\S+)/,'--act7' + ' -\1') +          : x.gsub(/^-7/,'--act7' + ' ') +        when /8/ +          (x=~/^-8\S+/) \ +          ? x.gsub(/^-8(\S+)/,'--act8' + ' -\1') +          : x.gsub(/^-8/,'--act8' + ' ') +        when /9/ +          (x=~/^-9\S+/) \ +          ? x.gsub(/^-9(\S+)/,'--act9' + ' -\1') +          : x.gsub(/^-9/,'--act9' + ' ') +        else x +        end +        s << " #{y}" unless y.empty? +      end +      s.strip! +    end +    def expand_numeric_shortcuts_(a)        shortcut=SiSU_Env::InfoProcessingFlag.new        s=''        a.each do |x|          y=case x          when /0/            (x=~/^-0\S+/) \ -          ? x.gsub(/^-0(\S+)/,shortcut.cf_0 + ' -\1') -          : x.gsub(/^-0/,shortcut.cf_0 + ' ') +          ? x.gsub(/^-0(\S+)/,shortcut.act_0.str + ' -\1') +          : x.gsub(/^-0/,shortcut.act_0.str + ' ')          when /1/            (x=~/^-1\S+/) \ -          ? x.gsub(/^-1(\S+)/,shortcut.cf_1 + ' -\1') -          : x.gsub(/^-1/,shortcut.cf_1 + ' ') +          ? x.gsub(/^-1(\S+)/,shortcut.act_1.str + ' -\1') +          : x.gsub(/^-1/,shortcut.act_1.str + ' ')          when /2/            (x=~/^-2\S+/) \ -          ? x.gsub(/^-2(\S+)/,shortcut.cf_2 + ' -\1') -          : x.gsub(/^-2/,shortcut.cf_2 + ' ') +          ? x.gsub(/^-2(\S+)/,shortcut.act_2.str + ' -\1') +          : x.gsub(/^-2/,shortcut.act_2.str + ' ')          when /3/            (x=~/^-3\S+/) \ -          ? x.gsub(/^-3(\S+)/,shortcut.cf_3 + ' -\1') -          : x.gsub(/^-3/,shortcut.cf_3 + ' ') +          ? x.gsub(/^-3(\S+)/,shortcut.act_3.str + ' -\1') +          : x.gsub(/^-3/,shortcut.act_3.str + ' ')          when /4/            (x=~/^-4\S+/) \ -          ? x.gsub(/^-4(\S+)/,shortcut.cf_4 + ' -\1') -          : x.gsub(/^-4/,shortcut.cf_4 + ' ') +          ? x.gsub(/^-4(\S+)/,shortcut.act_4.str + ' -\1') +          : x.gsub(/^-4/,shortcut.act_4.str + ' ')          when /5/            (x=~/^-5\S+/) \ -          ? x.gsub(/^-5(\S+)/,shortcut.cf_5 + ' -\1') -          : x.gsub(/^-5/,shortcut.cf_5 + ' ') +          ? x.gsub(/^-5(\S+)/,shortcut.act_5.str + ' -\1') +          : x.gsub(/^-5/,shortcut.act_5.str + ' ')          when /6/            (x=~/^-6\S+/) \ -          ? x.gsub(/^-6(\S+)/,shortcut.cf_5 + ' -\1') -          : x.gsub(/^-6/,shortcut.cf_5 + ' ') +          ? x.gsub(/^-6(\S+)/,shortcut.act_6.str + ' -\1') +          : x.gsub(/^-6/,shortcut.act_6.str + ' ') +        when /7/ +          (x=~/^-7\S+/) \ +          ? x.gsub(/^-7(\S+)/,shortcut.act_7.str + ' -\1') +          : x.gsub(/^-7/,shortcut.act_7.str + ' ') +        when /8/ +          (x=~/^-8\S+/) \ +          ? x.gsub(/^-8(\S+)/,shortcut.act_8.str + ' -\1') +          : x.gsub(/^-8/,shortcut.act_8.str + ' ') +        when /9/ +          (x=~/^-9\S+/) \ +          ? x.gsub(/^-9(\S+)/,shortcut.act_9.str + ' -\1') +          : x.gsub(/^-9/,shortcut.act_9.str + ' ')          else x          end          s << " #{y}" unless y.empty?        end        s.strip!      end -    def opt_cmd_and_mod_adjust(c,m) -      cmd,mod,files=@cmd,@mod,@files -      if not m.empty? \ -      and m.inspect =~/"--pdf-/ -        mod << '--pdf' -        m.each do |s| -          if s =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/ -            mod << '--landscape' -          end -          if s =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/ -            mod << '--portrait' -          end -          if s =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/ -            if s =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/ -              mod << '--papersize-a4' -            end -            if s =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/ -              mod << '--papersize-a5' +    def opt_cmd_and_mod_adjust(ch,select_arr,files) +if @select_arr.length > 0 +  p __LINE__ +  p @selection +end +      select_arr=select_arr.flatten +      sel_init=select_arr.flatten +      shortcut=SiSU_Env::InfoProcessingFlag.new +      if files ==:true +        if not sel_init.empty? \ +        and sel_init.inspect =~/"--act[0-9]/ +          sel_init.each do |s| +            select_arr <<=case s +            when /--act0/ then shortcut.act_0.arr +            when /--act1/ then shortcut.act_1.arr +            when /--act2/ then shortcut.act_2.arr +            when /--act3/ then shortcut.act_3.arr +            when /--act4/ then shortcut.act_4.arr +            when /--act5/ then shortcut.act_5.arr +            when /--act6/ then shortcut.act_6.arr +            when /--act7/ then shortcut.act_7.arr +            when /--act8/ then shortcut.act_8.arr +            when /--act9/ then shortcut.act_9.arr              end -            if s =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/ -              mod << '--papersize-b5' +          end +        end +        if not sel_init.empty? \ +        and sel_init.inspect =~/"--pdf-/ +          select_arr << '--pdf' +          sel_init.each do |s| +            if s =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/ +              select_arr << '--landscape'              end -            if s =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/ -              mod << '--papersize-letter' +            if s =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/ +              select_arr << '--portrait'              end -            if s =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/ -              mod << '--papersize-legal' +            if s =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/ +              if s =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/ +                select_arr << '--papersize-a4' +              end +              if s =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/ +                select_arr << '--papersize-a5' +              end +              if s =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/ +                select_arr << '--papersize-b5' +              end +              if s =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/ +                select_arr << '--papersize-letter' +              end +              if s =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/ +                select_arr << '--papersize-legal' +              end              end            end +          select_arr=select_arr.uniq          end -        mod=mod.uniq -      end -      unless m.empty? -        m.each do |s| -          case s -          when /^--(?:color-toggle)$/                                               then c=c+'c' -          when /^--(?:color-off)$/                                                  then c=c+'k' -          when /^--(?:conf|config|configure|init|initialize|init-site)$/            then c=c+'CC' -          when /^--(?:ao|dal?|machine|abstraction|abs)$/                            then c=c+'m' -          when /^--(?:txt|text|plaintext)$/                                         then c=c+'t' -          when /^--(?:html)$/                                                       then c=c+'h' -          when /^--(?:html-scroll|html-seg)$/                                       then c=c+'H' -            mod << s -          when /^--(?:epub)$/                                                       then c=c+'e' -          when /^--(?:od[ft])$/                                                     then c=c+'o' -          when /^--docbook$/                                                     then c=c+'d' -          when /^--(?:pdf)$/                                                        then c=c+'p' -          when /^--pdf-(?:a4|a5|b5|legal|letter)$/                                  then c=c+'p' -          when /^--pdf-(?:p|l|portrait|landscape)$/                                 then c=c+'L' -          when /^--pdf-(?:p(?:ortrait)?|l(?:andscape)?)-(?:a4|letter|a5|b5|legal)$/ then c=c+'L' -          when /^--pdf-(?:a4|letter|a5|b5|legal)-(?:p(?:ortrait)?|l(?:andscape)?)$/ then c=c+'L' -          when /^--(?:concordance|wordmap)$/                                        then c=c+'w' -          when /^--(?:manpage|man)$/                                                then c=c+'i' -          when /^--(?:texinfo)$/                                                    then c=c+'I' -          when /^--(?:xhtml)$/                                                      then c=c+'b' -          when /^--(?:xml-sax)$/                                                    then c=c+'x' -          when /^--(?:xml-dom)$/                                                    then c=c+'X' -          when /^--(?:images)$/                                                     then c=c+'j' -          when /^--(?:digests?|hash-digests)$/                                      then c=c+'N' -          when /^--(?:po4a|pot?)$/                                                  then c=c+'P' -          when /^--(?:termsheet)$/                                                  then c=c+'T' -          when /^--(?:manifest)$/                                                   then c=c+'y' -          when /^--(?:qrcode)$/                                                     then c=c+'Q' -          when /^--(?:remote|rsync)$/                                               then c=c+'R' -          when /^--(?:scp)$/                                                        then c=c+'r' -          when /^--(?:source)$/                                                     then c=c+'s' -          when /^--(?:sisupod|pod)$/                                                then c=c+'S' -          when /^--(?:git)$/                                                        then c=c+'g' -          when /^--(?:urls)$/                                                       then c=c+'U' -          when /^--(?:zap|delete)$/                                                 then c=c+'Z' -          when /^--(?:sample-search-form)$/                                         then c=c+'F' -          when /^--(?:webserv|webrick)$/                                            then c=c+'W' -          when /^--(?:profile)$/                                                    then c=c+'E' -          when /^--(?:maintenance|keep-processing-files)$/                          then c=c+'M' -          when /^--(?:verbose[=-]3)$/                                               then c=c+'VM' -          when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/                               then c=c+'V' -          when /^--(?:verbose(?:[=-]1)?)$/                                          then c=c+'v' -          when /^--(?:version)$/                                                    then c=c+'v' -          when /^--(?:verbose[=-]0|quiet|silent)$/                                  then c=c+'q' -          else mod << s                                     #mod only contains command modifiers; commands converted to character +        if ch.empty? \ +        and sel_init.length == 0 +          select_arr << shortcut.act_0.arr ################ & --flag empty +        elsif not ch.empty? +          if ch =~/c/ then select_arr << '--color-toggle' +            ch=ch.gsub(/[c]/,'') +          end +          if ch =~/k/ then select_arr << '--color-off' +            ch=ch.gsub(/[k]/,'') +          end +          if ch =~/C/ then select_arr << '--config' +            ch=ch.gsub(/[C]+/,'') +          end +          if ch =~/m/ then select_arr << '--dal' +            ch=ch.gsub(/[m]/,'') +          end +          if ch =~/t/ then select_arr << '--txt' +            ch=ch.gsub(/[t]/,'') +          end +          if ch =~/h/ then select_arr << '--html' +            ch=ch.gsub(/[h]/,'') +          end +          if ch =~/e/ then select_arr << '--epub' +            ch=ch.gsub(/[e]/,'') +          end +          if ch =~/o/ then select_arr << '--odt' +            ch=ch.gsub(/[o]/,'') +          end +          if ch =~/d/ then select_arr << '--docbook' +            ch=ch.gsub(/[d]/,'') +          end +          if ch =~/p/ then select_arr << '--pdf' +            ch=ch.gsub(/[p]/,'') +          end +          if ch =~/w/ then select_arr << '--concordance' +            ch=ch.gsub(/[w]/,'') +          end +          if ch =~/i/ then select_arr << '--manpage' +            ch=ch.gsub(/[i]/,'') +          end +          if ch =~/I/ then select_arr << '--texinfo' +            ch=ch.gsub(/[I]/,'') +          end +          if ch =~/b/ then select_arr << '--xhtml' +            ch=ch.gsub(/[b]/,'') +          end +          if ch =~/x/ then select_arr << '--xml-sax' +            ch=ch.gsub(/[x]/,'') +          end +          if ch =~/X/ then select_arr << '--xml-dom' +            ch=ch.gsub(/[X]/,'') +          end +          if ch =~/j/ then select_arr << '--images' +            ch=ch.gsub(/[j]/,'') +          end +          if ch =~/N/ then select_arr << '--digests' +            ch=ch.gsub(/[N]/,'') +          end +          if ch =~/P/ then select_arr << '--po4a' +            ch=ch.gsub(/[P]/,'') +          end +          if ch =~/d/ then select_arr << '--sqlite' +            ch=ch.gsub(/[d]/,'') +          end +          if ch =~/D/ then select_arr << '--pg' +            ch=ch.gsub(/[D]/,'') +          end +          if ch =~/Q/ then select_arr << '--qrcode' +            ch=ch.gsub(/[Q]/,'') +          end +          if ch =~/s/ then select_arr << '--source' +            ch=ch.gsub(/[s]/,'') +          end +          if ch =~/S/ then select_arr << '--sisupod' +            ch=ch.gsub(/[S]/,'') +          end +          if ch =~/m/ then select_arr << '--manifest' +            ch=ch.gsub(/[m]/,'') +          end +          if ch =~/R/ then select_arr << '--rsync' +            ch=ch.gsub(/[R]/,'') +          end +          if ch =~/r/ then select_arr << '--scp' +            ch=ch.gsub(/[r]/,'') +          end +          if ch =~/g/ then select_arr << '--git' +            ch=ch.gsub(/[g]/,'') +          end +          if ch =~/U/ then select_arr << '--urls' +            ch=ch.gsub(/[u]/,'') +          end +          if ch =~/Z/ then select_arr << '--zap' +            ch=ch.gsub(/[Z]/,'') +          end +          if ch =~/F/ then select_arr << '--sample-search-form' +            ch=ch.gsub(/[F]/,'') +          end +          if ch =~/w/ then select_arr << '--webrick' +            ch=ch.gsub(/[w]/,'') +          end +          if ch =~/M/ then select_arr << '--maintenance' +            ch=ch.gsub(/[M]/,'') +          end +          if ch =~/V/ then select_arr << '--very-verbose' +            ch=ch.gsub(/[V]/,'') +          end +          if ch =~/v/ then select_arr << '--verbose' +            ch=ch.gsub(/[v]/,'') +          end +          if ch =~/q/ then select_arr << '--quiet' +            ch=ch.gsub(/[q]/,'') +          end +          if select_arr.inspect !~/--urls/ \ +          and select_arr.inspect \ +          !~/"--harvest/ +            select_arr << '--urls' +          end +          if select_arr.inspect !~/--dal/ \ +          and select_arr.inspect =~/txt|text|html|odt|epub|docbook|xml|pdf|manpage|texinfo|concordance|qrcode|source|sisupod|pg|sqlite|zap/ +            select_arr << '--dal' +          end +          if select_arr.inspect !~/--manifest/ \ +          and select_arr.inspect =~/txt|text|html|odt|epub|docbook|xml|pdf|manpage|texinfo|concordance|qrcode|source|sisupod|pg|sqlite|zap/ +            select_arr << '--manifest' +          end +          if select_arr.inspect !~/--images/ \ +          and select_arr.inspect =~/html|odt|docbook|xml|qrcode/ +            select_arr << '--images'            end          end -      end -      ca=[] -      unless c.empty? -        c=c.gsub(/-/,'') -        c.scan(/CC|\S/) {|x| ca << x} -        cmd= '-' + ca.uniq.join -      end -      extra='' -      if cmd !~/[mn]/ -        extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \ -        and cmd !~/[mn]/ -          'm'                        #% add ao -        elsif ((mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ -        and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ -        and cmd !~/[mn]/ -          'm'                        #% add ao -        else '' +      else +        if ch =~/C/ then select_arr << '--config' +          ch=ch.gsub(/[C]+/,'')          end -      end -      if cmd !~/j/ -        extra+=if cmd =~/[bdHhwXxyz]/ \ -        and cmd !~/[j]/ -          'j'                        #% copy images -        else '' +        if sel_init.inspect =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"/ +          if ch =~/d/ then select_arr << '--sqlite' +            ch=ch.gsub(/[d]/,'') +          end +          if ch =~/D/ then select_arr << '--pg' +            ch=ch.gsub(/[D]/,'') +          end          end -      end -      if cmd !~/y/ -        extra+=if cmd =~/[abdeHhIiNopQSstwXxz]/ \ -        and cmd !~/y/ -          'ym'                       #% add manifest -        elsif mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ \ -        and files[0] !~/^remove$/ \ -        and cmd !~/y/ -          'ym'                       #% add manifest -        else '' +        if ch =~/v/ then select_arr << '--version' +          ch=ch.gsub(/[v]/,'')          end        end -      if cmd !~/u/                   #% add urls -        extra+='u' -      end -      cmd=cmd + extra -      cmds=cmd.scan(/CC|\S/) -      [cmds.uniq.join,mod] +      select_arr=select_arr.flatten.compact.uniq.sort      end -    def opt_act #note mod line commands have already been converted to command characters, cmd -      cmd,mod=@cmd,@mod +    def opt_act +      select_arr=@select_arr        @@act=if @@act          @act=@@act        else          act={} -        act[:license]=(mod.inspect =~/"--license/) \ +        act[:license]=(select_arr.inspect \ +        =~/"--license/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:site_init]=(cmd =~/C/ \ -        || mod.inspect =~/"--init"|"--initialize"|"--init-site"|"--conf"|"--config"|"--configure"/) \ +        act[:site_init]=(select_arr.inspect \ +        =~/"--init"|"--initialize"|"--init-site"|"--conf"|"--config"|"--configure"/) \          ? { bool: true, set: :on  }          : { bool: false, set: :na } -        act[:rc]=if mod.inspect =~/"--rc=/ -          x=Dir.pwd + '/' + mod.join.gsub(/--rc=/,'') +        act[:rc]=if select_arr.inspect \ +        =~/"--rc=/ +          x=Dir.pwd + '/' + select_arr.join.gsub(/--rc=/,'')            { bool: true, set: :on, inst: x }          else            { bool: false, set: :na, inst: '' }          end -        act[:processing_path]=if mod.inspect =~/"--processing-path=/ -          base_pth=mod.join(';').gsub(/^.*--processing-path=['"]?(.+?)(?:['"]?;.+)?$/,'\1') +        act[:processing_path]=if select_arr.inspect \ +        =~/"--processing-path=/ +          base_pth=select_arr.join(';').gsub(/^.*--processing-path=['"]?(.+?)(?:['"]?;.+)?$/,'\1')            { bool: true, set: :on, inst: base_pth } -        elsif mod.inspect =~/"--processing-path/ +        elsif select_arr.inspect \ +        =~/"--processing-path/            { bool: true, set: :on, inst: @base_path }          else            { bool: false, set: :na, inst: nil }          end -        act[:dump]=if mod.inspect =~/"--dump=/ -          base_pth=mod.join(';').gsub(/^.*--dump=['"]?(.+?)(?:['"]?;.+)?$/,'\1') +        act[:dump]=if select_arr.inspect \ +        =~/"--dump=/ +          base_pth=select_arr.join(';'). +            gsub(/^.*--dump=['"]?(.+?)(?:['"]?;.+)?$/,'\1')            { bool: true, set: :on, inst: base_pth } -        elsif mod.inspect =~/"--dump/ +        elsif select_arr.inspect =~/"--dump/            { bool: true, set: :on, inst: @base_path }          else            { bool: false, set: :na, inst: nil }          end -        act[:redirect]=if mod.inspect =~/"--redirect=/ -          base_pth=mod.join(';').gsub(/^.*--redirect=['"]?(.+?)(?:['"]?;.+)?$/,'\1') +        act[:redirect]=if select_arr.inspect \ +        =~/"--redirect=/ +          base_pth=select_arr.join(';'). +            gsub(/^.*--redirect=['"]?(.+?)(?:['"]?;.+)?$/,'\1')            { bool: true, set: :on, inst: base_pth } -        elsif mod.inspect =~/"--redirect/ +        elsif select_arr.inspect \ +        =~/"--redirect/            { bool: true, set: :on, inst: @base_path }          else            { bool: false, set: :na, inst: nil }          end -        act[:switch]=if mod.inspect =~/"--switch-off=/ -          off_list=mod.join(';').gsub(/^.*--switch-off=['"]?(.+?)(?:['"];.+)?$/,'\1') +        act[:switch]=if select_arr.inspect \ +        =~/"--switch-off=/ +          off_list=select_arr.join(';'). +            gsub(/^.*--switch-off=['"]?(.+?)(?:['"];.+)?$/,'\1')            off_list=off_list.scan(/[^,;\s]+/)            { bool: false, set: :off, off: off_list}          else { bool: true, set: :na, off: [] }          end -        act[:default_language]=if mod.inspect =~/"--(?:default-)?language[-=](\S{2})"/ +        act[:default_language]=if select_arr.inspect \ +        =~/"--(?:default-)?language[-=](\S{2})"/            { set: :on, code: $1 }          elsif lng_base            { set: :on, code: lng_base }          else { set: :na, code: 'en' }          end -        act[:i18n]=if mod.inspect =~/"(?:--monolingual|--i18n-mono(?:lingual)?)"/ #if monolingual possible outputs output_by :filename & :filetype only, without language code in default language name; give warning of conflict settings if monolingual & :language selected +        act[:i18n]=if select_arr.inspect \ +        =~/"(?:--monolingual|--i18n-mono(?:lingual)?)"/ #if monolingual possible outputs output_by :filename & :filetype only, without language code in default language name; give warning of conflict settings if monolingual & :language selected            @lingual=:mono            { set: :mono } -        elsif mod.inspect =~/"(?:--multilingual|--i18n-multi(?:lingual)?)"/ +        elsif select_arr.inspect \ +        =~/"(?:--multilingual|--i18n-multi(?:lingual)?)"/            @lingual=:multi            { set: :multi }          else { set: :na }          end -        act[:output_by]=if mod.inspect =~/"--(?:output-)?by-language"/ +        act[:output_by]=if select_arr.inspect \ +        =~/"--(?:output-)?by-language"/            @dir_structure_by=:language            { set: :language } -        elsif mod.inspect =~/"--(?:output-)?by-filename"/ +        elsif select_arr.inspect \ +        =~/"--(?:output-)?by-filename"/            @dir_structure_by=:filename            { set: :filename } -        elsif mod.inspect =~/"--(?:output-)?by-filetype"/ +        elsif select_arr.inspect \ +        =~/"--(?:output-)?by-filetype"/            @dir_structure_by=:filetype            { set: :filetype }          else { set: :na }          end -        act[:ocn]=if mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/ +        act[:ocn]=if select_arr.inspect \ +        =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ \ +        elsif select_arr.inspect \ +        =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ \          || act[:switch][:off].inspect =~/"ocn"|"--numbering"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:toc]=if mod.inspect =~/"--inc-toc"/ +        act[:toc]=if select_arr.inspect \ +        =~/"--inc-toc"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-toc"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-toc"/ \          || act[:switch][:off].inspect =~/"toc"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:minitoc]=if mod.inspect =~/"--inc-minitoc"/ +        act[:minitoc]=if select_arr.inspect \ +        =~/"--inc-minitoc"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-minitoc"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-minitoc"/ \          || act[:switch][:off].inspect =~/"minitoc"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:links_to_manifest]=if mod.inspect =~/"--inc-links-to-manifest"|"--inc-manifest-links"/ +        act[:links_to_manifest]=if select_arr.inspect \ +        =~/"--inc-links-to-manifest"|"--inc-manifest-links"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-manifest"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-manifest"/ \          || act[:switch][:off].inspect =~/"manifest"/ #place lower            { bool: false, set: :off } -        elsif mod.inspect =~/"--(?:exc|no)-links-to-manifest"|"--(?:exc|no)-manifest-links"/ \ -        || act[:switch][:off].inspect =~/"links_to_manifest"|"manifest_links"|"--(?:exc|no)-manifest"/ \ -        || mod.inspect =~/"--(?:redirect|dump)/ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-links-to-manifest"|"--(?:exc|no)-manifest-links"/ \ +        || act[:switch][:off].inspect \ +        =~/"links_to_manifest"|"manifest_links"|"--(?:exc|no)-manifest"/ \ +        || select_arr.inspect \ +        =~/"--(?:redirect|dump)/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:manifest_minitoc]=if mod.inspect =~/"--inc-manifest-minitoc"|"--inc-minitoc"/ +        act[:manifest_minitoc]=if select_arr.inspect \ +        =~/"--inc-manifest-minitoc"|"--inc-minitoc"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-manifest-minitoc"|"--(?:exc|no)-minitoc"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-manifest-minitoc"|"--(?:exc|no)-minitoc"/ \          || act[:switch][:off].inspect =~/"manifest_minitoc"|"minitoc"/ -        #|| mod.inspect =~/"--(?:redirect|dump)/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:metadata]=if mod.inspect =~/"--inc-metadata"/ +        act[:metadata]=if select_arr.inspect \ +        =~/"--inc-metadata"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-metadata"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-metadata"/ \          || act[:switch][:off].inspect =~/"metadata"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_minitoc]=if mod.inspect =~/"--inc-html-minitoc"|"--inc-minitoc"/ +        act[:html_minitoc]=if select_arr.inspect \ +        =~/"--inc-html-minitoc"|"--inc-minitoc"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-minitoc"|"--(?:exc|no)-minitoc"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-minitoc"|"--(?:exc|no)-minitoc"/ \          || act[:switch][:off].inspect =~/"html_minitoc"|"minitoc"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_navigation]=if mod.inspect =~/"--inc-html-navigation"|"--inc-navigation"/ +        act[:html_navigation]=if select_arr.inspect \ +        =~/"--inc-html-navigation"|"--inc-navigation"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-navigation"|"--(?:exc|no)-navigation"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-navigation"|"--(?:exc|no)-navigation"/ \          || act[:switch][:off].inspect =~/"html_navigation"|"nav"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_navigation_bar]=if mod.inspect =~/"--inc-html-navigation-bar"|"--inc-navigation-bar"/ +        act[:html_navigation_bar]=if select_arr.inspect \ +        =~/"--inc-html-navigation-bar"|"--inc-navigation-bar"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-navigation-bar"|"--(?:exc|no)-navigation-bar"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-navigation-bar"|"--(?:exc|no)-navigation-bar"/ \          || act[:switch][:off].inspect =~/"html_navigation_bar"|"navbar"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:segsubtoc]=if mod.inspect =~/"--inc-segsubtoc"/ +        act[:segsubtoc]=if select_arr.inspect \ +        =~/"--inc-segsubtoc"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-segsubtoc"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-segsubtoc"/ \          || act[:switch][:off].inspect =~/"segsubtoc"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:search_form]=if mod.inspect =~/"--inc-search-form"/ +        act[:search_form]=if select_arr.inspect \ +        =~/"--inc-search-form"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-search-form"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-search-form"/ \          || act[:switch][:off].inspect =~/"search_form"|"search"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_search_form]=if mod.inspect =~/"--inc-html-search-form"|"--inc-search-form"/ +        act[:html_search_form]=if select_arr.inspect \ +        =~/"--inc-html-search-form"|"--inc-search-form"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-search-form"|"--(?:exc|no)-search-form"/ \ -        || act[:switch][:off].inspect =~/"html_search_form"|"search_form"|"search"/ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-search-form"|"--(?:exc|no)-search-form"/ \ +        || act[:switch][:off].inspect \ +        =~/"html_search_form"|"search_form"|"search"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_right_pane]=if mod.inspect =~/"--inc-html-right-pane"|"--inc-right-pane"|"--inc-html-right-column"|"--inc-right-column"/ +        act[:html_right_pane]=if select_arr.inspect \ +        =~/"--inc-html-right-pane"|"--inc-right-pane"|"--inc-html-right-column"|"--inc-right-column"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-right-pane"|"--(?:exc|no)-right-pane"|"--(?:exc|no)-html-right-column"|"--(?:exc|no)-right-column"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-right-pane"|"--(?:exc|no)-right-pane"|"--(?:exc|no)-html-right-column"|"--(?:exc|no)-right-column"/ \          || act[:switch][:off].inspect =~/"html_right_pane"|"html_right_column"|"promo"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html_top_band]=if mod.inspect =~/"--inc-html-top-band"|"--inc-top-band"/ +        act[:html_top_band]=if select_arr.inspect \ +        =~/"--inc-html-top-band"|"--inc-top-band"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-html-top-band"|"--(?:exc|no)-top-band"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-html-top-band"|"--(?:exc|no)-top-band"/ \          || act[:switch][:off].inspect =~/"html-top-band"|"top-band"/            { bool: false, set: :off }          else { bool: true, set: :na }          end -        act[:html]=if mod.inspect =~/"--html-strict"/ \ -        or ((cmd =~/h/ || mod.inspect =~/"--html"/) \ -        && mod.inspect =~/"--strict"/) +        act[:html]=if select_arr.inspect \ +        =~/"--html-strict"/ \ +        or ((select_arr.inspect \ +        =~/"--html"/) \ +        && select_arr.inspect \ +        =~/"--strict"/)            act[:html_strict]={ bool: true, set: :on }            act[:html_scroll]={ bool: true, set: :on }            act[:html_seg]={ bool: true, set: :on }            { bool: true, set: :on } -        elsif (cmd =~/h/ \ -        || mod.inspect =~/"--html"/) +        elsif (select_arr.inspect \ +        =~/"--html"/)            act[:html_strict]={ bool: false, set: :off }            act[:html_scroll]={ bool: true, set: :on }            act[:html_seg]={ bool: true, set: :on }            { bool: true, set: :on }          else -          act[:html_strict]=(mod.inspect =~/"--strict"/) \ +          act[:html_strict]=(select_arr.inspect \ +          =~/"--strict"/) \            ? { bool: true, set: :on }            : { bool: false, set: :na } -          act[:html_scroll]=(mod.inspect =~/"--html-scroll"/) \ +          act[:html_scroll]=(select_arr.inspect \ +          =~/"--html-scroll"/) \            ? { bool: true, set: :on }            : { bool: false, set: :na } -          act[:html_seg]=(mod.inspect =~/"--html-seg"/) \ +          act[:html_seg]=(select_arr.inspect \ +          =~/"--html-seg"/) \            ? { bool: true, set: :on }            : { bool: false, set: :na }            { bool: false, set: :na }          end -        act[:concordance]=(cmd =~/w/ \ -        || mod.inspect =~/"--concordance"/) \ +        act[:concordance]=(select_arr.inspect \ +        =~/"--concordance"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:images]=(cmd =~/j/ \ -        || mod.inspect =~/"--images"/) \ +        act[:images]=(select_arr.inspect \ +        =~/"--images"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        if (cmd =~/p/ \ -        || mod.inspect =~/"--pdf"/) -          if mod.inspect =~/"--portrait"/ +        if select_arr.inspect \ +        =~/"--pdf"/ +          if select_arr.inspect \ +          =~/"--portrait"/              act[:pdf]=  { bool: false, set: :na }              act[:pdf_l]={ bool: false, set: :na }              act[:pdf_p]={ bool: true, set: :on } -          elsif mod.inspect =~/"--landscape"/ +          elsif select_arr.inspect \ +          =~/"--landscape"/              act[:pdf]=  { bool: false, set: :na }              act[:pdf_l]={ bool: true, set: :on }              act[:pdf_p]={ bool: false, set: :na } @@ -856,47 +1054,60 @@ module SiSU_Commandline          if act[:pdf][:set]==:on \          or act[:pdf_p][:set]==:on \          or act[:pdf_l][:set]==:on -          act[:pdf_a4]=if mod.inspect =~/"--a4"|--papersize-a4"/ \ -          or mod.inspect =~/"--papersize=\S*a4\b\S*"/ #--papersize=a4,a5 +          act[:pdf_a4]=if select_arr.inspect \ +          =~/"--a4"|--papersize-a4"/ \ +          or select_arr.inspect \ +          =~/"--papersize=\S*a4\b\S*"/ #--papersize=a4,a5              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:pdf_a5]=if mod.inspect =~/"--a5"|"--papersize-a5"/ \ -          or mod.inspect =~/"--papersize=\S*a5\b\S*"/ #--papersize=a4,a5 +          act[:pdf_a5]=if select_arr.inspect \ +          =~/"--a5"|"--papersize-a5"/ \ +          or select_arr.inspect \ +          =~/"--papersize=\S*a5\b\S*"/ #--papersize=a4,a5              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:pdf_b5]=if mod.inspect =~/"--b5"|"--papersize-b5"/ \ -          or mod.inspect =~/"--papersize=\S*b5\b\S*"/ +          act[:pdf_b5]=if select_arr.inspect \ +          =~/"--b5"|"--papersize-b5"/ \ +          or select_arr.inspect \ +          =~/"--papersize=\S*b5\b\S*"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:pdf_letter]=if mod.inspect =~/"--letter"|"--papersize-letter"/ \ -          or mod.inspect =~/"--papersize=\S*letter\b\S*"/ +          act[:pdf_letter]=if select_arr.inspect \ +          =~/"--letter"|"--papersize-letter"/ \ +          or select_arr.inspect \ +          =~/"--papersize=\S*letter\b\S*"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:pdf_legal]=if mod.inspect =~/"--legal"|"--papersize-legal"/ \ -          or mod.inspect =~/"--papersize=\S*legal\b\S*"/ +          act[:pdf_legal]=if select_arr.inspect \ +          =~/"--legal"|"--papersize-legal"/ \ +          or select_arr.inspect \ +          =~/"--papersize=\S*legal\b\S*"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end          end -        act[:epub]=(cmd =~/e/ \ -        || mod.inspect =~/"--epub"/) \ +        act[:epub]=(select_arr.inspect \ +        =~/"--epub"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:odt]=if cmd =~/o/ \ -        or mod.inspect =~/"--odt"|"--odf"|"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ -          act[:odt_ocn]=if (mod.inspect =~/"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ \ -          or mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) +        act[:odt]=if select_arr.inspect \ +        =~/"--odt"|"--odf"|"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ +          act[:odt_ocn]=if (select_arr.inspect \ +          =~/"--odt-(?:ocn|numbering)"|"--odf-(?:ocn|numbering)"/ \ +          or select_arr.inspect \ +          =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/)              { bool: true, set: :on } -          elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ +          elsif select_arr.inspect \ +          =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/              { bool: false, set: :off }            else              { bool: false, set: :na } @@ -905,38 +1116,43 @@ module SiSU_Commandline          else            { bool: false, set: :na }          end -        act[:xml_sax]=(cmd =~/x/ \ -        || mod.inspect =~/"--xml-sax"/) \ +        act[:xml_sax]=(select_arr.inspect \ +        =~/"--xml-sax"|"--sax"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xml_dom]=(cmd =~/X/ \ -        || mod.inspect =~/"--xml-dom"/) \ +        act[:xml_dom]=(select_arr.inspect \ +        =~/"--xml-dom"|"--dom"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xml_docbook_book]=(cmd =~/d/ \ -        || mod.inspect =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/) \ +        act[:xml_docbook_book]=(select_arr.inspect \ +        =~/"--docbook"|"--docbook-book"|"--xml-docbook"|"--xml-docbook_book"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xml_fictionbook]=(cmd =~/f/ \ -        || mod.inspect =~/"--fictionbook"|"--xml-fictionbook"/) \ +        act[:xml_fictionbook]=(select_arr.inspect \ +        =~/"--fictionbook"|"--xml-fictionbook"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xml_scaffold_structure_sisu]=mod.inspect =~/"--xml-scaffold"|"--xml-scaffold-sisu"/ \ +        act[:xml_scaffold_structure_sisu]=select_arr.inspect \ +        =~/"--xml-scaffold"|"--xml-scaffold-sisu"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xml_scaffold_structure_collapse]=mod.inspect =~/"--xml-scaffold-collapse"/ \ +        act[:xml_scaffold_structure_collapse]=select_arr.inspect \ +        =~/"--xml-scaffold-collapse"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:xhtml]=(cmd =~/b/ \ -        || mod.inspect =~/"--xhtml"/) \ +        act[:xhtml]=(select_arr.inspect \ +        =~/"--xhtml"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:txt]=if cmd =~/[at]/ \ -        or mod.inspect =~/"--txt"|"--text"|"--plaintext"|"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ -          act[:txt_ocn]=if (mod.inspect =~/"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ \ -          or mod.inspect =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/) +        act[:txt]=if select_arr.inspect \ +        =~/"--txt"|"--text"|"--plaintext"|"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ +          act[:txt_ocn]=if (select_arr.inspect \ +          =~/"--txt-(?:ocn|numbering)"|"--text-(?:ocn|numbering)"|"--plaintext-(?:ocn|numbering)"/ \ +          or select_arr.inspect \ +          =~/"--ocn"|"--inc-ocn"|"--numbering"|"--inc-numbering"/)              { bool: true, set: :on } -          elsif mod.inspect =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/ +          elsif select_arr.inspect \ +          =~/"--no-ocn"|"--exc-ocn"|"--no-numbering"|"--exc-numbering"/              { bool: false, set: :off }            else              { bool: false, set: :na } @@ -945,66 +1161,71 @@ module SiSU_Commandline          else            { bool: false, set: :na }          end -        act[:txt_textile]=(mod.inspect =~/"--textile"/) \ +        act[:txt_textile]=(select_arr.inspect \ +        =~/"--textile"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:txt_asciidoc]=(mod.inspect =~/"--asciidoc"/) \ +        act[:txt_asciidoc]=(select_arr.inspect \ +        =~/"--asciidoc"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:txt_markdown]=(mod.inspect =~/"--markdown"/) \ +        act[:txt_markdown]=(select_arr.inspect \ +        =~/"--markdown"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:txt_rst]=(mod.inspect =~/"--rst"|"--rest"|"--restructuredtext"/) \ +        act[:txt_rst]=(select_arr.inspect \ +        =~/"--rst"|"--rest"|"--restructuredtext"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:manpage]=(cmd =~/i/ \ -        || mod.inspect =~/"--manpage"|"--man"/) \ +        act[:manpage]=(select_arr.inspect \ +        =~/"--manpage"|"--man"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:texinfo]=(cmd =~/I/ \ -        || mod.inspect =~/"--texinfo"/) \ +        act[:texinfo]=(select_arr.inspect \ +        =~/"--texinfo"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:psql]=if mod.inspect =~/"--pg-\S+"/ \ -        or ((mod.inspect =~/"--pg"/) \ -        && (mod.inspect \ +        act[:psql]=if select_arr.inspect \ +        =~/"--pg-\S+"/ \ +        or ((select_arr.inspect =~/"--pg"/) \ +        && (select_arr.inspect \          =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/)) -          act[:psql_createdb]=if mod.inspect \ +          act[:psql_createdb]=if select_arr.inspect \            =~/"--pg-createdb"|"--createdb"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          if mod.inspect \ +          if select_arr.inspect \            =~/"--pg-recreate(?:all)?"|"--recreate(?:all)?"/              act[:psql_drop]={ bool: true, set: :on }              act[:psql_create]={ bool: true, set: :on }            else -            act[:psql_drop]=if mod.inspect \ +            act[:psql_drop]=if select_arr.inspect \              =~/"--pg-dropall"|"--dropall"/                { bool: true, set: :on }              else                { bool: false, set: :na }              end -            act[:psql_create]=if mod.inspect \ +            act[:psql_create]=if select_arr.inspect \              =~/"--pg-create(?:all)?"|"--create(?:all)?"/                { bool: true, set: :on }              else                { bool: false, set: :na }              end            end -          act[:psql_import]=if mod.inspect \ +          act[:psql_import]=if select_arr.inspect \            =~/"--pg-import"|"--import"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:psql_update]=if mod.inspect \ +          act[:psql_update]=if select_arr.inspect \            =~/"--pg-update"|"--update"/              act[:psql_remove]={ bool: true, set: :on }              { bool: true, set: :on }            else -            act[:psql_remove]=if mod.inspect \ +            act[:psql_remove]=if select_arr.inspect \              =~/"--pg-remove"|"--remove"/                { bool: true, set: :on }              else @@ -1028,46 +1249,48 @@ module SiSU_Commandline              { bool: false, set: :na }            { bool: false, set: :na }          end -        act[:sqlite]=if (mod.inspect =~/"--sqlite-\S+"/) \ -        or ((mod.inspect =~/"--sqlite"/) \ -        && (mod.inspect \ -        =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/)) -          act[:sqlite_createdb]=if mod.inspect \ +        act[:sqlite]=if select_arr.inspect \ +        =~/"--sqlite-\S+"/ \ +        or (select_arr.inspect \ +        =~/"--sqlite"/ \ +        && select_arr.inspect \ +        =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) +          act[:sqlite_createdb]=if select_arr.inspect \            =~/"--sqlite-createdb"|"--createdb"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          if mod.inspect \ +          if select_arr.inspect \            =~/"--sqlite-recreate(?:all)?"|"--recreate(?:all)?"/              act[:sqlite_drop]={ bool: true, set: :on }              act[:sqlite_create]={ bool: true, set: :on }            else -            act[:sqlite_create]=if mod.inspect \ +            act[:sqlite_create]=if select_arr.inspect \              =~/"--sqlite-create(?:all)?"|"--create(?:all)?"/                { bool: true, set: :on }              else                { bool: false, set: :na }              end -            act[:sqlite_drop]=if mod.inspect \ +            act[:sqlite_drop]=if select_arr.inspect \              =~/"--sqlite-dropall"|"--dropall"/                { bool: true, set: :on }              else                { bool: false, set: :na }              end            end -          act[:sqlite_import]=if mod.inspect \ +          act[:sqlite_import]=if select_arr.inspect \            =~/"--sqlite-import"|"--import"/              { bool: true, set: :on }            else              { bool: false, set: :na }            end -          act[:sqlite_update]=if mod.inspect \ +          act[:sqlite_update]=if select_arr.inspect \            =~/"--sqlite-update"|"--update"/              act[:sqlite_remove]={ bool: true, set: :on }              { bool: true, set: :on }            else -            act[:sqlite_remove]=if mod.inspect \ +            act[:sqlite_remove]=if select_arr.inspect \              =~/"--sqlite-remove"|"--sqlite-remove"/                { bool: true, set: :on }              else @@ -1091,92 +1314,110 @@ module SiSU_Commandline              { bool: false, set: :na }            { bool: false, set: :na }          end -        act[:sqlite_discrete]=mod.inspect =~/"--sql"|"--sqlite"/ \ -        && (mod.inspect !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ +        act[:sqlite_discrete]=select_arr.inspect \ +        =~/"--sql"|"--sqlite"/ \ +        && (select_arr.inspect \ +        !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:harvest]=(mod.inspect =~/"--harvest"/) \ +        act[:harvest]=(select_arr.inspect \ +        =~/"--harvest"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:po4a]=(cmd =~/P/ \ -        || mod.inspect =~/"--po4a"|"--pot?"/) \ +        act[:po4a]=(select_arr.inspect \ +        =~/"--po4a"|"--pot?"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:git]=(cmd =~/g/ \ -        || mod.inspect =~/"--git"/) \ +        act[:git]=(select_arr.inspect \ +        =~/"--git"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:hash_digests]=(cmd =~/N/ \ -        || mod.inspect =~/"--digests?"|"--hash-digests"/) \ +        act[:hash_digests]=(select_arr.inspect \ +        =~/"--digests?"|"--hash-digests"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:pdf_font_size]=if mod.inspect =~/"--(?:pdf-)?font-?size[=-](\d{1,2})(?:pt)?"/ +        act[:pdf_font_size]=if select_arr.inspect \ +        =~/"--(?:pdf-)?font-?size[=-](\d{1,2})(?:pt)?"/            $1          else :na          end -        act[:pdf_hyperlink_colors]=if mod.inspect =~/"--pdf-hyperlinks-(?:mono(?:chrome)?|no-color)"/ +        act[:pdf_hyperlink_colors]=if select_arr.inspect \ +        =~/"--pdf-hyperlinks-(?:mono(?:chrome)?|no-color)"/            :mono -        elsif mod.inspect =~/"--pdf-hyperlinks-color"/ +        elsif select_arr.inspect \ +        =~/"--pdf-hyperlinks-color"/            :color          else :na          end -        act[:hash_digest_algo]=if mod.inspect =~/"--hash-(?:sha)?512"/ +        act[:hash_digest_algo]=if select_arr.inspect \ +        =~/"--hash-(?:sha)?512"/            :sha512 -        elsif mod.inspect =~/"--hash-(?:sha)?256"/ +        elsif select_arr.inspect \ +        =~/"--hash-(?:sha)?256"/            :sha256 -        elsif mod.inspect =~/"--hash-md5"/ +        elsif select_arr.inspect \ +        =~/"--hash-md5"/            :md5          else :na          end -        act[:sample_search_form]=(cmd =~/F/ \ -        || mod.inspect =~/"--sample-search-form"/) \ +        act[:sample_search_form]=select_arr.inspect \ +        =~/"--sample-search-form"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:webrick]=(cmd =~/W/ \ -        || mod.inspect =~/"--webrick"/) \ +        act[:webrick]=select_arr.inspect \ +        =~/"--webrick"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:share_source]=(cmd =~/s/ \ -        || mod.inspect =~/"--source"/) \ +        act[:share_source]=select_arr.inspect \ +        =~/"--source"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:sisupod]=(cmd =~/S/ \ -        || mod.inspect =~/"--sisupod"/) \ +        act[:sisupod]=select_arr.inspect \ +        =~/"--sisupod"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:scp]=(cmd =~/r/ \ -        || mod.inspect =~/"--scp"/) \ +        act[:scp]=select_arr.inspect \ +        =~/"--scp"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:rsync]=(cmd =~/R/ \ -        || mod.inspect =~/"--rsync"|"--remote"/) \ +        act[:rsync]=select_arr.inspect \ +        =~/"--rsync"|"--remote"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:zap]=(cmd =~/Z/ \ -        || mod.inspect =~/"--zap"|"--delete"/) \ +        act[:zap]=select_arr.inspect \ +        =~/"--zap"|"--delete"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:urls_all]=(cmd =~/U/ \ -        || mod.inspect =~/"--urls-all"/) \ +        act[:urls_all]=select_arr.inspect \ +        =~/"--urls-all"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:urls_selected]=(cmd =~/u/ \ -        || mod.inspect =~/"--urls"/) \ -        ? { bool: true, set: :on } -        : { bool: false, set: :na } -        act[:sitemap]=(cmd =~/Y/ \ -        || mod.inspect =~/"--sitemap"/) \ +        act[:urls_selected]=if select_arr.inspect \ +        =~/"--urls"/ +          { bool: true, set: :on } +        elsif select_arr.inspect \ +        =~/"--harvest/ +          { bool: false, set: :off } +        elsif select_arr.inspect \ +        =~/"--verbose"/ +          { bool: true, set: :on } +        else +          { bool: false, set: :na } +        end +        act[:sitemap]=select_arr.inspect \ +        =~/"--sitemap"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:qrcode]=(cmd =~/Q/ \ -        || mod.inspect =~/"--qrcode"/) \ +        act[:qrcode]=select_arr.inspect \ +        =~/"--qrcode"/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:help]=(mod.inspect =~/"--help/) \ +        act[:help]=select_arr.inspect \ +        =~/"--help/ \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:ao]=if (cmd =~/m/ \ -        || mod.inspect =~/"--ao"|"--dal"/) +        act[:ao]=if select_arr.inspect \ +        =~/"--ao"|"--dal"/            { bool: true, set: :on }          elsif (act[:txt][:set]==:on \          || act[:txt_textile][:set]==:on \ @@ -1199,6 +1440,13 @@ module SiSU_Commandline          || act[:share_source][:set]==:on \          || act[:sisupod][:set]==:on \          || act[:concordance][:set]==:on \ +        || act[:sqlite_discrete][:set]==:on \ +        || act[:sqlite_import][:set]==:on \ +        || act[:sqlite_update][:set]==:on \ +        || act[:sqlite_remove][:set]==:on \ +        || act[:psql_import][:set]==:on \ +        || act[:psql_update][:set]==:on \ +        || act[:psql_remove][:set]==:on \          || act[:xml_dom][:set]==:on \          || act[:xml_sax][:set]==:on \          || act[:xml_docbook_book][:set]==:on \ @@ -1206,27 +1454,18 @@ module SiSU_Commandline          || act[:xml_scaffold_structure_sisu][:set]==:on \          || act[:xml_scaffold_structure_collapse][:set]==:on )            { bool: true, set: :on } -          #if cmd !~/[mn]/ -          #  extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \ -          #  and cmd !~/[mn]/ -          #    'm'                        #% add ao -        #elsif (act[:txt][:set]==:on \ -        #  { bool: true, set: :on } -          #  elsif ((cmd =~/[Dd]/ \ -          #  or (mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/)) \ -          #  and mod.inspect !~/(?:remove|(?:(?:re)?create(?:all)?|dropall|drop)$)/) \ -          #  and cmd !~/[mn]/ -          #    'm'                        #% add ao          else            { bool: false, set: :na }          end -        act[:manifest]=if mod.inspect =~/"--inc-manifest"/ +        act[:manifest]=if select_arr.inspect \ +        =~/"--inc-manifest"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--(?:exc|no)-manifest"/ \ +        elsif select_arr.inspect \ +        =~/"--(?:exc|no)-manifest"/ \          || act[:switch][:off].inspect =~/"manifest"/            { bool: false, set: :off } -        elsif (cmd =~/y/ \ -        || mod.inspect =~/"--manifest"/) +        elsif select_arr.inspect \ +        =~/"--manifest"/            { bool: true, set: :on }          elsif (act[:txt][:set]==:on \          || act[:txt_textile][:set]==:on \ @@ -1256,71 +1495,55 @@ module SiSU_Commandline          || act[:xml_scaffold_structure_sisu][:set]==:on \          || act[:xml_scaffold_structure_collapse][:set]==:on )            { bool: true, set: :on } -          ##      if cmd !~/y/ -          ##        extra+=if cmd =~/[abeHhIiNopQSstwXxz]/ \ -          ##        and cmd !~/y/ -          ##          'ym'                       #% add manifest -        #elsif (act[:txt][:set]==:on \ -        #  { bool: true, set: :on } -           #        elsif (cmd =~/[Dd]/ \ -           #        or mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/) \ -           #        and files[0] !~/^remove$/ \ -           #        and cmd !~/y/ -           #          'ym'                       #% add manifest          else { bool: true, set: :na }          end          act[:console_messages] = '' -        act[:verbose]=if (cmd =~/v/ \ -        || mod.inspect =~/"--verbose"/) +        act[:verbose]=if select_arr.inspect \ +        =~/"--verbose"/            act[:console_messages] << ' --verbose '            { bool: true, set: :on }          else            { bool: false, set: :na }          end -        act[:verbose_plus]=if (cmd =~/V/ \ -        || mod.inspect =~/"--very-verbose"/) +        act[:verbose_plus]=if select_arr.inspect \ +        =~/"--very-verbose"/            act[:console_messages] << ' --very-verbose '            { bool: true, set: :on }          else            { bool: false, set: :na }          end -        act[:version_info]=if (cmd =~/[vVM]/ \ -        || mod.inspect =~/"--verbose"|"--maintenance"/) +        act[:version_info]=if select_arr.inspect \ +        =~/"--version"|"--verbose"|"--maintenance"/            act[:console_messages] << ' --maintenance '            { bool: true, set: :on }          else            { bool: false, set: :na }          end -        act[:quiet]=if (cmd =~/q/ \ -        || mod.inspect =~/"--quiet"/) +        act[:quiet]=if (select_arr.inspect =~/"--quiet"/)            act[:console_messages] << ' --quiet '            { bool: true, set: :on }          else            { bool: false, set: :na }          end -        act[:color_state]=if mod.inspect =~/"--color-on"|"--color"/ +        act[:color_state]=if select_arr.inspect =~/"--color-on"|"--color"/            act[:console_messages] << ' --color-on '            { bool: true, set: :on } -        elsif (cmd =~/k/ \ -        || mod.inspect =~/"--color-off"/) +        elsif (select_arr.inspect =~/"--color-off"/)            act[:console_messages] << ' --color-off '            { bool: false, set: :off }          else { bool: true, set: :na } #fix default color          end -#       act[:color_toggle]=if cmd =~/c/ \ -#       or mod.inspect =~/"--color-toggle"/ +#       act[:color_toggle]=if select_arr.inspect =~/"--color-toggle"/  #         true  #       else false  #       end -        act[:maintenance]=if (cmd =~/M/ \ -        || mod.inspect =~/"--maintenance|--keep-processing-files"/) +        act[:maintenance]=if (select_arr.inspect =~/"--maintenance|--keep-processing-files"/)            act[:console_messages] << ' --maintenance '            { bool: true, set: :on }          else            { bool: false, set: :na }          end -        act[:profile]=if (cmd =~/E/ \ -        || mod.inspect =~/"--profile"/) +        act[:profile]=if (select_arr.inspect =~/"--profile"/)            act[:console_messages] << ' --color-off '            { bool: true, set: :on }          else @@ -1329,11 +1552,17 @@ module SiSU_Commandline          @act=act        end      end -    def cmd -      @cmd +    def opt_ch +      @opt_ch      end -    def mod -      @mod +    def selections +      def arr +        @select_arr.sort +      end +      def str +        @select_str ||= arr.join(' ') +      end +      self      end      def act        @@act @@ -1342,6 +1571,9 @@ module SiSU_Commandline        files_mod=files        @files_mod=files_mod      end +    def files +      @files +    end      def f_pth        @f_pth      end diff --git a/lib/sisu/v5/manifest.rb b/lib/sisu/v5/manifest.rb index f2a9e748..0b4f79a4 100644 --- a/lib/sisu/v5/manifest.rb +++ b/lib/sisu/v5/manifest.rb @@ -116,7 +116,7 @@ module SiSU_Manifest          data=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions          SiSU_Manifest::Source::Output.new(@md).check_output(data)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -1019,7 +1019,7 @@ WOK  WOK            output          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure diff --git a/lib/sisu/v5/manpage.rb b/lib/sisu/v5/manpage.rb index 0bcf1799..c8957dfe 100644 --- a/lib/sisu/v5/manpage.rb +++ b/lib/sisu/v5/manpage.rb @@ -94,7 +94,7 @@ module SiSU_Manpage          (@opt.act[:verbose][:set]==:on \          || @opt.act[:verbose_plus][:set]==:on \          || @opt.act[:maintenance][:set]==:on) \ -        && @opt.cmd !~/q/ \ +        && @opt.act[:quiet][:set]==:on \          ? SiSU_Screen::Ansi.new(              @opt.act[:color_state][:set],              'Manpage', @@ -116,7 +116,7 @@ module SiSU_Manpage          @ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here          SiSU_Manpage::Source::Scroll.new(@md,@ao_array).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/po4a.rb b/lib/sisu/v5/po4a.rb index b5086eb7..66798dbd 100644 --- a/lib/sisu/v5/po4a.rb +++ b/lib/sisu/v5/po4a.rb @@ -167,7 +167,7 @@ module SiSU_Po4a            SiSU_Po4a::Source::Scroll.new(fn,@ao_array_lang_src,@ao_array_lang_translation,@@md_src,@@md_trn,wrap_width).songsheet          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/qrcode.rb b/lib/sisu/v5/qrcode.rb index 19d310c1..3a7d9406 100644 --- a/lib/sisu/v5/qrcode.rb +++ b/lib/sisu/v5/qrcode.rb @@ -111,7 +111,7 @@ module SiSU_QRcode          data=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions          OutputInfo.new(@md).check_output(data)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -152,7 +152,7 @@ module SiSU_QRcode            mn += x          end          manifest.close if @md.opt.act[:maintenance][:set]==:on -        cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_md.dir,@md.opt.cmd) +        cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_md.dir,@md.opt.selections.str)          cmd.qrencode        end        def output_metadata_short @@ -160,7 +160,7 @@ module SiSU_QRcode          @manifest[:txt_title].each do |x|            mn += x          end -        cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_title.dir,@md.opt.cmd) +        cmd=SiSU_Env::SystemCall.new(mn,@f.place_file.qrcode_title.dir,@md.opt.selections.str)          cmd.qrencode        end        def summarize(id,file,pth='',rel='',url='',img='● ') @@ -193,7 +193,7 @@ WOK          || @md.opt.act[:verbose_plus][:set]==:on \          || @md.opt.act[:maintenance][:set]==:on)            SiSU_Screen::Ansi.new( -            @md.opt.cmd, +            @md.opt.selections.str,              "#{dgst[1]} #{file}"            ).warn          end @@ -403,12 +403,13 @@ WOK            summarize(id,file,pth,rel,url)          end          if FileTest.file?(@f.place_file.txt.dir)==true -          id=if @md.opt.cmd =~/a/ then 'Plaintext (Unix (UTF-8) with footnotes)' -          elsif @md.opt.cmd =~/e/ then 'Plaintext (Unix (UTF-8) with endnotes)' -          elsif @md.opt.cmd =~/A/ then 'Plaintext (dos (UTF-8) with footnotes)' -          elsif @md.opt.cmd =~/E/ then 'Plaintext (dos (UTF-8) with endnotes)' -          else                         'Plaintext (UTF-8)' -          end +          id='Plaintext (UTF-8)' +          #id=if @md.opt.selections.str =~/a/ then 'Plaintext (Unix (UTF-8) with footnotes)' +          #elsif @md.opt.selections.str =~/e/ then 'Plaintext (Unix (UTF-8) with endnotes)' +          #elsif @md.opt.selections.str =~/A/ then 'Plaintext (dos (UTF-8) with footnotes)' +          #elsif @md.opt.selections.str =~/E/ then 'Plaintext (dos (UTF-8) with endnotes)' +          #else                         'Plaintext (UTF-8)' +          #end            pth=@f.output_path.txt.dir            rel=@f.output_path.txt.rel_sm            url=@f.output_path.txt.url @@ -746,7 +747,7 @@ WOK            output_metadata            output_metadata_short          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure diff --git a/lib/sisu/v5/rexml.rb b/lib/sisu/v5/rexml.rb index c4512872..98263899 100644 --- a/lib/sisu/v5/rexml.rb +++ b/lib/sisu/v5/rexml.rb @@ -130,7 +130,7 @@ module SiSU_Rexml            exit          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/se_createsite.rb b/lib/sisu/v5/se_createsite.rb index 33e334ce..a7ab7cf5 100644 --- a/lib/sisu/v5/se_createsite.rb +++ b/lib/sisu/v5/se_createsite.rb @@ -190,16 +190,20 @@ module SiSU_Create_Site        if defined? @rc['permission_set']['css_modify'] \        and @rc['permission_set']['css_modify']          SiSU_Screen::Ansi.new( -          @opt.cmd, +          @opt.selections.str,            "*WARN* modify is css set to: #{@rc['permission_set']['css_modify']}" -        ).warn if @opt.cmd=~/[MV]/ +        ).warn if @opt.act[:verbose_plus][:set]==:on \ +        or @opt.act[:maintenance][:set]==:on          css_path.each do |x|            if FileTest.directory?(x)              FileUtils::cd(x)              source=Dir.glob("*.{css}")              source.each do |i|                if FileTest.file?(i) -                FileUtils::cp(i,"#{@env.path.output}/#{@env.path.style}") +                FileUtils::cp( +                  i, +                  @env.path.output + '/' + @env.path.style +                )                else STDERR.puts %{\t*WARN* did not find css - "#{i}" [#{__FILE__}:#{__LINE__}]}                end              end @@ -208,62 +212,63 @@ module SiSU_Create_Site          end        else          SiSU_Screen::Ansi.new( -          @opt.cmd, +          @opt.selections.str,            "*WARN* modify css is not set or is set to: false" -        ).warn if @opt.cmd=~/[MV]/ +        ).warn if @opt.act[:verbose_plus][:set]==:on \ +        or @opt.act[:maintenance][:set]==:on        end        fn_css=SiSU_Env::CSS_Default.new        css=SiSU_Style::CSS.new        path_style="#{@env.path.output}/#{@env.path.style}"        FileUtils::mkdir_p(path_style) \          unless FileTest.directory?(path_style) -      if @opt.cmd =~/C/ \ +      if @opt.act[:site_init][:set]==:on \        or not FileTest.file?("#{path_style}/#{fn_css.homepage}")          style=File.new("#{path_style}/#{fn_css.homepage}",'w')          style << css.homepage          style.close        end -      if @opt.cmd =~/C/ \ +      if @opt.act[:site_init][:set]==:on \        or not FileTest.file?("#{path_style}/#{fn_css.html_tables}")          style=File.new("#{path_style}/#{fn_css.html_tables}",'w')          style << css.html_tables          style.close        end -      if @opt.cmd =~/C/ \ +      if @opt.act[:site_init][:set]==:on \        or not FileTest.file?("#{path_style}/#{fn_css.html}")          style=File.new("#{path_style}/#{fn_css.html}",'w')          style << css.html          style.close        end -      if @opt.cmd =~/C/ \ +      if @opt.act[:site_init][:set]==:on \        or not FileTest.file?("#{path_style}/#{fn_css.harvest}")          style=File.new("#{path_style}/#{fn_css.harvest}",'w')          style << css.harvest          style.close        end -      if @opt.cmd =~/C/ \ -      or (@opt.cmd =~/[x]/ \ +      if @opt.act[:site_init][:set]==:on \ +      or (@opt.act[:xml_sax][:set]==:on \        and not FileTest.file?("#{path_style}/#{fn_css.xml_sax}"))          style=File.new("#{path_style}/#{fn_css.xml_sax}",'w')          style << css.xml_sax          style.close        end -      if @opt.cmd =~/C/ \ -      or (@opt.cmd =~/[X]/ \ +      if @opt.act[:site_init][:set]==:on \ +      or (@opt.act[:xml_dom][:set]==:on \        and not FileTest.file?("#{path_style}/#{fn_css.xml_dom}"))          style=File.new("#{path_style}/#{fn_css.xml_dom}",'w')          style << css.xml_dom          style.close        end -      if @opt.cmd =~/C/ \ +      if @opt.act[:site_init][:set]==:on \        or (@opt.act[:xml_docbook_book][:set] == :on \        and not FileTest.file?("#{path_style}/#{fn_css.xml_docbook}"))          style=File.new("#{path_style}/#{fn_css.xml_docbook}",'w')          style << css.xml_docbook          style.close        end -      if @opt.cmd =~/C/ \ -      or (@opt.cmd =~/[b]/ \ +      if @opt.act[:site_init][:set]==:on \ +      or (@opt.act[:xhtml][:set] == :on \        and not FileTest.file?("#{path_style}/#{fn_css.xhtml}"))          style=File.new("#{path_style}/#{fn_css.xhtml}",'w')          style << css.xhtml diff --git a/lib/sisu/v5/se_db.rb b/lib/sisu/v5/se_db.rb index 8ed78afa..3c6fdcba 100644 --- a/lib/sisu/v5/se_db.rb +++ b/lib/sisu/v5/se_db.rb @@ -94,7 +94,7 @@ module SiSU_Info_Db      def psql        def user(opt=nil)          if opt \ -        and opt.mod.inspect =~/--db-user[=-]["']?(\S+)["']+/ +        and opt.selections.str.inspect =~/--db-user[=-]["']?(\S+)["']+/            $1          elsif opt \          and opt.mod =~/--webserv[=-]webrick/ @@ -176,7 +176,7 @@ module SiSU_Db_Op        begin          @md=md        rescue -        SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do +        SiSU_Screen::Ansi.new(md.opt.selections.str,$!,$@).rescue do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/se_file_op.rb b/lib/sisu/v5/se_file_op.rb index d8a919dd..83e9c1b9 100644 --- a/lib/sisu/v5/se_file_op.rb +++ b/lib/sisu/v5/se_file_op.rb @@ -188,7 +188,7 @@ module SiSU_File_Op          @md,@fno=md,fno          @env=SiSU_Env::InfoEnv.new(@md.fns)        rescue -        SiSU_Screen::Ansi.new(md.opt.cmd,$!,$@).rescue do +        SiSU_Screen::Ansi.new(md.opt.selections.str,$!,$@).rescue do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/se_filemap.rb b/lib/sisu/v5/se_filemap.rb index 0c4c84c0..075cdb83 100644 --- a/lib/sisu/v5/se_filemap.rb +++ b/lib/sisu/v5/se_filemap.rb @@ -68,7 +68,7 @@ module SiSU_File_Map      attr_accessor :local_sisu_source      def initialize(opt='') #watch / REVIEW        super() -      @opt=opt #,opt.fns,opt.cmd +      @opt=opt #,opt.fns,opt.selections.str        @env=(@opt.fns && !(@opt.fns.empty?) \        ? (SiSU_Env::InfoEnv.new(@opt.fns))        : (SiSU_Env::InfoEnv.new('dummy.sst'))) @@ -216,7 +216,7 @@ module SiSU_File_Map          ft=ft.uniq          filetypes=ft.join(',')          @filetypes=if filetypes !~/..+/ then ''   # -r called alone, copy all -        elsif @opt.cmd =~/u/            then ''   # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u +        elsif @opt.selections.str =~/u/            then ''   # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u          elsif filetypes =~/\S+?,\S+/    then '*{' + filetypes + '}' # more than one relevant file type          else                                 '*' + filetypes # one relevant file type          end diff --git a/lib/sisu/v5/se_hub_particulars.rb b/lib/sisu/v5/se_hub_particulars.rb index 4372ac72..17942a71 100644 --- a/lib/sisu/v5/se_hub_particulars.rb +++ b/lib/sisu/v5/se_hub_particulars.rb @@ -127,7 +127,7 @@ module SiSU_Particulars          @md=SiSU_Param::Parameters.new(opt).get          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -138,7 +138,7 @@ module SiSU_Particulars          @env=SiSU_Env::InfoEnv.new(opt.fns)          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -149,7 +149,7 @@ module SiSU_Particulars          @file=SiSU_Env::FileOp.new(@md)          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -160,7 +160,7 @@ module SiSU_Particulars          @ao_array=SiSU_AO::Source.new(opt).get          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -170,7 +170,7 @@ module SiSU_Particulars          @sst_idx=SiSU_AO::Source.new(opt).get_idx_sst          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -180,7 +180,7 @@ module SiSU_Particulars          @raw_idx=SiSU_AO::Source.new(opt).get_idx_raw          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -190,7 +190,7 @@ module SiSU_Particulars          @html_idx=SiSU_AO::Source.new(opt).get_idx_html          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -200,7 +200,7 @@ module SiSU_Particulars          @xhtml_idx=SiSU_AO::Source.new(opt).get_idx_xhtml          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end @@ -213,11 +213,11 @@ module SiSU_Particulars          self        rescue          if @md -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.opt.fnl).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.opt.fnl).location do              __LINE__.to_s + ':' + __FILE__            end          else -          SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +          SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -229,7 +229,7 @@ module SiSU_Particulars          @ocn_htmlseg_map=SiSU_AO::Source.new(@md).get_map_ocn_htmlseg          self        rescue -        SiSU_Errors::Rescued.new($!,$@,opt.cmd,opt.fnl).location do +        SiSU_Errors::Rescued.new($!,$@,opt.selections.str,opt.fnl).location do            __LINE__.to_s + ':' + __FILE__          end        end diff --git a/lib/sisu/v5/se_info_env.rb b/lib/sisu/v5/se_info_env.rb index df3d0216..5d91e433 100644 --- a/lib/sisu/v5/se_info_env.rb +++ b/lib/sisu/v5/se_info_env.rb @@ -1634,7 +1634,7 @@ WOK          http=http.strip        end        def webserv_base_cgi(opt=nil)    #web url for local webserv (localhost, or hostname) -        http=if opt.mod.inspect =~/--webserv-(?:cgi|db|search)[=-]["']?(\S+)["']+/ +        http=if opt.selections.str =~/--webserv-(?:cgi|db|search)[=-]["']?(\S+)["']+/            m=$1            (m=~/http\/\/:/) ? m : %{http://#{m}}          elsif defined? @rc['webserv_cgi']['host'] \ @@ -1708,7 +1708,7 @@ WOK          end        end        def webserv_files_from_db(opt=nil) #sort this out, messy -        if opt.mod.inspect =~/--webserv-output[=-]["']?(\S+)["']+/ +        if opt.selections.str =~/--webserv-output[=-]["']?(\S+)["']+/            m=$1            (m=~/(?:http|file\/)\/\/:/) ? m : %{http://#{m}}          else @@ -1729,10 +1729,10 @@ WOK          #%q{http://#{ENV['HTTP_HOST']}/cgi-bin}        end        def cgi_sample_search_form_name(opt=nil) -        if opt.mod.inspect \ +        if opt.selections.str \          =~/--(?:cgi-)?search-form-name[=-]["']?(\S+?\.cgi)/            $1 -        elsif not opt.mod.inspect =~/--db[=-]["']?sqlite/ \ +        elsif not opt.selections.str =~/--db[=-]["']?sqlite/ \          and defined? @rc['search'] \          and defined? @rc['search']['sisu'] \          and defined? @rc['search']['sisu']['action'] \ @@ -1740,7 +1740,7 @@ WOK            /(?:https?:\/\/\S+?)\/([^\/]+?\.cgi)$/.              match(@rc['search']['sisu']['action'])[1]          else -          (opt.mod.inspect =~/--db[=-]["']?sqlite/) \ +          (opt.selections.str =~/--db[=-]["']?sqlite/) \            ? "#{Db[:name_prefix_db]}sqlite.cgi" \            :  "#{Db[:name_prefix_db]}pg.cgi"          end @@ -1783,12 +1783,12 @@ WOK            path.image_source_include          else            if @@local_image==true -            cmd=@cmd ? @cmd : '' +            cmd=@selections.str ? @selections.str : ''              SiSU_Screen::Ansi.new(                cmd,                "WARNING - no local image directory or images:",                defaults[:image_local] -            ).warn unless cmd =~/q/ +            ).warn unless @md.opt.act[:quiet][:set]==:on              @@local_image=false            end            url.images @@ -1813,7 +1813,7 @@ WOK                @cmd,                'WARNING - image directory for external images or no such images:',                :image_external -            ).warn unless @cmd =~/q/ +            ).warn unless @md.opt.act[:quiet][:set]==:on              @@local_image=false            end            url.images_external @@ -1827,15 +1827,15 @@ WOK      def port        def webrick_port          if @md \ -        and @md.opt.cmd.inspect=~/-F/ \ -        and @md.opt.mod.inspect=~/port=(\d+)/ +        and @md.opt.act[:sample_search_form][:set]==:on \ +        and @md.opt.selections.str=~/port=(\d+)/             $1          else            if defined? @rc['webserv_cgi']['port']              if @rc['webserv_cgi']['port'].nil? \              and (defined? @md.opt.mod \              and not @md.opt.mod.nil? \ -            and @md.opt.mod.inspect=~/webrick/) +            and @md.opt.selections.str=~/webrick/)                defaults[:webserv_port_cgi]              elsif not @rc['webserv_cgi']['port'].nil?                @rc['webserv_cgi']['port'] @@ -1847,15 +1847,15 @@ WOK        end        def webserv_port_cgi(opt=nil)          port=if opt \ -        and opt.cmd.inspect=~/-F/ \ -        and opt.mod.inspect=~/port=(\d+)/ +        and @md.opt.act[:sample_search_form][:set]==:on \ +        and opt.selections.str=~/port=(\d+)/             $1          else            port=if defined? @rc['webserv_cgi']['port']              if @rc['webserv_cgi']['port'].nil? \              and (defined? opt.mod \              and not opt.mod.nil? \ -            and opt.mod.inspect=~/webrick/) +            and opt.selections.str=~/webrick/)                defaults[:webserv_port_cgi]              elsif not @rc['webserv_cgi']['port'].nil?                @rc['webserv_cgi']['port'] @@ -1864,7 +1864,7 @@ WOK            else              if (defined? opt.mod \              and not opt.mod.nil? \ -            and opt.mod.inspect=~/webrick/) +            and opt.selections.str=~/webrick/)                defaults[:webserv_port_cgi]              else nil              end @@ -2145,7 +2145,7 @@ WOK          SiSU_Screen::Ansi.new(            '',            '*WARN* file not found: ' + fns_pod -        ).warn unless @cmd=~/q/ +        ).warn unless @md.opt.act[:quiet][:set]==:on        end        sisupod_processing_path      end @@ -2164,7 +2164,7 @@ WOK        : (SiSU_Screen::Ansi.new(            '',            "*WARN* file not found: #{fns_pod}" -        ).warn unless @cmd=~/q/) +        ).warn unless @md.opt.act[:quiet][:set]==:on)        sisupod_processing_path      end    end diff --git a/lib/sisu/v5/se_processing.rb b/lib/sisu/v5/se_processing.rb index 0a035ce8..35fa72c2 100644 --- a/lib/sisu/v5/se_processing.rb +++ b/lib/sisu/v5/se_processing.rb @@ -465,62 +465,172 @@ module SiSU_Processing_Settings  end  module SiSU_Info_Processing_Flag    class InfoProcessingFlag -    attr_accessor :color,:cf_0,:cf_1,:cf_2,:cf_3,:cf_4,:cf_5 +    attr_accessor :color,:act_0,:act_1,:act_2,:act_3,:act_4,:act_5,:act_6,:act_7,:act_8,:act_9      def initialize        @rc=SiSU_Get_Init::GetInit.new.sisu_yaml.rc      end -    def color                          #processing flag shortcuts +    def color                          #configurable processing flag shortcuts        (defined? @rc['flag']['color']) \        ? @rc['flag']['color']        : false      end -    def cf_0                           #processing flag shortcuts -      if defined? @rc['flag']['default'] \ -      and @rc['flag']['default'].is_a?(String) -        @rc['flag']['default'] -      else #'-NQhewpotbxXdyYv' -        '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' +    def act_0                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act0'] \ +        and @rc['flag']['act0'].is_a?(String) +          @rc['flag']['act0'] +        elsif defined? @rc['flag']['default'] \ +        and @rc['flag']['default'].is_a?(String) +          @rc['flag']['default'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --verbose' +        end +      end +      def arr +        str.scan(/\S+/) +      end +      self +    end +    def act_1                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act1'] \ +        and @rc['flag']['act1'].is_a?(String) +          @rc['flag']['act1'] +        elsif defined? @rc['flag']['i'] \ +        and @rc['flag']['i'].is_a?(String) +          @rc['flag']['i'] +        else +          '--digest --text --html --manifest' +        end +      end +      def arr +        str.scan(/\S+/) +      end +      self +    end +    def act_2                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act2'] \ +        and @rc['flag']['act2'].is_a?(String) +          @rc['flag']['act2'] +        elsif defined? @rc['flag']['ii'] \ +        and @rc['flag']['ii'].is_a?(String) +          @rc['flag']['ii'] +        else +          '--digest --text --html --epub --pdf --manifest' +        end +      end +      def arr +        str.scan(/\S+/) +      end +      self +    end +    def act_3                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act3'] \ +        and @rc['flag']['act3'].is_a?(String) +          @rc['flag']['act3'] +        elsif defined? @rc['flag']['iii'] \ +        and @rc['flag']['iii'].is_a?(String) +          @rc['flag']['iii'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --manifest' +        end +      end +      def arr +        str.scan(/\S+/) +      end +      self +    end +    def act_4                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act4'] \ +        and @rc['flag']['act4'].is_a?(String) +          @rc['flag']['act4'] +        elsif defined? @rc['flag']['iv'] \ +        and @rc['flag']['iv'].is_a?(String) +          @rc['flag']['iv'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --manifest' +        end +      end +      def arr +        str.scan(/\S+/)        end +      self      end -    def cf_1                           #processing flag shortcuts -      if defined? @rc['flag']['i'] \ -      and @rc['flag']['i'].is_a?(String) -        @rc['flag']['i'] -      else #'-Qhewpoty' -        '--digest --qrcode --text --html --epub --concordance --pdf --manifest' +    def act_5                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act5'] \ +        and @rc['flag']['act5'].is_a?(String) +          @rc['flag']['act5'] +        elsif defined? @rc['flag']['v'] \ +        and @rc['flag']['v'].is_a?(String) +          @rc['flag']['v'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --sqlite --manifest' +        end        end +      def arr +        str.scan(/\S+/) +      end +      self      end -    def cf_2                           #processing flag shortcuts -      if defined? @rc['flag']['ii'] \ -      and @rc['flag']['ii'].is_a?(String) -        @rc['flag']['ii'] -      else #'-NQhewpotbxXdy' -        '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --manifest' +    def act_6                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act6'] \ +        and @rc['flag']['act6'].is_a?(String) +          @rc['flag']['act6'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' +        end +      end +      def arr +        str.scan(/\S+/)        end +      self      end -    def cf_3                           #processing flag shortcuts -      if defined? @rc['flag']['iii'] \ -      and @rc['flag']['iii'].is_a?(String) -        @rc['flag']['iii'] -      else #'-NQhewpotbxXdyY' -        '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest' +    def act_7                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act7'] \ +        and @rc['flag']['act7'].is_a?(String) +          @rc['flag']['act7'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --source --sisupod --manifest' +        end +      end +      def arr +        str.scan(/\S+/)        end +      self      end -    def cf_4                           #processing flag shortcuts -      if defined? @rc['flag']['iv'] \ -      and @rc['flag']['iv'].is_a?(String) -        @rc['flag']['iv'] -      else #'-NQhewpotbxXdDyY --update' -        '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --postresql --update --manifest' +    def act_8                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act8'] \ +        and @rc['flag']['act8'].is_a?(String) +          @rc['flag']['act8'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --manifest' +        end        end +      def arr +        str.scan(/\S+/) +      end +      self      end -    def cf_5                           #processing flag shortcuts -      if defined? @rc['flag']['v'] \ -      and @rc['flag']['v'].is_a?(String) -        @rc['flag']['v'] -      else #'-NQhewpotbxXdyYsS' -        '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --sqlite --manifest --sisupod --source' +    def act_9                           #configurable processing flag shortcuts +      def str +        if defined? @rc['flag']['act9'] \ +        and @rc['flag']['act9'].is_a?(String) +          @rc['flag']['act9'] +        else +          '--digest --qrcode --text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax --xml-dom --pg --update --source --sisupod --manifest' +        end +      end +      def arr +        str.scan(/\S+/)        end +      self      end    end  end diff --git a/lib/sisu/v5/se_programs.rb b/lib/sisu/v5/se_programs.rb index 35d68cb6..4eef1ce9 100644 --- a/lib/sisu/v5/se_programs.rb +++ b/lib/sisu/v5/se_programs.rb @@ -87,7 +87,7 @@ module SiSU_Sys_Call        end        @sys.locale      end -    def file_encoding(filename,cmd='') #file encoding +    def file_encoding(filename,act='') #file encoding        program='file'        fnsp=SiSU_Env::InfoEnv.new(filename).source_file_with_path        if program_found?(program) @@ -98,9 +98,13 @@ module SiSU_Sys_Call            encoding          else 'UTF-8 assumed, encoding undetermined'          end -        puts encoding if cmd =~/[VM]/ +        if act[:verbose_plus][:set] ==:on \ +        or  act[:maintenance][:set] ==:on +          puts encoding +        end          encoding -      else encoding='UTF-8 assumed, file encoding check program unavailable' +      else +        'UTF-8 assumed, file encoding check program unavailable'        end      end      def wc                             #word count diff --git a/lib/sisu/v5/texinfo.rb b/lib/sisu/v5/texinfo.rb index e792a989..16aef8bf 100644 --- a/lib/sisu/v5/texinfo.rb +++ b/lib/sisu/v5/texinfo.rb @@ -132,7 +132,7 @@ module SiSU_TexInfo          @marshalfile=SiSU_Env::InfoFile.new(@opt.fns).marshal.ao_content          if FileTest.file?(@marshalfile)==true            File.open(@marshalfile) { |f| @@tuned_file=Marshal.load(f)} -          #tell.meta_verse_skipped if @opt.cmd =~/[vVM]/ +          #tell.meta_verse_skipped if @opt.selections.str =~/[vVM]/          else            tex_array=IO.readlines(@opt.fns,'')            SiSU_Metaverse.songsheet(tex_array) @@ -418,7 +418,7 @@ module SiSU_TexInfo          pwd=Dir.pwd          case sfx          when /(?:-|ssm\.)?sst$/ -          @env=SiSU_Env::InfoEnv.new(@md.fns,@md.opt.cmd) +          @env=SiSU_Env::InfoEnv.new(@md.fns,@md.opt.selections.str)            Dir.chdir(@env.processing_path.texi)            texinfo=SiSU_Env::SystemCall.new("#{fnb}.texinfo")            texinfo.makeinfo diff --git a/lib/sisu/v5/texpdf.rb b/lib/sisu/v5/texpdf.rb index b5d36602..fe7ec47e 100644 --- a/lib/sisu/v5/texpdf.rb +++ b/lib/sisu/v5/texpdf.rb @@ -107,7 +107,7 @@ module SiSU_TeX            Dir.mkdir(@env.processing_path.tex) unless FileTest.directory?(@env.processing_path.tex)          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -148,7 +148,7 @@ module SiSU_TeX            end          end          @md=@particulars.md -        $flag=@md.opt.cmd                                                          #introduced to pass 0 for no object citation numbers... to texpdf_format +        $flag=@md.opt.selections.str                                                          #introduced to pass 0 for no object citation numbers... to texpdf_format          directories                                                                                 #% needed needs to be reprogrammed !!!          ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here @@ -158,7 +158,7 @@ module SiSU_TeX          SiSU_TeX::Source::LaTeXtoPdf.new(@md,@particulars.env).latexrun_selective          Dir.chdir(pwd)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -180,7 +180,7 @@ module SiSU_TeX          @@date=SiSU_Env::InfoDate.new          @@flag={}          $flag=1 #remove at some stage -        SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate +        SiSU_Env::Clear.new(@opt.selections.str,@opt.fns).param_instantiate        end      end      private @@ -194,7 +194,7 @@ module SiSU_TeX          @texfilename=texfilename          @@n_lpdf=@@n_lpdf+1          tex_fn_base=@texfilename.gsub(/\.tex$/,'') -        tell=SiSU_Screen::Ansi.new(@md.opt.cmd) +        tell=SiSU_Screen::Ansi.new(@md.opt.selections.str)          if @md.opt.act[:pdf_p][:set]==:on            if (@md.opt.act[:verbose][:set]==:on \            || @md.opt.act[:verbose_plus][:set]==:on \ @@ -204,13 +204,21 @@ module SiSU_TeX                "#{papersize} portrait ->"              ).dark_grey_title_hi            end -          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.cmd) -          tell.grey_open if @md.opt.cmd =~/[MVv]/ +          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.selections.str) +          if @md.opt.act[:verbose][:set]==:on \ +          || @md.opt.act[:verbose_plus][:set]==:on \ +          || @md.opt.act[:maintenance][:set]==:on +            tell.grey_open +          end            if "#{tex_fn_base}" =~/\w+/ \            and "#{papersize}" =~/\w+/              2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex portrait            end -          tell.p_off if @md.opt.cmd =~/[MVv]/ +          if @md.opt.act[:verbose][:set]==:on \ +          || @md.opt.act[:verbose_plus][:set]==:on \ +          || @md.opt.act[:maintenance][:set]==:on +            tell.p_off +          end          end          if @md.opt.act[:pdf_l][:set]==:on            if (@md.opt.act[:verbose][:set]==:on \ @@ -221,7 +229,7 @@ module SiSU_TeX                "#{papersize} landscape ->"              ).dark_grey_title_hi            end -          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) +          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.selections.str)            if (@md.opt.act[:verbose][:set]==:on \            || @md.opt.act[:verbose_plus][:set]==:on \            || @md.opt.act[:maintenance][:set]==:on) @@ -357,7 +365,7 @@ module SiSU_TeX            lst=Dir["*.{aux,log,out}"]            lst.each {|file| File.unlink(file)} if lst          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -438,7 +446,7 @@ module SiSU_TeX            data=markup(data)            output(data)          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure @@ -640,6 +648,8 @@ module SiSU_TeX                tst.heading_level_2              when 6                tst.heading_level_3 +            when 7 +              tst.heading_level_4              else dob              end            when :heading_insert diff --git a/lib/sisu/v5/texpdf_format.rb b/lib/sisu/v5/texpdf_format.rb index e9ff0fff..9957ab48 100644 --- a/lib/sisu/v5/texpdf_format.rb +++ b/lib/sisu/v5/texpdf_format.rb @@ -323,6 +323,9 @@ module SiSU_TeX_Pdf      def heading_level_3        heading_sublevels(@dob)      end +    def heading_level_4 +      heading_sublevels(@dob) +    end      def hang        case @dob.indent        when /0/ diff --git a/lib/sisu/v5/txt_asciidoc.rb b/lib/sisu/v5/txt_asciidoc.rb index 43e49f7b..7171ee64 100644 --- a/lib/sisu/v5/txt_asciidoc.rb +++ b/lib/sisu/v5/txt_asciidoc.rb @@ -121,7 +121,7 @@ module SiSU_Txt_AsciiDoc          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Txt_AsciiDoc::Source::Scroll.new(md,ao_array,wrap_width).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/txt_markdown.rb b/lib/sisu/v5/txt_markdown.rb index 1e4326a3..9a184635 100644 --- a/lib/sisu/v5/txt_markdown.rb +++ b/lib/sisu/v5/txt_markdown.rb @@ -120,7 +120,7 @@ module SiSU_Txt_Markdown          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Txt_Markdown::Source::Scroll.new(md,ao_array,wrap_width).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/txt_plain.rb b/lib/sisu/v5/txt_plain.rb index 2f3cc134..608d3d09 100644 --- a/lib/sisu/v5/txt_plain.rb +++ b/lib/sisu/v5/txt_plain.rb @@ -122,7 +122,7 @@ module SiSU_Txt_Plain          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Txt_Plain::Source::Scroll.new(md,ao_array,wrap_width).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -139,7 +139,7 @@ module SiSU_Txt_Plain          @env=SiSU_Env::InfoEnv.new(@md.fns)          @brace_url=SiSU_Viz::Defaults.new.url_decoration          @tab="\t" -        @@endnotes_=case md.opt.mod.inspect +        @@endnotes_=case md.opt.selections.str          when /--footnote/ then false          when /--endnote/  then true          else              true @@ -254,6 +254,9 @@ WOK            def l6              '.'            end +          def l7 +            '.' +          end            self          end          def bold @@ -402,6 +405,9 @@ WOK              end            when 5 then wrapped.upcase << break_line << decorate.heading_underscore.l5*times + p_num << break_line*2            when 6 then wrapped.upcase << break_line << decorate.heading_underscore.l6*times + p_num << break_line*2 +          when 7 +            wrapped.upcase << break_line << decorate.heading_underscore.l7*times + p_num << break_line*2 +          #when 7 then wrapped.upcase << break_line << decorate.heading_underscore.l7*times + p_num << break_line*2            end          else            @plaintext[:body] << wrapped + p_num << break_line # main text, contents, body KEEP @@ -419,7 +425,9 @@ WOK          if make.build.plaintext_ocn?            if defined? dob.ocn \            and dob.ocn.is_a?(Fixnum) -            (defined? dob.ocn) ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" : '' +            (defined? dob.ocn) \ +            ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" \ +            : ''            else ''            end          else '' @@ -428,8 +436,8 @@ WOK        def markup(data)                                                       # Used for major markup instructions          SiSU_Env::InfoEnv.new(@md.fns)          @data_mod,@endnotes,@level,@cont,@copen,@plaintext_contents_close=Array.new(6){[]} -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @plaintext_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @plaintext_contents_close[x]='' }          plaintext_tail #($1,$2)          plaintext_metadata          table_message='[table omitted, see other document formats]' diff --git a/lib/sisu/v5/txt_rst.rb b/lib/sisu/v5/txt_rst.rb index f00c9e9c..0147a6de 100644 --- a/lib/sisu/v5/txt_rst.rb +++ b/lib/sisu/v5/txt_rst.rb @@ -121,7 +121,7 @@ module SiSU_Txt_rST          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Txt_rST::Source::Scroll.new(md,ao_array,wrap_width).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/txt_textile.rb b/lib/sisu/v5/txt_textile.rb index 65c102fc..43124493 100644 --- a/lib/sisu/v5/txt_textile.rb +++ b/lib/sisu/v5/txt_textile.rb @@ -121,7 +121,7 @@ module SiSU_Txt_Textile          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Txt_Textile::Source::Scroll.new(md,ao_array,wrap_width).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/update.rb b/lib/sisu/v5/update.rb index 2301990a..3c355edb 100644 --- a/lib/sisu/v5/update.rb +++ b/lib/sisu/v5/update.rb @@ -81,7 +81,7 @@ module SiSU_UpdateControlFlag          ).green_hi_blue unless @md.opt.act[:quiet][:set]==:on          SetCF.new(@md).set_flags        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/urls.rb b/lib/sisu/v5/urls.rb index 815fe65a..4ecad1f9 100644 --- a/lib/sisu/v5/urls.rb +++ b/lib/sisu/v5/urls.rb @@ -74,7 +74,7 @@ module SiSU_Urls        begin          SiSU_Urls::OutputUrls.new(@opt).songsheet if @opt.fnb        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -82,11 +82,20 @@ module SiSU_Urls      end    end    class OutputUrls -    attr_reader :fns,:fnb,:cmd,:dir,:m_regular,:u +    attr_reader :fns,:fnb,:act,:dir,:m_regular,:u      def initialize(opt)        @opt=opt        @particulars=SiSU_Particulars::CombinedSingleton.instance.get_env_md(opt) -      @cmd=@opt.cmd +      if @particulars.is_a?(NilClass) +        if @opt.act[:verbose_plus][:set]==:on \ +        or @opt.act[:maintenance][:set]==:on +          SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). +            mark("@particulars is NilClass, acceptable e.g. for --harvest") +        end +        exit +      end +      @selections=@opt.selections.str +      @act=@opt.act        @md=@particulars.md        @env=@particulars.env        @fnb=@env.fnb @@ -95,308 +104,29 @@ module SiSU_Urls        @fn=SiSU_Env::EnvCall.new(@opt.fns).lang(fn_set_lang[:c])        @m_regular=/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/        @prog=@env.program -      @u ||= { -        'b --xhtml (XHTML)'=>@fn[:xhtml], -        'D[iu] --psql (DBI import/update postgresql)'=>'dbi psql', -        'd --sqlite (DBI sqlite)'=>'dbi sqlite3', -        'd[iu] --sqlite (DBI sqlite)'=>'dbi sqlite3', -        'e --epub (EPUB)'=>@fn[:epub], -        'P --pot (Pot)'=>@fn[:pot], -        'h --html (HTML segmented)'=>@fn[:toc], -        'h --html (HTML scroll)'=>@fn[:doc], -        'I --texinfo (Info file)'=>'info', -        'i --manpage (manpage)'=>'manpage', -        'm --ao (Document Abstraction)'=>'ao', -        'N --hash-digests (Digests sha512/sha256/md5)'=>@fn[:digest], -        'o --odt (ODF:ODT - Open Document)'=>@fn[:odf], -        'p --pdf (PDF landscape)'=>@fn[:pdf_l], -        'p --pdf (PDF portrait)'=>@fn[:pdf_p], -        'E --profile (Ruby profiler)'=>'profile', -        's --source (sisu markup)'=>@opt.fno, -        'S --sisupod (sisupod)'=>@fn[:sisupod], -        't --txt (Plain-text (endnotes))'=>@fn[:plain], -        '  --textile (textile txt)'=>@fn[:txt_textile], -        '  --asciidoc (AsciiDoc txt)'=>@fn[:txt_asciidoc], -        '  --markdown (markdown txt)'=>@fn[:txt_markdown], -        '  --rst (rST restructured-text)'=>@fn[:txt_rst], -        '  --docbook-book (DocBook Book)'=>@fn[:xml_docbook_book], -        '  --fictionbook (Fictionbook)'=>@fn[:xml_fictionbook], -        'x --xml-sax (XML sax type)'=>@fn[:sax], -        'X --xml-dom (XML dom type)'=>@fn[:dom], -        '  --xml-scaffold-sisu (XML scaffold)'=>@fn[:xml_scaffold_structure_sisu], -        '  --xml-scaffold-collapse (XML scaffold)'=>@fn[:xml_scaffold_structure_collapse], -        'Q --qrcode (QR Code jpg)'=>@fn[:qrcode], -        'y --manifest (Manifest, html)'=>@fn[:manifest], -        'Y (Sitemap, xml)'=>@fn[:sitemap], -        'w --concordance (Concordance, html)'=>@fn[:concordance], -      }.sort {|a,b| a[0].downcase<=>b[0].downcase}      end      def songsheet        begin -       @opt.cmd=~/U/ ? urls_all : (urls_select unless @opt.act[:quiet][:set]==:on) +        (@opt.act[:urls_all][:set]==:on) \ +        ? urls_all \ +        : (urls_select unless @opt.act[:quiet][:set]==:on)        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure        end      end      def show -      def source -        def src(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.text_editor} #{@md.file.output_path.src.dir}/#{y}" -          ).result -        end -        def pod(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.sisupod.dir}/#{y}" -          ).result -        end -        self -      end -      def generic(x,y) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} #{@env.url.output_tell}/#{@fnb}/#{y}" -        ).result -      end -      def meta(x,y) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.text_editor} ~#{y}/#{@fnb}.#{y}" -        ).result -      end -      def text(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.txt.dir}/#{@md.file.base_filename.txt}" -        ).result -      end -      def textile(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.textile.dir}/#{@md.file.base_filename.textile}" -        ).result -      end -      def asciidoc(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.asciidoc.dir}/#{@md.file.base_filename.asciidoc}" -        ).result -      end -      def markdown(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.markdown.dir}/#{@md.file.base_filename.markdown}" -        ).result -      end -      def rst(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.rst.dir}/#{@md.file.base_filename.rst}" -        ).result -      end -      def epub(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.epub_viewer} #{@md.file.output_path.epub.dir}/#{@md.file.base_filename.epub}" -        ).result -      end -      def html -        def scroll(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.html_scroll.dir}/#{@md.file.base_filename.html_scroll}" -          ).result -        end -        def toc(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}" -          ).result -        end -        def concordance(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.html_concordance.dir}/#{@md.file.base_filename.html_concordance}" -          ).result -        end -        def manifest(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.manifest.dir}/#{@md.file.base_filename.manifest}" -          ).result -        end -        self -      end -      def qrcode(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.manifest.dir}/#{@md.file.base_filename.manifest}" -        ).result -      end -      def odt(x) +      def report(x)          SiSU_Screen::Ansi.new(            @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.odf_viewer} file://#{@md.file.output_path.odt.dir}/#{@md.file.base_filename.odt}" +          "[#{@opt.f_pth[:lng_is]}]", +          x[:cmd], +          x[:viewer] + ' ' \ +          + x[:f_pth]          ).result        end -      def pdf -        def portrait(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_p}#{@md.papersize_array[0]}.pdf" -          ).result -        end -        def landscape(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_l}#{@md.papersize_array[0]}.pdf" -          ).result -        end -        self -      end -      def manpage(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.manpage_viewer} #{@md.file.output_path.manpage.dir}/#{@md.file.base_filename.manpage}" -        ).result -      end -      def pinfo(x,y) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "cd #{@md.file.output_path.texinfo.dir} && #{@env.program.texinfo} #{@md.file.base_filename.info}; cd -" -        ).result -      end -      def po4a -        def po(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "-#{x}", -            "#{@prog.text_editor} #{@md.file.output_path.po.dir}/#{y}" -          ).result -        end -        def pot(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "-#{x}", -            "#{@prog.text_editor} #{@md.file.output_path.pot.dir}/#{y}" -          ).result -        end -        self -      end -      def xhtml(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.xhtml.dir}/#{@md.file.base_filename.xhtml}" -        ).result -      end -      def xml -        def sax(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_sax.dir}/#{@md.file.base_filename.xml_sax}" -          ).result -        end -        def dom(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set],"[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_dom.dir}/#{@md.file.base_filename.xml_dom}" -          ).result -        end -        def docbook_book(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_docbook_book.dir}/#{@md.file.base_filename.xml_docbook_book}" -          ).result -        end -        def fictionbook(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_fictionbook.dir}/#{@md.file.base_filename.xml_fictionbook}" -          ).result -        end -        def scaffold_structure_sisu(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_scaffold_structure_sisu.dir}/#{@md.file.base_filename.xml_scaffold_structure_sisu}" -          ).result -        end -        def scaffold_structure_collapse(x) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.xml_scaffold_structure_collapse.dir}/#{@md.file.base_filename.xml_scaffold_structure_collapse}" -          ).result -        end -        def sitemap(x) #BROKEN -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "#{@prog.web_browser} file://#{@md.file.output_path.sitemaps.dir}/#{@md.file.base_filename.sitemap}" -          ).result -        end -        self -      end -      def hash_digest(x) -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          "[#{@opt.f_pth[:lng_is]}] -#{x}", -          "#{@prog.web_browser} file://#{@md.file.output_path.hash_digest.dir}/#{@md.file.base_filename.hash_digest}" -        ).result -      end -      def db -        def psql(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x} DBI psql","#{@pwd_stub}::#{@opt.fns}", -            y -          ).result -        end -        def sqlite(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x} DBI sqlite", -            "sqlite3 #{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}/sisu_sqlite.db" -          ).result -        end -        def sqlite_discrete(x,y) -          SiSU_Screen::Ansi.new( -            @opt.act[:color_state][:set], -            "[#{@opt.f_pth[:lng_is]}] -#{x}", -            "sqlite3 #{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}" -          ).result -        end -        self -      end        self      end      def urls_maintenance(opt,x,y) @@ -472,8 +202,341 @@ module SiSU_Urls          end        end      end +    def report_info +      def dal +        { +          cmd: '--ao', +          fn: 'ao', +         } +      end +      def hash_digests +        { +          cmd: '--hash-digests (sha512/sha256/md5)', +          viewer: @prog.web_browser, +          f_pth: @md.file.output_path.hash_digest.dir + '/' \ +          + @md.file.base_filename.hash_digest, +          fn: @fn[:digest], +         } +      end +      def text +        def txt +          { +            cmd: '--txt', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.txt.dir + '/' \ +            + @md.file.base_filename.txt, +            fn: @fn[:plain], +           } +        end +        def asciidoc +          { +            cmd: '--asciidoc', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.asciidoc.dir + '/' \ +            + @md.file.base_filename.asciidoc, +            fn: @fn[:txt_asciidoc], +           } +        end +        def markdown +          { +            cmd: '--markdown', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.markdown.dir + '/' \ +            + @md.file.base_filename.markdown, +            fn: @fn[:txt_markdown], +           } +        end +        def rst +          { +            cmd: '--rst', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.rst.dir + '/' \ +            + @md.file.base_filename.rst, +            fn: @fn[:txt_rst], +           } +        end +        def textile +          { +            cmd: '--textile', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.textile.dir + '/' \ +            + @md.file.base_filename.textile, +            fn: @fn[:txt_textile], +           } +        end +        self +      end +      def html +        def seg +          { +            cmd: '--html-seg', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.html_seg.dir + '/' \ +            + @md.file.base_filename.html_segtoc, +            fn: @fn[:toc], +           } +        end +        def scroll +          { +            cmd: '--html-scroll', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.html_scroll.dir + '/' \ +            + @md.file.base_filename.html_scroll, +            fn: @fn[:doc], +           } +        end +        def concordance +          { +            cmd: '--concordance', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.html_concordance.dir + '/' \ +            + @md.file.base_filename.html_concordance, +            fn: @fn[:concordance], +           } +        end +        self +      end +      def xhtml +        def xhtml +          { +            cmd: '--xhtml', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xhtml.dir + '/' \ +            + @md.file.base_filename.xhtml, +            fn: @fn[:xhtml], +           } +        end +        def epub +          { +            cmd: '--epub', +            viewer: @prog.epub_viewer, +            f_pth: @md.file.output_path.epub.dir + '/' \ +            + @md.file.base_filename.epub, +            fn: @fn[:epub], +           } +        end +        self +      end +      def xml +        def odt +          { +            cmd: '--odt (ODF:ODT)', +            viewer: @prog.odf_viewer, +            f_pth: @md.file.output_path.odt.dir + '/' \ +            + @md.file.base_filename.odt, +            fn: @fn[:odf], +           } +        end +        def docbook +          { +            cmd: '--docbook', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_docbook_book.dir + '/' \ +            + @md.file.base_filename.xml_docbook_book, +            fn: @fn[:xml_docbook_book], +           } +        end +        def fictionbook +          { +            cmd: '--fictionbook', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_fictionbook.dir + '/' \ +            + @md.file.base_filename.xml_fictionbook, +            fn: @fn[:xml_fictionbook], +           } +        end +        def sax +          { +            cmd: '--xml-sax', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_sax.dir + '/' \ +            + @md.file.base_filename.xml_sax, +            fn: @fn[:sax], +           } +        end +        def dom +          { +            cmd: '--xml-dom', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_dom.dir + '/' \ +            + @md.file.base_filename.xml_dom, +            fn: @fn[:dom], +           } +        end +        def scaffold_sisu +          { +            cmd: '--xml-scaffold-sisu', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_scaffold_structure_sisu.dir + '/' \ +            + @md.file.base_filename.xml_scaffold_structure_sisu, +            fn: @fn[:xml_scaffold_structure_sisu], +           } +        end +        def scaffold_collapse +          { +            cmd: '--xml-scaffold-collapse', +            viewer: @prog.web_browser, +            f_pth: @md.file.output_path.xml_scaffold_structure_collapse.dir + '/' \ +            + @md.file.base_filename.xml_scaffold_structure_collapse, +            fn: @fn[:xml_scaffold_structure_collapse], +           } +        end +        self +      end +      def pdf +        def landscape +          { +            cmd: '--pdf (landscape)', +            viewer: @prog.pdf_viewer, +            f_pth: @md.file.output_path.pdf.dir + '/' \ +            + @md.file.base_filename.pdf_l \ +            + @md.papersize_array[0] + '.pdf', +            fn: @fn[:pdf_l], +           } +        end +        def portrait +          { +            cmd: '--pdf (portrait)', +            viewer: @prog.pdf_viewer, +            f_pth: @md.file.output_path.pdf.dir + '/' \ +            + @md.file.base_filename.pdf_p \ +            + @md.papersize_array[0] + '.pdf', +            fn: @fn[:pdf_p], +           } +        end +        self +      end +      def manpage +        { +          cmd: '--manpage', +          viewer: @prog.manpage_viewer, +          f_pth: @md.file.output_path.manpage.dir + '/' \ +          + @md.file.base_filename.manpage, +          fn: 'manpage', +         } +      end +      def texinfo +        { +          cmd: '--texinfo', +          viewer: '', +          f_pth: 'cd ' \ +          + @md.file.output_path.texinfo.dir + ' && ' \ +          + @env.program.texinfo + ' ' \ +          + @md.file.base_filename.info \ +          + '; cd -', +          fn: 'info', +         } +      end +      def db +        def psql +          { +            cmd: '--psql --update/--import', +            viewer: '', +            f_pth: @pwd_stub + '::' \ +            + @opt.fns \ +            + 'dbi psql', +            fn: 'dbi psql', +           } +        end +        def sqlite +          { +            cmd: '--sqlite --update/--import', +            viewer: 'sqlite3 ', +            f_pth: @env.path.webserv + '/' \ +            + @md.opt.f_pth[:pth_stub] + '/' \ +            + 'sisu_sqlite.db', +            fn: 'dbi sqlite3', +           } +        end +        def sqlite_discrete +          { +            cmd: '--sqlite --update/--import', +            viewer: 'sqlite3 ', +            f_pth: @md.file.output_path.sqlite_discrete.dir + '/' \ +            + @md.file.base_filename.sqlite_discrete, +            fn: 'dbi sqlite3', +           } +        end +        self +      end +      def po4a +        def po +          { +            cmd: '--po4a/--pot', +            viewer: @prog.web_browser, +            f_pth: @prog.text_editor + ' ' \ +            + @md.file.output_path.po.dir \ +            + '/' + y, +            fn: @fn[:pot], +           } +        end +        def pot +          { +            cmd: '--po4a/--pot', +            viewer: @prog.web_browser, +            f_pth: @prog.text_editor + ' ' \ +            + @md.file.output_path.pot.dir \ +            + '/' + y, +            fn: @fn[:pot], +           } +        end +        self +      end +      def source +        { +          cmd: '--source (sisu markup)', +          viewer: @prog.text_editor, +          f_pth: @md.file.output_path.src.dir + '/' \ +          + @opt.fno, +          fn: @opt.fno, +         } +      end +      def sisupod +        { +          cmd: '--sisupod', +          viewer: @prog.web_browser, +          f_pth: @md.file.output_path.sisupod.dir + '/' \ +          + @opt.fno, +          fn: @fn[:sisupod], +         } +      end +      def ruby_profile +        { +          cmd: '--profile (ruby profiler)', +          fn: 'profile', +         } +      end +      def qrcode +        { +          cmd: '--qrcode', +          viewer: @prog.web_browser, +          f_pth: @md.file.output_path.manifest.dir + '/' \ +          + @md.file.base_filename.manifest, +          fn: @fn[:qrcode], +         } +      end +      def manifest +        { +          cmd: '--manifest', +          viewer: @prog.web_browser, +          f_pth: @md.file.output_path.manifest.dir + '/' \ +          + @md.file.base_filename.manifest, +          fn: @fn[:manifest], +         } +      end +      def sitemap +        { +          cmd: '--sitemap', +          viewer: @prog.web_browser, +          f_pth: @md.file.output_path.sitemaps.dir + '/' \ +          + @md.file.base_filename.sitemap, +          fn: @fn[:sitemap], +         } +      end +      self +    end      def urls_select -      unless @opt.cmd =~/q/ +      unless @opt.act[:quiet][:set]==:on          i1='[' + @opt.f_pth[:lng_is] + ']'          i2='file://' \          + @md.file.output_path.manifest.dir + '/' \ @@ -490,168 +553,129 @@ module SiSU_Urls              'URL (output manifest)',              i1, i2            ).grey_title_grey_blue -        SiSU_Screen::Ansi.new( -          @opt.act[:color_state][:set], -          i1, i2, -        ).flow if @opt.cmd =~/[MVv]/ +        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], +            i1, i2, +          ).flow +        end        end        m=/.+\/(?:src\/)?(\S+)/im # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m        @pwd_stub="#{@env.url.output_tell}"[m,1]        unless @opt.act[:quiet][:set]==:on -        @u.each do |x,y| -          if @opt.fns =~ @m_regular -            if (@opt.act[:verbose][:set]==:on \ -            || @opt.act[:verbose_plus][:set]==:on \ -            || @opt.act[:maintenance][:set]==:on) -              if x=~/--txt\b/ \ -              and @opt.act[:txt][:set]==:on -                show.text(x) -              end -              if x=~/--textile\b/ \ -              and @opt.act[:txt_textile][:set]==:on -                show.textile(x) -              end -              if x=~/--asciidoc\b/ \ -              and @opt.act[:txt_asciidoc][:set]==:on -                show.asciidoc(x) -              end -              if x=~/--markdown\b/ \ -              and @opt.act[:txt_markdown][:set]==:on -                show.markdown(x) -              end -              if x=~/--rst\b/ \ -              and @opt.act[:txt_rst][:set]==:on -                show.rst(x) -              end -              if x=~/--xhtml\b/ \ -              and @opt.act[:xhtml][:set]==:on -                show.xhtml(x) -              end -              if x=~/--psql\b/ \ -              and @opt.act[:psql][:set]==:on -                show.db.psql(x,y) -              end -              if x=~/d\s+--sqlite\b|--sql\b/ \ -              and @opt.act[:sqlite_discrete][:set]==:on -                show.db.sqlite_discrete(x,y) -              end -              if x=~/d\[iu\]\s+--sqlite\b/ \ -              and @opt.act[:sqlite][:set]==:on -                show.db.sqlite(x,y) -              end -              if x=~/--epub\b/ \ -              and @opt.act[:epub][:set]==:on -                show.epub(x) -              end -              if x=~/--html\b/ \ -              and (@opt.act[:html][:set]==:on \ -              or @opt.act[:html_scroll][:set]==:on \ -              or @opt.act[:html_seg][:set]==:on) -                if x =~/scroll/ -                  if @opt.act[:html_scroll][:set]==:on -                    show.html.scroll(x) -                  end -                else -                  if @opt.act[:html_seg][:set]==:on -                    show.html.toc(x) -                  end -                end -              end -              if x=~/--texinfo\b/ \ -              and @opt.cmd =~/I/ -                show.pinfo(x,y) -              end -              if x=~/--manpage\b/ \ -              and @opt.act[:manpage][:set]==:on -                show.manpage(x) -              end -              if x=~/--hash-digests\b/ \ -              and @opt.cmd =~/N/ -                show.hash_digest(x) -              end -              if x=~/--odt\b|--odf\b/ \ -              and @opt.act[:odt][:set]==:on -                show.odt(x) -              end -              if x=~/^P/ \ -              and @opt.cmd =~/P/ -                if @opt.fns =~/\S+?~\S{2}(?:_\S{2})?\.ss[mt]/ -                  f=y.gsub(/\.pot$/,'.po') -                  show.po4a.po(x,f) -                else -                  show.po4a.pot(x,f) -                end -              end -              if x=~/--pdf\b/ \ -              and (@opt.act[:pdf][:set]==:on \ -              or @opt.act[:pdf_p][:set]==:on \ -              or @opt.act[:pdf_l][:set]==:on) -                if x =~/portrait/ -                  if @opt.act[:pdf_p][:set]==:on -                    show.pdf.portrait(x) -                  end -                else -                  if @opt.act[:pdf_l][:set]==:on -                    show.pdf.landscape(x) -                  end -                end -              end -              if x=~/--sisupod\b/ \ -              and @opt.act[:sisupod][:set]==:on -                (@opt.fno =~/\.ssm$/) \ -                ? y.gsub(/(?:\~\S{2,3})?(\.ssm.sst\.txz)$/,'.ssm.txz') -                : y.gsub(/(?:\~\S{2,3})?(\.sst\.txz)$/,'\1') -                show.source.pod(x,y) -              end -              if x=~/--source\b/ \ -              and @opt.act[:share_source][:set]==:on -                show.source.src(x,y) -              end -              if x=~/--concordance\b/ \ -              and @opt.act[:concordance][:set]==:on -                show.html.concordance(x) -              end -              if x=~/--xml-dom\b/ \ -              and @opt.act[:xml_dom][:set]==:on -                show.xml.dom(x) -              end -              if x=~/--xml-sax\b/ \ -              and @opt.act[:xml_sax][:set]==:on -                show.xml.sax(x) -              end -              if x=~/--docbook-book\b/ \ -              and @opt.act[:xml_docbook_book][:set]==:on -                show.xml.docbook_book(x) -              end -              if x=~/--fictionbook\b/ \ -              and @opt.act[:xml_fictionbook][:set]==:on -                show.xml.fictionbook(x) -              end -              if x=~/--xml-scaffold-sisu\b/ \ -              and @opt.act[:xml_scaffold_structure_sisu][:set]==:on -                show.xml.scaffold_structure_sisu(x) +        if @opt.fns =~ @m_regular +          if (@opt.act[:verbose][:set]==:on \ +          || @opt.act[:verbose_plus][:set]==:on \ +          || @opt.act[:maintenance][:set]==:on) +            if @opt.act[:txt][:set]==:on +              show.report(report_info.text.txt) +            end +            if @opt.act[:txt_textile][:set]==:on +              show.report(report_info.text.textile) +            end +            if @opt.act[:txt_asciidoc][:set]==:on +              show.report(report_info.text.asciidoc) +            end +            if @opt.act[:txt_markdown][:set]==:on +              show.report(report_info.text.markdown) +            end +            if @opt.act[:txt_rst][:set]==:on +              show.report(report_info.text.rst) +            end +            if (@opt.act[:html][:set]==:on \ +            or @opt.act[:html_scroll][:set]==:on \ +            or @opt.act[:html_seg][:set]==:on) +              if @opt.act[:html_scroll][:set]==:on +                show.report(report_info.html.scroll)                end -              if x=~/--xml-scaffold-collapse\b/ \ -              and @opt.act[:xml_scaffold_structure_collapse][:set]==:on -                show.xml.scaffold_structure_collapse(x) +              if @opt.act[:html_seg][:set]==:on +                show.report(report_info.html.seg)                end -              if x=~/--qrcode\b/ \ -              and @opt.act[:qrcode][:set]==:on -                show.qrcode(x) +            end +            if @opt.act[:concordance][:set]==:on +              show.report(report_info.html.concordance) +            end +            if @opt.act[:xhtml][:set]==:on +              show.report(report_info.xhtml.xhtml) +            end +            if @opt.act[:epub][:set]==:on +              show.report(report_info.xhtml.epub) +            end +            if @opt.act[:odt][:set]==:on +              show.report(report_info.xml.odt) +            end +            if @opt.act[:xml_dom][:set]==:on +              show.report(report_info.xml.dom) +            end +            if @opt.act[:xml_sax][:set]==:on +              show.report(report_info.xml.sax) +            end +            if @opt.act[:xml_docbook_book][:set]==:on +              show.report(report_info.xml.docbook) +            end +            if @opt.act[:xml_fictionbook][:set]==:on +              show.report(report_info.xml.fictionbook) +            end +            if @opt.act[:xml_scaffold_structure_sisu][:set]==:on +              show.report(report_info.xml.scaffold_structure_sisu) +            end +            if @opt.act[:xml_scaffold_structure_collapse][:set]==:on +              show.report(report_info.xml.scaffold_collapse) +            end +            if (@opt.act[:pdf][:set]==:on \ +            or @opt.act[:pdf_p][:set]==:on \ +            or @opt.act[:pdf_l][:set]==:on) +              if @opt.act[:pdf_p][:set]==:on +                show.report(report_info.pdf.portrait)                end -              if x=~/--sitemap\b/ \ -              and @opt.cmd =~/Y/ #BROKEN -                show.xml.sitemap(x) +              if @opt.act[:pdf_l][:set]==:on +                show.report(report_info.pdf.landscape)                end -              if x=~/--manifest\b/ \ -              and @opt.act[:manifest][:set]==:on -                show.html.manifest(x) +            end +            if @opt.act[:psql][:set]==:on +              show.report(report_info.db.psql) +            end +            if @opt.act[:sqlite_discrete][:set]==:on +              show.report(report_info.db.sqlite_discrete) +            end +            if @opt.act[:sqlite][:set]==:on +              show.report(report_info.db.sqlite) +            end +            if @opt.act[:texinfo][:set]==:on +              show.report(report_info.texinfo) +            end +            if @opt.act[:manpage][:set]==:on +              show.report(report_info.manpage) +            end +            if @opt.act[:hash_digests][:set]==:on +              show.report(report_info.hash_digests) +            end +            if @opt.act[:po4a][:set]==:on +              if @opt.fns =~/\S+?~\S{2}(?:_\S{2})?\.ss[mt]/ +                f=y.gsub(/\.pot$/,'.po') +                show.po4a.po(x,f) +              else +                show.po4a.pot(x,f)                end              end -            if (@opt.act[:verbose_plus][:set]==:on \ -            || @opt.act[:maintenance][:set]==:on) -              urls_maintenance(@opt,x,y) +            if @opt.act[:share_source][:set]==:on +              show.report(report_info.source) +            end +            if @opt.act[:sisupod][:set]==:on +              show.report(report_info.sisupod)              end +            if @opt.act[:qrcode][:set]==:on +              show.report(report_info.qrcode) +            end +            if @opt.act[:manifest][:set]==:on +              show.report(report_info.manifest) +            end +          end +          if (@opt.act[:verbose_plus][:set]==:on \ +          || @opt.act[:maintenance][:set]==:on) +            urls_maintenance(@opt,x,y)            end          end        end diff --git a/lib/sisu/v5/utils_screen_text_color.rb b/lib/sisu/v5/utils_screen_text_color.rb index 42b0c698..d50b39b6 100644 --- a/lib/sisu/v5/utils_screen_text_color.rb +++ b/lib/sisu/v5/utils_screen_text_color.rb @@ -51,7 +51,7 @@   * Git     <http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> -   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/screen_text_color.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/utils_screen_text_color.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -269,7 +269,7 @@ module SiSU_Screen        blue      end      def result -      puts "\t#{@cX.green}#{@txt[0]}#{@cX.off} #{@cX.blue}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}" +      puts "\t#{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.green}#{@txt[1]}#{@cX.off} #{@cX.blue}#{@txt[2]}#{@cX.off}"      end      def maintenance        puts "\t#{@cX.grey}#{@txt[0]}#{@cX.off} #{@cX.brown}#{@txt[1]}#{@cX.off} #{@cX.grey}#{@txt[2]}#{@cX.off}" diff --git a/lib/sisu/v5/wikispeak.rb b/lib/sisu/v5/wikispeak.rb index a0fba849..198ea11b 100644 --- a/lib/sisu/v5/wikispeak.rb +++ b/lib/sisu/v5/wikispeak.rb @@ -102,7 +102,7 @@ module SiSU_Wikispeak          @ao_array=SiSU_AO::Source.new(@opt).get # ao file drawn here          SiSU_Wikispeak::Source::Scroll.new(@ao_array,@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/xhtml.rb b/lib/sisu/v5/xhtml.rb index 4253e8eb..14c6bfe9 100644 --- a/lib/sisu/v5/xhtml.rb +++ b/lib/sisu/v5/xhtml.rb @@ -116,7 +116,7 @@ module SiSU_XHTML          end          SiSU_XHTML::Source::Songsheet.new(@particulars).song        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -140,7 +140,7 @@ module SiSU_XHTML            end            SiSU_Rexml::Rexml.new(@md,@file.place_file.xhtml.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure @@ -310,8 +310,8 @@ WOK          @rcdc=false          @level,@cont,@copen,@xml_contents_close=[],[],[],[]          xml_head -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          data.each do |dob|            dob=@trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8            dob=@trans.markup(dob) @@ -337,6 +337,7 @@ WOK                  when 4 then x.heading_body4                  when 5 then x.heading_body5                  when 6 then x.heading_body6 +                when 7 then x.heading_body7                  end                else                  if dob.is ==:verse diff --git a/lib/sisu/v5/xhtml_epub2.rb b/lib/sisu/v5/xhtml_epub2.rb index 9b110497..ae83214e 100644 --- a/lib/sisu/v5/xhtml_epub2.rb +++ b/lib/sisu/v5/xhtml_epub2.rb @@ -135,7 +135,7 @@ module SiSU_XHTML_EPUB2          SiSU_XHTML_EPUB2::Source::Seg.new(@md,data).songsheet          SiSU_XHTML_EPUB2::Source::Output.new(@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -148,7 +148,7 @@ module SiSU_XHTML_EPUB2              end            end          end -        SiSU_Env::Clear.new(@opt.cmd,@opt.fns).param_instantiate +        SiSU_Env::Clear.new(@opt.selections.str,@opt.fns).param_instantiate          @@flag,@@scr,@@seg,@@seg_endnotes,@@seg_subtoc,@@seg_ad={},{},{},{},{},{}          @@seg_total,@@tracker,@@loop_count,@@tablehead,@@number_of_cols=0,0,0,0,0          @@seg_name,@@seg_name_html,@@seg_subtoc_array,@@seg_endnotes_array,@@segtocband,@@tablefoot=Array.new(7){[]} @@ -268,6 +268,7 @@ module SiSU_XHTML_EPUB2                lv_name='section_a' + @s_a_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4] @@ -275,7 +276,8 @@ module SiSU_XHTML_EPUB2                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[1]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[0] -              @ncxo[0],@ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false,false,false +              @ncxo[0],@ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                if @level_a_first_occurrence \                && @make.build.toc? @@ -293,13 +295,15 @@ module SiSU_XHTML_EPUB2                lv_name='section_b' + @s_b_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[1] -              @ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false,false +              @ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -311,12 +315,14 @@ module SiSU_XHTML_EPUB2                lv_name='section_c' + @s_c_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2] -              @ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false +              @ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -328,11 +334,13 @@ module SiSU_XHTML_EPUB2                lv_name='section_d' + @s_d_no.to_s                @nav_no+=1                @nav_no3=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3] -              @ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false +              @ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -344,10 +352,12 @@ module SiSU_XHTML_EPUB2                lv_name=dob_toc.name                @nav_no+=1                @dob_name=dob.name +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4] -              @ncxo[4],@ncxo[5],@ncxo[6]=true,false,false +              @ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name) @@ -358,9 +368,11 @@ module SiSU_XHTML_EPUB2                hashtag='#o' + dob_toc.ocn.to_s                lv_name=@dob_name                @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5] -              @ncxo[5],@ncxo[6]=true,false +              @ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false, false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag) @@ -371,13 +383,27 @@ module SiSU_XHTML_EPUB2                hashtag='#o' + dob_toc.ocn.to_s                lv_name=@dob_name                @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6] -              @ncxo[6]=true +              @ncxo[6],@ncxo[7]= +                true,  false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag)                md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name,hashtag)                SiSU_XHTML_EPUB2::Source::Toc.new(@md,dob_toc).level_6 +            when 7 +              @ncx_cls=[] +              hashtag='#o' + dob_toc.ocn.to_s +              lv_name=@dob_name +              @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7] +              @ncxo[7]=true +              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc +              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag) +              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name,hashtag) +              SiSU_XHTML_EPUB2::Source::Toc.new(@md,dob_toc).level_7              else nil              end              toc.each do |k,d| @@ -393,7 +419,7 @@ module SiSU_XHTML_EPUB2                  @@toc[:seg] << toc[:seg]                  @@toc[:scr] << toc[:seg]                rescue -                SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +                SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do                    __LINE__.to_s + ':' + __FILE__                  end                end @@ -594,6 +620,27 @@ module SiSU_XHTML_EPUB2          end          toc        end +      def level_7 +        dob=@data +        linkname=dob.obj.gsub(/#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/,'').strip +        ocn=dob.ocn +        toc={} +        if ocn \ +        and ocn !~/#/ +          p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn) +          lnk_n_txt=%{  <a href="#{@@seg_url}#{Sfx[:epub_xhtml]}#o#{ocn}"> +  #{linkname} +</a>} +          txt_obj={ txt: lnk_n_txt } +          format_toc=SiSU_XHTML_EPUB2_Format::FormatToc.new(@md,txt_obj) +          toc[:seg]=format_toc.lev7 +          title=%{#{p_num.goto}#{linkname}</a>} +          txt_obj={ txt: title } +          format_toc=SiSU_XHTML_EPUB2_Format::FormatToc.new(@md,txt_obj) +          toc[:scr]=format_toc.lev7 +        end +        toc +      end      end      class ScrollHeadAndSegToc < Toc        def initialize(md='',toc='',links_guide_toc='') @@ -726,7 +773,7 @@ module SiSU_XHTML_EPUB2            end            out.close          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -741,7 +788,7 @@ module SiSU_XHTML_EPUB2            end            out.close          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -818,7 +865,7 @@ WOK              filename_xhtml.close            end          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -836,7 +883,7 @@ WOK              filename_xhtml.close            end          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end diff --git a/lib/sisu/v5/xhtml_epub2_concordance.rb b/lib/sisu/v5/xhtml_epub2_concordance.rb index 447dd72e..0bdaff3c 100644 --- a/lib/sisu/v5/xhtml_epub2_concordance.rb +++ b/lib/sisu/v5/xhtml_epub2_concordance.rb @@ -96,7 +96,7 @@ module SiSU_XHTML_EPUB2_Concordance            SiSU_XHTML_EPUB2_Concordance::Source::Words.new(@particulars).songsheet          end        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -181,7 +181,7 @@ WOK            @rgx_splitlist=%r{[—.,;:-]+|#{Mx[:nbsp]}+}mi            @rgx_scanlist=%r{#{Mx[:fa_italics_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_italics_c]}|#{Mx[:fa_bold_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_bold_c]}|#{Mx[:url_o]}https?://\S+?#{Mx[:url_c]}|file://\S+|<\S+?>|\w+|[a-zA-Z]+}mi          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          end @@ -195,7 +195,7 @@ WOK            @file_concordance=File.open("#{@path}/content/#{@md.fn[:epub_concord]}",'w')            map_para          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure diff --git a/lib/sisu/v5/xhtml_epub2_format.rb b/lib/sisu/v5/xhtml_epub2_format.rb index 6522378b..5f1f315f 100644 --- a/lib/sisu/v5/xhtml_epub2_format.rb +++ b/lib/sisu/v5/xhtml_epub2_format.rb @@ -162,7 +162,7 @@ module SiSU_XHTML_EPUB2_Format      padding-left: 0em;      text-indent: 0mm;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -992,18 +992,18 @@ module SiSU_XHTML_EPUB2_Format      font-weight: bold;    } -  h0, h1, h2, h3, h4, h5, h6 { +  h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight: bold;      line-height: 120%;      text-align: left;      margin-top: 20px;      margin-bottom: 10px;    } -  h4.norm, h5.norm, h6.norm { +  h4.norm, h5.norm, h6.norm, h7.norm {      margin-top: 10px;      margin-bottom: 0px;    } -  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center { +  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {      text-align: center;    }    h1 { font-size: 120%; } @@ -1012,6 +1012,7 @@ module SiSU_XHTML_EPUB2_Format    h4 { font-size: 105%; }    h5 { font-size: 100%; }    h6 { font-size: 100%; } +  h7 { font-size: 100%; }    h0 { font-size: 80%; }    h1.i {margin-left: 2em;} @@ -1059,6 +1060,11 @@ module SiSU_XHTML_EPUB2_Format      font-size: 90%;      line-height: 110%;    } +  h7.toc { +    margin-left: 7em; +    font-size: 90%; +    line-height: 105%; +  }    .microtoc {      margin-top: 2px; @@ -1092,6 +1098,11 @@ module SiSU_XHTML_EPUB2_Format      font-weight: normal;      font-size: 90%;    } +  h7.microtoc { +    margin-left: 30mm; +    font-weight: normal; +    font-size: 85%; +  }    .subtoc {      margin-right: 34%; @@ -1109,6 +1120,12 @@ module SiSU_XHTML_EPUB2_Format      margin-top: 0px;      margin-bottom: 0px;    } +  h7.subtoc { +    margin-left: 4em; +    font-size: 70%; +    margin-top: 0px; +    margin-bottom: 0px; +  }    div.substance {      width: 100%; @@ -1196,10 +1213,10 @@ module SiSU_XHTML_EPUB2_Format      background-color: #f9f9aa;    } -  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, p.c { +  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {      text-align: center    } -  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red { +  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {      text-align: center;      color: #ff0000;      margin-left: 5mm; @@ -1208,7 +1225,7 @@ module SiSU_XHTML_EPUB2_Format      margin-bottom: 20px;      margin-right: 15mm;    } -  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby { +  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {      text-align: center;      color: #990000;      margin-left: 5mm; @@ -2043,6 +2060,9 @@ output_epub_cont_seg.close      def seg_heading6        seg_heading_sub('p','bold',@txt)      end +    def seg_heading7 +      seg_heading_sub('p','bold',@txt) +    end      def dl #check :trailer        "<dl><b>#{@txt}</b> #{@trailer}</dl>"      end @@ -2149,6 +2169,9 @@ output_epub_cont_seg.close      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      def heading_sub(tag,attrib,txt)        txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        %{ @@ -2177,6 +2200,9 @@ output_epub_cont_seg.close      def heading6        heading_sub('p','bold',@txt)      end +    def heading7 +      heading_sub('h7','bold',@txt) +    end      def navigation_heading4        %{<table summary="navigation segment heading 4" width=100% bgcolor="#08163f" border="0">  <tr><td align="center"> @@ -2195,6 +2221,11 @@ output_epub_cont_seg.close    #{@txt}  </p>}      end +    def navigation_heading7 +      %{<p class="bold"> +  #{@txt} +</p>} +    end      def navigation_center        %{<p class="centerbold">#{@txt}</p>}      end @@ -2238,6 +2269,9 @@ output_epub_cont_seg.close      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +    end      def lev0 #docinfo        lev('h0','toc')      end diff --git a/lib/sisu/v5/xhtml_epub2_segments.rb b/lib/sisu/v5/xhtml_epub2_segments.rb index 917a4f92..98673c8f 100644 --- a/lib/sisu/v5/xhtml_epub2_segments.rb +++ b/lib/sisu/v5/xhtml_epub2_segments.rb @@ -146,7 +146,7 @@ WOK          SiSU_XHTML_EPUB2_Seg::Seg.new.cleanup # (((( added ))))          #### (((( END )))) ####        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -372,6 +372,8 @@ WOK              sto.seg_heading5            elsif dob.ln==6              sto.seg_heading6 +          elsif dob.ln==7 +            sto.seg_heading7            end          elsif dob.is==:para            if dob.indent \ @@ -486,7 +488,7 @@ WOK            end          end          if dob.is==:heading \ -        and dob.ln.to_s =~/^[56]/ +        and dob.ln.to_s =~/^[5-7]/            case dob.ln            when 5              format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob) @@ -494,6 +496,9 @@ WOK            when 6              format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob)              subtoc=format_seg.subtoc_lev6 #keep and make available, this is the subtoc +          when 7 +            format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob) +            subtoc=format_seg.subtoc_lev7 #keep and make available, this is the subtoc            end            @@seg_subtoc_array << subtoc          end diff --git a/lib/sisu/v5/xhtml_epub2_tune.rb b/lib/sisu/v5/xhtml_epub2_tune.rb index aa748cf6..c6d9f165 100644 --- a/lib/sisu/v5/xhtml_epub2_tune.rb +++ b/lib/sisu/v5/xhtml_epub2_tune.rb @@ -141,7 +141,7 @@ module SiSU_XHTML_EPUB2_Tune          end          SiSU_XHTML_EPUB2_Tune::Tune.new(@data,@md).output        rescue -        SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/xml_docbook5.rb b/lib/sisu/v5/xml_docbook5.rb index 8132a356..2a7f2fb0 100644 --- a/lib/sisu/v5/xml_docbook5.rb +++ b/lib/sisu/v5/xml_docbook5.rb @@ -83,12 +83,12 @@ module SiSU_XML_Docbook_Book          report          SiSU_XML_Docbook_Book::Source::Scroll.new(@ao_array,@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure -        #SiSU_Env::CreateSite.new(@opt.cmd).cp_css -        #SiSU_Env::CreateSite.new(@opt.cmd).cp_base_images +        #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 diff --git a/lib/sisu/v5/xml_dom.rb b/lib/sisu/v5/xml_dom.rb index a602eee3..fb7d3cb9 100644 --- a/lib/sisu/v5/xml_dom.rb +++ b/lib/sisu/v5/xml_dom.rb @@ -117,7 +117,7 @@ module SiSU_XML_DOM          end          SiSU_XML_DOM::Source::Songsheet.new(@particulars).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -141,7 +141,7 @@ module SiSU_XML_DOM            end            SiSU_Rexml::Rexml.new(@md,@file.place_file.xml_dom.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure @@ -226,12 +226,15 @@ WOK  WOK          if lv==4            @copen[1]=true -          @copen[2]=@copen[3]=false +          @copen[2]=@copen[3]=@copen[4]=false          elsif lv==5            @copen[2]=true -          @copen[3]=false +          @copen[3]=@copen[4]=false          elsif lv==6            @copen[3]=true +          @copen[4]=false +        elsif lv==7 +          @copen[4]=true          end        end        def xml_structure(dob,type='norm') @@ -259,21 +262,24 @@ WOK              @cont[2]=false if @cont[2]              @cont[3]=false if @cont[3]              ####### attempt to close contents -            if @copen[3] # 6~ +            if @copen[4] # 4~ +              [4,3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +              @copen[1]=@copen[2]=@copen[3]=@copen[4]=false +            elsif @copen[3] # 3~                [3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false -            elsif @copen[2] # 5~ +            elsif @copen[2] # 2~                [2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false -            elsif @copen[1] # 4~ +            elsif @copen[1] # 1~                [1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false              end              @@xml[:body] << "#{Ax[:tab]*y}</heading#{x}>" if @level[x]              @level[x]=false            end -        when 4..6 -          6.downto(lv) do |x| +        when 4..7 +          7.downto(lv) do |x|              if @level[x]==true                @xml_contents_close[x]=''              end @@ -284,42 +290,61 @@ WOK            case lv            when 4              @@xml[:body] << "#{Ax[:tab]*5}</content>" if @cont[1] -            if @copen[3]==true # 6~ +            if @copen[4]==true # 4~ +              [4,3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3]==true # 3~                [3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[2]==true # 5~ +            elsif @copen[2]==true # 2~                [2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[1]==true # 4~ +            elsif @copen[1]==true # 1~                [1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[1]=true            when 5 -            if @cont[2] \ +            if @cont[3] \ +            or @cont[2] \              or @cont[1]                @@xml[:body] << "#{Ax[:tab]*5}</content>"              end -            if @copen[3]==true  #6~ +            if @copen[4]==true  #4~ +              [4,3,2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3]==true  #3~                [3,2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[2]==true #5~ +            elsif @copen[2]==true #2~                [2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[2]=true            when 6 -            if @cont[3] \ +            if @cont[4] \ +            or @cont[3] \              or @cont[2] \              or @cont[1]                @@xml[:body] << "#{Ax[:tab]*5}</content>"              end -            if @copen[3] #6{ +            if @copen[4] #4~ +              [4,3].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3] #3~                [3].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[3]=true +          when 7 +            if @cont[4] \ +            or @cont[3] \ +            or @cont[2] \ +            or @cont[1] +              @@xml[:body] << "#{Ax[:tab]*5}</content>" +            end +            if @copen[4] #4~ +              [4].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            end +            @cont[4]=true            end          end          xml_el ||=''          xml_element(dob,xml_el,xml_content,type)          if lv            @level[lv]=true -          ((lv+1)..6).each { |x| @level[x]=false } +          ((lv+1)..7).each { |x| @level[x]=false }          end        end        def add_to_body(dob,type='norm') @@ -367,8 +392,8 @@ WOK          @level,@cont,@copen,@xml_contents_close=[],[],[],[]          @rcdc=false          type='norm' -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          xml_head          data.each do |dob|            @trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8 @@ -420,6 +445,10 @@ WOK                      type="heading_content_#{dob.lv}"                      xml_structure(dob,type)                      dob.obj=x.heading_body6 +                  elsif dob.ln==7 +                    type="heading_content_#{dob.lv}" +                    xml_structure(dob,type) +                    dob.obj=x.heading_body7                    end                  else                    dob.ocn @@ -486,7 +515,7 @@ WOK            end          end          @content_flag=true -        6.downto(4) do |x| +        7.downto(4) do |x|            y=x - 1; v=x - 3            if @level[x]==true #2004w36 bug fix? watch/test previous logic broke on free.for.all @coontent_flag introduced              if @content_flag==true diff --git a/lib/sisu/v5/xml_fictionbook2.rb b/lib/sisu/v5/xml_fictionbook2.rb index 74afc6ad..c7c54b30 100644 --- a/lib/sisu/v5/xml_fictionbook2.rb +++ b/lib/sisu/v5/xml_fictionbook2.rb @@ -82,7 +82,7 @@ module SiSU_XML_Fictionbook          report          SiSU_XML_Fictionbook::Source::Scroll.new(@ao_array,@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/xml_format.rb b/lib/sisu/v5/xml_format.rb index 871ec487..fb2cff88 100644 --- a/lib/sisu/v5/xml_format.rb +++ b/lib/sisu/v5/xml_format.rb @@ -1115,6 +1115,9 @@ WOK      def heading_body6        heading_normal('h6','norm')      end +    def heading_body7 +      heading_normal('h7','norm') +    end      def title_header(tag,attrib)        %{  <div class="content"> @@ -1291,6 +1294,9 @@ WOK      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      #% para sisu      def header_sub(tag,attrib)        @txt=@txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') @@ -1303,12 +1309,6 @@ WOK  </div>  }      end -    def header5 -      header_sub('p','bold') -    end -    def header6 -      header_sub('p','bold') -    end      def header4        %{  <div class="substance"> @@ -1320,6 +1320,15 @@ WOK  </div>  }      end +    def header5 +      header_sub('p','bold') +    end +    def header6 +      header_sub('p','bold') +    end +    def header7 +      header_sub('p','bold') +    end      def navigation_header4        %{<table summary="navigation segment header 4" width=100% bgcolor="#08163f" border="0">  <tr><td align="center"> @@ -1338,6 +1347,11 @@ WOK    #{@txt}  </p>}      end +    def navigation_header7 +      %{<p class="bold"> +  #{@txt} +</p>} +    end      def navigation_center        "<center>#{@txt}</center>"      end @@ -1381,6 +1395,10 @@ WOK      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +      #lev('b','toc') +    end      def lev0 #docinfo        lev('h0','toc')      end @@ -1402,6 +1420,9 @@ WOK      def mini_lev6        lev('h6','minitoc')      end +    def mini_lev7 +      lev('h7','minitoc') +    end      def mini_lev0 #docinfo        lev('h0','minitoc')      end diff --git a/lib/sisu/v5/xml_odf_odt.rb b/lib/sisu/v5/xml_odf_odt.rb index 55c8d7ed..9598e189 100644 --- a/lib/sisu/v5/xml_odf_odt.rb +++ b/lib/sisu/v5/xml_odf_odt.rb @@ -111,13 +111,15 @@ module SiSU_XML_ODF_ODT              SiSU_Screen::Ansi.new(                @opt.act[:color_state][:set],                @opt.fns, -              "file://#{@md.file.output_path.odt.dir}/#{@md.file.base_filename.odt}" +              'file://' \ +              + @md.file.output_path.odt.dir + '/' \ +              + @md.file.base_filename.odt              ).flow            end          end          SiSU_XML_ODF_ODT::Source::Scroll.new(@particulars).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -150,7 +152,7 @@ module SiSU_XML_ODF_ODT            unless (@md.opt.act[:verbose_plus][:set]==:on \            || @md.opt.act[:maintenance][:set]==:on)              if @env.processing_path.odt =~/od[ft]/ -              #p "rm -r #{@env.processing_path.odt}" if @md.opt.cmd =~/v/ +              #p "rm -r #{@env.processing_path.odt}" if @md.opt.selections.str =~/v/                FileUtils::rm_r(@env.processing_path.odf_pth)                #system("rm -r #{@env.processing_path.odt}")              end @@ -173,16 +175,19 @@ module SiSU_XML_ODF_ODT                if x =~/\S+/ then @n << x                end              end -          else              @n << n +          else                  @n << n            end          end        end        def odf_book_idx        if @md.book_idx -        idx_arr,idx_raw=[],SiSU_Particulars::CombinedSingleton.instance.get_idx_raw(@md.opt).raw_idx +        idx_arr=[] +        idx_raw=SiSU_Particulars::CombinedSingleton. +          instance.get_idx_raw(@md.opt).raw_idx          idx_raw.each do |x|            x=if x.is_a?(String) -            SiSU_XML_ODF_ODT_Format::FormatBookIndex.new(x).book_idx_bookmark +            SiSU_XML_ODF_ODT_Format::FormatBookIndex.new(x). +              book_idx_bookmark            else nil            end            idx_arr << x.strip if x.is_a?(String) @@ -191,7 +196,8 @@ module SiSU_XML_ODF_ODT        end        end        def odf_metadata -        @@odf[:metadata]=SiSU_Metadata::Summary.new(@md).odf.metadata +        @@odf[:metadata]=SiSU_Metadata::Summary.new(@md). +          odf.metadata        end        def odf_tail          manifest="#{@md.file.output_path.manifest.url}/#{@md.file.base_filename.manifest}" @@ -224,19 +230,22 @@ module SiSU_XML_ODF_ODT          @@docstart=false          if dob.use_ != :dummy            dob.tmp=dob.obj -          dob.obj=%{#{breakpage}<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">#{p_num[:set_ref]}#{set_bookmark_tag(dob)}#{dob.obj}#{p_num[:display]}</text:h>} +          dob.obj=%{#{breakpage}<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">} \ +          + %{#{p_num[:set_ref]}#{set_bookmark_tag(dob)}#{dob.obj}#{p_num[:display]}</text:h>}          else dob.tmp,dob.obj='',''          end          dob        end        def toc(dob,p_num) -        hardspace=(dob.lv =~/[A-C]/i) \ +        hardspace=(dob.lv =~/[A-D]/i) \          ? '<text:p text:style-name="Standard"/>'          : ''          toc_heading=dob.ocn \ -        ? %{<text:bookmark-ref text:reference-format="text" text:ref-name="#{dob.ocn}">#{dob.tmp}</text:bookmark-ref>} +        ? (%{<text:bookmark-ref text:reference-format="text" text:ref-name="#{dob.ocn}">} \ +          + %{#{dob.tmp}</text:bookmark-ref>})          : dob.tmp -        dob.obj=%{<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">#{toc_heading}</text:h>#{hardspace}} +        dob.obj=%{<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">} \ +        + %{#{toc_heading}</text:h>#{hardspace}}          dob        end        def image_src(i) @@ -253,7 +262,9 @@ module SiSU_XML_ODF_ODT                @md.opt.act[:color_state][:set],                "ERROR - image:",                %{"#{i}" missing}, -              "search locations: #{@env.path.image_source_include_local},#{@env.path.image_source_include_remote} and #{@env.path.image_source_include}" +              "search locations: #{@env.path.image_source_include_local}," \ +              + "#{@env.path.image_source_include_remote} and" \ +              + "#{@env.path.image_source_include}"              ).error2 unless @md.opt.act[:quiet][:set]==:on              nil            end @@ -271,7 +282,9 @@ module SiSU_XML_ODF_ODT              @md.opt.act[:color_state][:set],              "ERROR - image:",                %{"#{i}" missing}, -              "search locations: #{@env.path.image_source_include_local},#{@env.path.image_source_include_remote} and #{@env.path.image_source_include}" +              "search locations: #{@env.path.image_source_include_local}," \ +              + "#{@env.path.image_source_include_remote} and" \ +              + "#{@env.path.image_source_include}"            ).error2 unless @md.opt.act[:quiet][:set]==:on            nil          end @@ -280,8 +293,10 @@ module SiSU_XML_ODF_ODT          # copy image to od image directory (unless exists)          # divide pixel dimension by 37.79485 and retain 3 decimal places          m=img[1] -        i=/^(\S+?\.(?:png|jpg|gif))/.match(m).captures.join if m =~/^(\S+?\.(?:png|jpg|gif))/ -        c=/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/.match(m).captures.join if m =~/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/ +        i=/^(\S+?\.(?:png|jpg|gif))/.match(m).captures.join \ +          if m =~/^(\S+?\.(?:png|jpg|gif))/ +        c=/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/.match(m).captures.join \ +          if m =~/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/          w,h=/\s(\d+)x(\d+)/.match(m).captures if m =~/\s\d+x\d+/          w=(w.to_i/37.79485).to_s          h=(h.to_i/37.79485).to_s @@ -290,7 +305,10 @@ module SiSU_XML_ODF_ODT          image_source=image_src(i)          if image_source            if FileTest.file?("#{image_source}/#{i}") -            FileUtils::cp("#{image_source}/#{i}","#{@env.processing_path.odt}/Pictures/#{i}") +            FileUtils::cp( +              "#{image_source}/#{i}", +              "#{@env.processing_path.odt}/Pictures/#{i}" +            )            else STDERR.puts %{\t*WARN* did not find image - "#{image_source}/#{i}" [#{__FILE__}:#{__LINE__}]}            end          end @@ -325,7 +343,8 @@ module SiSU_XML_ODF_ODT        def text_link_odf(txt,url,trail)          txt=txt.gsub(/(\\\+)/,'+') #this is convoluted, and risky :-(          url=url.gsub(/(\\\+)/,'+') #this is convoluted, and risky :-( -        map_nametags=SiSU_Particulars::CombinedSingleton.instance.get_map_nametags(@md).nametags_map +        map_nametags=SiSU_Particulars::CombinedSingleton. +          instance.get_map_nametags(@md).nametags_map          t=case url          when /^https?:/            %{<text:a xl:type="simple" xl:href="#{url}">#{txt.strip}</text:a>#{trail}} @@ -342,7 +361,8 @@ module SiSU_XML_ODF_ODT            end            t=map_nametags[url] \            && map_nametags[url][:segname] \ -          ? %{<text:a xl:type="simple" xl:href="#{@env.url.root}/#{@md.fnb}/#{map_nametags[url][:segname]}#{Sfx[:html]}##{url}">#{txt.strip}</text:a>#{trail}} +          ? (%{<text:a xl:type="simple" xl:href="#{@env.url.root}/#{@md.fnb}/#{map_nametags[url][:segname]}#{Sfx[:html]}##{url}">} \ +            + %{#{txt.strip}</text:a>#{trail}})            : %{#{txt.strip}#{trail}}          end          t @@ -359,7 +379,8 @@ module SiSU_XML_ODF_ODT              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1").                gsub(/([+?*])/,"\\\\\\1") # problems with +              url=url.gsub(/([+?])/,"\\\\\\1") # problems with + -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:url_o]}#{url}#{Mx[:url_c]}/m,text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:url_o]}#{url}#{Mx[:url_c]}/m, +                text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -374,7 +395,8 @@ module SiSU_XML_ODF_ODT              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1").                gsub(/([+?*])/,"\\\\\\1") # problems with +              url=url.gsub(/([+?])/,"\\\\\\1") # problems with + -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m,text_link_odf_bookmark(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m, +                text_link_odf_bookmark(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -387,7 +409,8 @@ module SiSU_XML_ODF_ODT            m.each do |i|              txt,url,trail=i[1],i[2]              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1") -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m,text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m, +                text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -431,11 +454,13 @@ module SiSU_XML_ODF_ODT            @astx||=10000            @astxs||=20000            if str =~/#{Mx[:en_a_o]}\d+\s+/ -            str=str.gsub(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/,'<text:note text:id="ftn\1" text:note-class="footnote"><text:note-citation>\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>') +            str=str.gsub(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/, +              '<text:note text:id="ftn\1" text:note-class="footnote"><text:note-citation>\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>')            end            if str =~/#{Mx[:en_a_o]}([*]+)\s+/              a=$1.gsub(/([*])/,"\\\\\\1") -              str=str.gsub(/#{Mx[:en_a_o]}([*]+)\s+(.+?)#{Mx[:en_a_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_a_o]}([*]+)\s+(.+?)#{Mx[:en_a_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astxs+=1            end            if str=~/#{Mx[:en_a_o]}[*+]+\s/ @@ -444,7 +469,8 @@ module SiSU_XML_ODF_ODT                a=x[0].gsub(/([*+])/,"\\\\\\1")                str=group_clean(str)                str=footnote_urls(str) -              str=str.gsub(/#{Mx[:en_a_o]}(#{a})\s+(.+?)#{Mx[:en_a_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_a_o]}(#{a})\s+(.+?)#{Mx[:en_a_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astx+=1              end            end @@ -454,7 +480,8 @@ module SiSU_XML_ODF_ODT                a=x[0].gsub(/([*+])/,"\\\\\\1")                str=group_clean(str)                str=footnote_urls(str) -              str=str.gsub(/#{Mx[:en_b_o]}(#{a})\s+(.+?)#{Mx[:en_b_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_b_o]}(#{a})\s+(.+?)#{Mx[:en_b_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astx+=1              end            end @@ -495,7 +522,8 @@ module SiSU_XML_ODF_ODT          dob.obj.split(/#{Mx[:br_line]}|#{Mx[:br_nl]}/).each_with_index do |parablock,i|            set_ref=(i==0) ? "#{p_num[:set_ref]}#{set_bookmark_tag(dob)}" : ''            parablock=group_clean(parablock) -          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m,'<text:a xl:type="simple" xl:href="\1">'). +          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m, +              '<text:a xl:type="simple" xl:href="\1">').              gsub(/<(\/text:a)>/,'<\1>').              gsub(/<(text:note text:id=.+?)>/,'<\1>').              gsub(/<(text:p text:style-name="Footnote")>/,'<\1>'). @@ -519,13 +547,15 @@ module SiSU_XML_ODF_ODT          dob.obj.split(/#{Mx[:br_line]}|#{Mx[:br_nl]}/).each_with_index do |parablock,i|            set_ref=(i==0) ? "#{p_num[:set_ref]}#{set_bookmark_tag(dob)}" : ''            parablock=group_clean(parablock) -          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m,'<text:a xl:type="simple" xl:href="\1">'). +          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m, +              '<text:a xl:type="simple" xl:href="\1">').              gsub(/<(\/text:a)>/,'<\1>').              gsub(/<(text:note text:id=.+?)>/,'<\1>').              gsub(/<(text:p text:style-name="Footnote")>/,'<\1>').              gsub(/<(\/?text:(?:note-citation|note-body|note|p))>/,'<\1>')            parablock=footnote(parablock) -          parray << %{<text:p text:style-name="P_group">#{set_ref}#{parablock}</text:p>} if parablock =~/\S+/ +          parray << %{<text:p text:style-name="P_group">#{set_ref}#{parablock}</text:p>} \ +            if parablock =~/\S+/          end          dob.obj=parray.join \          + %{<text:p text:style-name="P_group">#{p_num[:display]}</text:p>} \ @@ -593,7 +623,7 @@ module SiSU_XML_ODF_ODT          if dob.is==:heading            @@odf[:body] << heading(dob,p_num).obj << break_line*2            if SiSU_Env::ProcessingSettings.new(md).build.toc? -            if dob.lv =~/[A-C1]/i +            if dob.lv =~/[A-D1]/i                @@odf[:toc] << toc(dob,p_num).obj              end            end @@ -623,8 +653,8 @@ module SiSU_XML_ODF_ODT          dir.path.odt_bld          @data_mod,@endnotes,@level,@cont,@copen,@odf_contents_close=Array.new(6){[]}          @rcdc=false -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @odf_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @odf_contents_close[x]='' }          odf_tail #($1,$2)          bullet=image_src('bullet_09.png')          if bullet @@ -636,7 +666,7 @@ module SiSU_XML_ODF_ODT          odf_book_idx          odf_metadata          data.each do |dob| -          #p dob.obj if dob.obj =~safe_characters and @md.opt.cmd =~/V/ #KEEP +          #p dob.obj if dob.obj =~safe_characters and @md.opt.selections.str =~/V/ #KEEP            dob.obj='' if dob.obj =~/#{Mx[:lv_o]}\d+:.*?#{Mx[:lv_c]}.+?#{Mx[:pa_non_object_dummy_heading]}/ #fix Mx[:lv_o]            para_array=[]            dob.obj=dob.obj.gsub(/</,'<').gsub(/>/,'>') @@ -668,7 +698,8 @@ module SiSU_XML_ODF_ODT            dob.obj=dob.obj.gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'<del>\1</del>').              gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'<ins>\1</ins>').              gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'<cite>\1</cite>'). -            gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'<text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/>'). #check +            gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/, +              '<text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/>'). #check              gsub(/#{Mx[:mk_o]}#([a-zA-Z]+)#{Mx[:mk_c]}/,'&\1;').              gsub(/#{Mx[:mk_o]}(#[0-9]+)#{Mx[:mk_c]}/,'&\1;').              gsub(/#{Mx[:mk_o]}[~-]##{Mx[:mk_c]}/,'') @@ -706,7 +737,8 @@ module SiSU_XML_ODF_ODT            wordlist=dob.obj.scan(/\S+/)            dob.obj=tidywords(wordlist).join(' ').strip            @rcdc=true if @rcdc==false \ -          and (dob.obj =~/~metadata/ or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o] +          and (dob.obj =~/~metadata/ \ +          or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o]            if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ #check              if defined? dob.ocn and dob.ocn =~/\d+/                @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn) @@ -835,7 +867,8 @@ WOK          end          od.close          opendoc=@md.file.base_filename.odt #watch where output by language -        FileUtils::mkdir_p(@md.file.output_path.odt.dir) unless FileTest.directory?(@md.file.output_path.odt.dir) +        FileUtils::mkdir_p(@md.file.output_path.odt.dir) \ +          unless FileTest.directory?(@md.file.output_path.odt.dir)          if FileTest.directory?(@env.processing_path.odt) \          and SiSU_Env::SystemCall.new.zip            pwd=Dir.pwd diff --git a/lib/sisu/v5/xml_odf_odt_format.rb b/lib/sisu/v5/xml_odf_odt_format.rb index bfbd075c..90ca1cba 100644 --- a/lib/sisu/v5/xml_odf_odt_format.rb +++ b/lib/sisu/v5/xml_odf_odt_format.rb @@ -166,6 +166,8 @@ module SiSU_XML_ODF_ODT_Format      end      def heading_body6      end +    def heading_body7 +    end    end    class Table      @@tablehead,@@table_counter=0,0 #reinitialise on new file diff --git a/lib/sisu/v5/xml_sax.rb b/lib/sisu/v5/xml_sax.rb index 58719798..69dc39a3 100644 --- a/lib/sisu/v5/xml_sax.rb +++ b/lib/sisu/v5/xml_sax.rb @@ -116,7 +116,7 @@ module SiSU_XML_SAX          end          SiSU_XML_SAX::Source::Songsheet.new(@particulars).song        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure @@ -141,7 +141,7 @@ module SiSU_XML_SAX            end            SiSU_Rexml::Rexml.new(@md,@file.place_file.xml_sax.dir).xml if @md.opt.act[:maintenance][:set]==:on # test rexml parsing, comment out when not in use #debug          rescue -          SiSU_Errors::Rescued.new($!,$@,@md.opt.cmd,@md.fns).location do +          SiSU_Errors::Rescued.new($!,$@,@md.opt.selections.str,@md.fns).location do              __LINE__.to_s + ':' + __FILE__            end          ensure @@ -333,8 +333,8 @@ WOK          @endnotes,@level,@cont,@copen,@xml_contents_close=[],[],[],[],[]          @rcdc=false          xml_head -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          data.each do |dob|            @trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8            dob=@trans.markup(dob) @@ -361,6 +361,7 @@ WOK                    when 4 then x.heading_body4                    when 5 then x.heading_body5                    when 6 then x.heading_body6 +                  when 7 then x.heading_body7                    end                  else                    if dob.is==:verse @@ -415,7 +416,7 @@ WOK              dob.obj=dob.obj.gsub(/#{Mx[:pa_o]}:\S+#{Mx[:pa_c]}/,'') if dob.obj            end          end -        6.downto(4) do |x| +        7.downto(4) do |x|            y=x - 1; v=x - 3            @@xml[:body] << "#{Ax[:tab]*5}</content>\n#{Ax[:tab]*y}</contents#{v}>" if @level[x]==true          end @@ -423,7 +424,7 @@ WOK            y=x - 1            @@xml[:body] << "#{Ax[:tab]*y}</heading#{x}>" if @level[x]==true          end -        #6.downto(1) { |x| y=x - 1; @@xml[:body] << "#{Ax[:tab]*y}</level #{x}>" if @level[x]==true } +        #7.downto(1) { |x| y=x - 1; @@xml[:body] << "#{Ax[:tab]*y}</level #{x}>" if @level[x]==true }        end        def pre          rdf=SiSU_XML_Tags::RDF.new(@md) diff --git a/lib/sisu/v5/xml_scaffold_structure_collapsed.rb b/lib/sisu/v5/xml_scaffold_structure_collapsed.rb index f36c937f..25a3dea0 100644 --- a/lib/sisu/v5/xml_scaffold_structure_collapsed.rb +++ b/lib/sisu/v5/xml_scaffold_structure_collapsed.rb @@ -79,7 +79,7 @@ module SiSU_XML_Scaffold_Structure_Collapse          @md,@ao_array=@particulars.md,@particulars.ao_array          SiSU_XML_Scaffold_Structure_Collapse::Source::Scroll.new(@ao_array,@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/xml_scaffold_structure_sisu.rb b/lib/sisu/v5/xml_scaffold_structure_sisu.rb index 44344328..40df4fa8 100644 --- a/lib/sisu/v5/xml_scaffold_structure_sisu.rb +++ b/lib/sisu/v5/xml_scaffold_structure_sisu.rb @@ -79,7 +79,7 @@ module SiSU_XML_Scaffold_Structure_Sisu          @md,@ao_array=@particulars.md,@particulars.ao_array          SiSU_XML_Scaffold_Structure_Sisu::Source::Scroll.new(@ao_array,@md).songsheet        rescue -        SiSU_Errors::Rescued.new($!,$@,@opt.cmd,@opt.fns).location do +        SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do            __LINE__.to_s + ':' + __FILE__          end        ensure diff --git a/lib/sisu/v5/zap.rb b/lib/sisu/v5/zap.rb index 75707247..487d1fa5 100644 --- a/lib/sisu/v5/zap.rb +++ b/lib/sisu/v5/zap.rb @@ -75,7 +75,7 @@ module SiSU_Zap          unless @opt.act[:quiet][:set]==:on            tell=SiSU_Screen::Ansi.new(              @opt.act[:color_state][:set], -            "Clean files related to processing #{@opt.cmd} ->", +            "Clean files related to processing #{@opt.selections.str} ->",              "#{@opt.fns} -> #{zap_path}"            )            tell.warn diff --git a/lib/sisu/v6/ao_doc_str.rb b/lib/sisu/v6/ao_doc_str.rb index 2a96abb7..67670a55 100644 --- a/lib/sisu/v6/ao_doc_str.rb +++ b/lib/sisu/v6/ao_doc_str.rb @@ -1223,7 +1223,7 @@ module SiSU_AO_DocumentStructureExtract      end      def structure_info        def lv -        %w[A~ B~ C~ D~ 1 2 3] +        %w[A~ B~ C~ D~ 1 2 3 4]        end        def possible_parents(child)          case child @@ -1234,6 +1234,7 @@ module SiSU_AO_DocumentStructureExtract          when /1/  then 'A~, B~, C~, D~'          when /2/  then '1'          when /3/  then '2' +        when /4/  then '3'          end        end        def possible_children(parent) @@ -1244,20 +1245,21 @@ module SiSU_AO_DocumentStructureExtract          when /D~/ then '1'          when /1/  then '2'          when /2/  then '3' -        when /3/  then 'none' +        when /3/  then '4' +        when /4/  then 'none'          end        end        self      end      def document_structure_check_info(node,node_parent,status=:ok) -      node_ln=/^([0-6])/.match(node)[1].to_i -      node_parent_ln=/^([0-6])/.match(node_parent)[1].to_i +      node_ln=/^([0-7])/.match(node)[1].to_i +      node_parent_ln=/^([0-7])/.match(node_parent)[1].to_i        if status==:error \        or @md.opt.act[:maintenance][:set]==:on          puts %{node: #{node},    parent node: #{node_parent}  #{status.upcase}}          if status==:error -          node_ln=/^([0-6])/.match(node)[1].to_i -          node_parent_ln=/^([0-6])/.match(node_parent)[1].to_i +          node_ln=/^([0-7])/.match(node)[1].to_i +          node_parent_ln=/^([0-7])/.match(node_parent)[1].to_i            STDERR.puts %{current level: #{structure_info.lv[node_ln]} (possible parent levels: #{structure_info.possible_parents(structure_info.lv[node_ln])})  parent level:  #{structure_info.lv[node_parent_ln]} (possible child levels: #{structure_info.possible_children(structure_info.lv[node_parent_ln])})  SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"} @@ -1297,12 +1299,12 @@ SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"        required_headers_present?        data=@data        @o_array=[] -      node=ocn=ocn_dv=ocn_sp=ocnh=ocnh0=ocnh1=ocnh2=ocnh3=ocnh4=ocnh5=ocnh6=ocno=ocnp=ocnt=ocnc=ocng=ocni=ocnu=0 # h heading, o other, t table, g group, i image +      node=ocn=ocn_dv=ocn_sp=ocnh=ocnh0=ocnh1=ocnh2=ocnh3=ocnh4=ocnh5=ocnh6=ocnh7=ocno=ocnp=ocnt=ocnc=ocng=ocni=ocnu=0 # h heading, o other, t table, g group, i image        regex_exclude_ocn_and_node = /#{Rx[:meta]}|^@\S+?:\s|^4~endnotes|^#{Mx[:lv_o]}4:endnotes#{Mx[:lv_c]}|^\^~ |<:e[:_]\d+?>|^<:\#|<:- |<[:!]!4|<hr width|#{Mx[:br_endnotes]}|\A\s*\Z/mi #ocn here #  added with Tune.code #¡ -      parent=node1=node2=node3=node4=node5=node6=nil +      parent=node1=node2=node3=node4=node5=node6=node7=nil        node0='0:0;0'        @collapsed_lv0=0 -      @lev_occurences={ a: 0, b: 0, c: 0, d: 0, l1: 0, l2: 0, l3: 0 } +      @lev_occurences={ a: 0, b: 0, c: 0, d: 0, l1: 0, l2: 0, l3: 0, l4: 0 }        data.each do |dob|          h={}          if (dob.obj !~ regex_exclude_ocn_and_node || dob.is==:code) \ @@ -1336,7 +1338,8 @@ SKIPPED processing file: [#{@md.opt.lng}] "#{@md.fns}"            or ln.to_s =~@md.lv3 \            or ln.to_s =~@md.lv4 \            or ln.to_s =~@md.lv5 \ -          or ln.to_s =~@md.lv6) +          or ln.to_s =~@md.lv6 \ +          or ln.to_s =~@md.lv7)              if not dob.obj =~/~#|-#/                ocnh+=1              end @@ -1523,7 +1526,7 @@ or this level should be level :B~ rather than #{dob.lv}}                  warning_incorrect_parent_level_or_level(dob.obj)                  puts "parent is level 4~ & this level #{dob.lv}  either parent should be level 5~ -or this level should be 5~ rather #{dob.lv}" #level 6 +or this level should be 5~ rather #{dob.lv}"                  document_structure_check_info(node6,node4,:error)                  @collapsed_lv6=@collapsed_lv4+1                  node4 @@ -1549,6 +1552,59 @@ or this level should be 5~ rather #{dob.lv}" #level 6                end                collapsed_level=@collapsed_lv6                node,ocn_sp=node6,"h#{ocnh}" +            elsif ln==7 \ +            or ln=~@md.lv7 +              @lev_occurences[:l4] += 1 +              if not dob.obj =~/~#|-#/ +                ocn_flag=true +                ocnh7+=1 +                node7="7:#{ocnh7};#{ocn}" +              else +                ocn_flag=false +                node7="7:0;0" +              end +              parent=if node6 +                document_structure_check_info(node7,node6) +                @collapsed_lv7=@collapsed_lv6+1 +                node5 +              elsif node5 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts "parent is level 5~ & this level #{dob.lv} +either parent should be level 6~ +or this level should be 6~ rather #{dob.lv}" +                document_structure_check_info(node7,node5,:error) +                @collapsed_lv6=@collapsed_lv5+1 +                node5 +              elsif node4 +                warning_incorrect_parent_level_or_level(dob.obj) +                puts "parent is level 4~ & this level #{dob.lv} +either parent should be level 6~ +or this level should be 6~ rather #{dob.lv}" +                document_structure_check_info(node7,node4,:error) +                @collapsed_lv6=@collapsed_lv4+1 +                node4 +              elsif node3 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node3,:error) +                @collapsed_lv6=@collapsed_lv3+1 +                node3 +              elsif node2 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node2,:error) +                @collapsed_lv6=@collapsed_lv2+1 +                node2 +              elsif node1 +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node1,:error) +                @collapsed_lv6=@collapsed_lv1+1 +                node1 +              else +                warning_incorrect_parent_level_or_level(dob.obj) +                document_structure_check_info(node7,node0,:error) +                node0 +              end +              collapsed_level=@collapsed_lv7 +              node,ocn_sp=node7,"h#{ocnh}"              end            else              unless @lev_occurences[:l1] > 0 diff --git a/lib/sisu/v6/constants.rb b/lib/sisu/v6/constants.rb index 2a5e124c..38f0449a 100644 --- a/lib/sisu/v6/constants.rb +++ b/lib/sisu/v6/constants.rb @@ -267,8 +267,8 @@ else    }  end  Db={ -  name_prefix:               "SiSU#{SiSU_is[:version_dir]}b_", -  name_prefix_db:            "sisu_#{SiSU_is[:version_dir]}b_", +  name_prefix:               "SiSU#{SiSU_is[:version_dir]}c_", +  name_prefix_db:            "sisu_#{SiSU_is[:version_dir]}c_",    col_title:                  800,    col_title_part:             400,    col_title_edition:           10, diff --git a/lib/sisu/v6/css.rb b/lib/sisu/v6/css.rb index a2c75d3c..9cdb2d76 100644 --- a/lib/sisu/v6/css.rb +++ b/lib/sisu/v6/css.rb @@ -236,7 +236,7 @@ WOK      margin-bottom: 0px;      text-indent: 0mm;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -447,7 +447,7 @@ WOK      padding-left: 0em;      text-indent: 0em;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -1307,18 +1307,18 @@ WOK      font-weight: bold;    } -  h0, h1, h2, h3, h4, h5, h6 { +  h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight: bold;      line-height: 120%;      text-align: left;      margin-top: 20px;      margin-bottom: 10px;    } -  h4.norm, h5.norm, h6.norm { +  h4.norm, h5.norm, h6.norm, h7.norm {      margin-top: 10px;      margin-bottom: 0px;    } -  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center { +  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {      text-align: center;    }    h1 { font-size: 120%; } @@ -1327,6 +1327,7 @@ WOK    h4 { font-size: 105%; }    h5 { font-size: 100%; }    h6 { font-size: 100%; } +  h7 { font-size: 100%; }    h0 { font-size: 80%; }    h1.i {margin-left: 2em;} @@ -1418,6 +1419,8 @@ WOK    }    h6.banner {    } +  h7.banner { +  }    .toc {      font-weight: normal; @@ -1454,6 +1457,11 @@ WOK      font-size: 90%;      line-height: 110%;    } +  h7.toc { +    margin-left: 7em; +    font-size: 85%; +    line-height: 100%; +  }    .microtoc {      margin-top: 2px; @@ -1487,6 +1495,11 @@ WOK      font-weight: normal;      font-size: 90%;    } +  h7.microtoc { +    margin-left: 30mm; +    font-weight: normal; +    font-size: 85%; +  }    .subtoc {      margin-right: 34%; @@ -1504,6 +1517,12 @@ WOK      margin-top: 0px;      margin-bottom: 0px;    } +  h7.subtoc { +    margin-left: 4em; +    font-size: 70%; +    margin-top: 0px; +    margin-bottom: 0px; +  }    div.substance {      width: 100%; @@ -1629,15 +1648,19 @@ WOK      margin-left: 2em;      font-size: 85%;    } +  h7.minitoc { +    margin-left: 3em; +    font-size: 80%; +  }    h0.minitoc {      margin-left: 0em;      font-size: 90%;    } -  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, p.c { +  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {      text-align: center    } -  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red { +  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {      text-align: center;      color: #ff0000;      margin-left: 5mm; @@ -1646,7 +1669,7 @@ WOK      margin-bottom: 20px;      margin-right: 15mm;    } -  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby { +  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {      text-align: center;      color: #990000;      margin-left: 5mm; @@ -1856,6 +1879,11 @@ WOK        font-weight: bold;        text-align: left;      } +    text[class|="h7"] { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      text[class|="indent0"] {        padding-left: 10%;      } @@ -2591,6 +2619,11 @@ WOK        font-weight: bold;        text-align: left;      } +    text[class|="h7"] { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      text[class|="indent0"] {        padding-left: 10%;      } @@ -3271,6 +3304,11 @@ WOK        font-weight: bold;        text-align: left;      } +    para.h7 { +      font-size: 110%; +      font-weight: bold; +      text-align: left; +    }      table {        margin-left: 5%;        display: block; @@ -3427,6 +3465,11 @@ WOK        font-weight: bold;        text-align: left;      } +    p.h7 { +      font-size: 150%; +      font-weight: bold; +      text-align: left; +    }      ocn {        display: block;        text-align: right; diff --git a/lib/sisu/v6/db_create.rb b/lib/sisu/v6/db_create.rb index 4d551ee2..55eab144 100644 --- a/lib/sisu/v6/db_create.rb +++ b/lib/sisu/v6/db_create.rb @@ -264,6 +264,7 @@ module SiSU_DbCreate              lev4            SMALLINT,              lev5            SMALLINT,              lev6            SMALLINT, +            lev7            SMALLINT,              en_a            SMALLINT NULL,              en_z            SMALLINT NULL,              en_a_asterisk   SMALLINT NULL, @@ -506,9 +507,9 @@ module SiSU_DbCreate            %{COMMENT ON COLUMN doc_objects.metadata_tid              IS 'tie to title in metadata_and_text';},            %{COMMENT ON COLUMN doc_objects.lev_an -            IS 'doc level A-D 1-6';}, +            IS 'doc level A-D 1-4';},            %{COMMENT ON COLUMN doc_objects.lev -            IS 'doc level 0-6 \d\~';}, +            IS 'doc level 0-7 \d\~';},            %{COMMENT ON COLUMN doc_objects.seg              IS 'segment name from level number 4 (lv 1)';},            %{COMMENT ON COLUMN doc_objects.ocn @@ -547,6 +548,8 @@ module SiSU_DbCreate              IS 'document structure, level number 5';},            %{COMMENT ON COLUMN doc_objects.lev6              IS 'document structure, level number 6';}, +          %{COMMENT ON COLUMN doc_objects.lev7 +            IS 'document structure, level number 7';},            %{COMMENT ON COLUMN doc_objects.t_of              IS 'document structure, type of object (object is of)';},            %{COMMENT ON COLUMN doc_objects.t_is diff --git a/lib/sisu/v6/db_import.rb b/lib/sisu/v6/db_import.rb index 5b44b173..54a2f434 100644 --- a/lib/sisu/v6/db_import.rb +++ b/lib/sisu/v6/db_import.rb @@ -118,7 +118,7 @@ module SiSU_DbImport          puts "#{__FILE__}:#{__LINE__}" if @opt.act[:maintenance][:set]==:on        end        @id_n =0 if @col[:lid].nil? or @col[:lid].to_s.empty? -      @col[:lv0]=@col[:lv1]=@col[:lv2]=@col[:lv3]=@col[:lv4]=@col[:lv5]=@col[:lv6]=0 +      @col[:lv0]=@col[:lv1]=@col[:lv2]=@col[:lv3]=@col[:lv4]=@col[:lv5]=@col[:lv6]=@col[:lv7]=0        @db=SiSU_Env::InfoDb.new        @pdf_fn=SiSU_Env::FileOp.new(@md).base_filename        @@dl ||=SiSU_Env::InfoEnv.new.digest.length @@ -390,6 +390,7 @@ module SiSU_DbImport                when /1/ then @col[:lv1]+=1                when /2/ then @col[:lv2]+=1                when /3/ then @col[:lv3]+=1 +              when /4/ then @col[:lv4]+=1                end                @col[:lev]=@col[:plaintext]=@col[:body]=''              elsif data.is==:heading \ @@ -480,7 +481,8 @@ module SiSU_DbImport                @col[:lev]=@col[:plaintext]=@col[:body]=''              elsif data.is==:heading \              && data.ln==6 -              txt,@col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]=data.obj,data.ocn,data.lv,data.odv,data.osp,data.of,data.is,data.node,data.parent,'','' +              txt,       @col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]= +                data.obj,data.ocn,  data.lv,      data.odv,   data.osp,   data.of,    data.is,    data.node,  data.parent,  '',                 ''                @@seg_full=data.name if data.is==:heading && data.ln==6 && data.name #check data.name                @@seg ||='' #nil # watch                @col[:seg]=@@seg @@ -508,6 +510,37 @@ module SiSU_DbImport                t=SiSU_DbTuple::LoadDocuments.new(@conn,@col,@opt,@file_maint)                @tuple_array << t.tuple                @col[:lev]=@col[:plaintext]=@col[:body]='' +            elsif data.is==:heading \ +            && data.ln==7 +              txt,       @col[:ocn],@col[:lev_an],@col[:ocnd],@col[:ocns],@col[:t_of],@col[:t_is],@col[:node],@col[:parent],@col[:digest_clean],@col[:digest_all]= +                data.obj,data.ocn,  data.lv,      data.odv,   data.osp,   data.of,    data.is,    data.node,  data.parent,  '',                 '' +              @@seg_full=data.name if data.is==:heading && data.ln==7 && data.name #check data.name +              @@seg ||='' #nil # watch +              @col[:seg]=@@seg +              @col[:lv7]+=1 +              @col[:lid]+=1 +              @col[:lev]=7 +              @hname=if @col[:seg] \ +              and not @col[:seg].to_s.empty? +                @@hname=@col[:seg].to_s +              else @@hname +              end +              @env=SiSU_Env::InfoEnv.new(@md.fns) +              @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" +              txt=endnotes(txt).extract_any +              body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus +              @col[:body]=special_character_escape(body) +              plaintext=@col[:body].dup +              plaintext=strip_markup(plaintext) +              @col[:plaintext]=clean_searchable_text(plaintext) +              book_idx=book_idx_hash_to_str(data.idx) +              @col[:book_idx]=clean_searchable_text(book_idx) +              @en_a,@en_z=@en[0].first,@en[0].last if @en[0] +              @en_a_asterisk,@en_z_asterisk=@en_ast[0].first,@en_ast[0].last if @en_ast[0] +              @en_a_plus,@en_z_plus=@en_pls[0].first,@en_pls[0].last if @en_pls[0] +              t=SiSU_DbTuple::LoadDocuments.new(@conn,@col,@opt,@file_maint) +              @tuple_array << t.tuple +              @col[:lev]=@col[:plaintext]=@col[:body]=''                                                                                 #% :structure :layout :comment              elsif data.of==:structure \              || data.of==:layout \ diff --git a/lib/sisu/v6/db_load_tuple.rb b/lib/sisu/v6/db_load_tuple.rb index 46d29896..d1c3005b 100644 --- a/lib/sisu/v6/db_load_tuple.rb +++ b/lib/sisu/v6/db_load_tuple.rb @@ -69,8 +69,8 @@ module SiSU_DbTuple      def initialize(conn,col,opt,file_maint)        @conn,@col,@opt,@file_maint=conn,col,opt,file_maint        @col[:lev]=@col[:lev].to_i -      unless @col[:lev].inspect=~/^[0-6]/ \ -      or @col[:lev]==0..6 +      unless @col[:lev].inspect=~/^[0-7]/ \ +      or @col[:lev]==0..7          @col[:lev]=9        end        @col[:ocn]=0 unless @col[:ocn].inspect=~/\d+/ @@ -78,11 +78,11 @@ module SiSU_DbTuple      end      def tuple                                                                    #% import line        sql_entry=if @col[:en_a] -        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, en_a, en_z, t_of, t_is, node, parent, digest_clean, digest_all) " + -        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:en_a]}', '#{@col[:en_z]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');" +        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, lev7, en_a, en_z, t_of, t_is, node, parent, digest_clean, digest_all) " + +        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:lv7]}', '#{@col[:en_a]}', '#{@col[:en_z]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');"        else -        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, t_of, t_is, node, parent, digest_clean, digest_all) " + -        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');" +        "INSERT INTO doc_objects (lid, metadata_tid, lev, lev_an, clean, body, book_idx, ocn, ocnd, ocns, seg, lev0, lev1, lev2, lev3, lev4, lev5, lev6, lev7, t_of, t_is, node, parent, digest_clean, digest_all) " + +        "VALUES (#{@col[:lid]}, #{@col[:tid]}, #{@col[:lev]}, '#{@col[:lev_an]}', '#{@col[:plaintext]}', '#{@col[:body]}', '#{@col[:book_idx]}', '#{@col[:ocn]}', '#{@col[:ocnd]}', '#{@col[:ocns]}', '#{@col[:seg]}', '#{@col[:lv0]}', '#{@col[:lv1]}', '#{@col[:lv2]}', '#{@col[:lv3]}', '#{@col[:lv4]}', '#{@col[:lv5]}', '#{@col[:lv6]}', '#{@col[:lv7]}', '#{@col[:t_of]}', '#{@col[:t_is]}', '#{@col[:node]}', '#{@col[:parent]}', '#{@col[:digest_clean]}', '#{@col[:digest_all]}');"        end        if @opt.act[:verbose_plus][:set]==:on          if @opt.act[:maintenance][:set]==:on @@ -97,7 +97,7 @@ module SiSU_DbTuple          end        end        if @opt.act[:verbose][:set]==:on -        if @col[:lev].inspect =~/[0-356]/ +        if @col[:lev].inspect =~/[0-35-7]/            lev=case @col[:lev].inspect            when /0/ then ':A'            when /1/ then ':B' @@ -105,10 +105,11 @@ module SiSU_DbTuple            when /3/ then ':D'            when /5/ then ' 2'            when /6/ then ' 3' +          when /7/ then ' 4'            end -          puts %{#{lev}>\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}} +          puts %{#{lev}>\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:lv7]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}}          elsif @col[:lev].inspect =~/[4]/ -          puts %{ #{@cX.green}1>#{@cX.off}\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}\t#{@col[:seg]}} +          puts %{ #{@cX.green}1>#{@cX.off}\t#{@col[:lv0]}\t#{@col[:lv1]}\t#{@col[:lv2]}\t#{@col[:lv3]}\t#{@col[:lv4]}\t#{@col[:lv5]}\t#{@col[:lv6]}\t#{@col[:lv7]}\t#{@col[:ocn]}\t#{@col[:node]}\t#{@col[:ocns]}\t#{@col[:seg]}}          end        end        sql_entry diff --git a/lib/sisu/v6/html_format.rb b/lib/sisu/v6/html_format.rb index 2f7b030e..b2476719 100644 --- a/lib/sisu/v6/html_format.rb +++ b/lib/sisu/v6/html_format.rb @@ -1065,6 +1065,9 @@ WOK      def heading_body6        heading_normal('h6','norm')      end +    def heading_body7 +      heading_normal('h7','norm') +    end      def title_heading(tag,attrib)        cl=(@make.build.html_minitoc?) \        ? 'content' @@ -1228,6 +1231,8 @@ WOK      end      def navigation_toc_lev6      end +    def navigation_toc_lev7 +    end      def endnote_seg_body(fn='')  #FIX                                                #url construction keep within single line... BUG WATCH 200408        fn='doc' if fn.to_s.empty? #you may wish to reconsider, sends to 'doc' where no segment info        %{ @@ -1265,6 +1270,9 @@ WOK      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      def heading_sub(tag,attrib)        @txt=@txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        %{ @@ -1357,6 +1365,9 @@ WOK      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +    end      def strip_endnotes(txt)        txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        txt @@ -1389,6 +1400,10 @@ WOK        @txt=strip_endnotes(@txt)        lev('h6','minitoc')      end +    def mini_lev7 +      @txt=strip_endnotes(@txt) +      lev('h7','minitoc') +    end      def mini_lev0 #docinfo        lev('h1','minitoc')      end diff --git a/lib/sisu/v6/html_scroll.rb b/lib/sisu/v6/html_scroll.rb index 27caaff9..9d036469 100644 --- a/lib/sisu/v6/html_scroll.rb +++ b/lib/sisu/v6/html_scroll.rb @@ -88,11 +88,13 @@ module SiSU_HTML_Scroll        @rcdc=false        @scr={ body: [], metadata: [], owner_details: [] }        data.each do |dob| -        dob.obj=dob.obj.gsub(/#{@md.file.output_path.html_seg.rel_image}/m,@md.file.output_path.html_scroll.rel_image) +        dob.obj=dob.obj.gsub(/#{@md.file.output_path.html_seg.rel_image}/m, +          @md.file.output_path.html_scroll.rel_image)          if defined? dob.name and dob.name =~/^meta/ \          and dob.obj =~/Document Information/ -          dob.obj=dob.obj.gsub(/(Document Information(?: \(metadata\))?)/, -            '\1<a name="docinfo"></a>') +          dob.obj=dob.obj. +            gsub(/(Document Information(?: \(metadata\))?)/, +              '\1<a name="docinfo"></a>')          end          if dob.obj =~/^Metadata$/ \          and dob.lv =='B' @@ -108,7 +110,8 @@ module SiSU_HTML_Scroll            gsub(/href="#{Xx[:segment]}/m,'href="')          if dob.obj !~/(^#{Rx[:meta]}|#{Mx[:br_eof]})/            unless dob.is ==:code -            dob.obj=dob.obj.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') +            dob.obj=dob.obj. +              gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')            end            if defined? dob.ocn              @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,dob.ocn) @@ -129,6 +132,8 @@ module SiSU_HTML_Scroll                sto.heading_body5              elsif dob.ln==6                sto.heading_body6 +            elsif dob.ln==7 +              sto.heading_body7              end            elsif dob.is==:break \            and dob.from==:markup @@ -162,7 +167,8 @@ module SiSU_HTML_Scroll              elsif dob.ln==4 \              and dob.obj=='Index'                sto.heading_body4 -              book_idx=SiSU_Particulars::CombinedSingleton.instance.get_idx_html(@md.opt).html_idx +              book_idx=SiSU_Particulars::CombinedSingleton. +                instance.get_idx_html(@md.opt).html_idx                book_idx.each do |y| #takes book index prepared for segments & strips segment identifying info                  y.gsub!(/<a href="\S+?\.html#(\d+)">(\1(?:-\d+)?)<\/a>/,                    '<a href="#\1">\2</a>') @@ -176,6 +182,10 @@ module SiSU_HTML_Scroll                unless dob.obj.empty?                  sto.heading_body6                end +            elsif dob.ln==7 +              unless dob.obj.empty? +                sto.heading_body7 +              end              end            elsif dob.is==:para              if dob.indent \ @@ -222,7 +232,9 @@ module SiSU_HTML_Scroll      def tails        scr_tail=[]        format_head_scroll=SiSU_HTML_Format::HeadToc.new(@md) -      scr_tail << format_head_scroll.scroll_tail << format_head_scroll.html_close +      scr_tail \ +      << format_head_scroll.scroll_tail \ +      << format_head_scroll.html_close        scr_tail      end    end diff --git a/lib/sisu/v6/html_segments.rb b/lib/sisu/v6/html_segments.rb index 941610ee..b410d0b0 100644 --- a/lib/sisu/v6/html_segments.rb +++ b/lib/sisu/v6/html_segments.rb @@ -67,7 +67,8 @@ module SiSU_HTML_Seg    require_relative 'shared_metadata'                    # shared_metadata.rb    class Output      def initialize(md,outputfile,seg,minitoc,type='') -      @md,@output_seg_file,@seg,@minitoc,@type=md,outputfile,seg,minitoc,type +      @md, @output_seg_file,@seg,@minitoc,@type= +        md,outputfile,      seg,minitoc,  type        @title_banner_=SiSU_Env::CreateSite.new(@md.opt).html_seg_title_banner?        @file=SiSU_Env::FileOp.new(@md)        @make=SiSU_Env::ProcessingSettings.new(@md) @@ -79,59 +80,97 @@ module SiSU_HTML_Seg        if @seg[:title] =~/\S/          filename_seg=[]          if @make.build.html_top_band? -          filename_seg << @seg[:title] << @seg[:tocband_banner] +          filename_seg \ +          << @seg[:title] \ +          << @seg[:tocband_banner]          else -          filename_seg << @seg[:title] +          filename_seg \ +          << @seg[:title]          end          if @type=='endnotes'            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Endnotes', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -          @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_endnotes] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << @seg[:endnote_all] << '</div>' # << '</div>' +          @seg[:headings] \ +          << format_seg.title_heading1 +          filename_seg \ +          << @seg[:heading_endnotes] \ +          << @minitoc << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << @seg[:endnote_all] \ +          << '</div>' # << '</div>'          elsif @type=='idx'            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Index', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)            @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_idx] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << @seg[:idx] << '</div>' # << '</div>' +          filename_seg \ +          << @seg[:heading_idx] \ +          << @minitoc << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << @seg[:idx] \ +          << '</div>' # << '</div>'          elsif @type=='metadata'            metadata=SiSU_Metadata::Summary.new(@md).xhtml_display.metadata            @seg[:headings]=[]            format_head_seg=SiSU_HTML_Format::HeadSeg.new(@md)            if @title_banner_ -            @seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author) +            @seg[:headings] \ +            << format_head_seg. +              title_banner(@md.title.main,@md.title.sub,@author)            end            txt_obj={ txt: 'Metadata', ocn_display: '' }            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)            @seg[:headings] << format_seg.title_heading1 -          filename_seg << @seg[:heading_idx] << @minitoc << @seg[:headings] << %{\n<div class="#{@cl}">\n} << metadata << '</div>' # << '</div>' +          filename_seg \ +          << @seg[:heading_idx] \ +          << @minitoc \ +          << @seg[:headings] \ +          << %{\n<div class="#{@cl}">\n} \ +          << metadata \ +          << '</div>' # << '</div>'          else            if @make.build.html_top_band? -            filename_seg << @minitoc << @seg[:headings] << @seg[:main] << "\n</div>\n" +            filename_seg \ +            << @minitoc \ +            << @seg[:headings] \ +            << @seg[:main] \ +            << "\n</div>\n"            else -            filename_seg << @minitoc << @seg[:main] << "\n</div>\n" +            filename_seg \ +            << @minitoc \ +            << @seg[:main] \ +            << "\n</div>\n"            end          end          filename_seg <<=if @make.build.html_top_band? -          @seg[:tail] << @seg[:tocband_bannerless] << @seg[:credits] +          @seg[:tail] \ +          << @seg[:tocband_bannerless] \ +          << @seg[:credits]          else -          @seg[:tail] << @seg[:credits] +          @seg[:tail] \ +          << @seg[:credits]          end          filename_seg=filename_seg.flatten.compact #watch          filename_seg.each do |str|            unless str =~/\A\s*\Z/              str=str.strip. -              gsub(Xx[:html_relative2],@file.path_rel_links.html_seg_2). -              gsub(Xx[:html_relative1],@file.path_rel_links.html_seg_1) +              gsub(Xx[:html_relative2], +                @file.path_rel_links.html_seg_2). +              gsub(Xx[:html_relative1], +                @file.path_rel_links.html_seg_1)              @output_seg_file << str            end          end @@ -146,7 +185,17 @@ module SiSU_HTML_Seg      @@loop_count=@@seg_total=@@tracker=0      @@is4=@@is3=@@is2=@@is1=@@is0=0      @@heading0=@@heading1=@@heading2=@@heading3=@@heading4=0 -    @@seg[:tocband_banner],@@seg[:tocband_bannerless],@@seg[:title],@@seg[:headings],@@seg[:main],@@seg[:idx],@@seg[:tail],@@seg[:credits],@@seg_subtoc_array,@@seg_endnotes_array,@@seg[:endnote_all]=Array.new(11){[]} +    @@seg[:tocband_banner], +      @@seg[:tocband_bannerless], +      @@seg[:title],@@seg[:headings], +      @@seg[:main], +      @@seg[:idx], +      @@seg[:tail], +      @@seg[:credits], +      @@seg_subtoc_array, +      @@seg_endnotes_array, +      @@seg[:endnote_all]= +      Array.new(11){[]}      @@seg[:heading_endnotes]=''      @@tablehead,@@number_of_cols=0,0      @@dp,@@segtocband=nil,nil @@ -192,7 +241,8 @@ module SiSU_HTML_Seg        idx_html=nil        if @md.book_idx          #my_make_source_file=SiSU_Env::CreateFile.new(@md.fns) -        idx_html=SiSU_Particulars::CombinedSingleton.instance.get_idx_html(@md.opt).html_idx +        idx_html=SiSU_Particulars::CombinedSingleton. +          instance.get_idx_html(@md.opt).html_idx          idx_html.each {|x| @@seg[:idx] << x }          @@seg[:heading_idx]=''        end @@ -215,7 +265,8 @@ module SiSU_HTML_Seg            @@seg_name.length          ).segmented        end -      map_nametags=SiSU_Particulars::CombinedSingleton.instance.get_map_nametags(@md).nametags_map #p map_nametags +      map_nametags=SiSU_Particulars::CombinedSingleton. +        instance.get_map_nametags(@md).nametags_map #p map_nametags        data.each do |dob|          if defined? dob.obj \          and dob.obj =~/href="#{Xx[:segment]}#+\S+?"/ @@ -227,10 +278,12 @@ module SiSU_HTML_Seg                lng=(inf.output_dir_structure.by_language_code?) \                ? ''                : '.' + @md.opt.lng -              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{lng}#{Sfx[:html]}#\\1"}) +              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/, +                %{href="#{map_nametags[m][:segname]}#{lng}#{Sfx[:html]}#\\1"})              else                p "NOT FOUND name_tags: #{m}" -              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#\\1"}) # not satisfactory +              dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/, +                %{href="#\\1"}) # not satisfactory              end            end          end @@ -281,7 +334,8 @@ module SiSU_HTML_Seg                if tracking != 0                  @file=SiSU_Env::FileOp.new(@md)                  unless FileTest.directory?(@file.output_path.html_seg.dir) -                  FileUtils::mkdir_p(@file.output_path.html_seg.dir) if File.writable?("#{@file.output_path.base.dir}/.") +                  FileUtils::mkdir_p(@file.output_path.html_seg.dir) \ +                    if File.writable?("#{@file.output_path.base.dir}/.")                  end                  SiSU_HTML_Seg::Seg.new(@md).tail                  fnh={ @@ -357,7 +411,7 @@ module SiSU_HTML_Seg        && (@make.build.html_navigation_bar?)          x=if (dob.is==:heading \          || dob.is==:heading_insert) \ -        && (dob.ln.to_s =~/^[0-6]/) +        && (dob.ln.to_s =~/^[0-7]/)            x=if @@tracker < @@seg_total-1              format_head_seg.dot_control_pre_next            else @@ -387,10 +441,14 @@ module SiSU_HTML_Seg        @p_num ||= ''        if @@is0==1          @author=%{<b>#{@md.author}</b>\n} if @md.author.to_s =~/\S/ -        @@seg[:tocband_banner] << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav]) -        @@seg[:tocband_bannerless] << '<br />' << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav]) +        @@seg[:tocband_banner] \ +        << format_head_seg.navigation_band(@@segtocband,@@seg[:dot_nav]) +        @@seg[:tocband_bannerless] \ +        << '<br />' \ +        << format_head_seg.navigation_band_bottom(@@segtocband,@@seg[:dot_nav])          if @title_banner_ -          @@seg[:headings] << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author).gsub(clean,'') +          @@seg[:headings] \ +          << format_head_seg.title_banner(@md.title.main,@md.title.sub,@author).gsub(clean,'')          end          ocn=(@@heading0[/.+?#{Mx[:id_o]}~(\d+);(?:[oh]|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/]) \          ? $1 @@ -398,8 +456,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: @@heading0, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading0.gsub(clean,'') -        @@heading0=@@heading0.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading0.gsub(clean,'') +        @@heading0=@@heading0. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is1==1          heading1=@@heading1 @@ -409,8 +469,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading1, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading1.gsub(clean,'') -        @@heading1=@@heading1.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading1.gsub(clean,'') +        @@heading1=@@heading1. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is2==1          heading2=@@heading2 @@ -420,8 +482,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading2, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading2.gsub(clean,'') -        @@heading2=@@heading2.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading2.gsub(clean,'') +        @@heading2=@@heading2. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is3==1          heading3=@@heading3 @@ -431,8 +495,10 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading3, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading3.gsub(clean,'') -        @@heading3=@@heading3.gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'') +        @@seg[:headings] \ +        << format_seg.title_heading3.gsub(clean,'') +        @@heading3=@@heading3. +          gsub(/ <a name="-[\d*+]+" href="#_[\d*+]+"> <sup>[\d*+]+<\/sup> <\/a>/,'')        end        if @@is4==1          heading4=@@heading4 @@ -442,7 +508,8 @@ module SiSU_HTML_Seg          @p_num=SiSU_HTML_Format::ParagraphNumber.new(@md,ocn)          txt_obj={ txt: heading4, ocn_display: @p_num.ocn_display }          format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) -        @@seg[:headings] << format_seg.title_heading4.gsub(clean,'') +        @@seg[:headings] \ +        << format_seg.title_heading4.gsub(clean,'')        end        @@tracker=@@tracker+1      end @@ -467,6 +534,8 @@ module SiSU_HTML_Seg                sto.seg_heading5              elsif dob.ln==6                sto.seg_heading6 +            elsif dob.ln==7 +              sto.seg_heading6              end            elsif dob.is==:para              if dob.indent \ @@ -589,7 +658,7 @@ module SiSU_HTML_Seg            end          end          if dob.is==:heading \ -        && (dob.ln.to_s =~/^[56]/) +        && (dob.ln.to_s =~/^[5-7]/)            case dob.ln            when 5              txt_obj={ txt: dob.obj.strip, ocn: dob.ocn } @@ -599,6 +668,10 @@ module SiSU_HTML_Seg              txt_obj={ txt: dob.obj.strip, ocn: dob.ocn }              format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj)              subtoc=format_seg.subtoc_lev6 #keep and make available, this is the subtoc +          when 7 +            txt_obj={ txt: dob.obj.strip, ocn: dob.ocn } +            format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) +            subtoc=format_seg.subtoc_lev7 #keep and make available, this is the subtoc            end            @@seg_subtoc_array << subtoc          end diff --git a/lib/sisu/v6/hub_options.rb b/lib/sisu/v6/hub_options.rb index 09559507..acd95612 100644 --- a/lib/sisu/v6/hub_options.rb +++ b/lib/sisu/v6/hub_options.rb @@ -1117,11 +1117,11 @@ end            { bool: false, set: :na }          end          act[:xml_sax]=(select_arr.inspect \ -        =~/"--xml-sax"/) \ +        =~/"--xml-sax"|"--sax"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na }          act[:xml_dom]=(select_arr.inspect \ -        =~/"--xml-dom"/) \ +        =~/"--xml-dom"|"--dom"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na }          act[:xml_docbook_book]=(select_arr.inspect \ diff --git a/lib/sisu/v6/texpdf.rb b/lib/sisu/v6/texpdf.rb index 42e8383f..9861a5b5 100644 --- a/lib/sisu/v6/texpdf.rb +++ b/lib/sisu/v6/texpdf.rb @@ -648,6 +648,8 @@ module SiSU_TeX                tst.heading_level_2              when 6                tst.heading_level_3 +            when 7 +              tst.heading_level_4              else dob              end            when :heading_insert diff --git a/lib/sisu/v6/texpdf_format.rb b/lib/sisu/v6/texpdf_format.rb index ba99efb7..95764b60 100644 --- a/lib/sisu/v6/texpdf_format.rb +++ b/lib/sisu/v6/texpdf_format.rb @@ -323,6 +323,9 @@ module SiSU_TeX_Pdf      def heading_level_3        heading_sublevels(@dob)      end +    def heading_level_4 +      heading_sublevels(@dob) +    end      def hang        case @dob.indent        when /0/ diff --git a/lib/sisu/v6/txt_plain.rb b/lib/sisu/v6/txt_plain.rb index 69008276..fb39de37 100644 --- a/lib/sisu/v6/txt_plain.rb +++ b/lib/sisu/v6/txt_plain.rb @@ -254,6 +254,9 @@ WOK            def l6              '.'            end +          def l7 +            '.' +          end            self          end          def bold @@ -402,6 +405,9 @@ WOK              end            when 5 then wrapped.upcase << break_line << decorate.heading_underscore.l5*times + p_num << break_line*2            when 6 then wrapped.upcase << break_line << decorate.heading_underscore.l6*times + p_num << break_line*2 +          when 7 +            wrapped.upcase << break_line << decorate.heading_underscore.l7*times + p_num << break_line*2 +          #when 7 then wrapped.upcase << break_line << decorate.heading_underscore.l7*times + p_num << break_line*2            end          else            @plaintext[:body] << wrapped + p_num << break_line # main text, contents, body KEEP @@ -419,7 +425,9 @@ WOK          if make.build.plaintext_ocn?            if defined? dob.ocn \            and dob.ocn.is_a?(Fixnum) -            (defined? dob.ocn) ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" : '' +            (defined? dob.ocn) \ +            ? "\n#{Dx[:ocn_o]}#{dob.ocn}#{Dx[:ocn_c]}" \ +            : ''            else ''            end          else '' @@ -428,8 +436,8 @@ WOK        def markup(data)                                                       # Used for major markup instructions          SiSU_Env::InfoEnv.new(@md.fns)          @data_mod,@endnotes,@level,@cont,@copen,@plaintext_contents_close=Array.new(6){[]} -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @plaintext_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @plaintext_contents_close[x]='' }          plaintext_tail #($1,$2)          plaintext_metadata          table_message='[table omitted, see other document formats]' diff --git a/lib/sisu/v6/xhtml.rb b/lib/sisu/v6/xhtml.rb index ee19a12e..409a2b6c 100644 --- a/lib/sisu/v6/xhtml.rb +++ b/lib/sisu/v6/xhtml.rb @@ -310,8 +310,8 @@ WOK          @rcdc=false          @level,@cont,@copen,@xml_contents_close=[],[],[],[]          xml_head -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          data.each do |dob|            dob=@trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8            dob=@trans.markup(dob) @@ -337,6 +337,7 @@ WOK                  when 4 then x.heading_body4                  when 5 then x.heading_body5                  when 6 then x.heading_body6 +                when 7 then x.heading_body7                  end                else                  if dob.is ==:verse diff --git a/lib/sisu/v6/xhtml_epub2.rb b/lib/sisu/v6/xhtml_epub2.rb index 0e65b469..9ab7c6ec 100644 --- a/lib/sisu/v6/xhtml_epub2.rb +++ b/lib/sisu/v6/xhtml_epub2.rb @@ -268,6 +268,7 @@ module SiSU_XHTML_EPUB2                lv_name='section_a' + @s_a_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4] @@ -275,7 +276,8 @@ module SiSU_XHTML_EPUB2                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[1]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[0] -              @ncxo[0],@ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false,false,false +              @ncxo[0],@ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                if @level_a_first_occurrence \                && @make.build.toc? @@ -293,13 +295,15 @@ module SiSU_XHTML_EPUB2                lv_name='section_b' + @s_b_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[1] -              @ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false,false +              @ncxo[1],@ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -311,12 +315,14 @@ module SiSU_XHTML_EPUB2                lv_name='section_c' + @s_c_no.to_s                @nav_no+=1                @nav_no2=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[2] -              @ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false,false +              @ncxo[2],@ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -328,11 +334,13 @@ module SiSU_XHTML_EPUB2                lv_name='section_d' + @s_d_no.to_s                @nav_no+=1                @nav_no3=@nav_no +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[3] -              @ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6]=true,false,false,false +              @ncxo[3],@ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false,   false                @epub.sections(dob_toc,lv_name)                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name) @@ -344,10 +352,12 @@ module SiSU_XHTML_EPUB2                lv_name=dob_toc.name                @nav_no+=1                @dob_name=dob.name +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[4] -              @ncxo[4],@ncxo[5],@ncxo[6]=true,false,false +              @ncxo[4],@ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false,   false,   false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name) @@ -358,9 +368,11 @@ module SiSU_XHTML_EPUB2                hashtag='#o' + dob_toc.ocn.to_s                lv_name=@dob_name                @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[5] -              @ncxo[5],@ncxo[6]=true,false +              @ncxo[5],@ncxo[6],@ncxo[7]= +                true,  false, false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag) @@ -371,13 +383,27 @@ module SiSU_XHTML_EPUB2                hashtag='#o' + dob_toc.ocn.to_s                lv_name=@dob_name                @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7]                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6] -              @ncxo[6]=true +              @ncxo[6],@ncxo[7]= +                true,  false                @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc                md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag)                md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag)                md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name,hashtag)                SiSU_XHTML_EPUB2::Source::Toc.new(@md,dob_toc).level_6 +            when 7 +              @ncx_cls=[] +              hashtag='#o' + dob_toc.ocn.to_s +              lv_name=@dob_name +              @nav_no+=1 +              @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[7] +              @ncxo[7]=true +              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name,hashtag) if dob_toc +              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,lv_name,hashtag) +              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name,hashtag) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name,hashtag) +              SiSU_XHTML_EPUB2::Source::Toc.new(@md,dob_toc).level_7              else nil              end              toc.each do |k,d| @@ -594,6 +620,27 @@ module SiSU_XHTML_EPUB2          end          toc        end +      def level_7 +        dob=@data +        linkname=dob.obj.gsub(/#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/,'').strip +        ocn=dob.ocn +        toc={} +        if ocn \ +        and ocn !~/#/ +          p_num=SiSU_XHTML_EPUB2_Format::ParagraphNumber.new(@md,ocn) +          lnk_n_txt=%{  <a href="#{@@seg_url}#{Sfx[:epub_xhtml]}#o#{ocn}"> +  #{linkname} +</a>} +          txt_obj={ txt: lnk_n_txt } +          format_toc=SiSU_XHTML_EPUB2_Format::FormatToc.new(@md,txt_obj) +          toc[:seg]=format_toc.lev7 +          title=%{#{p_num.goto}#{linkname}</a>} +          txt_obj={ txt: title } +          format_toc=SiSU_XHTML_EPUB2_Format::FormatToc.new(@md,txt_obj) +          toc[:scr]=format_toc.lev7 +        end +        toc +      end      end      class ScrollHeadAndSegToc < Toc        def initialize(md='',toc='',links_guide_toc='') diff --git a/lib/sisu/v6/xhtml_epub2_format.rb b/lib/sisu/v6/xhtml_epub2_format.rb index 626eb79f..aba5b761 100644 --- a/lib/sisu/v6/xhtml_epub2_format.rb +++ b/lib/sisu/v6/xhtml_epub2_format.rb @@ -162,7 +162,7 @@ module SiSU_XHTML_EPUB2_Format      padding-left: 0em;      text-indent: 0mm;    } -  p, h0, h1, h2, h3, h4, h5, h6 { +  p, h0, h1, h2, h3, h4, h5, h6, h7 {      display: block;      font-family: verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman;      font-size: 100%; @@ -992,18 +992,18 @@ module SiSU_XHTML_EPUB2_Format      font-weight: bold;    } -  h0, h1, h2, h3, h4, h5, h6 { +  h0, h1, h2, h3, h4, h5, h6, h7 {      font-weight: bold;      line-height: 120%;      text-align: left;      margin-top: 20px;      margin-bottom: 10px;    } -  h4.norm, h5.norm, h6.norm { +  h4.norm, h5.norm, h6.norm, h7.norm {      margin-top: 10px;      margin-bottom: 0px;    } -  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center { +  h1.center, h2.center, h3.center, h4.center, h5.center, h6.center, h7.center {      text-align: center;    }    h1 { font-size: 120%; } @@ -1012,6 +1012,7 @@ module SiSU_XHTML_EPUB2_Format    h4 { font-size: 105%; }    h5 { font-size: 100%; }    h6 { font-size: 100%; } +  h7 { font-size: 100%; }    h0 { font-size: 80%; }    h1.i {margin-left: 2em;} @@ -1059,6 +1060,11 @@ module SiSU_XHTML_EPUB2_Format      font-size: 90%;      line-height: 110%;    } +  h7.toc { +    margin-left: 7em; +    font-size: 90%; +    line-height: 105%; +  }    .microtoc {      margin-top: 2px; @@ -1092,6 +1098,11 @@ module SiSU_XHTML_EPUB2_Format      font-weight: normal;      font-size: 90%;    } +  h7.microtoc { +    margin-left: 30mm; +    font-weight: normal; +    font-size: 85%; +  }    .subtoc {      margin-right: 34%; @@ -1109,6 +1120,12 @@ module SiSU_XHTML_EPUB2_Format      margin-top: 0px;      margin-bottom: 0px;    } +  h7.subtoc { +    margin-left: 4em; +    font-size: 70%; +    margin-top: 0px; +    margin-bottom: 0px; +  }    div.substance {      width: 100%; @@ -1196,10 +1213,10 @@ module SiSU_XHTML_EPUB2_Format      background-color: #f9f9aa;    } -  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, p.c { +  h1.c, h2.c, h3.c, h4.c, h5.c, h6.c, h7.c, p.c {      text-align: center    } -  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red { +  h1.red, h2.red, h3.red, h4.red, h5.red, h6.red, h7.red {      text-align: center;      color: #ff0000;      margin-left: 5mm; @@ -1208,7 +1225,7 @@ module SiSU_XHTML_EPUB2_Format      margin-bottom: 20px;      margin-right: 15mm;    } -  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby { +  h1.ruby, h2.ruby, h3.ruby, h4.ruby, h5.ruby, h6.ruby, h7.ruby {      text-align: center;      color: #990000;      margin-left: 5mm; @@ -2043,6 +2060,9 @@ output_epub_cont_seg.close      def seg_heading6        seg_heading_sub('p','bold',@txt)      end +    def seg_heading7 +      seg_heading_sub('p','bold',@txt) +    end      def dl #check :trailer        "<dl><b>#{@txt}</b> #{@trailer}</dl>"      end @@ -2149,6 +2169,9 @@ output_epub_cont_seg.close      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      def heading_sub(tag,attrib,txt)        txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ')        %{ @@ -2177,6 +2200,9 @@ output_epub_cont_seg.close      def heading6        heading_sub('p','bold',@txt)      end +    def heading7 +      heading_sub('h7','bold',@txt) +    end      def navigation_heading4        %{<table summary="navigation segment heading 4" width=100% bgcolor="#08163f" border="0">  <tr><td align="center"> @@ -2195,6 +2221,11 @@ output_epub_cont_seg.close    #{@txt}  </p>}      end +    def navigation_heading7 +      %{<p class="bold"> +  #{@txt} +</p>} +    end      def navigation_center        %{<p class="centerbold">#{@txt}</p>}      end @@ -2238,6 +2269,9 @@ output_epub_cont_seg.close      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +    end      def lev0 #docinfo        lev('h0','toc')      end diff --git a/lib/sisu/v6/xhtml_epub2_segments.rb b/lib/sisu/v6/xhtml_epub2_segments.rb index 8f44b3e8..e5e44886 100644 --- a/lib/sisu/v6/xhtml_epub2_segments.rb +++ b/lib/sisu/v6/xhtml_epub2_segments.rb @@ -372,6 +372,8 @@ WOK              sto.seg_heading5            elsif dob.ln==6              sto.seg_heading6 +          elsif dob.ln==7 +            sto.seg_heading7            end          elsif dob.is==:para            if dob.indent \ @@ -486,7 +488,7 @@ WOK            end          end          if dob.is==:heading \ -        and dob.ln.to_s =~/^[56]/ +        and dob.ln.to_s =~/^[5-7]/            case dob.ln            when 5              format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob) @@ -494,6 +496,9 @@ WOK            when 6              format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob)              subtoc=format_seg.subtoc_lev6 #keep and make available, this is the subtoc +          when 7 +            format_seg=SiSU_XHTML_EPUB2_Format::FormatSeg.new(@md,dob) +            subtoc=format_seg.subtoc_lev7 #keep and make available, this is the subtoc            end            @@seg_subtoc_array << subtoc          end diff --git a/lib/sisu/v6/xml_dom.rb b/lib/sisu/v6/xml_dom.rb index a3a64946..1285a1cc 100644 --- a/lib/sisu/v6/xml_dom.rb +++ b/lib/sisu/v6/xml_dom.rb @@ -226,12 +226,15 @@ WOK  WOK          if lv==4            @copen[1]=true -          @copen[2]=@copen[3]=false +          @copen[2]=@copen[3]=@copen[4]=false          elsif lv==5            @copen[2]=true -          @copen[3]=false +          @copen[3]=@copen[4]=false          elsif lv==6            @copen[3]=true +          @copen[4]=false +        elsif lv==7 +          @copen[4]=true          end        end        def xml_structure(dob,type='norm') @@ -259,21 +262,24 @@ WOK              @cont[2]=false if @cont[2]              @cont[3]=false if @cont[3]              ####### attempt to close contents -            if @copen[3] # 6~ +            if @copen[4] # 4~ +              [4,3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +              @copen[1]=@copen[2]=@copen[3]=@copen[4]=false +            elsif @copen[3] # 3~                [3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false -            elsif @copen[2] # 5~ +            elsif @copen[2] # 2~                [2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false -            elsif @copen[1] # 4~ +            elsif @copen[1] # 1~                [1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }                @copen[1]=@copen[2]=@copen[3]=false              end              @@xml[:body] << "#{Ax[:tab]*y}</heading#{x}>" if @level[x]              @level[x]=false            end -        when 4..6 -          6.downto(lv) do |x| +        when 4..7 +          7.downto(lv) do |x|              if @level[x]==true                @xml_contents_close[x]=''              end @@ -284,42 +290,61 @@ WOK            case lv            when 4              @@xml[:body] << "#{Ax[:tab]*5}</content>" if @cont[1] -            if @copen[3]==true # 6~ +            if @copen[4]==true # 4~ +              [4,3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3]==true # 3~                [3,2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[2]==true # 5~ +            elsif @copen[2]==true # 2~                [2,1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[1]==true # 4~ +            elsif @copen[1]==true # 1~                [1].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[1]=true            when 5 -            if @cont[2] \ +            if @cont[3] \ +            or @cont[2] \              or @cont[1]                @@xml[:body] << "#{Ax[:tab]*5}</content>"              end -            if @copen[3]==true  #6~ +            if @copen[4]==true  #4~ +              [4,3,2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3]==true  #3~                [3,2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } -            elsif @copen[2]==true #5~ +            elsif @copen[2]==true #2~                [2].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[2]=true            when 6 -            if @cont[3] \ +            if @cont[4] \ +            or @cont[3] \              or @cont[2] \              or @cont[1]                @@xml[:body] << "#{Ax[:tab]*5}</content>"              end -            if @copen[3] #6{ +            if @copen[4] #4~ +              [4,3].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            elsif @copen[3] #3~                [3].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" }              end              @cont[3]=true +          when 7 +            if @cont[4] \ +            or @cont[3] \ +            or @cont[2] \ +            or @cont[1] +              @@xml[:body] << "#{Ax[:tab]*5}</content>" +            end +            if @copen[4] #4~ +              [4].each { |v| @@xml[:body] << "#{Ax[:tab]*n}</contents#{v}>" } +            end +            @cont[4]=true            end          end          xml_el ||=''          xml_element(dob,xml_el,xml_content,type)          if lv            @level[lv]=true -          ((lv+1)..6).each { |x| @level[x]=false } +          ((lv+1)..7).each { |x| @level[x]=false }          end        end        def add_to_body(dob,type='norm') @@ -367,8 +392,8 @@ WOK          @level,@cont,@copen,@xml_contents_close=[],[],[],[]          @rcdc=false          type='norm' -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          xml_head          data.each do |dob|            @trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8 @@ -420,6 +445,10 @@ WOK                      type="heading_content_#{dob.lv}"                      xml_structure(dob,type)                      dob.obj=x.heading_body6 +                  elsif dob.ln==7 +                    type="heading_content_#{dob.lv}" +                    xml_structure(dob,type) +                    dob.obj=x.heading_body7                    end                  else                    dob.ocn @@ -486,7 +515,7 @@ WOK            end          end          @content_flag=true -        6.downto(4) do |x| +        7.downto(4) do |x|            y=x - 1; v=x - 3            if @level[x]==true #2004w36 bug fix? watch/test previous logic broke on free.for.all @coontent_flag introduced              if @content_flag==true diff --git a/lib/sisu/v6/xml_format.rb b/lib/sisu/v6/xml_format.rb index 70c1a27f..38cc7f85 100644 --- a/lib/sisu/v6/xml_format.rb +++ b/lib/sisu/v6/xml_format.rb @@ -1115,6 +1115,9 @@ WOK      def heading_body6        heading_normal('h6','norm')      end +    def heading_body7 +      heading_normal('h7','norm') +    end      def title_header(tag,attrib)        %{  <div class="content"> @@ -1291,6 +1294,9 @@ WOK      def subtoc_lev6        subtoc_lev('h6','subtoc') if @txt      end +    def subtoc_lev7 +      subtoc_lev('h7','subtoc') if @txt +    end      #% para sisu      def header_sub(tag,attrib)        @txt=@txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' ') @@ -1303,12 +1309,6 @@ WOK  </div>  }      end -    def header5 -      header_sub('p','bold') -    end -    def header6 -      header_sub('p','bold') -    end      def header4        %{  <div class="substance"> @@ -1320,6 +1320,15 @@ WOK  </div>  }      end +    def header5 +      header_sub('p','bold') +    end +    def header6 +      header_sub('p','bold') +    end +    def header7 +      header_sub('p','bold') +    end      def navigation_header4        %{<table summary="navigation segment header 4" width=100% bgcolor="#08163f" border="0">  <tr><td align="center"> @@ -1338,6 +1347,11 @@ WOK    #{@txt}  </p>}      end +    def navigation_header7 +      %{<p class="bold"> +  #{@txt} +</p>} +    end      def navigation_center        "<center>#{@txt}</center>"      end @@ -1381,6 +1395,10 @@ WOK      def lev6        lev('h6','toc')      end +    def lev7 +      lev('h7','toc') +      #lev('b','toc') +    end      def lev0 #docinfo        lev('h0','toc')      end @@ -1402,6 +1420,9 @@ WOK      def mini_lev6        lev('h6','minitoc')      end +    def mini_lev7 +      lev('h7','minitoc') +    end      def mini_lev0 #docinfo        lev('h0','minitoc')      end diff --git a/lib/sisu/v6/xml_odf_odt.rb b/lib/sisu/v6/xml_odf_odt.rb index bb69be5d..c5e06109 100644 --- a/lib/sisu/v6/xml_odf_odt.rb +++ b/lib/sisu/v6/xml_odf_odt.rb @@ -111,7 +111,9 @@ module SiSU_XML_ODF_ODT              SiSU_Screen::Ansi.new(                @opt.act[:color_state][:set],                @opt.fns, -              "file://#{@md.file.output_path.odt.dir}/#{@md.file.base_filename.odt}" +              'file://' \ +              + @md.file.output_path.odt.dir + '/' \ +              + @md.file.base_filename.odt              ).flow            end          end @@ -173,16 +175,19 @@ module SiSU_XML_ODF_ODT                if x =~/\S+/ then @n << x                end              end -          else              @n << n +          else                  @n << n            end          end        end        def odf_book_idx        if @md.book_idx -        idx_arr,idx_raw=[],SiSU_Particulars::CombinedSingleton.instance.get_idx_raw(@md.opt).raw_idx +        idx_arr=[] +        idx_raw=SiSU_Particulars::CombinedSingleton. +          instance.get_idx_raw(@md.opt).raw_idx          idx_raw.each do |x|            x=if x.is_a?(String) -            SiSU_XML_ODF_ODT_Format::FormatBookIndex.new(x).book_idx_bookmark +            SiSU_XML_ODF_ODT_Format::FormatBookIndex.new(x). +              book_idx_bookmark            else nil            end            idx_arr << x.strip if x.is_a?(String) @@ -191,7 +196,8 @@ module SiSU_XML_ODF_ODT        end        end        def odf_metadata -        @@odf[:metadata]=SiSU_Metadata::Summary.new(@md).odf.metadata +        @@odf[:metadata]=SiSU_Metadata::Summary.new(@md). +          odf.metadata        end        def odf_tail          manifest="#{@md.file.output_path.manifest.url}/#{@md.file.base_filename.manifest}" @@ -224,19 +230,22 @@ module SiSU_XML_ODF_ODT          @@docstart=false          if dob.use_ != :dummy            dob.tmp=dob.obj -          dob.obj=%{#{breakpage}<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">#{p_num[:set_ref]}#{set_bookmark_tag(dob)}#{dob.obj}#{p_num[:display]}</text:h>} +          dob.obj=%{#{breakpage}<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">} \ +          + %{#{p_num[:set_ref]}#{set_bookmark_tag(dob)}#{dob.obj}#{p_num[:display]}</text:h>}          else dob.tmp,dob.obj='',''          end          dob        end        def toc(dob,p_num) -        hardspace=(dob.lv =~/[A-C]/i) \ +        hardspace=(dob.lv =~/[A-D]/i) \          ? '<text:p text:style-name="Standard"/>'          : ''          toc_heading=dob.ocn \ -        ? %{<text:bookmark-ref text:reference-format="text" text:ref-name="#{dob.ocn}">#{dob.tmp}</text:bookmark-ref>} +        ? (%{<text:bookmark-ref text:reference-format="text" text:ref-name="#{dob.ocn}">} \ +          + %{#{dob.tmp}</text:bookmark-ref>})          : dob.tmp -        dob.obj=%{<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">#{toc_heading}</text:h>#{hardspace}} +        dob.obj=%{<text:h text:style-name="H_#{dob.ln}" text:outline-level="#{dob.ln}">} \ +        + %{#{toc_heading}</text:h>#{hardspace}}          dob        end        def image_src(i) @@ -253,7 +262,9 @@ module SiSU_XML_ODF_ODT                @md.opt.act[:color_state][:set],                "ERROR - image:",                %{"#{i}" missing}, -              "search locations: #{@env.path.image_source_include_local},#{@env.path.image_source_include_remote} and #{@env.path.image_source_include}" +              "search locations: #{@env.path.image_source_include_local}," \ +              + "#{@env.path.image_source_include_remote} and" \ +              + "#{@env.path.image_source_include}"              ).error2 unless @md.opt.act[:quiet][:set]==:on              nil            end @@ -271,7 +282,9 @@ module SiSU_XML_ODF_ODT              @md.opt.act[:color_state][:set],              "ERROR - image:",                %{"#{i}" missing}, -              "search locations: #{@env.path.image_source_include_local},#{@env.path.image_source_include_remote} and #{@env.path.image_source_include}" +              "search locations: #{@env.path.image_source_include_local}," \ +              + "#{@env.path.image_source_include_remote} and" \ +              + "#{@env.path.image_source_include}"            ).error2 unless @md.opt.act[:quiet][:set]==:on            nil          end @@ -280,8 +293,10 @@ module SiSU_XML_ODF_ODT          # copy image to od image directory (unless exists)          # divide pixel dimension by 37.79485 and retain 3 decimal places          m=img[1] -        i=/^(\S+?\.(?:png|jpg|gif))/.match(m).captures.join if m =~/^(\S+?\.(?:png|jpg|gif))/ -        c=/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/.match(m).captures.join if m =~/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/ +        i=/^(\S+?\.(?:png|jpg|gif))/.match(m).captures.join \ +          if m =~/^(\S+?\.(?:png|jpg|gif))/ +        c=/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/.match(m).captures.join \ +          if m =~/^\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"/          w,h=/\s(\d+)x(\d+)/.match(m).captures if m =~/\s\d+x\d+/          w=(w.to_i/37.79485).to_s          h=(h.to_i/37.79485).to_s @@ -290,7 +305,10 @@ module SiSU_XML_ODF_ODT          image_source=image_src(i)          if image_source            if FileTest.file?("#{image_source}/#{i}") -            FileUtils::cp("#{image_source}/#{i}","#{@env.processing_path.odt}/Pictures/#{i}") +            FileUtils::cp( +              "#{image_source}/#{i}", +              "#{@env.processing_path.odt}/Pictures/#{i}" +            )            else STDERR.puts %{\t*WARN* did not find image - "#{image_source}/#{i}" [#{__FILE__}:#{__LINE__}]}            end          end @@ -325,7 +343,8 @@ module SiSU_XML_ODF_ODT        def text_link_odf(txt,url,trail)          txt=txt.gsub(/(\\\+)/,'+') #this is convoluted, and risky :-(          url=url.gsub(/(\\\+)/,'+') #this is convoluted, and risky :-( -        map_nametags=SiSU_Particulars::CombinedSingleton.instance.get_map_nametags(@md).nametags_map +        map_nametags=SiSU_Particulars::CombinedSingleton. +          instance.get_map_nametags(@md).nametags_map          t=case url          when /^https?:/            %{<text:a xl:type="simple" xl:href="#{url}">#{txt.strip}</text:a>#{trail}} @@ -342,7 +361,8 @@ module SiSU_XML_ODF_ODT            end            t=map_nametags[url] \            && map_nametags[url][:segname] \ -          ? %{<text:a xl:type="simple" xl:href="#{@env.url.root}/#{@md.fnb}/#{map_nametags[url][:segname]}#{Sfx[:html]}##{url}">#{txt.strip}</text:a>#{trail}} +          ? (%{<text:a xl:type="simple" xl:href="#{@env.url.root}/#{@md.fnb}/#{map_nametags[url][:segname]}#{Sfx[:html]}##{url}">} \ +            + %{#{txt.strip}</text:a>#{trail}})            : %{#{txt.strip}#{trail}}          end          t @@ -359,7 +379,8 @@ module SiSU_XML_ODF_ODT              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1").                gsub(/([+?*])/,"\\\\\\1") # problems with +              url=url.gsub(/([+?])/,"\\\\\\1") # problems with + -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:url_o]}#{url}#{Mx[:url_c]}/m,text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:url_o]}#{url}#{Mx[:url_c]}/m, +                text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -374,7 +395,8 @@ module SiSU_XML_ODF_ODT              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1").                gsub(/([+?*])/,"\\\\\\1") # problems with +              url=url.gsub(/([+?])/,"\\\\\\1") # problems with + -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m,text_link_odf_bookmark(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m, +                text_link_odf_bookmark(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -387,7 +409,8 @@ module SiSU_XML_ODF_ODT            m.each do |i|              txt,url,trail=i[1],i[2]              txt=txt.gsub(/([)(\]\[])/,"\\\\\\1") -            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m,text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url +            dob.obj=dob.obj.gsub(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m, +                text_link_odf(txt,url,trail)). #make sure trailing ']' are not caught in url                gsub(/\\([)(\]\[?])/,'\1') #clumsy fix            end            m=nil @@ -431,11 +454,13 @@ module SiSU_XML_ODF_ODT            @astx||=10000            @astxs||=20000            if str =~/#{Mx[:en_a_o]}\d+\s+/ -            str=str.gsub(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/,'<text:note text:id="ftn\1" text:note-class="footnote"><text:note-citation>\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>') +            str=str.gsub(/#{Mx[:en_a_o]}(\d+)\s+(.+?)#{Mx[:en_a_c]}/, +              '<text:note text:id="ftn\1" text:note-class="footnote"><text:note-citation>\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>')            end            if str =~/#{Mx[:en_a_o]}([*]+)\s+/              a=$1.gsub(/([*])/,"\\\\\\1") -              str=str.gsub(/#{Mx[:en_a_o]}([*]+)\s+(.+?)#{Mx[:en_a_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_a_o]}([*]+)\s+(.+?)#{Mx[:en_a_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astxs+=1            end            if str=~/#{Mx[:en_a_o]}[*+]+\s/ @@ -444,7 +469,8 @@ module SiSU_XML_ODF_ODT                a=x[0].gsub(/([*+])/,"\\\\\\1")                str=group_clean(str)                str=footnote_urls(str) -              str=str.gsub(/#{Mx[:en_a_o]}(#{a})\s+(.+?)#{Mx[:en_a_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_a_o]}(#{a})\s+(.+?)#{Mx[:en_a_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astx+=1              end            end @@ -454,7 +480,8 @@ module SiSU_XML_ODF_ODT                a=x[0].gsub(/([*+])/,"\\\\\\1")                str=group_clean(str)                str=footnote_urls(str) -              str=str.gsub(/#{Mx[:en_b_o]}(#{a})\s+(.+?)#{Mx[:en_b_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>}) +              str=str.gsub(/#{Mx[:en_b_o]}(#{a})\s+(.+?)#{Mx[:en_b_c]}/, +                %{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})                @astx+=1              end            end @@ -495,7 +522,8 @@ module SiSU_XML_ODF_ODT          dob.obj.split(/#{Mx[:br_line]}|#{Mx[:br_nl]}/).each_with_index do |parablock,i|            set_ref=(i==0) ? "#{p_num[:set_ref]}#{set_bookmark_tag(dob)}" : ''            parablock=group_clean(parablock) -          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m,'<text:a xl:type="simple" xl:href="\1">'). +          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m, +              '<text:a xl:type="simple" xl:href="\1">').              gsub(/<(\/text:a)>/,'<\1>').              gsub(/<(text:note text:id=.+?)>/,'<\1>').              gsub(/<(text:p text:style-name="Footnote")>/,'<\1>'). @@ -519,13 +547,15 @@ module SiSU_XML_ODF_ODT          dob.obj.split(/#{Mx[:br_line]}|#{Mx[:br_nl]}/).each_with_index do |parablock,i|            set_ref=(i==0) ? "#{p_num[:set_ref]}#{set_bookmark_tag(dob)}" : ''            parablock=group_clean(parablock) -          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m,'<text:a xl:type="simple" xl:href="\1">'). +          parablock=parablock.gsub(/<text:a xl:type="simple" xl:href="(.+?)">/m, +              '<text:a xl:type="simple" xl:href="\1">').              gsub(/<(\/text:a)>/,'<\1>').              gsub(/<(text:note text:id=.+?)>/,'<\1>').              gsub(/<(text:p text:style-name="Footnote")>/,'<\1>').              gsub(/<(\/?text:(?:note-citation|note-body|note|p))>/,'<\1>')            parablock=footnote(parablock) -          parray << %{<text:p text:style-name="P_group">#{set_ref}#{parablock}</text:p>} if parablock =~/\S+/ +          parray << %{<text:p text:style-name="P_group">#{set_ref}#{parablock}</text:p>} \ +            if parablock =~/\S+/          end          dob.obj=parray.join \          + %{<text:p text:style-name="P_group">#{p_num[:display]}</text:p>} \ @@ -593,7 +623,7 @@ module SiSU_XML_ODF_ODT          if dob.is==:heading            @@odf[:body] << heading(dob,p_num).obj << break_line*2            if SiSU_Env::ProcessingSettings.new(md).build.toc? -            if dob.lv =~/[A-C1]/i +            if dob.lv =~/[A-D1]/i                @@odf[:toc] << toc(dob,p_num).obj              end            end @@ -623,8 +653,8 @@ module SiSU_XML_ODF_ODT          dir.path.odt_bld          @data_mod,@endnotes,@level,@cont,@copen,@odf_contents_close=Array.new(6){[]}          @rcdc=false -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @odf_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @odf_contents_close[x]='' }          odf_tail #($1,$2)          bullet=image_src('bullet_09.png')          if bullet @@ -668,7 +698,8 @@ module SiSU_XML_ODF_ODT            dob.obj=dob.obj.gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'<del>\1</del>').              gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'<ins>\1</ins>').              gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'<cite>\1</cite>'). -            gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'<text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/>'). #check +            gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/, +              '<text:bookmark-start text:name="\1"/><text:bookmark-end text:name="\1"/>'). #check              gsub(/#{Mx[:mk_o]}#([a-zA-Z]+)#{Mx[:mk_c]}/,'&\1;').              gsub(/#{Mx[:mk_o]}(#[0-9]+)#{Mx[:mk_c]}/,'&\1;').              gsub(/#{Mx[:mk_o]}[~-]##{Mx[:mk_c]}/,'') @@ -706,7 +737,8 @@ module SiSU_XML_ODF_ODT            wordlist=dob.obj.scan(/\S+/)            dob.obj=tidywords(wordlist).join(' ').strip            @rcdc=true if @rcdc==false \ -          and (dob.obj =~/~metadata/ or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o] +          and (dob.obj =~/~metadata/ \ +          or dob =~/#{Mx[:lv_o]}1:meta#{Mx[:lv_x]}\s*Document Information/) #fix Mx[:lv_o]            if dob.is !~/(^#{Rx[:meta]}|#{Mx[:br_eof]}|#{Mx[:br_endnotes]})/ #check              if defined? dob.ocn and dob.ocn =~/\d+/                @p_num=SiSU_XML_ODF_ODT_Format::ParagraphNumber.new(@make,dob.ocn) @@ -835,7 +867,8 @@ WOK          end          od.close          opendoc=@md.file.base_filename.odt #watch where output by language -        FileUtils::mkdir_p(@md.file.output_path.odt.dir) unless FileTest.directory?(@md.file.output_path.odt.dir) +        FileUtils::mkdir_p(@md.file.output_path.odt.dir) \ +          unless FileTest.directory?(@md.file.output_path.odt.dir)          if FileTest.directory?(@env.processing_path.odt) \          and SiSU_Env::SystemCall.new.zip            pwd=Dir.pwd diff --git a/lib/sisu/v6/xml_odf_odt_format.rb b/lib/sisu/v6/xml_odf_odt_format.rb index 68457d00..09c039bc 100644 --- a/lib/sisu/v6/xml_odf_odt_format.rb +++ b/lib/sisu/v6/xml_odf_odt_format.rb @@ -166,6 +166,8 @@ module SiSU_XML_ODF_ODT_Format      end      def heading_body6      end +    def heading_body7 +    end    end    class Table      @@tablehead,@@table_counter=0,0 #reinitialise on new file diff --git a/lib/sisu/v6/xml_sax.rb b/lib/sisu/v6/xml_sax.rb index d90b552b..d595e4a4 100644 --- a/lib/sisu/v6/xml_sax.rb +++ b/lib/sisu/v6/xml_sax.rb @@ -333,8 +333,8 @@ WOK          @endnotes,@level,@cont,@copen,@xml_contents_close=[],[],[],[],[]          @rcdc=false          xml_head -        (0..6).each { |x| @cont[x]=@level[x]=false } -        (4..6).each { |x| @xml_contents_close[x]='' } +        (0..7).each { |x| @cont[x]=@level[x]=false } +        (4..7).each { |x| @xml_contents_close[x]='' }          data.each do |dob|            @trans.char_enc.utf8(dob) if @sys.locale =~/utf-?8/i #% utf8            dob=@trans.markup(dob) @@ -361,6 +361,7 @@ WOK                    when 4 then x.heading_body4                    when 5 then x.heading_body5                    when 6 then x.heading_body6 +                  when 7 then x.heading_body7                    end                  else                    if dob.is==:verse @@ -415,7 +416,7 @@ WOK              dob.obj=dob.obj.gsub(/#{Mx[:pa_o]}:\S+#{Mx[:pa_c]}/,'') if dob.obj            end          end -        6.downto(4) do |x| +        7.downto(4) do |x|            y=x - 1; v=x - 3            @@xml[:body] << "#{Ax[:tab]*5}</content>\n#{Ax[:tab]*y}</contents#{v}>" if @level[x]==true          end @@ -423,7 +424,7 @@ WOK            y=x - 1            @@xml[:body] << "#{Ax[:tab]*y}</heading#{x}>" if @level[x]==true          end -        #6.downto(1) { |x| y=x - 1; @@xml[:body] << "#{Ax[:tab]*y}</level #{x}>" if @level[x]==true } +        #7.downto(1) { |x| y=x - 1; @@xml[:body] << "#{Ax[:tab]*y}</level #{x}>" if @level[x]==true }        end        def pre          rdf=SiSU_XML_Tags::RDF.new(@md) diff --git a/man/man1/sisu.1 b/man/man1/sisu.1 index 5cc2c7d9..608f69a2 100644 --- a/man/man1/sisu.1 +++ b/man/man1/sisu.1 @@ -1,4 +1,4 @@ -.TH "sisu" "1" "2014-07-22" "5.5.2" "SiSU" +.TH "sisu" "1" "2014-02-05" "6.2.1" "SiSU"  .br  .SH NAME  .br @@ -128,14 +128,8 @@ document structure information. For more see: <http://sisudoc.org> or  .SH DOCUMENT PROCESSING COMMAND FLAGS  .TP -.B -a [filename/wildcard] -produces -.I plaintext -with Unix linefeeds and without markup, (object numbers are omitted), has -footnotes at end of each paragraph that contains them [ -A for equivalent dos -(linefeed) output file] [see -e for endnotes]. (Options include: --endnotes for -endnotes --footnotes for footnotes at the end of each paragraph --unix for unix -linefeed (default) --msdos for msdos linefeed) +.B -[0-9] [filename/wildcard] +see --act  .TP  .B --ao [filename/wildcard/url]  assumed for most other flags, creates new intermediate files for processing @@ -143,6 +137,13 @@ assumed for most other flags, creates new intermediate files for processing  processing of other output. This step is assumed for most processing flags. To  skip it see -n. Alias -m.  .TP +.B --act[0-9] [filename/wildcard] +--act0 to --act9 configurable shortcuts for multiple flags, -0 to -9 synonyms, +configure in sisurc.yml, sisu default action on a specified file where no flag +is provided is --act0, current default setting for --act0 is --digest --qrcode +--text --html --epub --concordance --pdf --odf --docbook --xhtml --xml-sax +--xml-dom --sqlite --manifest --verbose +.TP  .B --asciitext [filename/wildcard]  asciitext, smart text (not available)  .TP @@ -160,9 +161,6 @@ site more extensive than -C on its own, shared output directory files/force  update, existing shared output config files such as css and dtd files are  updated if this modifier is used.  .TP -.B -CC -see --configure -.TP  .B -c [filename/wildcard]  see --color-toggle  .TP @@ -214,6 +212,9 @@ screen.  .B --docbook [filename/wildcard/url]  docbook xml  .TP +.B --dom [filename/wildcard/url] +see --xml-dom +.TP  .B --dump[=directory_path] [filename/wildcard]  places output in directory specified, if none is specified in the current  directory (pwd). Unlike using default settings @@ -531,6 +532,9 @@ is first necessary to create them, before generating the search form) see  which must be writable, (with screen instructions given that they be copied to  the cgi-bin directory). Alias -F  .TP +.B --sax [filename/wildcard/url] +see --xml-sax +.TP  .B --scp [filename/wildcard]  copies sisu output files to remote host using scp. This requires that  sisurc.yml has been provided with information on hostname and username, and @@ -802,45 +806,6 @@ equivalent]  .BR  The -v is for verbose output. -.SH SHORTCUTS, SHORTHAND FOR MULTIPLE FLAGS - -.TP -.B --update [filename/wildcard] -Checks existing file output and runs the flags required to update this output. -This means that if only html and pdf output was requested on previous runs, -only the -hp files will be applied, and only these will be generated this time, -together with the summary. This can be very convenient, if you offer different -outputs of different files, and just want to do the same again. -.TP -.B -0 to -5 [filename or wildcard] -Default shorthand mappings (note that the defaults can be changed/configured in -the sisurc.yml file): -.TP -.B -0 --NQhewpotbxXyYv [this is the default action run when no options are give, i.e. -on 'sisu [filename]'] -.TP -.B -1 --Qhewpoty -.TP -.B -2 --NQhewpotbxXy -.TP -.B -3 --NQhewpotbxXyY -.TP -.B -4 --NQhewpotbxXDyY --update -.TP -.B -5 --NQhewpotbxXDyYv --update - -.BR -add -v for verbose mode and -c to toggle color state, e.g. sisu -2vc [filename -or wildcard] - -.BR -consider -u for appended url info or -v for verbose output  .SH COMMAND LINE WITH FLAGS - BATCH PROCESSING @@ -1926,7 +1891,7 @@ information in each column  .BR  .B markup example: -[^10] +[^9]  .nf  !_ Table 3.1: Contributors to Wikipedia, January 2001 - June 2005 @@ -37,8 +37,8 @@  #require 'mkmf'  #create_makefile("sisu")  #% manual settings, edit/update as required (note current default settings are obtained from sisu version yml file) -SiSU_version_next_stable     = '5.5.6' #% set version -SiSU_version_next_unstable   = '6.2.0' #% set version +SiSU_version_next_stable     = '5.6.0' #% set version +SiSU_version_next_unstable   = '6.2.1' #% set version  #% rake file  SiSU_version_generic_next_stable     = '5.4.x'  SiSU_version_generic_next_unstable   = '6.0.x' | 
