diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/sisu/v3/defaults.rb | 2196 | ||||
| -rw-r--r-- | lib/sisu/v5/air.rb (renamed from lib/sisu/v3/air.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/author_format.rb (renamed from lib/sisu/v3/author_format.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/cgi.rb (renamed from lib/sisu/v3/cgi.rb) | 10 | ||||
| -rw-r--r-- | lib/sisu/v5/cgi_pgsql.rb (renamed from lib/sisu/v3/cgi_pgsql.rb) | 61 | ||||
| -rw-r--r-- | lib/sisu/v5/cgi_sql_common.rb (renamed from lib/sisu/v3/cgi_sql_common.rb) | 59 | ||||
| -rw-r--r-- | lib/sisu/v5/cgi_sqlite.rb (renamed from lib/sisu/v3/cgi_sqlite.rb) | 11 | ||||
| -rw-r--r-- | lib/sisu/v5/composite.rb (renamed from lib/sisu/v3/composite.rb) | 32 | ||||
| -rw-r--r-- | lib/sisu/v5/concordance.rb (renamed from lib/sisu/v3/concordance.rb) | 14 | ||||
| -rw-r--r-- | lib/sisu/v5/conf.rb (renamed from lib/sisu/v3/conf.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/constants.rb (renamed from lib/sisu/v3/constants.rb) | 45 | ||||
| -rw-r--r-- | lib/sisu/v5/css.rb (renamed from lib/sisu/v3/css.rb) | 21 | ||||
| -rw-r--r-- | lib/sisu/v5/dal.rb (renamed from lib/sisu/v3/dal.rb) | 16 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_character_check.rb (renamed from lib/sisu/v3/dal_character_check.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_doc_objects.rb (renamed from lib/sisu/v3/dal_doc_objects.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_doc_str.rb (renamed from lib/sisu/v3/dal_doc_str.rb) | 5 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_endnotes.rb (renamed from lib/sisu/v3/dal_endnotes.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_expand_insertions.rb (renamed from lib/sisu/v3/dal_expand_insertions.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_hash_digest.rb (renamed from lib/sisu/v3/dal_hash_digest.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_idx.rb (renamed from lib/sisu/v3/dal_idx.rb) | 13 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_images.rb (renamed from lib/sisu/v3/dal_images.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_metadata.rb (renamed from lib/sisu/v3/dal_metadata.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_numbering.rb (renamed from lib/sisu/v3/dal_numbering.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_substitutions_and_insertions.rb (renamed from lib/sisu/v3/dal_substitutions_and_insertions.rb) | 11 | ||||
| -rw-r--r-- | lib/sisu/v5/dal_syntax.rb (renamed from lib/sisu/v3/dal_syntax.rb) | 64 | ||||
| -rw-r--r-- | lib/sisu/v5/db_columns.rb (renamed from lib/sisu/v3/db_columns.rb) | 368 | ||||
| -rw-r--r-- | lib/sisu/v5/db_create.rb (renamed from lib/sisu/v3/db_create.rb) | 46 | ||||
| -rw-r--r-- | lib/sisu/v5/db_dbi.rb (renamed from lib/sisu/v3/db_dbi.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_drop.rb (renamed from lib/sisu/v3/db_drop.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_import.rb (renamed from lib/sisu/v3/db_import.rb) | 3 | ||||
| -rw-r--r-- | lib/sisu/v5/db_indexes.rb (renamed from lib/sisu/v3/db_indexes.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_load_tuple.rb (renamed from lib/sisu/v3/db_load_tuple.rb) | 38 | ||||
| -rw-r--r-- | lib/sisu/v5/db_remove.rb (renamed from lib/sisu/v3/db_remove.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_select.rb (renamed from lib/sisu/v3/db_select.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_sqltxt.rb (renamed from lib/sisu/v3/db_sqltxt.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/db_tests.rb (renamed from lib/sisu/v3/db_tests.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dbi.rb (renamed from lib/sisu/v3/dbi.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/dbi_discrete.rb (renamed from lib/sisu/v3/dbi_discrete.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/defaults.rb | 1212 | ||||
| -rw-r--r-- | lib/sisu/v5/digests.rb (renamed from lib/sisu/v3/digests.rb) | 7 | ||||
| -rw-r--r-- | lib/sisu/v5/embedded.rb (renamed from lib/sisu/v3/embedded.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/epub.rb (renamed from lib/sisu/v3/epub.rb) | 128 | ||||
| -rw-r--r-- | lib/sisu/v5/epub_concordance.rb (renamed from lib/sisu/v3/epub_concordance.rb) | 17 | ||||
| -rw-r--r-- | lib/sisu/v5/epub_format.rb (renamed from lib/sisu/v3/epub_format.rb) | 294 | ||||
| -rw-r--r-- | lib/sisu/v5/epub_segments.rb (renamed from lib/sisu/v3/epub_segments.rb) | 10 | ||||
| -rw-r--r-- | lib/sisu/v5/epub_tune.rb (renamed from lib/sisu/v3/epub_tune.rb) | 17 | ||||
| -rw-r--r-- | lib/sisu/v5/errors.rb (renamed from lib/sisu/v3/errors.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/git.rb (renamed from lib/sisu/v3/git.rb) | 52 | ||||
| -rw-r--r-- | lib/sisu/v5/harvest.rb (renamed from lib/sisu/v3/harvest.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/harvest_authors.rb (renamed from lib/sisu/v3/harvest_authors.rb) | 34 | ||||
| -rw-r--r-- | lib/sisu/v5/harvest_topics.rb (renamed from lib/sisu/v3/harvest_topics.rb) | 27 | ||||
| -rw-r--r-- | lib/sisu/v5/help.rb (renamed from lib/sisu/v3/help.rb) | 320 | ||||
| -rw-r--r-- | lib/sisu/v5/html.rb (renamed from lib/sisu/v3/html.rb) | 122 | ||||
| -rw-r--r-- | lib/sisu/v5/html_format.rb (renamed from lib/sisu/v3/html_format.rb) | 137 | ||||
| -rw-r--r-- | lib/sisu/v5/html_minitoc.rb (renamed from lib/sisu/v3/html_minitoc.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/html_promo.rb (renamed from lib/sisu/v3/html_promo.rb) | 10 | ||||
| -rw-r--r-- | lib/sisu/v5/html_scroll.rb (renamed from lib/sisu/v3/html_scroll.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/html_segments.rb (renamed from lib/sisu/v3/html_segments.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/html_table.rb (renamed from lib/sisu/v3/html_table.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/html_tune.rb (renamed from lib/sisu/v3/html_tune.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/hub.rb (renamed from lib/sisu/v3/hub.rb) | 206 | ||||
| -rw-r--r-- | lib/sisu/v5/i18n.rb (renamed from lib/sisu/v3/i18n.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/manifest.rb (renamed from lib/sisu/v3/manifest.rb) | 421 | ||||
| -rw-r--r-- | lib/sisu/v5/manpage.rb (renamed from lib/sisu/v3/manpage.rb) | 57 | ||||
| -rw-r--r-- | lib/sisu/v5/manpage_format.rb (renamed from lib/sisu/v3/manpage_format.rb) | 4 | ||||
| -rw-r--r-- | lib/sisu/v5/odf.rb (renamed from lib/sisu/v3/odf.rb) | 17 | ||||
| -rw-r--r-- | lib/sisu/v5/odf_format.rb (renamed from lib/sisu/v3/odf_format.rb) | 11 | ||||
| -rw-r--r-- | lib/sisu/v5/options.rb (renamed from lib/sisu/v3/options.rb) | 367 | ||||
| -rw-r--r-- | lib/sisu/v5/param.rb (renamed from lib/sisu/v3/param.rb) | 591 | ||||
| -rw-r--r-- | lib/sisu/v5/param_identify_markup.rb (renamed from lib/sisu/v3/param_identify_markup.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/param_make.rb | 646 | ||||
| -rw-r--r-- | lib/sisu/v5/particulars.rb (renamed from lib/sisu/v3/particulars.rb) | 12 | ||||
| -rw-r--r-- | lib/sisu/v5/plaintext.rb (renamed from lib/sisu/v3/plaintext.rb) | 13 | ||||
| -rw-r--r-- | lib/sisu/v5/plaintext_format.rb (renamed from lib/sisu/v3/plaintext_format.rb) | 4 | ||||
| -rw-r--r-- | lib/sisu/v5/po4a.rb (renamed from lib/sisu/v3/po4a.rb) | 37 | ||||
| -rw-r--r-- | lib/sisu/v5/po4a_set.rb (renamed from lib/sisu/v3/po4a_set.rb) | 3 | ||||
| -rw-r--r-- | lib/sisu/v5/prog_text_translation.rb (renamed from lib/sisu/v3/prog_text_translation.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/qrcode.rb (renamed from lib/sisu/v3/qrcode.rb) | 119 | ||||
| -rw-r--r-- | lib/sisu/v5/relaxng.rb (renamed from lib/sisu/v3/relaxng.rb) | 5 | ||||
| -rw-r--r-- | lib/sisu/v5/remote.rb (renamed from lib/sisu/v3/remote.rb) | 18 | ||||
| -rw-r--r-- | lib/sisu/v5/response.rb (renamed from lib/sisu/v3/response.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/rexml.rb (renamed from lib/sisu/v3/rexml.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/screen_text_color.rb (renamed from lib/sisu/v3/screen_text_color.rb) | 16 | ||||
| -rw-r--r-- | lib/sisu/v5/share_src.rb (renamed from lib/sisu/v3/share_src.rb) | 13 | ||||
| -rw-r--r-- | lib/sisu/v5/share_src_kdissert.rb (renamed from lib/sisu/v3/share_src_kdissert.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_html.rb (renamed from lib/sisu/v3/shared_html.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_html_lite.rb (renamed from lib/sisu/v3/shared_html_lite.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_images.rb (renamed from lib/sisu/v3/shared_images.rb) | 38 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_markup_alt.rb (renamed from lib/sisu/v3/shared_markup_alt.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_metadata.rb (renamed from lib/sisu/v3/shared_metadata.rb) | 247 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_sem.rb (renamed from lib/sisu/v3/shared_sem.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_sisupod_source.rb (renamed from lib/sisu/v3/shared_sisupod_source.rb) | 103 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_txt.rb (renamed from lib/sisu/v3/shared_txt.rb) | 3 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_xhtml.rb (renamed from lib/sisu/v3/shared_xhtml.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/shared_xml.rb (renamed from lib/sisu/v3/shared_xml.rb) | 95 | ||||
| -rw-r--r-- | lib/sisu/v5/sisupod_make.rb (renamed from lib/sisu/v3/sisupod_make.rb) | 22 | ||||
| -rw-r--r-- | lib/sisu/v5/sitemaps.rb (renamed from lib/sisu/v3/sitemaps.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/spell.rb (renamed from lib/sisu/v3/spell.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/sst_convert_markup.rb (renamed from lib/sisu/v3/sst_convert_markup.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/sst_do_inline_footnotes.rb (renamed from lib/sisu/v3/sst_do_inline_footnotes.rb) | 4 | ||||
| -rw-r--r-- | lib/sisu/v5/sst_from_xml.rb (renamed from lib/sisu/v3/sst_from_xml.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/sst_identify_markup.rb (renamed from lib/sisu/v3/sst_identify_markup.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/sst_to_s_xml_sax.rb (renamed from lib/sisu/v3/sst_to_s_xml_sax.rb) | 4 | ||||
| -rw-r--r-- | lib/sisu/v5/sysenv.rb (renamed from lib/sisu/v3/sysenv.rb) | 1295 | ||||
| -rw-r--r-- | lib/sisu/v5/termsheet.rb (renamed from lib/sisu/v3/termsheet.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/texinfo.rb (renamed from lib/sisu/v3/texinfo.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/texinfo_format.rb (renamed from lib/sisu/v3/texinfo_format.rb) | 50 | ||||
| -rw-r--r-- | lib/sisu/v5/texpdf.rb (renamed from lib/sisu/v3/texpdf.rb) | 347 | ||||
| -rw-r--r-- | lib/sisu/v5/texpdf_format.rb (renamed from lib/sisu/v3/texpdf_format.rb) | 129 | ||||
| -rw-r--r-- | lib/sisu/v5/update.rb (renamed from lib/sisu/v3/update.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/urls.rb (renamed from lib/sisu/v3/urls.rb) | 26 | ||||
| -rw-r--r-- | lib/sisu/v5/utils.rb (renamed from lib/sisu/v3/utils.rb) | 18 | ||||
| -rw-r--r-- | lib/sisu/v5/webrick.rb (renamed from lib/sisu/v3/webrick.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/wikispeak.rb (renamed from lib/sisu/v3/wikispeak.rb) | 8 | ||||
| -rw-r--r-- | lib/sisu/v5/xhtml.rb (renamed from lib/sisu/v3/xhtml.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/xhtml_table.rb (renamed from lib/sisu/v3/xhtml_table.rb) | 4 | ||||
| -rw-r--r-- | lib/sisu/v5/xml.rb (renamed from lib/sisu/v3/xml.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_dom.rb (renamed from lib/sisu/v3/xml_dom.rb) | 6 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_fictionbook.rb (renamed from lib/sisu/v3/xml_fictionbook.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_format.rb (renamed from lib/sisu/v3/xml_format.rb) | 58 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_md_oai_pmh_dc.rb (renamed from lib/sisu/v3/xml_md_oai_pmh_dc.rb) | 85 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_scaffold.rb (renamed from lib/sisu/v3/xml_scaffold.rb) | 2 | ||||
| -rw-r--r-- | lib/sisu/v5/xml_tables.rb (renamed from lib/sisu/v3/xml_tables.rb) | 8 | ||||
| -rw-r--r-- | lib/sisu/v5/zap.rb (renamed from lib/sisu/v3/zap.rb) | 25 | 
124 files changed, 5160 insertions, 5511 deletions
diff --git a/lib/sisu/v3/defaults.rb b/lib/sisu/v3/defaults.rb deleted file mode 100644 index 416534d1..00000000 --- a/lib/sisu/v3/defaults.rb +++ /dev/null @@ -1,2196 +0,0 @@ -# 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 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/v3/defaults.rb;hb=HEAD> - - * Ralph Amissah -   <ralph@amissah.com> -   <ralph.amissah@gmail.com> - - ** Description: Default values (reset by skins) - -=end -$latex_run=nil -module SiSU_Viz -  require 'uri' -  require_relative 'sysenv'                             # sysenv.rb -    include SiSU_Env -  require_relative 'css'                                # css.rb -    include SiSU_Style -  class Skin -    def initialize -      @fonts='verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman' # 'verdana, arial, georgia, tahoma, sans-serif, helvetica, "times new roman", times, roman' -      @dir=SiSU_Env::InfoEnv.new -      @date=SiSU_Env::InfoDate.new #{@date.year} -      @v=SiSU_Env::InfoVersion.instance.get_version -    end -    #% glyph -    def glyph_bullet # • -      '• ' # [• flagged] -    end -    #% html -    def html_hardspace -      ' ' -    end -    def semantic_tags -      def default -        { -          pub:     'publication', -          conv:    'convention', -          vol:     'volume', -          pg:      'page', -          cty:     'city', -          org:     'organization', -          uni:     'university', -          dept:    'department', -          fac:     'faculty', -          inst:    'institute', -          co:      'company', -          com:     'company', -          conv:    'convention', -          dt:      'date', -          y:       'year', -          m:       'month', -          d:       'day', -          ti:      'title', -          au:      'author', -          ed:      'editor', #editor? -          v:       'version', #edition -          n:       'name', -          fn:      'firstname', -          mn:      'middlename', -          ln:      'lastname', -          in:      'initials', -          qt:      'quote', -          ct:      'cite', -          ref:     'reference', -          ab:      'abreviation', -          def:     'define', -          desc:    'description', -          trans:   'translate', -        } -      end -      self -    end -    #% decorate -    def decorate_italics -      'title|article|book|journal' -    end -    def decorate_bold -    end -    def decorate_uppercase -      'surname' -    end -    #% semantic -    def sem_title #dc 1 -      'title' -    end -    def sem_article -      'article' -    end -    def sem_book -      'book' -    end -    def sem_journal -      'journal' -    end -    def sem_fullname # (contains: firstname, surname) #issues arise as contains surname etc. -      'fullname' -    end -    def sem_first -      'first' -    end -    def sem_surname -      'surname' -    end -    def sem_middle -      'middle' -    end -    def sem_creator #dc 2 #==fullname (contains: firstname, surname) -      'creator' -    end -    def sem_author #==fullname (contains: firstname, surname) -      'author' -    end -    def sem_editor #==fullname (contains: firstname, surname) -      'editor' -    end -    def sem_illustrator #==fullname (contains: firstname, surname) -      'illustrator' -    end -    def sem_translator #==fullname (contains: firstname, surname) -      'translator' -    end -    def sem_isbn # 10 or 13 -      'isbn' -    end -    def sem_isbn_10 -      'isbn10' -    end -    def sem_isbn_13 -      'isbn13' -    end -    def sem_loc # library of congress -      'loc' -    end -    def sem_dewey -      'dewey' -    end -    def sem_pg # project gutenberg number -      'pg' -    end -    def sem_subject #dc 3 -      'subject' -    end -    def sem_date #dc 7 -      'date' -    end -    def sem_date_created -      'date_created' -    end -    def sem_date_issued -      'date_issued' -    end -    def sem_date_available -      'date_available' -    end -    def sem_date_valid -      'date_valid' -    end -    def sem_date_modified -      'date_modified' -    end -    def sem_type #dc 8 -      'type' -    end -    def sem_description #dc 4 -      'description' -    end -    def sem_publisher #dc 5 -      'publisher' -    end -    def sem_contributor #dc 6 -      'contributor' -    end -    def sem_format #dc 9 -      'format' -    end -    def sem_identifier #dc 10 -      'identifier' -    end -    def sem_source #dc 11 -      'source' -    end -    def sem_language #dc 12 -      'language' -    end -    def sem_relation #dc 13 -      'source' -    end -    def sem_coverage #dc 14 -      'coverage' -    end -    def sem_rights #dc 15 -      'rights' -    end -    def sem_copyright -      'copyright' -    end -    def sem_license -      'license' -    end -    def sem_prepared_by -      'prepared_by' -    end -    def sem_digitized_by -      'digitized_by' -    end -    def sem_keywords -      'keywords' -    end -    def sem_comments -      'comments' -    end -    def sem_abstract -      'abstract' -    end -    #% path -    def path_stylesheet_home -      %{  <link rel="stylesheet" href="./#{@dir.path.style}/homepage.css" type="text/css" />} -    end -    #% text #changed from txt to avoid naming conflicts #FOLLOW -    def txt_generator -      %{  <meta name="generator" content="#{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" /> -    <link rel="generator" href="http://www.sisudoc.org/" />} -    end -    def txt_generator_comment -      %{  <!- #{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" http://www.sisudoc.org/ ->} -    end -    def txt_hp -      ' SiSU' -    end -    def txt_hp_alias -      'SiSU' -    end -    def txt_home -      'SiSU' -    end -    def txt_signature # used in latex/pdf footer -      'SiSU' -    end -    #% url -    def url_urify(uri) -      URI.parse(uri) -    end -    def url_sisu -      'http://www.sisudoc.org/' -    end -    def url_sisudoc -      'http://www.sisudoc.org' -    end -    def url_footer_signature -      'http://www.sisudoc.org/' -    end -    def url_root -      '/sisu' #watch -    end -    def url_root_http -      'http://www.sisudoc.org/' #watch -    end -    def url_home -      'http://www.sisudoc.org/' # used in pdf header -    end -    def url_site #used as stub... where there are subdirectories and is different from home -      url_home -      #'http://www.sisudoc.org/' # used in pdf header -    end -    def url_txt -      'www.sisudoc.org/' -    end -    def url_path_image_base #used for html image display -      "#{Xx[:html_relative2]}_sisu/image" -    end -    def url_path_image #used for html image display -      "#{Xx[:html_relative2]}_sisu/image" -    end -    def url_path_image_sys #used for html image display -      "#{Xx[:html_relative2]}_sisu/image_sys" -    end -    def url_path_image_epub -      './image' -    end -    def url_path_ebook_dir -      './ebook' -    end -    def url_path_ebook_images -      '.' -    end -    def url_promo -      '' -    end -    def url_promo_home -      '' -    end -    def url_decoration -      def tex_open                     #'{\UseTextSymbol{OML}{<}}' -        Dx[:url_o] -      end -      def tex_close                    #'{\UseTextSymbol{OML}{>}}' -        Dx[:url_c] -      end -      def xml_open                     #'<' -        Dx[:url_o] -      end -      def xml_close                    #'>' -        Dx[:url_c] -      end -      def txt_open -        '<' -      end -      def txt_close -        '>' -      end -      self -    end -    def rel_decoration -      def tex_open                     #'{\UseTextSymbol{OML}{<}}' -        Dx[:rel_o] -      end -      def tex_close                    #'{\UseTextSymbol{OML}{>}}' -        Dx[:rel_c] -      end -      def xml_open                     #'<' -        Dx[:rel_o] -      end -      def xml_close                    #'>' -        Dx[:rel_c] -      end -      def txt_open -        '<' -      end -      def txt_close -        '>' -      end -      self -    end -    #% color -    def color_shadow -      '"4"' -    end -    def color_body -      %{<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">} -    end -    def color_white -      '"#ffffff"' -    end -    def color_black -      '#000000' -    end -    def color_shadow #hmmm -      '"4"' -    end -    def color_blue_dark -      '#000099' -    end -    def color_blue -      'blue' -    end -    def color_blue_base -      '#b9d4dd' -    end -    def color_blue_ink -      '#003399' -    end -    def color_blue_tinge -      '#e3ecef' -    end -    def color_blue_grey -      '#8faebf' -    end -    def color_blue_murky -      '#437389' -    end -    def color_beige -      '#f1e8de' -    end -    def color_subtleglow -      '#dddccc' -    end -    def color_glow -      '#fff0c3' -    end -    def color_rose -      '#ffdec9' -    end -    def color_turquoise -      '#1c869b' -    end -    def color_grey_pale -      '#eeeeee' -    end -    def color_grey_medium -      '#cccccc' -    end -    def color_grey -      '#999999' -    end -    def color_yellow_light -      '#fff3b6' -    end -    def color_yellow -      '#ffde14' -    end -    def color_yellow_dark -      '#ffcc00' -    end -    def color_green_light -      '#b7d398'  #  #e2efd5 #b7d398 #b1c999 # '#aed19e' -    end -    def color_green -      '#0a8400' -    end -    def color_green_dark -      '#086800' -    end -    def color_ruby -      '#a00000' -    end -    def color_maroon -      '#800000' -    end -    def color_paper -      %{"#{color_white}"} -    end -    def color_band1 -      %{"#{color_white}"} -    end -    def color_band2 -      %{"#{color_white}"} -    end -    def color_body -      %{<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">} -    end -    def color_font_face #was font WATCH -      "#{color_black}" -    end -    def color_surround -      %{"#{color_white}"} -    end -    def color_band -      %{"#{color_white}"} -    end -    def color_table1 -      'ffffcc' -    end -    def color_table2 -      'c0d0f0' -    end -    def color_band1 -      '"#ffffff"' -    end -    def color_band2 -      '"#ffffff"' -    end -    #% icon -    def icon_ico -      'rb7.ico' -    end -    def icon_sisu -      'sisu.png' -    end -    def icon_manifest -      'b_info.png' -    end -    def icon_doc -      'b_doc.png' -    end -    def icon_toc -      'b_toc.png' -    end -    def icon_wmp -      'b_wmp.png' -    end -    def icon_odf -      'b_odf.png' -    end -    def icon_epub -      'b_epub.png' -    end -    def icon_pdf -      'b_pdf.png' -    end -    def icon_pdf_portrait -      'b_pdf.png' -    end -    def icon_pdf_landscape -      'b_pdf.png' -    end -    def icon_status -      'b_status.png' -    end -    def icon_external -      'b_ext.png' -    end -    def icon_external_toc -      'b_ext_toc.png' -    end -    def icon_seg_toc -      'b_bluebell.png' -    end -    def icon_crosslink_toc -      'b_amber.png' -    end -    def icon_mail -      'b_mail.png' -    end -    def icon_para -      'b_para.png' -    end -    def icon_pdf -      'b_pdf.png' -    end -    def icon_ftp -      'b_ftp.png' -    end -    def icon_gopher -      'b_gopher.png' -    end -    def icon_choice -      'b_choice.png' -    end -    def icon_new -      'b_new.png' -    end -    def icon_book -      'b_amber.png' -      # b_book.png -    end -    def icon_dot_clear -      'dot_clear.png' -    end -    def icon_dot_white -      'dot_white.png' -    end -    def icon_dot -      icon_dot_white -    end -    def icon_amber -      'b_amber.png' -    end -    def icon_rose -      'b_rose.png' -    end -    def icon_bluebell -      'b_bluebell.png' -    end -    def icon_home_button -      'sisu.png' -    end -    def icon_home_banner -      'sisu.png' -    end -    def icon_site -      'b_home.png' -    end -    def icon_bluedot -      'blueband.png' -    end -    def icon_next -      'arrow_next_red.png' -    end -    def icon_previous -      'arrow_prev_red.png' -    end -    def icon_up -      'arrow_up_red.png' -    end -    #% font -    def font_fonts -      @fonts -    end -    def font_face -      %{face="#{font_fonts}"} -    end -    def font_lmtoc_face -      %{face="#{font_fonts}"} -    end -    def font_ebook_face -      %{face="#{font_fonts}"} -    end -    def font_face_lmtoc -      %{face="#{font_fonts}"} -    end -    def font_color -      'color="#000000"' -    end -    def font_size -      'size="4"' -    end -    def font_size_txt -      'size="4"' -    end -    def font_size_txt_00 -      'size="3"' -    end -    def font_size_endnote -      'size="3"' -    end -    def font_small -      'size="3"' -    end -    def font_tiny -      'size="2"' -    end -    #% markup -    def markup_italics_list #regular expression of words to be italised -    end -    def markup_bold_list #regular expression of words to be made bold -      'SiSU' -    end -    def markup_make_italic -      if defined? italics_list \ -      and italics_list -        make={} -        if italics_list -          r=italics_list.dup -          x=case r -          when /\/i$/; 'i' -          else         '' -          end -          r=r.gsub(/^\/(.+?)\/i?/,'\1'). -            gsub(/\(/,'(?:') # avoid need to escape use of brackets within regex provided -          m='\b(' + r + ')\b' -          make[:str] -          make[:regx]=(x =~/i/) \ -          ? (/#{m}/i) -          : (/#{m}/) -        else nil -        end -      end -    end -    def markup_make_bold -      if defined? bold_list \ -      and not bold_list.empty? -        make={} -        if bold_list -          r=bold_list.dup -          x=case r -          when /\/i$/; 'i' -          else         '' -          end -          r.gsub(/^\/(.+?)\/i?/,'\1'). -            gsub(/\(/,'(?:') # avoid need to escape use of brackets within regex provided -          m='\b(' + r + ')\b' -          make[:str] -          make[:regx]=(x =~/i/) \ -          ? (/#{m}/i) -          : (/#{m}/) -        else nil -        end -        make -      end -    end -    #% paragraph -    def paragraph_txt -      %{<p class="normal">} -    end -    def paragraph_txt_00 -      %{<p class="justify">} -    end -    def paragraph_font_citation -      %{<font #{font_size_txt} #{font_face}>} -    end -    def paragraph_endnote -      %{<p class="endnote">} -    end -    def paragraph_table -      %{<p align="left"><font #{font_small} #{font_color} #{font_face}>} -    end -    def paragraph_tiny -      %{<p class="tiny">} -    end -    def paragraph_small -      %{<p class="small">} # keep but not used? -    end -    def paragraph_font_tiny -      %{<font #{font_tiny} #{font_face}>} -    end -    def paragraph_font_small -      %{<font #{font_small} #{font_face}>} -    end -    def paragraph_heading_1 -      %{<h1>} -    end -    def paragraph_heading_1_center -      %{<h1 class="center">} -    end -    #% table -    def table_close -      '</td></tr> -</table>' -    end -    def table_close_centered_table -    end -    def table_align_A -    end -    def table_align_B -    end -    def table_align_C -    end -    def table_width_1 -      '"100%"' -    end -    def table_width_2 -      '"99%"' -    end -    def table_width_3 -      '"94%"' -    end -    def table_width_4 -      '"90%"' -    end -    def table_width_txt -      '"94%"' -    end -    def table_width_txt_avgo -      '"100%"' -    end -    def table_width_txt_r -      '"96%"' -    end -    def table_cellpad_small_paper_margins -      '"6"' -    end -    def table_cellpad_paper_margins -      '"36"' -    end -    def table_cellpad_A -      '"0"' -    end -    def table_cellpad_B -      '"20"' -    end -    def table_cellpad_shadow -      '"4"' -    end -    def table_cellpad_band -      '"16"' -    end -    def table_cellpad_box -      '"20"' -    end -    def table_table_align_A -      '<center>' -    end -    def table_table_align_B -      '<center>' -    end -    def table_table_align_C -      ' ' -    end -    #% table_do -    def table_do_table_paper -      %{#{table_align_C} <table summary="table paper" width=#{table_width_2} border="0" cellpadding=#{table_cellpad_paper_margins} bgcolor=#{color_paper} align="Justify"><tr><td>\n<font color="#000000"><p />\n} -    end -    def table_do_table_surround -      %{<table summary="table surround" width="100%" border="0" cellpadding="0" bgcolor="#ffffff" align="center"><tr><td>\n} -    end -    #% indent -    def indent_level_0 -      '"1%"' -    end -    def indent_level_1 -      '"4%"' -    end -    def indent_level_2 -      '"6%"' -    end -    def indent_level_3 -      '"8%"' -    end -    def indent_level_4 -      '"10%"' -    end -    #% margin -    def margin_num -      '</p> </td><td width="4%" align="right" valign="top">' -    end -    def margin_numless -      '</td><td width="4%" align="right" valign="top">' -    end -    def margin_num_css -      '</td> -<td width="2%" align="right" valign="top">  ' -    end -    def margin_num_header -      '</td> -<td width="4%" align="right" valign="top">' -    end -    def margin_txt_00_1 -      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width=#{indent_level_1} align="right"> -</td> -<td valign="top" align="left" width=#{indent_level_1_c2w100}>} -    end -    def margin_txt_w1 -      %{<table summary="" width=#{table_width_txt_r} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width="6%" align="right"> </td> -<td width="90%" valign="top" align="justify">} -    end -    def margin_txt_w2 -      %{<table summary="" width=#{table_width_txt_r} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width="10%" align="right"> </td> -<td width="86%" valign="top" align="justify">} -    end -    def margin_txt_0 -      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width=#{indent_level_0} align="right"> -</td><td valign="top" align="justify">} -    end -    def margin_txt_1 -      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width=#{indent_level_1} align="right"></td><td valign="top" align="justify">} -    end -    def margin_txt_2 -      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width=#{indent_level_2} align="right"> -</td> -<td valign="top" align="justify">} -    end -    def margin_txt_3 -      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td width=#{indent_level_3} align="right"> -</td> -<td valign="top" align="justify">} -    end -    def margin_css #unused, check -      '<table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center"> -<tr><td valign="top" align="justify"> ' -    end -    #% png -    def png_ico -      %{  <link rel="shortcut icon" href="../_sisu/image/#{icon_ico}" />} -    end -    def png_sisu #check url path -      %{  <a href="#{@url.sisu}"> -    <img border="0" width="160" height="60" src="#{url_path_image}/#{icon_sisu}" alt="SiSU" /> -    </a>} -    end -    def png_hp -      dir=SiSU_Env::InfoEnv.new #(@fns) -      %{  <a href="#{url.site}"> -      <img border="0" width="160" height="60" src="#{@dir.url.images_local}/#{icon_home_banner}" alt="#{txt_home}" /> -    </a>} -    end -    def png_site -      %{<img src="#{url_path_image}/#{icon_site}" alt="@" border="0" />} -    end -    def png_homepage -      png_site -    end -    def png_nav -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_bluebell}" alt="Contents" />} -    end -    def png_manifest -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_manifest}" alt="Document Manifest" />} -    end -    def png_doc -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_doc}" alt="Full Text" />} -    end -    def png_toc -      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_toc}" alt="TOC linked" />} -    end -    def png_odf -      %{<img border="0" height="18" width="18" src="#{url_path_image_sys}/#{icon_odf}" alt="ODF/ODT" />} -    end -    def png_epub -      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_epub}" alt="EPUB" />} -    end -    def png_pdf -      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF" />} -    end -    def png_pdf_portrait -      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF portrait" />} -    end -    def png_pdf_landscape -      %{<img border="0" height="15" width="18" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF landscape" />} -    end -    def png_wmp -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_wmp}" alt="Concordance" />} -    end -    def png_para -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_para}" alt="Segment" />} -    end -    def png_status -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_status}" alt="Membership status" />} -    end -    def png_mark -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_rose}" alt="*" />} -    end -    def png_doc_tiny -      %{<img border="0" height="8" width="8" src="#{url_path_image_sys}/#{icon_doc}" alt="Doc" />} -    end -    def png_toc_tiny -      %{<img border="0" height="8" width="8" src="#{url_path_image_sys}/#{icon_toc}" alt="TOC" />} -    end -    def png_status_tiny -      %{<img border="0" height="8" width="8" src="#{url_path_image_sys}/#{icon_status}" alt="Status, Member States" />} -    end -    def png_ftp -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_ftp}" alt="FTP" />} -    end -    def png_gopher -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_gopher}" alt="Gopher" />} -    end -    def png_crosslink -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_crosslink_toc}" alt="lateral hop" />} -    end -    def png_crosslink_ext -      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_external_toc}" alt="lateral hop" />} -    end -    def png_home -      #dir=SiSU_Env::InfoEnv.new #(@fns) -      %{<img border="0" src="#{url_path_image_base}/#{icon_home_button}" alt="#{txt_home} -->" />} -      #%{<img border="0" src="#{dir.url.images_local}/#{icon_home_button}" alt="#{txt_home} -->" />} -    end -    def png_home_button -      rel=@dir.path_rel_links.html_scroll_2 -      %{<img border="0" src="#{rel}/#{icon_home_button}" alt="#{txt_home} -->" />} -    end -    def png_book -      %{<img border="2" height="15" width="15" src="#{url_path_image_sys}/#{icon_book}" alt="Cameron May Books" />} -    end -    #% png_nav #not currently used -    def png_nav_home -    end -    def png_nav_toc -      %{<img border="0" width="22" height="22" src="#{url_path_image_sys}/#{icon_up}" alt="TOC" />} -    end -    def png_nav_doc -    end -    def png_nav_previous -      %{<img border="0" width="22" height="22" src="#{url_path_image_sys}/#{icon_previous}" alt="<< previous" />} -    end -    def png_nav_next -      %{<img border="0" width="22" height="22" src="#{url_path_image_sys}/#{icon_next}" alt="next >>" />} -    end -    def png_nav_pre -      png_nav_previous -    end -    def png_nav_nxt -      png_nav_next -    end -    def epub_png_nav_previous -      %{<img border="0" width="22" height="22" src="#{url_path_image_epub}/#{icon_previous}" alt="<< previous" />} -    end -    def epub_png_nav_next -      %{<img border="0" width="22" height="22" src="#{url_path_image_epub}/#{icon_next}" alt="next >>" />} -    end -    def epub_png_nav_up -      %{<img border="0" width="22" height="22" src="#{url_path_image_epub}/#{icon_up}" alt="^up ^" />} -    end -    def epub_png_nav_pre -      epub_png_nav_previous -    end -    def epub_png_nav_nxt -      epub_png_nav_next -    end -    def epub_png_nav_toc -      epub_png_nav_up -    end -    def png_nav_pdf -      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF" />} -    end -    def png_nav_pdf_portrait -      %{<img border="0" width="15" height="18" src="#{url_path_image_sys}/#{icon_pdf}" alt="pdf portrait" />} -    end -    def png_nav_pdf_landscape -      %{<img border="0" width="18" height="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="pdf landscape" />} -    end -    def png_nav_dot_toc -      %{<img border="0" width="100%" height="20" src="#{url_path_image_sys}/#{icon_dot}" alt="^" />} -    end -    def png_nav_dot_previous -      %{<img border="0" width="100%" height="20" src="#{url_path_image_sys}/#{icon_dot}" alt="<" />} -    end -    def png_nav_dot_next -      %{<img border="0" width="100%" height="20" src="#{url_path_image_sys}/#{icon_dot}" alt=">" />} -    end -    def png_nav_dot_pre -      png_nav_dot_previous -    end -    def png_nav_dot_nxt -      png_nav_dot_next -    end -    #% nav_txt -    def nav_txt_home -      %{  <font face="#{font_fonts}" size="2"> -    #{png_site}  -  </font> } -    end -    def nav_txt_home_button -      %{  <font face="#{font_fonts}" size="2"> -    #{png_home_button}  -  </font> } -    end -    def nav_txt_homepage -      %{  <font face="#{font_fonts}" size="2"> -     home  -  </font> } -    end -    def nav_txt_toc_link -      %{  <font face="#{font_fonts}" size="2"> -      toc  -  </font> } -    end -    def nav_txt_toc_link_verbose -      %{  <font face="#{font_fonts}" size="2"> -    #{png_toc}  segments' toc  -  </font> } -    end -    def nav_txt_doc_link -      %{  <font face="#{font_fonts}" size="2"> -     scroll  -  </font> } -    end -    def nav_txt_manifest -      #{png_manifest} document manifest -      %{  <font face="#{font_fonts}" size="2"> -    [ document manifest ] -  </font> } -    end -    def nav_txt_concordance -      %{  <font face="#{font_fonts}" size="2"> -      A-Z  -  </font> } -    end -    def nav_txt_previous -      '  <font face="" size="2"> -      <b><<</b> Previous   -  </font> -  Full Text ' -    end -    def nav_txt_next -      %{  <font face="#{font_fonts}" size="2"> -      Next     <b>>></b>   -  </font> } -    end -    def nav_txt_plaintext -      %{  <font face="#{font_fonts}" size="2"> -      txt  -  </font> } -    end -    def nav_txt_odf -      %{  <font face="#{font_fonts}" size="2"> -      odt  -  </font> } -    end -    def nav_txt_pdfs -      %{  <font face="#{font_fonts}" size="2"> -    pdfs   -  </font> } -    end -    def nav_txt_epub -      %{  <font face="#{font_fonts}" size="2"> -     epub  -  </font> } -    end -    def nav_txt_pdf_portrait -      %{  <font face="#{font_fonts}" size="2"> -     pdf  -  </font> } -    end -    def nav_txt_pdf_landscape -      %{  <font face="#{font_fonts}" size="2"> -     pdf  -  </font> } -    end -    #% banner -    def banner_home -      %{  <center> -    <a href="#{url_site}/" target="_top"> -      #{png_site} -    </a> -  <br /> -  <font size="2" color="#444444"> -    an -  <br /> -    ( international | transnational ) -  <br /> -    commercial law & e-commerce -  <br /> -    infrastructure monitor</font></center>} -    end -    def banner_home_guide -      %{  <br /> -    <a href="#{url_site}/" target="_top"> -      #{png_doc} LM toc -    </a> -    <a href="../treaties.and.organisations/lm.chronological" target="_top"> -      #{png_doc} LM 20** -    </a> -  <br />} -    end -    def banner_home_button_only -      %{<a href="#{url_site}/"> -    #{png_home_button} -  </a>} -    end -    def banner_home_button #yellow_dark now white -      %{<table summary="home button" width="100%" border="0" cellpadding="3" bgcolor= "#ffffff" align="center"> -<tr><td align="left" valign="middle" bgcolor="#{color_white}" width="10%"> -  <a href="#{url_site}/"> -    #{png_home_button} -  </a> -</td> -<td width="90%"> -#{table_close}} -    end -    def banner_home_and_index_buttons #yellow_dark now white -      %{<table summary="home and index buttons" bgcolor=#{color_band1}> -<tr><td width="20%"> -<table summary="home button" width="100%" border="0" cellpadding="3" align="center"> -<tr><td align="center" valign="middle" bgcolor="#{color_white}"> -  <a href="#{url_site}/" target="_top"> -    #{png_home} -  </a> -</td></tr> -</table> -</td> -<td width="60%"> -<table summary="other contents buttons" border="0" cellpadding="3" cellspacing="0"> -<tr><td align="center" bgcolor=#{color_band2}> -  <font face="arial" size="2"> -    <a href="toc" target="_top"> -       This text's sub-  -    <br /> -       Table of Contents  -    </a> -  </font> -</td></tr> -</table> -</td> -<td width="20%"> -    -#{table_close}} -    end -    def banner_url_txt_sisu -      %{<a href="#{url_sisu}/sisu" target="_top">SiSU</a>} -    end -    def banner_band #yellow_dark now white -      %{<table summary="home button" width="100%" border="0" cellpadding="3" bgcolor= "#ffffff" align="center"> -<tr><td align="left" valign="middle" bgcolor="#{color_white}"> -  <a href="#{url_site}/" target="_top"> -    #{png_home} -  </a> -</td> -<td width="90%"> -#{table_close}} -    end -    def banner_credit_band -      %{<table summary="credits table yellow" width="80%" border="1" cellpadding="0" bgcolor="#{color_yellow_dark}" align="center"> -<tr><td align="center"> -<table summary="salmon" width="100%" border="0" cellpadding="0" bgcolor="#ffdec9"> -<tr><td align="center"> -<table summary="credits white background" width="100%" border="0" cellpadding="6" bgcolor="#ffffff"> -<tr><td align="center">} -    end -    def banner_instrument_cover_band_scr -      '<table summary="scroll instrument cover band" width="100%" border="0" cellpadding="8" bgcolor="#ffffff" align="center"> -<tr><td align="center">' -    end -    def banner_instrument_cover_band_seg -      '<table summary="segment instrument cover band, title, author, location" width="100%" border="0" cellpadding="8" bgcolor="#ffffff" align="center"> -<tr><td align="center">' -    end -    #% widget -    def widget_promo # Array used to build promo from list.yml and promo.yml -    #  ['sisu_icon','sisu','sisu_search_libre','open_society','fsf','ruby'] -    end -    def widget_browsers -<<WOK -<tr align="center"><td align="center"> -<table summary="browser suggestions" bgcolor="#ffffff" cellpadding="4" border="0"> -<tr><td> -  <p> -  <font color="#666666" size="2"> -    If you have problems viewing pages on this site please update your browser: -  </font> -  </p> -#{table_close} -<table summary="browser suggestions" bgcolor="#ffffff" cellpadding="4" border="0"> -<tr><td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.gnome.org/projects/epiphany/" target="external"> -         Epiphany -      </a> -      <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://galeon.sourceforge.net/" target="external"> -       Galeon -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.microsoft.com/windows/ie/default.asp" target="external"> -      I-Explorer -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://kazehakase.sourceforge.jp/" target="external"> -     Kazehakase</a> -    <sup>®</sup> |</font></p></td> -<td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.konqueror.org/" target="external"> -    Konqueror</a> -    <sup>®</sup> |</font></p></td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.mozilla.org/" target="external"> -      Mozilla -    </a> -    <a href="http://www.mozilla.org/products/firefox/" target="external"> -      <b>Firefox</b> -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://home.netscape.com/comprod/mirror/client_download.html" target="external"> -      Netscape -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.opera.com/" target="external"> -      Opera -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.apple.com/safari/" target="external"> -      Safari -    </a> -    <sup>®</sup> -  </font> -  </p> -#{table_close} -<table summary="lightweight browser and text browser suggestions" bgcolor="#ffffff" cellpadding="4" border="0"> -<tr><td> -  <p> -  <font color="#666666" size="1"> -    for console/text viewing: -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://elinks.or.cz/" target="external"> -      <b>elinks</b> -    </a> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://atrey.karlin.mff.cuni.cz/~clock/twibright/links" target="external"> -      <b>links2</b> -    </a> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://w3m.sourceforge.net/" target="external"> -      <b>w3m</b> -    </a> -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    for lightweight gui (X) viewing try: -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.dillo.org/" target="external"> -      Dillo -    </a> -     | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://www.gnome.org/projects/epiphany/" target="external"> -       Epiphany -    </a> -    <sup>®</sup> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://galeon.sourceforge.net/" target="external"> -       Galeon -    </a> | -  </font> -  </p> -</td> -<td> -  <p> -  <font color="#666666" size="1"> -    <a href="http://atrey.karlin.mff.cuni.cz/~clock/twibright/links" target="external"> -      <b>links2 -g</b> -    </a> -  </font> -  </p> -#{table_close} -</td></tr> -WOK -    end -    def widgets_open -<<WOK -<table summary="SiSU summary" bgcolor="#ffffff" cellpadding="4" border="0"> -WOK -    end -    def widget_pdfviewers -<<WOK -<tr align="center"><td align="center"> -<!-- pdf viewer suggestions --> -<tr><td> -  <p class="center"> -  <font color="#666666" size="1"> -    & for -    <a href="http://www.adobe.com/products/acrobat/adobepdf.html" target="external"> -      pdf -    </a> -    viewings of this site we recommend stand alone viewers -    <br /> -    (rather than web browser plugins): -  </font> -  </p> -</td></tr> -<tr align="center"><td align="center"> -  <p class="center"> -  <font color="#666666" size="1"> -    <a href="http://www.adobe.com/products/acrobat/readstep2.html" target="external"> -      Acrobat Reader -    </a> -    <sup>®</sup> -     | -  </font> -  </p> -</td> -<td> -  <p class="center"> -  <font color="#666666" size="1"> -    <a href="http://www.gnome.org/projects/evince/" target="external"> -      <b>Evince</b> -    </a> -    <sup>®</sup> -  </font> -  </p> -</td> -<td> -  <p class="center"><font color="#666666" size="1"> -    <a href="http://www.cs.wisc.edu/~ghost/gv/" target="external"> -     GhostView<sup>®</sup> </a>, -    <a href="http://wwwthep.physik.uni-mainz.de/~plass/gv/" target="external"> -      GV<sup>®</sup> -    </a> -    & -    <a href="http://www.cs.wisc.edu/~ghost/gsview/" target="external"> -      GSview<sup>®</sup> -    </a> -     | -  </font> -  </p> -</td> -<td> -  <p class="center"> -  <font color="#666666" size="1"> -    <a href="http://www.foolabs.com/xpdf/" target="external"> -       Xpdf -    </a> -    <sup>®</sup> -  </font> -  </p> -</td></tr> -WOK -    end -    def widget_sisu_text -<<WOK -  <p class="tiny"><font color="#666666" size="2"> -    Output generated by -    <a href="#{url_sisu}"> -      #{@v[:project]} -    </a> -    #{@v[:version]} #{@v[:date]} (#{@v[:date_stamp]}) -  </font></p> -WOK -    end -    def widget_sisu -<<WOK -<!-- widget sisu --> -<tr><td valign="top" width="100%"> -<!-- SiSU Rights --> -#{widget_sisu_text} -</td></tr> -WOK -    end -    def widget_sisu_verbose -<<WOK -<!-- widget sisu --> -<tr><td valign="top" width="10%"> -  <p class="tiny_left"><font color="#666666" size="2"> -    <a href="#{url_sisu}"> -      <img border="0" src="../_sisu/image/sisu.png" alt="SiSU" width="120" height="39" /> -    </a> -  </font></p> -</td><td valign="top" width="45%"> -<!-- SiSU Rights --> -  <p class="tiny_left"><font color="#666666" size="2"> -    Output generated by -    <a href="#{url_sisu}"> -      #{@v[:project]} -    </a> -    #{@v[:version]} #{@v[:date]} (#{@v[:date_stamp]}) -    <br /> -    <a href="#{url_sisu}"> -      <b>#{@v[:project]}</b> -    </a> -    Copyright <sup>©</sup> Ralph Amissah -    1997, current #{@date.year_static}. -    All Rights Reserved. -    <br /> -    <a href="#{url_sisu}"> -      #{@v[:project]} -    </a> -    is software for document structuring, publishing and search, -    <br /> -    <a href="#{url_sisu}"> -      www.sisudoc.org/ -    </a> -    and -    <a href="#{url_sisudoc}"> -      www.sisudoc.org -    </a> -  <br /> -    <i>w3 since October 3 1993</i> -    <a href="mailto:ralph@amissah.com"> -      ralph@amissah.com -    </a> -  </font></p> -</td><td valign="top" width="45%"> -  <p class="tiny_left"><font color="#666666" size="2"> -    #{@v[:project]} using: -    <br />Standard SiSU markup syntax, -    <br />Standard SiSU meta-markup syntax, and the -    <br />Standard SiSU <u>object citation numbering</u> and system, (object/text positioning system) -  <br /> -    Copyright <sup>©</sup> Ralph Amissah 1997, current #{@date.year_static}. -    All Rights Reserved. -  </font></p> -</td></tr> -WOK -    end -    def widget_way_better -      <<WOK -<!-- widget way better --> -<tr><td valign="top" width="10%"> -  <p class="tiny_left"><font color="#666666" size="2"> -    <a href="http://www.gnu.org/licenses/gpl.html"> -      <img border="0" src="../_sisu/image/gplv3_free_software.png" alt="GPLv3" width="127" height="51" /> -    </a> -  </font></p> -</td><td valign="top" width="45%"> -  <p class="tiny_left"><font color="#666666" size="2"> -    <a href="#{url_sisu}"> -      #{@v[:project]} -    </a> -    is released under -    <a href="http://www.gnu.org/licenses/gpl.html">GPLv3</a> -    or later, -    #{url_decoration.xml_open}<a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>#{url_decoration.xml_close} -  </font></p> -</td><td valign="top" width="45%"> -  <p class="tiny_left"><font color="#666666" size="2"> -    #{@v[:project]}, developed using -    <a href="http://www.ruby-lang.org/en/"> -      Ruby -    </a> -    on -    <a href="http://www.debian.org/"> -      Debian/Gnu/Linux -    </a> -    software infrastructure, -    with the usual GPL (or OSS) suspects. -  <br /> -    Better - "performance, reliability, scalability, security & total cost of ownership" -    [not to mention flexibility & choice] use of and adherence to open standards (where practical and fair) and it is software libré. -  <br /> -    Get With the Future -    <a href="http://www.sisudoc.org/"> -      Way Better! -    </a> -  </font></p> -</td></tr> -WOK -    end -    #% credits -    def credits_itl_cover_band -      %{<table summary="itl cover band" width="88%" border="0" cellpadding="0" bgcolor="blue"> -<tr><td> -<table summary="" width="100%" border="0" cellpadding="8" bgcolor="#000099"> -<tr><td> -<table summary="" width="99%" border="1" cellpadding="0" bgcolor="#ffcc00"> -<tr><td> -<table summary="" width="100%" border="1" cellpadding="0" bgcolor="#ffffff"> -<tr><td align="center"> -  <font #{font_face}> -    <br /> -      \@ -    <br /> -      #{txt_home} -    <br /> -      #{banner_url_txt_sisu} -    <br /> -  </font> -#{table_close*4}} -    end -    def credits_sisu_manifest -      widget_sisu_text -    end -    def credits_sisu -      x=%{<div class="substance"> -<table summary="SiSU summary" bgcolor="#ffffff" cellpadding="4" border="0"> -<tr><td> -  #{widget_sisu} -  #{widget_way_better} -</table></div>} -      '' -    end -    def credits_splash -    end -    def credits_sisu_epub -      x=%{<div class="substance"> -<p class="center"><a href="http://www.openebook.org"><b>EPUB</b></a> generated by <a href="http://www.sisudoc.org"><b>#{@v[:project]}</b></a> v#{@v[:version]}, GPL3</p> -</div>} -      '' -    end -    #% bottom -    def bottom_surround -      %{</td> -<td align="center" valign="bottom">#{table_close}<table summary="" border="0" width="100%" valign="top"> -<tr><td valign="top" width="20%"><table summary="" width="100%" border="0" cellpadding="0" bgcolor="#e3ecef" align="center"> -<tr><td valign="top"> -#{table_close} -</td> -<td align="center" valign="top"> -  #{banner_band} -#{table_close} -<table summary="" border="0" width="100%" valign="top"> -<tr><td valign="top" width="20%"> -<table summary="" width="100%" border="0" cellpadding="0" bgcolor="#e3ecef" align="center"> -<tr><td valign="top"> -  #{table_close} -</td> -<td align="center" valign="top"> -  #{credits_splash} -#{table_close} -</body> -</html>} -    end -  end -  class Home < Skin -    def initialize -      @v=SiSU_Env::InfoVersion.instance.get_version -      @dir=SiSU_Env::InfoEnv.new -      @date=SiSU_Env::InfoDate.new #{@date.year} -    end -    def redirect -      <<WOK -<html><head> -<title>SiSU</title> -<meta http-equiv="refresh" content="0, url=http://www.sisudoc.org/sisu/SiSU/"> -</head> -<body> -SiSU informtion provided at <a href="http://www.sisudoc.org/sisu/SiSU/">www.sisudoc.org/sisu/SiSU</a><p /> -If your browser supports redirection, you will be escorted there shortly. -</body> -</html> -WOK -    end -    def homepage -      <<WOK -<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> -<title>SiSU information Structuring Universe - Structured -information, Serialized Units - software for electronic texts, -documents, books, digital libraries in plaintext, html, XHTML, XML, -ODF (OpenDocument), EPUB, LaTeX, PDF, SQL (PostgreSQL and SQLite), and -for search</title> -<meta name="dc.title" -  content="SiSU information Structuring Universe, Structured information Serialised Units, #{@date.year_static}" /> -<meta name="dc.creator" content="Ralph Amissah" /> -<meta name="dc.subject" content= -"document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, EPUB, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" /> -<meta name="dc.publisher" content= -"SiSU http://www.sisudoc.org/" /> -<meta name="dc.language" content="en" /> -<meta name="dc.rights" content="Copyright Ralph Amissah" /> -<meta name="generator" content="#{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" /> -<link rel="generator" href="http://www.sisudoc.org/sisu/SiSU" /> -<link rel="stylesheet" href="./#{@dir.path.style}/html.css" type="text/css" /> -<link rel="shortcut icon" href="./_sisu/image/rb7.ico" /> -</head> -<body> -<div id="top_band"> -<p class="top_band_image"> -  <a href="http://www.sisudoc.org/sisu/SiSU" target="_top"> -    <img border="0" src="./_sisu/image/sisu.png" alt="SiSU >>"> -  </a> -</p> -<h1 class="top_band"> -  SiSU information Structuring Universe -</h1> -<h2 class="top_band_tiny"> -  Structured information, Serialized Units -     -  <a href="http://www.sisudoc.org" target="_top"> -    <www.sisudoc.org> -  </a> -    or   -  <a href="http://www.jus.uio.no/sisu/" target="_top"> -    <www.jus.uio.no/sisu/> -  </a> -</h2> -<h2 class="top_band_tiny"> -software for electronic texts, document collections, books, digital libraries, and search, -</h2> -<h2 class="top_band_tiny"> - with "atomic search" and text positioning system (shared text citation numbering: "<i>ocn</i>") -</h2> -<h2 class="top_band_tiny"> -outputs include: plaintext, html, XHTML, XML, ODF (OpenDocument), EPUB, LaTeX, PDF, SQL (PostgreSQL and SQLite) -</h2> -</div> -<div id="top_band_search"> -</div> -<div id="column_left"> -<p class="bold"> -  <a href="http://www.sisudoc.org/sisu/SiSU" target="_top"> -    SiSU -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/sisu_manual/" target="_top"> -    SiSU Manual -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/1.html#summary" target="_top"> -    What does SiSU do? Summary -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/examples.html" target="_top"> -    Book Samples and Markup Examples -  </a> -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/sisu_site_metadata/harvest_authors.html" target="_top"> -   sorted by Author (sisu metadata) -  </a> -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/sisu_site_metadata/harvest_topics.html" target="_top"> -   sorted by Topic (sisu metadata) -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/1.html#ocn" target="_top"> -    Object Citation Numbering - <i>ocn</i> -  </a> -</p> -<p class="tiny">(a text positioning system)</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/1.html#search" target="_top"> -    Search - "<i>granular</i>" -  </a> -</p> -<p class="tiny"> -  Of interest is the ease of streaming documents to a relational database, at an object (roughly paragraph) level and the potential for increased precision in the presentation of matches that results thereby. The ability to serialise html, LaTeX, XML, SQL, (whatever) is also inherent in / incidental to the design. For a description see the -  <a href="http://www.sisudoc.org/sisu/sisu_provisional_patent_application_200408" target="_top"> -    abandoned U.S. provisional patent application -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://git.sisudoc.org/" target="_top"> -    <b>Development, SCM - Git</b> -  </a><br /> -  <a href="http://git.sisudoc.org/" target="_top"> -    <http://git.sisudoc.org> -  </a> -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/download.html" target="_top"> -    <b>Download</b> alternatives -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  <a href="http://www.sisudoc.org/sisu/SiSU/changelog.html" target="_top"> -    Changelog -  </a> -</p> -<p class="tiny"> -  --- -</p> -<p class="small"> -  License, SiSU is licensed under -  <a href="http://www.gnu.org/licenses/gpl.html" target="_top"> -    GPLv3 or later -  </a> -</p> -<p class="tiny"> -  Gnu / Linux / Unix -</p> -<p class="tiny"> -  Note: the placement of SiSU documents on the Net predate the release of SiSU. -</p> -</div> -<div id="column_center"> -<p class="bold"> -SiSU Short Description -</p> -<p> -SiSU is a comprehensive future-proofing electronic document management system.  Built-in search capabilities allow you to search across multiple documents and highlight matches in an easy-to-follow format.  Paragraph numbering system allows you to cite your electronic documents in a consistent manner across multiple file formats.  Multiple format outputs allow you to display your documents in plain text, PDF (portrait and horizontal), OpenDocument format, HTML, or e-book reading format (EPUB).  Word mapping allows you to easily create word indexes for your documents.  Future-proofing flexibility allows you to quickly adapt your documents to newer output formats as needed.  All these and many other features are achieved with little or no additional work on your documents - by marking up the documents with a super simplistic markup language, leaving the SiSU engine to handle the heavy-lifting processing. -</p> -<p> -Potential users of SiSU include individual authors who want to publish their books or articles electronically to reach a broad audience, web publishers who want to provide multiple channels of access to their electronic documents, or any organizations which centrally manage a medium or large set of electronic documents, especially governmental organizations which may prefer to keep their documents in easily accessible yet non-proprietary formats. -</p> -<p> -SiSU is an Open Source project initiated and led by Ralph Amissah <a href="mailto:ralph.amissah@gmail.com"><ralph.amissah@gmail.com></a> and can be contacted via mailing list <a href="http://lists.sisudoc.org/listinfo/sisu"><http://lists.sisudoc.org/listinfo/sisu></a> at <a href="mailto:sisu@lists.sisudoc.org"><sisu@lists.sisudoc.org></a>. SiSU is licensed under the GNU General Public License. -</p> -<p class="bold"> -  For less markup than the most elementary HTML you can have more. -</p> -<p><a href="http://www.sisudoc.org/sisu/SiSU" target="_top"><b>SiSU</b> - Structured information, Serialized Units</a> for electronic documents, is an information structuring, transforming, publishing and search framework with the following features:</p> -<p> -<b>(i)</b> markup syntax: -<b>(a)</b> -simpler than html, -<b>(b)</b> -mnemonic, influenced by mail/messaging/wiki markup practices, -<b>(c)</b> human readable, and easily writable,</p> -<p><b>(ii)</b> -<b>(a)</b> -minimal markup requirement, -<b>(b)</b> -single file marked up for multiple outputs,</p> -<p><b> -notes -</b></p> -<p class="small"> -<b>*</b> -documents are prepared in a single UTF-8 file using a minimalistic mnemonic syntax. Typical literature, documents like "War and Peace" require almost no markup, and most of the headers are optional. -</p> -<p class="small"> -<b>*</b> -markup is easily readable/parsed by the human eye, (basic markup is simpler and more sparse than the most basic html), [this may also be converted to XML representations of the same input/source document]. -</p> -<p class="small"> -<b>*</b> -markup defines document structure (this may be done once in a header pattern-match description, or for heading levels individually); basic text attributes (bold, italics, underscore, strike-through etc.) as required; and semantic information related to the document (header information, extended beyond the Dublin core and easily further extended as required); the headers may also contain processing instructions. -</p> -<p><b>(iii)</b> -<b>(a)</b> -multiple outputs primarily industry established and institutionally accepted open standard formats, include amongst others: plaintext (UTF-8); html; (structured) XML; ODF (Open Document text); EPUB; LaTeX; PDF (via LaTeX); SQL type databases (currently PostgreSQL and SQLite). Also produces: concordance files; document content certificates (md5 or sha256 digests of headings, paragraphs, images etc.) and html manifests (and sitemaps of content). - -<b>(b) -</b> -takes advantage of the strengths implicit in these very different output types, (e.g. PDFs produced using typesetting of LaTeX, databases populated with documents at an individual object/paragraph level, making possible granular search (and related possibilities))</p> -<p><b>(iv)</b> -outputs share a common numbering system (dubbed "object citation numbering" (ocn)) that is meaningful (to man and machine) across various digital outputs whether paper, screen, or database oriented, (PDF, html, XML, EPUB, sqlite, postgresql), this numbering system can be used to reference content.</p> -<p> -<b>(v)</b> -SQL databases are populated at an object level (roughly headings, paragraphs, verse, tables) and become searchable with that degree of granularity, the output information provides the object/paragraph numbers which are relevant across all generated outputs; it is also possible to look at just the matching paragraphs of the documents in the database; [output indexing also work well with search indexing tools like hyperesteier].</p> -<p> -<b>(vi)</b> - use of semantic meta-tags in headers permit the addition of semantic information on documents, (the available fields are easily extended)</p> -<p> -<b>(vii)</b> -creates organised directory/file structure for (file-system) output, easily mapped with its clearly defined structure, with all text objects numbered, you know in advance where in each document output type, a bit of text will be found (e.g. from an SQL search, you know where to go to find the prepared html output or PDF etc.)... there is more; easy directory management and document associations, the document preparation (sub-)directory may be used to determine output (sub-)directory, the skin used, and the SQL database used,</p> -<p> -<b>(viii)</b> -"Concordance file" wordmap, consisting of all the words in a document and their (text/ object) locations within the text, (and the possibility of adding vocabularies),</p> -<p> -<b>(ix)</b> -document content certification and comparison considerations: -<b>(a)</b> -the document and each object within it stamped with an md5 hash making it possible to easily check or guarantee that the substantive content of a document is unchanged, -<b>(b)</b> -version control, documents integrated with time based source control system, default RCS or CVS with use of $Id$ tag, which SiSU checks -</p> -<p> -<b>(x)</b> -SiSU's minimalist markup makes for meaningful "diffing" of the substantive content of markup-files,</p> -<p> -<b>(xi)</b> -easily skinnable, document appearance on a project/site wide, directory wide, or document instance level easily controlled/changed,</p> -<p> -<b>(xii)</b> -in many cases a regular expression may be used (once in the document header) to define all or part of a documents structure obviating or reducing the need to provide structural markup within the document,</p> -<p> -<b>(xiii)</b> -prepared files may be batch process, documents produced are static files so this needs to be done only once but may be repeated for various reasons as desired (updated content, addition of new output formats, updated technology document presentations/representations)</p> -<p> -<b>(xiv)</b> -possible to pre-process, which permits: the easy creation of standard form documents, and templates/term-sheets, or; building of composite documents (master documents) from other sisu marked up documents, or marked up parts, i.e. import documents or parts of text into a main document should this be desired</p> -<p> -there is a considerable degree of future-proofing, output representations are "upgradeable", and new document formats may be added. -</p> -<p> -<b>(xv)</b> -there is a considerable degree of future-proofing, output representations are "upgradeable", and new document formats may be added: -<b>(a)</b> -modular, (thanks in no small part to Ruby) another output format required, write another module.... -<b>(b)</b> easy to update output formats (eg html, XHTML, LaTeX/PDF produced can be updated in program and run against whole document set), -<b>(c)</b> easy to add, modify, or have alternative syntax rules for input, should you need to,</p> -<p> -<b>(xvi)</b> -scalability, dependent on your file-system (ext3, Reiserfs, XFS, whatever) and on the relational database used (currently Postgresql and SQLite), and your hardware,</p> -<p> -<b>(xvii)</b> -only marked up files need be backed up, to secure the larger document set produced,</p> -<p> -<b>(xviii)</b> -document management,</p> -<p> -<b>(xix)</b> -Syntax highlighting for SiSU markup is available for a number of text editors.</p> -<p><b>(xx)</b> remote operations: -<b>(a)</b> -run SiSU on a remote server, (having prepared sisu markup documents locally or on that server, i.e. this solution where sisu is installed on the remote server, would work whatever type of machine you chose to prepare your markup documents on), -<b>(b)</b> -generated document outputs may be posted by sisu to remote sites (using rsync/scp) -<b>(c)</b> -document source (plaintext utf-8) if shared on the net may be identified by its url and processed locally to produce the different document outputs.</p> -<p> -<b>(xxi)</b> -document source may be bundled together (automatically) with associated documents (multiple language versions or master document with inclusions) and images and sent as a zip file called a sisupod, if shared on the net these too may be processed locally to produce the desired document outputs, these may be downloaded, shared as email attachments, or processed by running sisu against them, either using a url or the filename. -</p> -<p> -<b>(xxii)</b> -for basic document generation, the only software dependency is Ruby, and a few standard Unix tools (this covers plaintext, html, XML, ODF, EPUB, LaTeX). To use a database you of course need that, and to convert the LaTeX generated to PDF, a LaTeX processor like tetex or texlive. -</p> -<p> -as a developers tool it is flexible and extensible -</p> -<br /> -<p class="small"> -<a href="http://www.sisudoc.org"><b>SiSU</b></a> at <a href="http://www.sisudoc.org"><www.sisudoc.org></a> or <a href="http://www.jus.uio.no/sisu/"><www.jus.uio.no/sisu/></a></p> -</div> -<div id="column_right"> -<p class="tiny"> -<!-- Search SiSU --> -<a name="search"></a><form method="get" action="http://search.sisudoc.org" target="_top"> -<input type="text" name="s1" size="24" maxlength="255" /> -<br /> -<input type="submit" name="ignore" value="search" /> -<input type="hidden" name="db" value="#{Db[:name_prefix]}sisu" /> -<input type="hidden" name="a" value="1" /> -<input type="radio" name="view" value="index" checked="checked" /> idx -<input type="radio" name="view" value="text" /> txt -<a href="http://search.sisudoc.org" target="_top"><search.sisudoc.org></a> -</form> -<!-- Search SiSU --> -</p> -<p class="tiny"> -SiSU ("SiSU information Structuring Universe" or "Structured information, Serialized Units"),<sup>1</sup> is a Unix command line oriented framework for document structuring, publishing and search. Featuring minimalistic markup, multiple standard outputs, a common citation system, and granular search. -</p> -<p class="tiny"> - Using markup applied to a document, SiSU can produce plain text, HTML, XHTML, XML, OpenDocument, LaTeX or PDF files, and populate an SQL database with objects<sup>2</sup> (equating generally to paragraph-sized chunks) so searches may be performed and matches returned with that degree of granularity (e.g. your search criteria is met by these documents and at these locations within each document). Document output formats share a common object numbering system for locating content. This is particularly suitable for "published" works (finalized texts as opposed to works that are frequently changed or updated) for which it provides a fixed means of reference of content. -</p> - -<p class="small"> -How it works -</p> -<p class="tiny"> -SiSU markup is fairly minimalistic, it consists of: a (largely optional) document header, made up of information about the document (such as when it was published, who authored it, and granting what rights) and any processing instructions; and markup within text which is related to document structure and typeface. SiSU must be able to discern the structure of a document, (text headings and their levels in relation to each other), either from information provided in the instruction header or from markup within the text (or from a combination of both). Processing is done against an abstraction of the document comprising of information on the document's structure and its objects,<sup>2</sup> which the program serializes (providing the object numbers) and which are assigned hash sum values based on their content. This abstraction of information about document structure, objects, (and hash sums), provides considerable flexibility in representing documents different ways and for different purposes (e.g. search, document layout, publishing, content certification, concordance etc.), and makes it possible to take advantage of some of the strengths of established ways of representing documents, (or indeed to create new ones).</p> -<p class="tiny"> -<sup>1.</sup> also chosen for the meaning of the Finnish term "sisu". -</p> -<p class="tiny"> -<sup>2</sup> objects include: headings, paragraphs, verse, tables, images, but not footnotes/endnotes which are numbered separately and tied to the object from which they are referenced.</p> -<p class="small"> -  More information on <a href="http://www.sisudoc.org/sisu/SiSU/"><b>SiSU</b></a> provided at: -  <a href="http://www.sisudoc.org/sisu/SiSU/"> -    <www.sisudoc.org/sisu/SiSU> -  </a> -</p> -<p class="tiny"> -SiSU was developed in relation to legal documents, and is strong across a wide variety of texts (law, literature...(humanities, law and part of the social sciences)). SiSU handles images but is not suitable for formulae/ statistics, or for technical writing at this time.</p> -<p class="tiny"> -SiSU has been developed and has been in use for several years. Requirements to cover a wide range of documents within its use domain have been explored.</p> -<p class="small"> -<a href="mailto:ralph@amissah.com"> -<ralph@amissah.com> -</a> -</p> -<p class="small"> -<a href="mailto:ralph.amissah@gmail.com"> -<ralph.amissah@gmail.com> -</a> -</p> -<p class="small"> -<a href="mailto:sisu@lists.sisudoc.org"> -<sisu@lists.sisudoc.org> -</a> -</p> -<p class="small"> -<a href="http://lists.sisudoc.org/listinfo/sisu"> -<http://lists.sisudoc.org/listinfo/sisu> -</a> -</p> -<p class="small"> -#{@date.year_static} -</p> -<p class="tiny"> -w3 since October 3 1993 -</p> -</div> -</body> -</html> -WOK -    end -    def home_toc -      ' ' -    end -  end -  class Inserts -  end -  class TeX < Skin -    def initialize(papersize='') -      @papersize=papersize -    end -    def a4 -      def portrait -        def w -          160 -        end -        def h -          228 -        end -        def img_px -          450 -        end -        self -      end -      def landscape -        def w -          238 -        end -        def h -          160 -        end -        def img_px -          300 -        end -        self -      end -      self -    end -    def letter -      def portrait -        def w -          166 -        end -        def h -          212 -        end -        def img_px -          468 -        end -        self -      end -      def landscape -        def w -          226 -        end -        def h -          166 -        end -        def img_px -          290 -        end -        self -      end -      self -    end -    def legal -      def portrait -        def w -          168 -        end -        def h -          286 -        end -        def img_px -          474 -        end -        self -      end -      def landscape -        def w -          296 -        end -        def h -          166 -        end -        def img_px -          420 -        end -        self -      end -      self -    end -    def b5 -      def portrait -        def w -          140 -        end -        def h -          204 -        end -        def img_px -          356 -        end -        self -      end -      def landscape -        def w -          200 -        end -        def h -          130 -        end -        def img_px -          260 -        end -        self -      end -      self -    end -    def a5 -      def portrait -        def w -          112 -        end -        def h -          162 -        end -        def img_px -          280 -        end -        self -      end -      def landscape -        def w -          152 -        end -        def h -          100 -        end -        def img_px -          190 -        end -        self -      end -      self -    end -    def dimensions -      d=case @papersize -      when /a4/;     a4 -      when /letter/; letter -      when /legal/;  legal -      when /b5/;     b5 -      when /a5/;     a5 -      else           a4 -      end -    end -  end -end -__END__ diff --git a/lib/sisu/v3/air.rb b/lib/sisu/v5/air.rb index d4b49392..cd5c2f68 100644 --- a/lib/sisu/v3/air.rb +++ b/lib/sisu/v5/air.rb @@ -50,7 +50,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/v3/air.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/air.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/author_format.rb b/lib/sisu/v5/author_format.rb index 5f08ef45..3a9d49a6 100644 --- a/lib/sisu/v3/author_format.rb +++ b/lib/sisu/v5/author_format.rb @@ -50,7 +50,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/v3/author_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/author_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/cgi.rb b/lib/sisu/v5/cgi.rb index f0ae55ba..dd9cdf22 100644 --- a/lib/sisu/v3/cgi.rb +++ b/lib/sisu/v5/cgi.rb @@ -50,7 +50,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/v3/cgi.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/cgi.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -69,17 +69,9 @@ module  SiSU_CGI        @opt=opt        @webserv=@opt.files[0].to_s.strip      end -    def search_info -     a=%{ -          For help on sisu search, type: -            sisu --help search -      } -      SiSU_Screen::Ansi.new(@opt.cmd,a).print_grey -    end      def read        SiSU_CGI_SQLite::SearchSQLite.new(@opt,@webserv).sqlite        SiSU_CGI_PgSQL::SearchPgSQL.new(@opt,@webserv).pgsql -      search_info unless @opt.cmd =~/q/      end    end  end diff --git a/lib/sisu/v3/cgi_pgsql.rb b/lib/sisu/v5/cgi_pgsql.rb index 20e51772..8d09f733 100644 --- a/lib/sisu/v3/cgi_pgsql.rb +++ b/lib/sisu/v5/cgi_pgsql.rb @@ -50,7 +50,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/v3/cgi_pgsql.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/cgi_pgsql.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -68,10 +68,40 @@ module  SiSU_CGI_PgSQL        @opt,@webserv=opt,webserv        @env=SiSU_Env::InfoEnv.new('',opt)        @sys=SiSU_Env::SystemCall.new -      @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" -      @common=SiSU_CGI_SQL::CGI_Common.new(@webserv,@opt,@image_src,@env)        @db=SiSU_Env::InfoDb.new +      get_init=SiSU_Env::GetInit.new +      @rc=get_init.sisu_yaml.rc +      @name_of={} +      if defined? @rc['webserv'] \ +      and defined? @rc['webserv']['url_root'] \ +      and defined? @rc['webserv']['url_root'] =~/\S+/ +        @name_of[:host_url_docs]=@rc['webserv']['url_root'] +      end +      @name_of[:output_dir_structure]=if defined? @rc['output_dir_structure_by'] \ +      and defined? @rc['output_dir_structure_by'] =~/(language|filetype|filename)/ +        @rc['output_dir_structure_by'] +      else 'language' +      end +      if defined? @rc['search'] \ +      and defined? @rc['search']['sisu'] \ +      and defined? @rc['search']['sisu']['action'] \ +      and @rc['search']['sisu']['action'] =~/https?:\/\/\S+?\.cgi/ \ +      and defined? @rc['search']['sisu']['db'] \ +      and @rc['search']['sisu']['db'] =~/\S+/ +        @name_of[:db]=@rc['search']['sisu']['db'] +        #@name_of[:cgi_script]=/https?:\/\/\S+?([^\/]+?)\.cgi$/.match(@rc['search']['sisu']['action'])[1] +        @name_of[:host_url_cgi],@name_of[:cgi_script]=/(https?:\/\/\S+?)\/([^\/]+?)\.cgi$/.match(@rc['search']['sisu']['action'])[1,2] +      else +        @name_of[:host_url_docs]=@env.url.webserv_files_from_db +        @name_of[:db]='sisu' #breaks if not present +        @name_of[:host_url_cgi]=@env.url.webserv_base_cgi +        @name_of[:cgi_script]='sisu_pgsql' +        false +      end        @cgi_file_name="#{Db[:name_prefix_db]}by_#{opt.dir_structure_by.to_s}_pgsql.cgi" +      @cgi_link_name="#{@name_of[:db]}.cgi" #sisu_pgsql.cgi, +      @image_src="#{@name_of[:host_url_docs]}/_sisu/image_sys" +      @common=SiSU_CGI_SQL::CGI_Common.new(@webserv,@opt,@image_src,@env)      end      def pgsql        serve=[] @@ -90,16 +120,12 @@ module  SiSU_CGI_PgSQL          serve.each do |x|            f1 << %{              <option value="#{Db[:name_prefix]}#{x}">#{x}</option>\n} unless x =~/apache|sisu\/image/ #check          end -        f2 <<  %{          selected_db=case cgi['db']\n} -        serve.each do |x| -          f2 << %{          when /#{Db[:name_prefix]}#{x}/;        '<option value="#{Db[:name_prefix]}#{x}">#{x}</option>'\n} unless x =~/apache|sisu\/image/ #check -        end        end -      f2 << "          end\n" +      f2 << %q{          selected_db=%{<option value="#{@db_name_prefix}#{@stub}">#{@stub}</option>}} + "\n"        if FileTest.writable?('.')          output=File.open(@cgi_file_name,'w')          output << header0 << header1 << header_desc << header2 << f1 << buttons1 << buttons1_pgsql << buttons2 << search_request << search_statement << search_statement_common << search_query1 << @common.pages << search_query2 << @common.tail << @common.main1 << f2 << dbi_connect << @common.main2 << @common.dir_structure << @common.main3 -        a=%{        generated sisu_pgsql.cgi, +        a=%{        generated #{@cgi_file_name},              BASED ON ALREADY EXISTING directories that could potentially be used to populate postgresql db, (-D)          }          SiSU_Screen::Ansi.new(@opt.cmd,a).print_grey @@ -108,11 +134,11 @@ module  SiSU_CGI_PgSQL          else "if necessary make the directory /usr/lib/cgi-bin :                    sudo cp -vi #{Dir.pwd}/#{@cgi_file_name} /usr/lib/cgi-bin/.                    sudo chmod -v 755 /usr/lib/cgi-bin/#{@cgi_file_name} -                  sudo ln -s /usr/lib/cgi-bin/#{@cgi_file_name} /usr/lib/cgi-bin/sisu_pgsql.cgi -                  (copy #{@cgi_file_name} to your cgi directory) set file permissions to 755, and make symbolic link to sisu_pgsql.cgi" +                  sudo ln -s /usr/lib/cgi-bin/#{@cgi_file_name} /usr/lib/cgi-bin/#{@cgi_link_name} +                  (copy #{@cgi_file_name} to your cgi directory) set file permissions to 755, and make symbolic link to #{@cgi_link_name}"          end          a=%{#{c} -                  #{@env.webserv_base_cgi}/cgi-bin/sisu_pgsql.cgi +                  #{@env.webserv_base_cgi}/cgi-bin/#{@cgi_link_name}          }          SiSU_Screen::Ansi.new(@opt.cmd,a).warn          a="postgresql db used for present directory: #{@db.psql.db}" @@ -132,13 +158,14 @@ module  SiSU_CGI_PgSQL        require 'cgi'        require 'fcgi'        require 'dbi' -      @version='sisu_pgsql' -      @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" -      @hosturl_db="#{@env.url.webserv_base_cgi}" -      @hosturl_files="#{@env.url.webserv_files_from_db}" +      @stub_default="#{@name_of[:db]}" +      @image_src="#{@name_of[:host_url_docs]}/_sisu/image_sys" +      @hosturl_cgi="#{@name_of[:host_url_cgi]}" +      @hosturl_files="#{@name_of[:host_url_docs]}" +      @output_dir_structure_by="#{@name_of[:output_dir_structure]}"        @port="#{@db.psql.port}"        @db_name_prefix="#{Db[:name_prefix]}" -      user='#{@env.user}'  # check user name for access to pg database: '#{@env.user}' +      user='www-data'  # check user name for access to pg database: e.g. www-data or '#{@env.user}'        WOK_SQL      end      def search_statement diff --git a/lib/sisu/v3/cgi_sql_common.rb b/lib/sisu/v5/cgi_sql_common.rb index 627cdbfa..5604d6cb 100644 --- a/lib/sisu/v3/cgi_sql_common.rb +++ b/lib/sisu/v5/cgi_sql_common.rb @@ -50,7 +50,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/v3/cgi_sql_common.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/cgi_sql_common.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -130,7 +130,7 @@ module SiSU_CGI_SQL        <<-'WOK_SQL'  #Common TOP        @@offset=0 -      @base="#{@hosturl_db}/cgi-bin/#{@version}.cgi" +      @base="#{@hosturl_cgi}/#{@stub_default}.cgi" #fix sqlite        @@canned_search_url=@base        @color_heading='#DDFFAA'        @color_match='#ffff48' @@ -167,8 +167,7 @@ module SiSU_CGI_SQL      <body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">      <table summary="band" border="0" cellpadding="3" cellspacing="0">      <tr><td align="left" bgcolor="#ffffff"><a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" src="#{@image_src}/sisu.png" alt="SiSU -->" /></a></td><td> -<!--    <p class="tiny"><a href="http://www.jus.uio.no/sisu/SiSU/"> http://www.jus.uio.no/sisu/SiSU/</a></p> --> -      <label for="find"><b>#{@env.sample_search_form_title}</b></label> +      <label for="find"><b>#{@env.sample_search_form_title(@opt.dir_structure_by)}</b></label>      </td></tr>      </table>        WOK_SQL @@ -349,11 +348,6 @@ module SiSU_CGI_SQL              search[:text]                    << st[:search]              search[:endnotes]                << st[:search]            end -          st=DBI_SearchString.new('metadata_and_text.classify_keywords',search_for.keywords,q['key'],cse).string -          if st[:flag] -            search[:text]                    << st[:search] -            search[:endnotes]                << st[:search] -          end            st=DBI_SearchString.new('metadata_and_text.title',search_for.title,q['ti'],cse).string            if st[:flag]              search[:text]                    << st[:search] @@ -374,6 +368,11 @@ module SiSU_CGI_SQL              search[:text]                    << st[:search]              search[:endnotes]                << st[:search]            end +          st=DBI_SearchString.new('metadata_and_text.classify_keywords',search_for.keywords,q['key'],cse).string +          if st[:flag] +            search[:text]                    << st[:search] +            search[:endnotes]                << st[:search] +          end            st=DBI_SearchString.new('metadata_and_text.notes_description',search_for.description,q['dsc'],cse).string            if st[:flag]              search[:text]                    << st[:search] @@ -399,12 +398,7 @@ module SiSU_CGI_SQL              search[:text]                    << st[:search]              search[:endnotes]                << st[:search]            end -          st=DBI_SearchString.new('metadata_and_text.classify_type',search_for.type,q['ty'],cse).string -          if st[:flag] -            search[:text]                    << st[:search] -            search[:endnotes]                << st[:search] -          end -          st=DBI_SearchString.new('metadata_and_text.classify_identifier',search_for.identifier,q['id'],cse).string +          st=DBI_SearchString.new('metadata_and_text.notes_type',search_for.type,q['ty'],cse).string            if st[:flag]              search[:text]                    << st[:search]              search[:endnotes]                << st[:search] @@ -419,12 +413,12 @@ module SiSU_CGI_SQL              search[:text]                    << st[:search]              search[:endnotes]                << st[:search]            end -          st=DBI_SearchString.new('metadata_and_text.classify_relation',search_for.relation,q['rel'],cse).string +          st=DBI_SearchString.new('metadata_and_text.notes_relation',search_for.relation,q['rel'],cse).string            if st[:flag]              search[:text]                    << st[:search]              search[:endnotes]                << st[:search]            end -          st=DBI_SearchString.new('metadata_and_text.classify_coverage',search_for.coverage,q['cov'],cse).string +          st=DBI_SearchString.new('metadata_and_text.notes_coverage',search_for.coverage,q['cov'],cse).string            if st[:flag]              search[:text]                    << st[:search]              search[:endnotes]                << st[:search] @@ -630,14 +624,6 @@ module SiSU_CGI_SQL      </a>      software infrastructure,      with the usual GPL (or OSS) suspects. -  <br /> -    Better - "performance, reliability, scalability, security  & total cost of ownership" -    [not to mention flexibility & choice] use of and adherence to open standards (where practical and fair) and it is software libré. -  <br /> -    Get With the Future -    <a href="http://www.jus.uio.no/sisu/"> -      Way Better! -    </a>    </font></p>  </td></tr>  </table> @@ -656,12 +642,12 @@ module SiSU_CGI_SQL          begin # all code goes in begin section            @search={ text: [], endnotes: [] }            q=CGI.new -          @db=if cgi['db'] =~/\S+/ -            @stub=/#{@db_name_prefix}(\S+)/.match(cgi['db'])[1] +          @db=if cgi['db'] =~ /#{@db_name_prefix}(\S+)/ +            @stub=$1              cgi['db']            else -            @stub='sisu' -            "#{@db_name_prefix}#{@stub}" +            @stub=@stub_default +            @db_name_prefix + @stub            end            checked_url,checked_stats,checked_searched,checked_tip,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,selected_db='','','','','','','','',''            result_type=(cgi['view']=~/text/) \ @@ -839,7 +825,6 @@ module SiSU_CGI_SQL            else            end            @hostpath="#{@hosturl_files}/#{@stub}" -          @ln='en'        WOK_SQL      end      def dir_structure @@ -927,7 +912,7 @@ module SiSU_CGI_SQL                can_txt_srch=(cgi['view']=~/index/) \                ? %{<a href="#{@canned_base_url}&fns=#{c['src_filename']}&lang=#{c['language_document_char']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> }                : %{<a href="#{@canned_base_url}&fns=#{c['src_filename']}&lang=#{c['language_document_char']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } -              title=%{<span style="background-color: #{@color_heading}"><a href="#{path_toc(location,c['language_document_char'])}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> [#{c['language_document_char']}] by #{c['creator_author']} #{can_txt_srch}<a href="#{path_toc(location,c['language_document_char'])}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{path_manifest(location,c['language_document_char'])}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />}  if file_suffix=~/s/ #hmm watch file_suffix +              title=%{<span style="background-color: #{@color_heading}"><a href="#{path_toc(location,c['language_document_char'])}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> [#{c['language_document_char']}] by #{c['creator_author']} <a href="#{path_manifest(location,c['language_document_char'])}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a> #{can_txt_srch}<br />}  if file_suffix=~/s/ #hmm watch file_suffix                title=@text_search_flag \                ? '<br /><hr>'+title                : '<br />'+title @@ -964,7 +949,7 @@ module SiSU_CGI_SQL                    matched_para=(@search_regx.to_s.class==String && @search_regx.to_s=~/\S\S+/) \                    ? (c['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>}))                    : c['body'] -                  %{<hr><p><font size="2">ocn <b><a href="#{path_filename(location,c['seg'],@ln)}##{c['ocn']}">#{c['ocn']}</a></b>:</font></p>#{matched_para}} +                  %{<hr><p><font size="2">ocn <b><a href="#{path_filename(location,c['seg'],c['language_document_char'])}##{c['ocn']}">#{c['ocn']}</a></b>:</font></p>#{matched_para}}                  elsif c['suffix'] =~/1/ #doc                    %{#{title}<hr><p><font size="2">ocn #{c['ocn']}:#{c['body']}}                  end @@ -972,9 +957,9 @@ module SiSU_CGI_SQL                  output=title+text                else #elsif cgi['view']=~/index/                                #% idx body                  if c['suffix'] !~/1/ #seg -                  index=%{<a href="#{path_filename(location,c['seg'],@ln)}##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag +                  index=%{<a href="#{path_filename(location,c['seg'],c['language_document_char'])}##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag                  elsif c['suffix'] =~/1/ #doc #FIX -                  index=%{<a href="#{path_html_doc(location,@ln)}##{c['ocn']}">#{c['ocn']}</a>, } +                  index=%{<a href="#{path_html_doc(location,c['language_document_char'])}##{c['ocn']}">#{c['ocn']}</a>, }                  end                  if c['seg'] =~/\S+/                    if @text_search_flag @@ -1020,7 +1005,7 @@ module SiSU_CGI_SQL                  can_txt_srch=(cgi['view']=~/index/) \                  ? %{<a href="#{@canned_base_url}&fns=#{e['src_filename']}&lang=#{e['language_document_char']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> }                  : %{<a href="#{@canned_base_url}&fns=#{e['src_filename']}&lang=#{e['language_document_char']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } -                title=%{<br /><hr><span style="background-color: #{@color_heading}"><a href="#{path_toc(location,@ln)}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> [#{e['language_document_char']}] by #{e['creator_author']} #{can_txt_srch}<a href="#{path_toc(location,@ln)}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{path_manifest(location,@ln)}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />}  if file_suffix=~/s/ +                title=%{<br /><hr><span style="background-color: #{@color_heading}"><a href="#{path_toc(location,e['language_document_char'])}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> [#{e['language_document_char']}] by #{e['creator_author']} #{can_txt_srch}<a href="#{path_toc(location,e['language_document_char'])}"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{path_manifest(location,e['language_document_char'])}"><img border="0" width="15" height="15" src="#{@image_src}/b_info.png" alt="manifest"></a><br />}  if file_suffix=~/s/                  @counter_endn_doc+=1                  oldtid=e['metadata_tid'].to_i                else title = '' @@ -1032,10 +1017,10 @@ module SiSU_CGI_SQL                  && @search_regx.to_s=~/\S\S+/) \                  ? (matched=e['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>}))                  : e['body'] -                output=%{#{title}<hr><font size="2">note <b><a href="#{path_endnotes(location,@ln)}#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#{path_html_doc(location,@ln)}##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}} +                output=%{#{title}<hr><font size="2">note <b><a href="#{path_endnotes(location,e['language_document_char'])}#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#{path_html_doc(location,e['language_document_char'])}##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}}                else #elsif cgi['view']=~/index/      #doc #FIX                           #% idx endnotes                  @counter_endn_ocn+=1 -                output=%{#{title}<a href="#{path_endnotes(location,@ln)}#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#{path_html_doc(location,@ln)}##{e['ocn']}">#{e['ocn']}</a>], } +                output=%{#{title}<a href="#{path_endnotes(location,e['language_document_char'])}#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#{path_html_doc(location,e['language_document_char'])}##{e['ocn']}">#{e['ocn']}</a>], }                end                @counters_endn=if @counter_endn_doc > 0                  if checked_stats =~/\S/ diff --git a/lib/sisu/v3/cgi_sqlite.rb b/lib/sisu/v5/cgi_sqlite.rb index e56fa359..45f6d1ca 100644 --- a/lib/sisu/v3/cgi_sqlite.rb +++ b/lib/sisu/v5/cgi_sqlite.rb @@ -50,7 +50,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/v3/cgi_sql_sqlite.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/cgi_sql_sqlite.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -131,10 +131,11 @@ module  SiSU_CGI_SQLite        require 'cgi'        require 'fcgi'        require 'dbi' -      @version='sisu_sqlite' -      @image_src="#{@env.url.webserv_cgi}/_sisu/image_sys" -      @hosturl_db="#{@env.url.webserv_base_cgi}" -      @hosturl_files="#{@env.url.webserv_files_from_db}" +      @stub_default="#{@name_of[:db]}" +      @image_src="#{@name_of[:host_url_docs]}/_sisu/image_sys" +      @hosturl_cgi="#{@name_of[:host_url_cgi]}" +      @hosturl_files="#{@name_of[:host_url_docs]}" +      @output_dir_structure_by="#{@name_of[:output_dir_structure]}"        @db_name_prefix="#{Db[:name_prefix]}"        WOK_SQL      end diff --git a/lib/sisu/v3/composite.rb b/lib/sisu/v5/composite.rb index 3923799c..c1cfb127 100644 --- a/lib/sisu/v3/composite.rb +++ b/lib/sisu/v5/composite.rb @@ -50,7 +50,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/v3/composite.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/composite.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -87,21 +87,6 @@ module SiSU_Assemble        FileUtils::mkdir_p(output_path) unless FileTest.directory?(output_path)        SiSU_Env::SystemCall.new("#{path}/*",output_path,'q').rsync      end -    def download_doc_skin(doc_skin) #first element in array is source url -      path="#{@env.processing_path.processing}/external_document/skin/doc" -      FileUtils::mkdir_p(path) unless FileTest.directory?(path) -      download_from=doc_skin.shift -      doc_skin.each do |i| -        skin="#{path}/#{i}.rb" -        unless FileTest.exists?(skin) -          skinfile=File.new(skin,'w+') -          open("#{download_from}/#{i}.rb") do |g| -            skinfile << g.read -          end -          skinfile.close -        end -      end -    end    end    class Composite      @@imager={} @@ -143,21 +128,6 @@ module SiSU_Assemble          end        end      end -    def download_doc_skin(doc_skin) #first element in array is source url -      path="#{@env.processing_path.processing}/external_document/skin/doc" -      FileUtils::mkdir_p(path) unless FileTest.directory?(path) -      download_from=doc_skin.shift -      doc_skin.each do |i| -        skin="#{path}/#{i}.rb" -        unless FileTest.exists?(skin) -          skinfile=File.new(skin,'w+') -          open("#{download_from}/#{i}.rb") do |g| -            skinfile << g.read -          end -          skinfile.close -        end -      end -    end      def insertion(fni,insert_array)        file={ prepared: [], images: [] }        rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ diff --git a/lib/sisu/v3/concordance.rb b/lib/sisu/v5/concordance.rb index 6a984454..ac148f49 100644 --- a/lib/sisu/v3/concordance.rb +++ b/lib/sisu/v5/concordance.rb @@ -50,7 +50,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/v3/concordance.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/concordance.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -84,7 +84,7 @@ module SiSU_Concordance            ? "#{@env.program.web_browser} #{@md.file.output_path.html_concordance.dir}/#{@md.file.base_filename.html_concordance}"            : "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"            @md.opt.cmd=~/[MVvz]/ \ -          ? SiSU_Screen::Ansi.new(@opt.cmd,"Concordance",tool).grey_title_hi +          ? SiSU_Screen::Ansi.new(@opt.cmd,"Concordance",tool).green_hi_blue            : SiSU_Screen::Ansi.new(@opt.cmd,'Concordance',tool).green_title_hi          end          wordmax=@env.concord_max @@ -116,28 +116,26 @@ module SiSU_Concordance          @particulars,@md=particulars,particulars.md          @data=SiSU_HTML::Source::HTML_Environment.new(particulars).tuned_file_instructions          @file=SiSU_Env::FileOp.new(@md) -        @vz=SiSU_Env::GetInit.instance.skin          txt_path=%{#{@md.dir_out}} -        SiSU_Env::InfoSkin.new(@md).select          @fnb=@md.fnb          @lex_button=%{<a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" height="44" width="144" valign="center" src="#{@file.path_rel_links.html_seg_2}_sisu/image/sisu.png" alt="SiSU home -->"></a>}          @doc_details =<<WOK  <table summary="links to text related to this rudimentary index" width="96%" border="0" bgcolor="white" cellpadding="0" align="center"><tr><td width="2%" align="right"> </td><td width="94%" valign="top" align="justify"><h1 class="small"><a href="#{@md.file.base_filename.html_segtoc}"><b>#{@md.title.full}</b></a></h1><p class="bold">#{@md.author}</p></td></tr></table>  WOK +        @make=SiSU_Env::ProcessingSettings.new(@md)        end        def create          head_banner=SiSU_HTML_Format::HeadToc.new(@md)          minitoc=SiSU_HTML_MiniToc::TocMini.new(@md,@data).songsheet.join("\n")          stylesheet=SiSU_Style::CSS_HeadInfo.new(@md).stylesheet -        make=SiSU_Env::ProcessingSettings.new(@md) -        if make.build.manifest_minitoc? +        if @make.build.manifest_minitoc?            toc='<div class="toc">' + minitoc + '</div>'            div_class='content'          else            toc=''            div_class='content0'          end -        top_band=if make.build.html_top_band? +        top_band=if @make.build.html_top_band?            head_banner.concordance_navigation_band          else ''          end @@ -201,7 +199,6 @@ WOK        def initialize(particulars)          @particulars=particulars          begin -          @vz=SiSU_Env::GetInit.instance.skin            @env,@md,@dal_array=particulars.env,particulars.md,particulars.dal_array            @file=SiSU_Env::FileOp.new(@md)            @freq=Hash.new(0) @@ -370,7 +367,6 @@ WOK            end            # special cases endnotes and header levels 1 - 3          end -        credits=@vz.credits_sisu          @file_concordance << %{</div></body>\n</html>} # footer          SiSU_Screen::Ansi.new(@md.opt.cmd,@md.fns,"#{@md.file.output_path.html_concordance.dir}/#{@md.file.base_filename.html_concordance}").flow if @md.opt.cmd =~/[MV]/        end diff --git a/lib/sisu/v3/conf.rb b/lib/sisu/v5/conf.rb index e9fecf32..4d5b58d2 100644 --- a/lib/sisu/v3/conf.rb +++ b/lib/sisu/v5/conf.rb @@ -50,7 +50,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/v3/conf.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/conf.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/constants.rb b/lib/sisu/v5/constants.rb index 10eb8040..d72049e9 100644 --- a/lib/sisu/v3/constants.rb +++ b/lib/sisu/v5/constants.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/v3/constants.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/constants.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -102,6 +102,7 @@ Mx={    br_nl:                     '╲',                                              #lB ▌ 』  ┘    br_paragraph:              '█',                                              #FB █  9608 # PP ∥  8741 #▐  #'┘' #'¶' #FB █  9608  lB ▌  9612   RB ▐  9616    br_obj:                    'break_obj', +  br_page_line:              '▭',    br_page:                   '┼',    br_page_new:               '╋',    lnk_o:                     '⌠',          lnk_c:               '⌡',           #'⌈' '⌋' '⌠' '⌡' #Mx[:lnk_o: '◁'; Mx[:lnk_c: '▷' #‹ › @@ -139,6 +140,7 @@ Mx[:pa_non_object_dummy_heading]="#{Mx[:pa_o]}-##{Mx[:pa_c]}"                  #  Mx[:pa_non_object_no_heading]="#{Mx[:pa_o]}~##{Mx[:pa_c]}"                     #unnumbered paragraph (place marker at end of paragraph)  Hx={    br_obj:                    { obj: Mx[:br_obj] },                             # line sep +  br_page_line:              { obj: Mx[:br_page_line] },                       # line across page    br_page:                   { obj: Mx[:br_page] },                            # newpage    br_page_new:               { obj: Mx[:br_page_new] },                        # clearpage  } @@ -202,13 +204,27 @@ Px={  }  Px[:lng_lst_rgx]=Px[:lng_lst].join('|')  Ep={ +  alt:                       :on,    d_oebps:                   'OEBPS', +  d_image:                   'OEBPS/image', +  d_css:                     'OEBPS/css',    f_ncx:                     'toc.ncx',    f_opf:                     'content.opf',  } +$ep=if Ep[:alt]==:on +  { +    o:   'opf:', +    hsp: ' ', +  } +else +  { +    o:   '', +    hsp: ' ', +  } +end  Db={ -  name_prefix:               "SiSU#{SiSU_version_dir}f_", -  name_prefix_db:            "sisu_#{SiSU_version_dir}f_", +  name_prefix:               "SiSU#{SiSU_version_dir}a_", +  name_prefix_db:            "sisu_#{SiSU_version_dir}a_",    col_title:                  800,    col_title_part:             400,    col_title_edition:           10, @@ -217,12 +233,11 @@ Db={    col_language:               100,    col_language_char:            6,    col_date_text:               10, -  col_classify_txt_long:      600, -  col_classify_txt_short:     600, -  col_classify_short:         200, -  col_classify_identify:      256, -  col_classify_library:        30, -  col_classify_small:          16, +  col_txt_long:               600, +  col_txt_short:              200, +  col_identify_hash:          256, +  col_library:                 30, +  col_small:                   16,    col_filename:               256,    col_digest:                  64,    col_filesize:                10, @@ -243,7 +258,10 @@ Gt={    audio:                     'audio',    video:                     'video',    conf:                      'doc/_sisu', -  skin:                      'doc/_sisu/skin',                                  #Gt[:skin: 'conf/skin/doc' +} +S_CONF={ +  header_make: 'sisu_document_make', +  rc_yml: 'sisurc.yml',  }  ANSI_C={    red:                       "\033[#{31}m", @@ -277,6 +295,13 @@ DEVELOPER={    maintenance:               :false,  }  __END__ +puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:red).set +puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:green) +puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia) +puts ANSI_C[:red] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__ +puts "#{ANSI_C[:red]} #{__LINE__.to_s} #{ANSI_C[:off]} #{__FILE__}" +puts ANSI_C[:fuchsia] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__.gsub(/([^\/]+$)/,"#{ANSI_C[:fuchsia]}\\1#{ANSI_C[:off]}") +puts ANSI_C[:red] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__.gsub(/([^\/]+$)/,"#{ANSI_C[:red]}\\1#{ANSI_C[:off]}")  consider:    〔comment〕    〔links?????〕 diff --git a/lib/sisu/v3/css.rb b/lib/sisu/v5/css.rb index c6358cd0..4b682e5d 100644 --- a/lib/sisu/v3/css.rb +++ b/lib/sisu/v5/css.rb @@ -50,7 +50,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/v3/css.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/css.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -156,7 +156,7 @@ module SiSU_Style    end    class CSS      def initialize -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def fonts        @vz.font_fonts @@ -2406,6 +2406,23 @@ WOK      p.right, th.right, td.right {        text-align: right;      } + +    .svg_outer { +      display: block; +      margin-bottom: 0; +      margin-left: 0; +      margin-right: 0; +      margin-top: 0; +      padding-bottom: 0; +      padding-left: 0; +      padding-right: 0; +      padding-top: 0; +      text-align: left; +    } +    .svg_inner { +      display: block; +      text-align: center; +    }  WOK      end      def xml_sax                                   #stylesheet for xml sax diff --git a/lib/sisu/v3/dal.rb b/lib/sisu/v5/dal.rb index 3feb5782..e6003b4f 100644 --- a/lib/sisu/v3/dal.rb +++ b/lib/sisu/v5/dal.rb @@ -50,7 +50,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/v3/dal.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -95,12 +95,16 @@ module SiSU_DAL      @@fns=nil      def initialize(opt,fnx=nil)        @opt,@fnx=opt,fnx -      @@fns||@opt.fns -      @make_fns=if @fnx and @fnx =~/\.ss[tmi]$/ -        SiSU_Env::InfoFile.new(@fnx) +      @@fns ||=opt.fns +      fn_use=if fnx \ +      and fnx =~/\.ss[tmi]$/ +        fnx +      elsif opt.fns =~/\.ssm$/ +        opt.fns + '.sst'        else -        SiSU_Env::InfoFile.new(@opt.fns) +        opt.fns        end +      @make_fns=SiSU_Env::InfoFile.new(fn_use)        @fnm=@make_fns.marshal.dal_metadata        @fnc=@make_fns.marshal.dal_content        @idx_sst=@make_fns.marshal.dal_idx_sst_rel_html_seg @@ -269,7 +273,7 @@ module SiSU_DAL          tell=(@opt.cmd=~/[vVM]/) \          ? SiSU_Screen::Ansi.new(@opt.cmd,'Document Abstraction')          : SiSU_Screen::Ansi.new(@opt.cmd,'Document Abstraction',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}") -        tell.grey_title_hi +        tell.blue_title_hi        end        fn=(@fnx && @fnx =~/\.ss[tmi]$/) \        ? @fnx diff --git a/lib/sisu/v3/dal_character_check.rb b/lib/sisu/v5/dal_character_check.rb index c993b8e1..62aa60c1 100644 --- a/lib/sisu/v3/dal_character_check.rb +++ b/lib/sisu/v5/dal_character_check.rb @@ -50,7 +50,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/v3/dal_character_check.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_character_check.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_doc_objects.rb b/lib/sisu/v5/dal_doc_objects.rb index 94bb9cb0..de9d568f 100644 --- a/lib/sisu/v3/dal_doc_objects.rb +++ b/lib/sisu/v5/dal_doc_objects.rb @@ -50,7 +50,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/v3/dal_doc_objects.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_doc_objects.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_doc_str.rb b/lib/sisu/v5/dal_doc_str.rb index 87da4fad..da417bd6 100644 --- a/lib/sisu/v3/dal_doc_str.rb +++ b/lib/sisu/v5/dal_doc_str.rb @@ -50,7 +50,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/v3/dal_doc_str.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_doc_str.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -75,6 +75,7 @@ module SiSU_DAL_DocumentStructureExtract        SiSU_DAL_DocumentStructureExtract::Instantiate.new        @pb=SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page])        @pbn=SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_new]) +      @pbl=SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_line])      end      def ln_get(lv)        ln=case lv @@ -243,6 +244,8 @@ module SiSU_DAL_DocumentStructureExtract              SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page],:markup)            when /^(?:=\\\\=|<:pn>)\s*$/                                #[br:pgn]              SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_new],:markup) +          when /^-\.\.-\s*$/                                          #[br:pgl] +            SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_line],:markup)            else                                             #paragraph              image=image_test(t_o)              note=endnote_test?(t_o) diff --git a/lib/sisu/v3/dal_endnotes.rb b/lib/sisu/v5/dal_endnotes.rb index 326efea1..8412b45e 100644 --- a/lib/sisu/v3/dal_endnotes.rb +++ b/lib/sisu/v5/dal_endnotes.rb @@ -50,7 +50,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/v3/dal_doc_endnotes.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_doc_endnotes.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_expand_insertions.rb b/lib/sisu/v5/dal_expand_insertions.rb index 68855ba0..46efaa63 100644 --- a/lib/sisu/v3/dal_expand_insertions.rb +++ b/lib/sisu/v5/dal_expand_insertions.rb @@ -50,7 +50,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/v3/dal_expand_insertions.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_expand_insertions.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_hash_digest.rb b/lib/sisu/v5/dal_hash_digest.rb index f2e13cb5..29d8a1ed 100644 --- a/lib/sisu/v3/dal_hash_digest.rb +++ b/lib/sisu/v5/dal_hash_digest.rb @@ -50,7 +50,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/v3/dal_hash_digest.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_hash_digest.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_idx.rb b/lib/sisu/v5/dal_idx.rb index bf8d569c..67f2805d 100644 --- a/lib/sisu/v3/dal_idx.rb +++ b/lib/sisu/v5/dal_idx.rb @@ -50,7 +50,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/v3/dal_idx.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_idx.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -165,12 +165,7 @@ module SiSU_DAL_BookIndex        the_idx      end      def clean_xml(str) -      str=str.gsub(/&/,'&'). -        gsub(/\(/,'('). -        gsub(/\)/,')'). -        gsub(/\*/,'*'). -        gsub(/\+/,'+'). -        gsub(/,/,',') +      str=str.gsub(/&/,'&')        str      end      def index(the_idx) @@ -197,8 +192,8 @@ module SiSU_DAL_BookIndex            idx[:html] << ''            idx[:xhtml] << ''          else -          idx[:html] << %{<a href="##{x}">#{x}</a>, } -          idx[:xhtml] << %{<a href="##{x.downcase}">#{x}</a>, } +          idx[:html] << %{<a href="##{x}">#{x}</a>,#{$ep[:hsp]}} +          idx[:xhtml] << %{<a href="##{x.downcase}">#{x}</a>,#{$ep[:hsp]}}          end        end        idx[:html] << '</p>' diff --git a/lib/sisu/v3/dal_images.rb b/lib/sisu/v5/dal_images.rb index 2c867c1c..1141447d 100644 --- a/lib/sisu/v3/dal_images.rb +++ b/lib/sisu/v5/dal_images.rb @@ -50,7 +50,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/v3/dal_images.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_images.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_metadata.rb b/lib/sisu/v5/dal_metadata.rb index 4dbfe175..1fa5619c 100644 --- a/lib/sisu/v3/dal_metadata.rb +++ b/lib/sisu/v5/dal_metadata.rb @@ -50,7 +50,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/v3/dal_metadata.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_metadata.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dal_numbering.rb b/lib/sisu/v5/dal_numbering.rb index 21ada29f..39524cc9 100644 --- a/lib/sisu/v3/dal_numbering.rb +++ b/lib/sisu/v5/dal_numbering.rb @@ -50,7 +50,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/v3/dal_numbering.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_numbering.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -347,13 +347,15 @@ module SiSU_DAL_Numbering            @seg=dob.name          end          @tuned_file << if dob.is==:heading \ -        && (@md.pagenew || @md.pagebreak) +        && (@md.pagenew || @md.pagebreak || @md.pageline)            m=dob.ln.to_s            dob_tmp=[]            if @md.pagenew.inspect =~/#{m}/              dob_tmp << SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_new]) << dob            elsif @md.pagebreak.inspect =~/#{m}/              dob_tmp << SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page]) << dob +          elsif @md.pageline.inspect =~/#{m}/ +            dob_tmp << SiSU_DAL_DocumentStructure::ObjectLayout.new.break(Hx[:br_page_line]) << dob            end            para_result=unless dob_tmp.length > 0; dob            else                                   dob_tmp diff --git a/lib/sisu/v3/dal_substitutions_and_insertions.rb b/lib/sisu/v5/dal_substitutions_and_insertions.rb index 847f917a..051d2bfd 100644 --- a/lib/sisu/v3/dal_substitutions_and_insertions.rb +++ b/lib/sisu/v5/dal_substitutions_and_insertions.rb @@ -50,7 +50,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/v3/dal_substitutions_and_insertions.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_substitutions_and_insertions.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -63,7 +63,6 @@ module SiSU_DAL_SubstituteAndInsert    class SI      def initialize(md,data)        @md,@data=md,data -      @skin=SiSU_Env::InfoSkin.new(@md)      end      def substitutions_and_insertions?        data=@data @@ -79,7 +78,6 @@ module SiSU_DAL_SubstituteAndInsert        data.each do |para|          if para =~/<:(insert\d+)!?>/ \          and para !~/^%\s+/ -          @skin.select            ins=SiSU_Viz::Inserts.new            case para            when /^\s*<:(insert1)>\s*$/ @@ -87,49 +85,42 @@ module SiSU_DAL_SubstituteAndInsert              if defined? ins.insert1                para=[]                ins.insert1.split(/\n\n/).each {|x| para << x } -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert2)>\s*$/              i=$1              if defined? ins.insert2                para=[]                ins.insert2.split(/\n\n/).each {|x| para << x } -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert3)>\s*$/              i=$1              if defined? ins.insert3                para=[]                ins.insert3.split(/\n\n/).each {|x| para << x << "\n"} -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert4)>\s*$/              i=$1              if defined? ins.insert4                para=[]                ins.insert4.split(/\n\n/).each {|x| para << x << "\n"} -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert5)>\s*$/              i=$1              if defined? ins.insert5                para=[]                ins.insert5.split(/\n\n/).each {|x| para << x << "\n"} -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert6)>\s*$/              i=$1              if defined? ins.insert6                para=[]                ins.insert6.split(/\n\n/).each {|x| para << x << "\n"} -            else p "skin #{i} not found in #{@skin.select}"              end            when /^\s*<:(insert7)>\s*$/              i=$1              if defined? ins.insert7                para=[]                ins.insert7.split(/\n\n/).each {|x| para << x << "\n"} -            else p "skin #{i} not found in #{@skin.select}"              end            end            para.each {|x| data_expand << x } diff --git a/lib/sisu/v3/dal_syntax.rb b/lib/sisu/v5/dal_syntax.rb index a43ca005..03d397b3 100644 --- a/lib/sisu/v3/dal_syntax.rb +++ b/lib/sisu/v5/dal_syntax.rb @@ -50,7 +50,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/v3/dal_syntax.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dal_syntax.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -67,15 +67,15 @@ module SiSU_DAL_Syntax    end    class Markup      def initialize(md='',data='') -      @data,@md=data,md -      @vz=SiSU_Env::GetInit.instance.skin +      @md,@data=md,data +      @vz=SiSU_Viz::Defaults.new        @data_new=[]        url_and_stub=SiSU_Env::InfoEnv.new.url        @output_url="#{url_and_stub.remote}"        @env=SiSU_Env::InfoEnv.new -      emph_set=if defined? @md.make.emphasis \ -      and not @md.make.emphasis.nil? -        @md.make.emphasis +      emph_set=if defined? @md.emphasis_set_to \ +      and not @md.emphasis_set_to.nil? +        @md.emphasis_set_to        else @env.markup_emphasis        end        @emph=case emph_set @@ -98,25 +98,22 @@ module SiSU_DAL_Syntax        tail_m_bold=%{(?:(?:#{Mx[:fa_italics_c]})?(?:\s|[.,;:?!'")]|~\^|~\\\{\s|$))?}        bold_line=%{^!_\s.+?(?:#{Mx[:br_line]}|\n|$)}        ital_line=%{^/_\s.+?(?:#{Mx[:br_line]}|\n|$)} -      @line_scan_ital=if defined? @md.make.italics[:str] \ -      and defined? @vz.markup_make_italic[:str] -        /#{@http_m}|#{bold_line}|#{@manmkp_ital}#{tail_m_ital}|(?:#{@md.make.italics[:str]}|#{@vz.markup_make_italic[:str]})#{tail_m_ital}|\S+|\n/i -      elsif defined? @md.make.italics[:str] -        /#{@http_m}|#{bold_line}|#{@manmkp_ital}#{tail_m_ital}|#{@md.make.italics[:str]}#{tail_m_ital}|\S+|\n/i +      @line_scan_ital=if defined? @md.italics_match_list[:str] +        /#{@http_m}|#{bold_line}|#{@manmkp_ital}#{tail_m_ital}|#{@md.italics_match_list[:str]}#{tail_m_ital}|\S+|\n/i        elsif defined? @vz.markup_make_italic[:str]          /#{@http_m}|#{bold_line}|#{@manmkp_ital}#{tail_m_ital}|#{@vz.markup_make_italic[:str]}#{tail_m_ital}|\S+|\n/i        end        @manmkp_bold=emph_italics \        ? '^!_\s.+?(?:\n|$)|[!b]\\{.+?\\}[*!b]|[*!][a-zA-Z0-9\-_]+[!]'        : '^!_\s.+?(?:\n|$)|[*!b]\\{.+?\\}[*!b]|[*!][a-zA-Z0-9\-_]+[*!]' -      @line_scan_bold=if (defined? @md.make.bold[:str] \ -      and @md.make.bold[:str]) \ +      @line_scan_bold=if (defined? @md.bold_match_list[:str] \ +      and @md.bold_match_list[:str]) \        and (defined? @vz.markup_make_bold[:str] \        and @vz.markup_make_bold[:str]) -        /#{@http_m}|#{bold_line}|(?:#{@manmkp_bold}|#{@md.make.bold[:str]}|#{@vz.markup_make_bold[:str]})#{tail_m_bold}|\S+|\n/i -      elsif defined? @md.make.bold[:str] \ -      and @md.make.bold[:str] -        /#{@http_m}|#{bold_line}|(?:#{@manmkp_bold}|#{@md.make.bold[:str]})#{tail_m_bold}|\S+|\n/i +        /#{@http_m}|#{bold_line}|(?:#{@manmkp_bold}|#{@md.bold_match_list[:str]}|#{@vz.markup_make_bold[:str]})#{tail_m_bold}|\S+|\n/i +      elsif defined? @md.bold_match_list[:str] \ +      and @md.bold_match_list[:str] +        /#{@http_m}|#{bold_line}|(?:#{@manmkp_bold}|#{@md.bold_match_list[:str]})#{tail_m_bold}|\S+|\n/i        elsif defined? @vz.markup_make_bold[:str] \        and @vz.markup_make_bold[:str]          /#{@http_m}|#{bold_line}|(?:#{@manmkp_bold}|#{@vz.markup_make_bold[:str]})#{tail_m_bold}|\S+|\n/i @@ -150,14 +147,15 @@ module SiSU_DAL_Syntax            gsub(/ \\\\(?: |$)/,"#{Mx[:br_line]}").            gsub(/(?:<:?pb>)/,"#{Mx[:br_page]}").                         # depreciated            gsub(/(?:<:?pn>)/,"#{Mx[:br_page_new]}").                     # depreciated -          gsub(/(?:<:?br>|<br \/>)/,"#{Mx[:br_line]}")                  # depreciated +          gsub(/(?:<:?br>|<br \/>)/,"#{Mx[:br_line]}").                 # depreciated +          gsub(/(?:^-\.\.-\s*$)/,"#{Mx[:br_page_line]}")        end        dob      end      def wordlist_italics(dob)        dob=dob.dup -      if (defined? @md.make.italics[:str] \ -      and @md.make.italics[:str]) \ +      if (defined? @md.italics_match_list[:str] \ +      and @md.italics_match_list[:str]) \        or (defined? @vz.markup_make_italic[:str] \        and @vz.markup_make_italic[:str])          dob.obj=if dob.is !=:meta \ @@ -170,9 +168,9 @@ module SiSU_DAL_Syntax            line_array=[]            word.each do |w|              unless /#{@manmkp_ital}|#{@http_m}/.match(w) -              if defined? @md.make.italics[:regx] \ -              and @md.make.italics[:regx] -                w=w.gsub(@md.make.italics[:regx], +              if defined? @md.italics_match_list[:regx] \ +              and @md.italics_match_list[:regx] +                w=w.gsub(@md.italics_match_list[:regx],                    "#{Mx[:fa_italics_o]}\\1#{Mx[:fa_italics_c]}")                elsif defined? @vz.markup_make_italic \                and @vz.markup_make_italic @@ -241,15 +239,15 @@ module SiSU_DAL_Syntax      end      def substitutions(dob)        dob=dob.dup -      dob=if defined? @md.make.substitute[:match_and_replace] \ -      and @md.make.substitute[:match_and_replace].is_a?(Array) +      dob=if defined? @md.substitution_match_list[:match_and_replace] \ +      and @md.substitution_match_list[:match_and_replace].is_a?(Array)          dob=if dob.is !=:meta \          && dob.is !=:heading_insert \          && dob.is !=:code \          && dob.is !=:comment \          && dob.is !=:table -          if dob.obj =~/#{@md.make.substitute[:matches]}/ -            @md.make.substitute[:match_and_replace].each do |x| +          if dob.obj =~/#{@md.substitution_match_list[:matches]}/ +            @md.substitution_match_list[:match_and_replace].each do |x|                dob.obj=if x[:case_s]==:i                  dob.obj.gsub(/#{x[:match]}/mi,x[:replace])                else @@ -266,8 +264,8 @@ module SiSU_DAL_Syntax      end      def wordlist_bold(dob)        dob=dob.dup -      if (defined? @md.make.bold[:str] \ -      and @md.make.bold[:str]) \ +      if (defined? @md.bold_match_list[:str] \ +      and @md.bold_match_list[:str]) \        or (defined? @vz.markup_make_bold[:str] \        and @vz.markup_make_bold[:str])          dob.obj=if dob.is !=:meta \ @@ -281,11 +279,11 @@ module SiSU_DAL_Syntax            word=word.flatten.compact            word.each do |w|              unless /#{@manmkp_bold}|#{@http_m}/.match(w) -              if defined? @md.make.bold[:regx] \ -              and @md.make.bold[:regx]                                                   #document header: @bold: [bold word list] -                w=w.gsub(@md.make.bold[:regx],"#{Mx[:fa_bold_o]}\\1#{Mx[:fa_bold_c]}") +              if defined? @md.bold_match_list[:regx] \ +              and @md.bold_match_list[:regx]                                                   #document header: @bold: [bold word list] +                w=w.gsub(@md.bold_match_list[:regx],"#{Mx[:fa_bold_o]}\\1#{Mx[:fa_bold_c]}")                elsif defined? @vz.markup_make_bold \ -              and @vz.markup_make_bold                                                   #defaults and skin adjusted bold word list +              and @vz.markup_make_bold                                                   #defaults adjusted bold word list                  w=w.gsub(@vz.markup_make_bold,"#{Mx[:fa_bold_o]}\\1#{Mx[:fa_bold_c]}")                end              else diff --git a/lib/sisu/v3/db_columns.rb b/lib/sisu/v5/db_columns.rb index 02adf4c1..14d3bb46 100644 --- a/lib/sisu/v3/db_columns.rb +++ b/lib/sisu/v5/db_columns.rb @@ -50,7 +50,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/v3/db_columns.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_columns.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -1367,20 +1367,64 @@ module SiSU_DbColumns          self        end  =begin +#% identifier +@identifier: + :oclc: + :isbn: +=end +      def identifier_oclc +        def name +          'identifier_oclc' +        end +        def create_column +          "#{name}                VARCHAR(#{Db[:col_library]}) NULL," +        end +        def column_comment +          %{COMMENT ON COLUMN metadata_and_text.#{name} +           IS 'metadata identifier document Online Computer Library Center number';} +        end +        def tuple +          t=if defined? @md.identifier.oclc \ +          and @md.identifier.oclc=~/\S+/ +            txt=@md.identifier.oclc +            txt=special_character_escape(txt) +            ["#{name}, ","'#{txt}', "] +          else ['',''] +          end +        end +        self +      end +      def identifier_isbn +        def name +          'identifier_isbn' +        end +        def create_column +          "#{name}                VARCHAR(#{Db[:col_small]}) NULL," +        end +        def column_comment +          %{COMMENT ON COLUMN metadata_and_text.#{name} +           IS 'metadata identifier document isbn (if any)';} +        end +        def tuple +          t=if defined? @md.identifier.isbn \ +          and @md.identifier.isbn=~/\S+/ +            txt=@md.identifier.isbn +            txt=special_character_escape(txt) +            ["#{name}, ","'#{txt}', "] +          else ['',''] +          end +        end +        self +      end +=begin  #% classify  @classify:   :topic_register: - :coverage: - :format: - :identifier: - :keywords: - :relation:   :subject: + :keywords:   :type:   :loc:   :dewey: - :pg: - :isbn:  =end        def classify_topic_register          def name @@ -1409,7 +1453,7 @@ module SiSU_DbColumns            'classify_subject'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_txt_short]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_long]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -1426,34 +1470,12 @@ module SiSU_DbColumns          end          self        end -      def classify_type #check -        def name -          'classify_type' -        end -        def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_txt_short]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document type [DC8]';} -        end -        def tuple -          t=if defined? @md.classify.type \ -          and @md.classify.type=~/\S+/ -            txt=@md.classify.type -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end        def classify_loc          def name            'classify_loc'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_library]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_library]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -1475,7 +1497,7 @@ module SiSU_DbColumns            'classify_dewey'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_library]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_library]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -1492,65 +1514,21 @@ module SiSU_DbColumns          end          self        end -      def classify_oclc -        def name -          'classify_oclc' -        end -        def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_library]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document Online Computer Library Center number';} -        end -        def tuple -          t=if defined? @md.classify.oclc \ -          and @md.classify.oclc=~/\S+/ -            txt=@md.classify.oclc -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end -      def classify_pg -        def name -          'classify_pg' -        end -        def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_small]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document project gutenberg (if any)';} -        end -        def tuple -          t=if defined? @md.classify.pg \ -          and @md.classify.pg=~/\S+/ -            txt=@md.classify.pg -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end -      def classify_isbn +      def classify_keywords          def name -          'classify_isbn' +          'classify_keywords'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_small]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_long]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document isbn (if any)';} +           IS 'metadata classify document keywords';}          end          def tuple -          t=if defined? @md.classify.isbn \ -          and @md.classify.isbn=~/\S+/ -            txt=@md.classify.isbn +          t=if defined? @md.classify.keywords \ +          and @md.classify.keywords=~/\S+/ +            txt=@md.classify.keywords              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1558,21 +1536,36 @@ module SiSU_DbColumns          end          self        end -      def classify_format +=begin +#% notes +@notes: + :abstract: + :description: + :comment: + :coverage: + :relation: + :format: + :history: + :prefix: + :prefix_a: + :prefix_b: + :suffix: +=end +      def notes_abstract          def name -          'classify_format' +          'notes_abstract'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_txt_short]}) NULL," +          "#{name}                     TEXT NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document format [DC9]';} +           IS 'metadata document notes abstract';}          end          def tuple -          t=if defined? @md.classify.format \ -          and @md.classify.format=~/\S+/ -            txt=@md.classify.format +          t=if defined? @md.notes.abstract \ +          and @md.notes.abstract=~/\S+/ +            txt=@md.notes.abstract              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1580,21 +1573,21 @@ module SiSU_DbColumns          end          self        end -      def classify_identifier +      def notes_description          def name -          'classify_identifier' +          'notes_description'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_identify]}) NULL," +          "#{name}                    TEXT NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document identifier [DC10]';} +           IS 'metadata document notes description [DC4]';}          end          def tuple -          t=if defined? @md.classify.identifier \ -          and @md.classify.identifier=~/\S+/ -            txt=@md.classify.identifier +          t=if defined? @md.notes.description \ +          and @md.notes.description=~/\S+/ +            txt=@md.notes.description              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1602,21 +1595,21 @@ module SiSU_DbColumns          end          self        end -      def classify_relation +      def notes_comment          def name -          'classify_relation' +          'notes_comment'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_short]}) NULL," +          "#{name}                       TEXT NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document relation [DC13]';} +           IS 'metadata document notes comment';}          end          def tuple -          t=if defined? @md.classify.relation \ -          and @md.classify.relation=~/\S+/ -            txt=@md.classify.relation +          t=if defined? @md.notes.comment \ +          and @md.notes.comment=~/\S+/ +            txt=@md.notes.comment              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1624,12 +1617,12 @@ module SiSU_DbColumns          end          self        end -      def classify_coverage +      def notes_coverage          def name -          'classify_coverage' +          'notes_coverage'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_short]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_short]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} @@ -1646,21 +1639,21 @@ module SiSU_DbColumns          end          self        end -      def classify_keywords +      def notes_relation          def name -          'classify_keywords' +          'notes_relation'          end          def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_txt_short]}) NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_short]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata classify document keywords';} +           IS 'metadata classify document relation [DC13]';}          end          def tuple -          t=if defined? @md.classify.keywords \ -          and @md.classify.keywords=~/\S+/ -            txt=@md.classify.keywords +          t=if defined? @md.classify.relation \ +          and @md.classify.relation=~/\S+/ +            txt=@md.classify.relation              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1668,33 +1661,21 @@ module SiSU_DbColumns          end          self        end -=begin -#% notes -@notes: - :abstract: - :comment: - :description: - :history: - :prefix: - :prefix_a: - :prefix_b: - :suffix: -=end -      def notes_abstract +      def notes_history   #check, consider removal          def name -          'notes_abstract' +          'notes_history'          end          def create_column -          "#{name}                     TEXT NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_long]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata document notes abstract';} +           IS 'metadata document notes history';}          end          def tuple -          t=if defined? @md.notes.abstract \ -          and @md.notes.abstract=~/\S+/ -            txt=@md.notes.abstract +          t=if defined? @md.notes.history \ +          and @md.notes.history=~/\S+/ +            txt=@md.notes.history              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1702,21 +1683,21 @@ module SiSU_DbColumns          end          self        end -      def notes_comment +      def notes_type #check          def name -          'notes_comment' +          'notes_type'          end          def create_column -          "#{name}                       TEXT NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_long]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata document notes comment';} +           IS 'metadata notes document type [DC8]';}          end          def tuple -          t=if defined? @md.notes.comment \ -          and @md.notes.comment=~/\S+/ -            txt=@md.notes.comment +          t=if defined? @md.notes.type \ +          and @md.notes.type=~/\S+/ +            txt=@md.notes.type              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1724,43 +1705,21 @@ module SiSU_DbColumns          end          self        end -      def notes_description +      def notes_format          def name -          'notes_description' +          'notes_format'          end          def create_column -          "#{name}                    TEXT NULL," +          "#{name}                VARCHAR(#{Db[:col_txt_long]}) NULL,"          end          def column_comment            %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata document notes description [DC4]';} -        end -        def tuple -          t=if defined? @md.notes.description \ -          and @md.notes.description=~/\S+/ -            txt=@md.notes.description -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end -      def notes_history   #check, consider removal -        def name -          'notes_history' -        end -        def create_column -          "#{name}                VARCHAR(#{Db[:col_classify_txt_short]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'metadata document notes history';} +           IS 'metadata classify document format [DC9]';}          end          def tuple -          t=if defined? @md.notes.history \ -          and @md.notes.history=~/\S+/ -            txt=@md.notes.history +          t=if defined? @md.classify.format \ +          and @md.classify.format=~/\S+/ +            txt=@md.classify.format              txt=special_character_escape(txt)              ["#{name}, ","'#{txt}', "]            else ['',''] @@ -1970,8 +1929,6 @@ module SiSU_DbColumns        end  =begin  #% misc -@make: - :skin:  @links:  =end        def fulltext @@ -1994,73 +1951,6 @@ module SiSU_DbColumns          end          self        end -      def skin_name                      #check -        def name -          'skin_name' -        end -        def create_column -          "#{name}                 VARCHAR(#{Db[:col_filename]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'source text skin name';} -        end -        def tuple -          t=if defined? @md.skin_name \ -          and @md.skin_name=~/\S+/ -            txt=@md.skin_name -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end -      def skin_fingerprint                      #check -        def name -          'skin_fingerprint' -        end -        def create_column -          "#{name}                VARCHAR(#{Db[:col_digest]}) NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'source text skin fingerprint';} -        end -        def tuple -          t=if defined? @md.dgst_skin \ -          and @md.dgst_skin.is_a?(Array) \ -          and @md.dgst_skin[1]=~/\S+/ -            txt=@md.dgst_skin[1] -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end -      def skin # you likely want a separate table for skins -        def name -          'skin' -        end -        def create_column -          "#{name}                TEXT NULL," -        end -        def column_comment -          %{COMMENT ON COLUMN metadata_and_text.#{name} -           IS 'source text skin';} -        end -        def tuple -          t=if defined? @md.skin \ -          and @md.skin=~/\S+/ -            txt=@md.skin -            txt=special_character_escape(txt) -            ["#{name}, ","'#{txt}', "] -          else ['',''] -          end -        end -        self -      end        def links          def name            'links' diff --git a/lib/sisu/v3/db_create.rb b/lib/sisu/v5/db_create.rb index 5df72a2a..e2d1f916 100644 --- a/lib/sisu/v3/db_create.rb +++ b/lib/sisu/v5/db_create.rb @@ -50,7 +50,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/v3/db_create.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_create.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -84,9 +84,9 @@ module SiSU_DbCreate      def create_db        @env=SiSU_Env::InfoEnv.new(@opt.fns)        tell=(@sql_type=='sqlite') \ -      ? SiSU_Screen::Ansi.new(@opt.cmd,'invert','Create Sqlite db tables in:',%{"#{@file}"}) -      : SiSU_Screen::Ansi.new(@opt.cmd,'invert','Create PG db tables in:',%{"#{Db[:name_prefix]}#{@env.path.stub_pwd}"}) -      tell.colorize if @opt.cmd =~/[vVM]/ +      ? SiSU_Screen::Ansi.new(@opt.cmd,'Create SQLite db tables in:',%{"#{@file}"}) +      : SiSU_Screen::Ansi.new(@opt.cmd,'Create pgSQL db tables in:',%{"#{Db[:name_prefix]}#{@env.path.stub_pwd}"}) +      tell.dark_grey_title_hi if @opt.cmd =~/[vVM]/        SiSU_Env::SystemCall.new.create_pg_db(@env.path.stub_pwd) if @sql_type=='pg' #watch use of path.stub_pwd instead of stub      end      def output_dir? @@ -167,22 +167,22 @@ module SiSU_DbCreate              /* classify */              #{column.classify_topic_register.create_column}              #{column.classify_subject.create_column} -            #{column.classify_type.create_column}              #{column.classify_loc.create_column}              #{column.classify_dewey.create_column} -            #{column.classify_oclc.create_column} -            #{column.classify_pg.create_column} -            #{column.classify_isbn.create_column} -            #{column.classify_format.create_column} -            #{column.classify_identifier.create_column} -            #{column.classify_relation.create_column} -            #{column.classify_coverage.create_column}              #{column.classify_keywords.create_column} +            /* identifier */ +            #{column.identifier_oclc.create_column} +            #{column.identifier_isbn.create_column}              /* notes */              #{column.notes_abstract.create_column} -            #{column.notes_comment.create_column}              #{column.notes_description.create_column} +            #{column.notes_comment.create_column}              #{column.notes_history.create_column} +            #{column.notes_coverage.create_column} +            #{column.notes_relation.create_column} +            /* column.notes_source.create_column */ +            #{column.notes_type.create_column} +            #{column.notes_format.create_column}              #{column.notes_prefix.create_column}              #{column.notes_prefix_a.create_column}              #{column.notes_prefix_b.create_column} @@ -195,9 +195,6 @@ module SiSU_DbCreate              #{column.src_txt.create_column}              /* misc */              #{column.fulltext.create_column} -            #{column.skin_name.create_column} -            #{column.skin_fingerprint.create_column} -            #{column.skin.create_column}              #{column.links.create_column.gsub(/,$/,'')}  /*          subj                 VARCHAR(64) NULL, */  /*          contact              VARCHAR(100) NULL, */ @@ -428,21 +425,19 @@ module SiSU_DbCreate            %{#{column.rights_license.column_comment}},            %{#{column.classify_topic_register.column_comment}},            %{#{column.classify_subject.column_comment}}, -          %{#{column.classify_type.column_comment}},            %{#{column.classify_loc.column_comment}},            %{#{column.classify_dewey.column_comment}}, -          %{#{column.classify_oclc.column_comment}}, -          %{#{column.classify_pg.column_comment}}, -          %{#{column.classify_isbn.column_comment}}, -          %{#{column.classify_format.column_comment}}, -          %{#{column.classify_identifier.column_comment}}, -          %{#{column.classify_relation.column_comment}}, -          %{#{column.classify_coverage.column_comment}},            %{#{column.classify_keywords.column_comment}}, +          %{#{column.identifier_oclc.column_comment}}, +          %{#{column.identifier_isbn.column_comment}},            %{#{column.notes_abstract.column_comment}},            %{#{column.notes_comment.column_comment}},            %{#{column.notes_description.column_comment}},            %{#{column.notes_history.column_comment}}, +          %{#{column.notes_coverage.column_comment}}, +          %{#{column.notes_relation.column_comment}}, +          %{#{column.notes_type.column_comment}}, +          %{#{column.notes_format.column_comment}},            %{#{column.notes_prefix.column_comment}},            %{#{column.notes_prefix_a.column_comment}},            %{#{column.notes_prefix_b.column_comment}}, @@ -453,9 +448,6 @@ module SiSU_DbCreate            %{#{column.src_word_count.column_comment}},            %{#{column.src_txt.column_comment}},            %{#{column.fulltext.column_comment}}, -          %{#{column.skin_name.column_comment}}, -          %{#{column.skin_fingerprint.column_comment}}, -          %{#{column.skin.column_comment}},            %{#{column.links.column_comment}},          ]          conn_execute_array(sql_arr) diff --git a/lib/sisu/v3/db_dbi.rb b/lib/sisu/v5/db_dbi.rb index 0164ceb5..85640b3a 100644 --- a/lib/sisu/v3/db_dbi.rb +++ b/lib/sisu/v5/db_dbi.rb @@ -50,7 +50,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/v3/db_dbi.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_dbi.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_drop.rb b/lib/sisu/v5/db_drop.rb index b4f8c7ed..caf7faa5 100644 --- a/lib/sisu/v3/db_drop.rb +++ b/lib/sisu/v5/db_drop.rb @@ -50,7 +50,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/v3/db_drop.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_drop.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_import.rb b/lib/sisu/v5/db_import.rb index 530e23df..a1d332bb 100644 --- a/lib/sisu/v3/db_import.rb +++ b/lib/sisu/v5/db_import.rb @@ -50,7 +50,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/v3/db_import.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_import.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -84,7 +84,6 @@ module SiSU_DbImport          @md=SiSU_Param::Parameters.new(@opt).get          @md.fnb        end -      @suffix=@opt.fns[/(?:.+?)(?:\.ssm\.sst|\.-?sst)/,1]        @fnc="#{@dal}/#{@opt.fns}.content.rbm"        @@seg,@@seg_full='',''                                  #create? consider placing field just before clean text as opposed to seg which contains seg(.html) name info seg_full would contain seg info for levels 5 & 6 where available eg seg_full may be 7.3 (level 5) and 7.3.1 (level 6) where seg  is 7        @col=Hash.new('') diff --git a/lib/sisu/v3/db_indexes.rb b/lib/sisu/v5/db_indexes.rb index beae0aa1..265d5169 100644 --- a/lib/sisu/v3/db_indexes.rb +++ b/lib/sisu/v5/db_indexes.rb @@ -50,7 +50,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/v3/db_indexes.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_indexes.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_load_tuple.rb b/lib/sisu/v5/db_load_tuple.rb index d615fcab..bdaf285a 100644 --- a/lib/sisu/v3/db_load_tuple.rb +++ b/lib/sisu/v5/db_load_tuple.rb @@ -50,7 +50,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/v3/db_load_tuple.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_load_tuple.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -177,21 +177,19 @@ module SiSU_DbTuple  #{@tp.column.rights_license.tuple[0]}  #{@tp.column.classify_topic_register.tuple[0]}  #{@tp.column.classify_subject.tuple[0]} -#{@tp.column.classify_type.tuple[0]}  #{@tp.column.classify_loc.tuple[0]}  #{@tp.column.classify_dewey.tuple[0]} -#{@tp.column.classify_oclc.tuple[0]} -#{@tp.column.classify_pg.tuple[0]} -#{@tp.column.classify_isbn.tuple[0]} -#{@tp.column.classify_format.tuple[0]} -#{@tp.column.classify_identifier.tuple[0]} -#{@tp.column.classify_relation.tuple[0]} -#{@tp.column.classify_coverage.tuple[0]}  #{@tp.column.classify_keywords.tuple[0]} +#{@tp.column.identifier_oclc.tuple[0]} +#{@tp.column.identifier_isbn.tuple[0]}  #{@tp.column.notes_abstract.tuple[0]} -#{@tp.column.notes_comment.tuple[0]}  #{@tp.column.notes_description.tuple[0]} +#{@tp.column.notes_comment.tuple[0]}  #{@tp.column.notes_history.tuple[0]} +#{@tp.column.notes_format.tuple[0]} +#{@tp.column.notes_relation.tuple[0]} +#{@tp.column.notes_coverage.tuple[0]} +#{@tp.column.notes_type.tuple[0]}  #{@tp.column.notes_prefix.tuple[0]}  #{@tp.column.notes_prefix_a.tuple[0]}  #{@tp.column.notes_prefix_b.tuple[0]} @@ -202,9 +200,6 @@ module SiSU_DbTuple  #{@tp.column.src_word_count.tuple[0]}  #{@tp.column.src_txt.tuple[0]}  #{@tp.column.fulltext.tuple[0]} -#{@tp.column.skin_name.tuple[0]} -#{@tp.column.skin_fingerprint.tuple[0]} -#{@tp.column.skin.tuple[0]}  #{@tp.column.links.tuple[0]}  tid)  " + @@ -262,21 +257,19 @@ tid)  #{@tp.column.rights_license.tuple[1]}  #{@tp.column.classify_topic_register.tuple[1]}  #{@tp.column.classify_subject.tuple[1]} -#{@tp.column.classify_type.tuple[1]}  #{@tp.column.classify_loc.tuple[1]}  #{@tp.column.classify_dewey.tuple[1]} -#{@tp.column.classify_oclc.tuple[1]} -#{@tp.column.classify_pg.tuple[1]} -#{@tp.column.classify_isbn.tuple[1]} -#{@tp.column.classify_format.tuple[1]} -#{@tp.column.classify_identifier.tuple[1]} -#{@tp.column.classify_relation.tuple[1]} -#{@tp.column.classify_coverage.tuple[1]}  #{@tp.column.classify_keywords.tuple[1]} +#{@tp.column.identifier_oclc.tuple[1]} +#{@tp.column.identifier_isbn.tuple[1]}  #{@tp.column.notes_abstract.tuple[1]}  #{@tp.column.notes_comment.tuple[1]}  #{@tp.column.notes_description.tuple[1]}  #{@tp.column.notes_history.tuple[1]} +#{@tp.column.notes_format.tuple[1]} +#{@tp.column.notes_relation.tuple[1]} +#{@tp.column.notes_coverage.tuple[1]} +#{@tp.column.notes_type.tuple[1]}  #{@tp.column.notes_prefix.tuple[1]}  #{@tp.column.notes_prefix_a.tuple[1]}  #{@tp.column.notes_prefix_b.tuple[1]} @@ -287,9 +280,6 @@ tid)  #{@tp.column.src_word_count.tuple[1]}  #{@tp.column.src_txt.tuple[1]}  #{@tp.column.fulltext.tuple[1]} -#{@tp.column.skin_name.tuple[1]} -#{@tp.column.skin_fingerprint.tuple[1]} -#{@tp.column.skin.tuple[1]}  #{@tp.column.links.tuple[1]}  #{@id}  );" diff --git a/lib/sisu/v3/db_remove.rb b/lib/sisu/v5/db_remove.rb index de579832..1fb40e30 100644 --- a/lib/sisu/v3/db_remove.rb +++ b/lib/sisu/v5/db_remove.rb @@ -50,7 +50,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/v3/db_remove.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_remove.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_select.rb b/lib/sisu/v5/db_select.rb index efa1e7bd..f6930fa4 100644 --- a/lib/sisu/v3/db_select.rb +++ b/lib/sisu/v5/db_select.rb @@ -50,7 +50,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/v3/db_select.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_select.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_sqltxt.rb b/lib/sisu/v5/db_sqltxt.rb index 91c775f8..eb52f300 100644 --- a/lib/sisu/v3/db_sqltxt.rb +++ b/lib/sisu/v5/db_sqltxt.rb @@ -50,7 +50,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/v3/db_sqltxt.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_sqltxt.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/db_tests.rb b/lib/sisu/v5/db_tests.rb index 33762987..5cc7c982 100644 --- a/lib/sisu/v3/db_tests.rb +++ b/lib/sisu/v5/db_tests.rb @@ -50,7 +50,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/v3/db_tests.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/db_tests.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dbi.rb b/lib/sisu/v5/dbi.rb index 9521edbc..33592727 100644 --- a/lib/sisu/v3/dbi.rb +++ b/lib/sisu/v5/dbi.rb @@ -50,7 +50,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/v3/dbi.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dbi.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/dbi_discrete.rb b/lib/sisu/v5/dbi_discrete.rb index b8e8f6ef..89fd3898 100644 --- a/lib/sisu/v3/dbi_discrete.rb +++ b/lib/sisu/v5/dbi_discrete.rb @@ -50,7 +50,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/v3/dbi_discrete.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/dbi_discrete.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v5/defaults.rb b/lib/sisu/v5/defaults.rb new file mode 100644 index 00000000..6b3004ef --- /dev/null +++ b/lib/sisu/v5/defaults.rb @@ -0,0 +1,1212 @@ +# 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 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/defaults.rb;hb=HEAD> + + * Ralph Amissah +   <ralph@amissah.com> +   <ralph.amissah@gmail.com> + + ** Description: Default values + +=end +$latex_run=nil +module SiSU_Viz +  require 'uri' +  require_relative 'sysenv'                             # sysenv.rb +    include SiSU_Env +  require_relative 'css'                                # css.rb +    include SiSU_Style +  class Defaults +    def initialize +      @fonts='verdana, arial, georgia, tahoma, sans-serif, helvetica, times, roman' # 'verdana, arial, georgia, tahoma, sans-serif, helvetica, "times new roman", times, roman' +      @dir=SiSU_Env::InfoEnv.new +      @date=SiSU_Env::InfoDate.new #{@date.year} +      @v=SiSU_Env::InfoVersion.instance.get_version +    end +    #% glyph +    def glyph_bullet # • +      '• ' # [• flagged] +    end +    #% html +    def html_hardspace +      ' ' +    end +    def semantic_tags +      def default +        { +          pub:     'publication', +          conv:    'convention', +          vol:     'volume', +          pg:      'page', +          cty:     'city', +          org:     'organization', +          uni:     'university', +          dept:    'department', +          fac:     'faculty', +          inst:    'institute', +          co:      'company', +          com:     'company', +          conv:    'convention', +          dt:      'date', +          y:       'year', +          m:       'month', +          d:       'day', +          ti:      'title', +          au:      'author', +          ed:      'editor', #editor? +          v:       'version', #edition +          n:       'name', +          fn:      'firstname', +          mn:      'middlename', +          ln:      'lastname', +          in:      'initials', +          qt:      'quote', +          ct:      'cite', +          ref:     'reference', +          ab:      'abreviation', +          def:     'define', +          desc:    'description', +          trans:   'translate', +        } +      end +      self +    end +    #% decorate +    def decorate_italics +      'title|article|book|journal' +    end +    def decorate_bold +    end +    def decorate_uppercase +      'surname' +    end +    #% semantic +    def sem_title #dc 1 +      'title' +    end +    def sem_article +      'article' +    end +    def sem_book +      'book' +    end +    def sem_journal +      'journal' +    end +    def sem_fullname # (contains: firstname, surname) #issues arise as contains surname etc. +      'fullname' +    end +    def sem_first +      'first' +    end +    def sem_surname +      'surname' +    end +    def sem_middle +      'middle' +    end +    def sem_creator #dc 2 #==fullname (contains: firstname, surname) +      'creator' +    end +    def sem_author #==fullname (contains: firstname, surname) +      'author' +    end +    def sem_editor #==fullname (contains: firstname, surname) +      'editor' +    end +    def sem_illustrator #==fullname (contains: firstname, surname) +      'illustrator' +    end +    def sem_translator #==fullname (contains: firstname, surname) +      'translator' +    end +    def sem_isbn # 10 or 13 +      'isbn' +    end +    def sem_isbn_10 +      'isbn10' +    end +    def sem_isbn_13 +      'isbn13' +    end +    def sem_loc # library of congress +      'loc' +    end +    def sem_dewey +      'dewey' +    end +    def sem_pg # project gutenberg number +      'pg' +    end +    def sem_subject #dc 3 +      'subject' +    end +    def sem_date #dc 7 +      'date' +    end +    def sem_date_created +      'date_created' +    end +    def sem_date_issued +      'date_issued' +    end +    def sem_date_available +      'date_available' +    end +    def sem_date_valid +      'date_valid' +    end +    def sem_date_modified +      'date_modified' +    end +    def sem_type #dc 8 +      'type' +    end +    def sem_description #dc 4 +      'description' +    end +    def sem_publisher #dc 5 +      'publisher' +    end +    def sem_contributor #dc 6 +      'contributor' +    end +    def sem_format #dc 9 +      'format' +    end +    def sem_identifier #dc 10 +      'identifier' +    end +    def sem_source #dc 11 +      'source' +    end +    def sem_language #dc 12 +      'language' +    end +    def sem_relation #dc 13 +      'source' +    end +    def sem_coverage #dc 14 +      'coverage' +    end +    def sem_rights #dc 15 +      'rights' +    end +    def sem_copyright +      'copyright' +    end +    def sem_license +      'license' +    end +    def sem_prepared_by +      'prepared_by' +    end +    def sem_digitized_by +      'digitized_by' +    end +    def sem_keywords +      'keywords' +    end +    def sem_comments +      'comments' +    end +    def sem_abstract +      'abstract' +    end +    #% path +    def path_stylesheet_home +      %{  <link rel="stylesheet" href="./#{@dir.path.style}/homepage.css" type="text/css" />} +    end +    #% text #changed from txt to avoid naming conflicts #FOLLOW +    def txt_generator +      %{  <meta name="generator" content="#{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" /> +    <link rel="generator" href="http://www.sisudoc.org/" />} +    end +    def txt_generator_comment +      %{  <!- #{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" http://www.sisudoc.org/ ->} +    end +    def txt_hp +      ' SiSU' +    end +    def txt_hp_alias +      'SiSU' +    end +    def txt_home +      'SiSU' +    end +    def txt_signature # used in latex/pdf footer +      'SiSU' +    end +    #% url +    def url_urify(uri) +      URI.parse(uri) +    end +    def url_sisu +      'http://www.sisudoc.org/' +    end +    def url_sisudoc +      'http://www.sisudoc.org' +    end +    def url_footer_signature +      'http://www.sisudoc.org/' +    end +    def url_root +      '/sisu' #watch +    end +    def url_root_http +      'http://www.sisudoc.org/' #watch +    end +    def url_home +      'http://www.sisudoc.org/' # used in pdf header +    end +    def url_site #used as stub... where there are subdirectories and is different from home +      url_home +      #'http://www.sisudoc.org/' # used in pdf header +    end +    def url_txt +      'www.sisudoc.org/' +    end +    def url_path_image_base #used for html image display +      "#{Xx[:html_relative2]}_sisu/image" +    end +    def url_path_image #used for html image display +      "#{Xx[:html_relative2]}_sisu/image" +    end +    def url_path_image_sys #used for html image display +      "#{Xx[:html_relative2]}_sisu/image_sys" +    end +    def url_decoration +      def tex_open                     #'{\UseTextSymbol{OML}{<}}' +        Dx[:url_o] +      end +      def tex_close                    #'{\UseTextSymbol{OML}{>}}' +        Dx[:url_c] +      end +      def xml_open                     #'<' +        Dx[:url_o] +      end +      def xml_close                    #'>' +        Dx[:url_c] +      end +      def txt_open +        '<' +      end +      def txt_close +        '>' +      end +      self +    end +    def rel_decoration +      def tex_open                     #'{\UseTextSymbol{OML}{<}}' +        Dx[:rel_o] +      end +      def tex_close                    #'{\UseTextSymbol{OML}{>}}' +        Dx[:rel_c] +      end +      def xml_open                     #'<' +        Dx[:rel_o] +      end +      def xml_close                    #'>' +        Dx[:rel_c] +      end +      def txt_open +        '<' +      end +      def txt_close +        '>' +      end +      self +    end +    #% color +    def color_body +      %{<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">} +    end +    def color_white +      '"#ffffff"' +    end +    def color_black +      '#000000' +    end +    def color_blue_ink +      '#003399' +    end +    def color_blue_tinge +      '#e3ecef' +    end +    def color_blue_grey +      '#8faebf' +    end +    def color_blue_murky +      '#437389' +    end +    def color_beige +      '#f1e8de' +    end +    def color_subtleglow +      '#dddccc' +    end +    def color_glow +      '#fff0c3' +    end +    def color_rose +      '#ffdec9' +    end +    def color_turquoise +      '#1c869b' +    end +    def color_grey_pale +      '#eeeeee' +    end +    def color_grey_medium +      '#cccccc' +    end +    def color_grey +      '#999999' +    end +    def color_yellow_light +      '#fff3b6' +    end +    def color_yellow +      '#ffde14' +    end +    def color_yellow_dark +      '#ffcc00' +    end +    def color_green_light +      '#b7d398'  #  #e2efd5 #b7d398 #b1c999 # '#aed19e' +    end +    def color_green +      '#0a8400' +    end +    def color_green_dark +      '#086800' +    end +    def color_ruby +      '#a00000' +    end +    def color_maroon +      '#800000' +    end +    def color_paper +      %{"#{color_white}"} +    end +    def color_band1 +      %{"#{color_white}"} +    end +    def color_band2 +      %{"#{color_white}"} +    end +    def color_body +      %{<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en">} +    end +    def color_font_face #was font WATCH +      "#{color_black}" +    end +    def color_surround +      %{"#{color_white}"} +    end +    def color_band +      %{"#{color_white}"} +    end +    def color_table1 +      'ffffcc' +    end +    def color_table2 +      'c0d0f0' +    end +    def color_band1 +      '"#ffffff"' +    end +    def color_band2 +      '"#ffffff"' +    end +    #% icon +    def icon_ico +      'rb7.ico' +    end +    def icon_sisu +      'sisu.png' +    end +    def icon_manifest +      'b_info.png' +    end +    def icon_doc +      'b_doc.png' +    end +    def icon_toc +      'b_toc.png' +    end +    def icon_wmp +      'b_wmp.png' +    end +    def icon_odf +      'b_odf.png' +    end +    def icon_epub +      'b_epub.png' +    end +    def icon_pdf +      'b_pdf.png' +    end +    def icon_pdf_portrait +      'b_pdf.png' +    end +    def icon_pdf_landscape +      'b_pdf.png' +    end +    def icon_choice +      'b_choice.png' +    end +    def icon_new +      'b_new.png' +    end +    def icon_dot_clear +      'dot_clear.png' +    end +    def icon_dot_white +      'dot_white.png' +    end +    def icon_dot +      icon_dot_white +    end +    def icon_home_button +      'sisu.png' +    end +    def icon_next +      'arrow_next_red.png' +    end +    def icon_previous +      'arrow_prev_red.png' +    end +    def icon_up +      'arrow_up_red.png' +    end +    #% font +    def font_fonts +      @fonts +    end +    def font_face +      %{face="#{font_fonts}"} +    end +    def font_color +      'color="#000000"' +    end +    def font_size_endnote +      'size="3"' +    end +    def font_small +      'size="3"' +    end +    def font_tiny +      'size="2"' +    end +    #% markup +    def markup_italics_list #regular expression of words to be italised +    end +    def markup_bold_list #regular expression of words to be made bold +      'SiSU' +    end +    def markup_make_italic +      if defined? italics_list \ +      and italics_list +        make={} +        if italics_list +          r=italics_list.dup +          x=case r +          when /\/i$/; 'i' +          else         '' +          end +          r=r.gsub(/^\/(.+?)\/i?/,'\1'). +            gsub(/\(/,'(?:') # avoid need to escape use of brackets within regex provided +          m='\b(' + r + ')\b' +          make[:str] +          make[:regx]=(x =~/i/) \ +          ? (/#{m}/i) +          : (/#{m}/) +        else nil +        end +      end +    end +    def markup_make_bold +      if defined? bold_list \ +      and not bold_list.empty? +        make={} +        if bold_list +          r=bold_list.dup +          x=case r +          when /\/i$/; 'i' +          else         '' +          end +          r.gsub(/^\/(.+?)\/i?/,'\1'). +            gsub(/\(/,'(?:') # avoid need to escape use of brackets within regex provided +          m='\b(' + r + ')\b' +          make[:str] +          make[:regx]=(x =~/i/) \ +          ? (/#{m}/i) +          : (/#{m}/) +        else nil +        end +        make +      end +    end +    #% paragraph +    def paragraph_txt +      %{<p class="normal">} +    end +    def paragraph_endnote +      %{<p class="endnote">} +    end +    def paragraph_font_tiny +      %{<font #{font_tiny} #{font_face}>} +    end +    def paragraph_font_small +      %{<font #{font_small} #{font_face}>} +    end +    #% table +    def table_close +      '</td></tr> +</table>' +    end +    def table_width_1 +      '"100%"' +    end +    def table_width_2 +      '"99%"' +    end +    def table_width_txt +      '"94%"' +    end +    def table_width_txt_r +      '"96%"' +    end +    def table_cellpad_box +      '"20"' +    end +    #% indent +    def indent_level_0 +      '"1%"' +    end +    def indent_level_1 +      '"4%"' +    end +    def indent_level_2 +      '"6%"' +    end +    def indent_level_3 +      '"8%"' +    end +    def indent_level_4 +      '"10%"' +    end +    #% margin +    def margin_num +      '</p> </td><td width="4%" align="right" valign="top">' +    end +    def margin_numless +      '</td><td width="4%" align="right" valign="top">' +    end +    def margin_num_css +      '</td> +<td width="2%" align="right" valign="top">  ' +    end +    def margin_txt_w1 +      %{<table summary="" width=#{table_width_txt_r} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width="6%" align="right"> </td> +<td width="90%" valign="top" align="justify">} +    end +    def margin_txt_w2 +      %{<table summary="" width=#{table_width_txt_r} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width="10%" align="right"> </td> +<td width="86%" valign="top" align="justify">} +    end +    def margin_txt_0 +      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width=#{indent_level_0} align="right"> +</td><td valign="top" align="justify">} +    end +    def margin_txt_1 +      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width=#{indent_level_1} align="right"></td><td valign="top" align="justify">} +    end +    def margin_txt_2 +      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width=#{indent_level_2} align="right"> +</td> +<td valign="top" align="justify">} +    end +    def margin_txt_3 +      %{<table summary="" width=#{table_width_txt} border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td width=#{indent_level_3} align="right"> +</td> +<td valign="top" align="justify">} +    end +    def margin_css +      '<table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center"> +<tr><td valign="top" align="justify"> ' +    end +    #% png +    def png_ico +      %{  <link rel="shortcut icon" href="../_sisu/image/#{icon_ico}" />} +    end +    def png_sisu #check url path +      %{  <a href="#{@url.sisu}"> +    <img border="0" width="160" height="60" src="#{url_path_image}/#{icon_sisu}" alt="SiSU" /> +    </a>} +    end +    def png_site +      %{<img src="#{url_path_image}/#{icon_site}" alt="@" border="0" />} +    end +    def png_nav +      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_bluebell}" alt="Contents" />} +    end +    def png_manifest +      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_manifest}" alt="Document Manifest" />} +    end +    def png_doc +      %{<img border="0" height="15" width="15" src="#{url_path_image_sys}/#{icon_doc}" alt="Full Text" />} +    end +    def png_toc +      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_toc}" alt="TOC linked" />} +    end +    def png_odf +      %{<img border="0" height="18" width="18" src="#{url_path_image_sys}/#{icon_odf}" alt="ODF/ODT" />} +    end +    def png_epub +      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_epub}" alt="EPUB" />} +    end +    def png_pdf +      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF" />} +    end +    def png_pdf_portrait +      %{<img border="0" height="18" width="15" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF portrait" />} +    end +    def png_pdf_landscape +      %{<img border="0" height="15" width="18" src="#{url_path_image_sys}/#{icon_pdf}" alt="PDF landscape" />} +    end +    def png_home +      #dir=SiSU_Env::InfoEnv.new #(@fns) +      %{<img border="0" src="#{url_path_image_base}/#{icon_home_button}" alt="#{txt_home} -->" />} +      #%{<img border="0" src="#{dir.url.images_local}/#{icon_home_button}" alt="#{txt_home} -->" />} +    end +    def png_home_button +      rel=@dir.path_rel_links.html_scroll_2 +      %{<img border="0" src="#{rel}/#{icon_home_button}" alt="#{txt_home} -->" />} +    end +    #% png_nav #not currently used +    #% nav_txt +    def nav_txt_homepage +      %{  <font face="#{font_fonts}" size="2"> +     home  +  </font> } +    end +    def nav_txt_toc_link +      %{  <font face="#{font_fonts}" size="2"> +      toc  +  </font> } +    end +    def nav_txt_doc_link +      %{  <font face="#{font_fonts}" size="2"> +     scroll  +  </font> } +    end +    def nav_txt_manifest +      #{png_manifest} document manifest +      %{  <font face="#{font_fonts}" size="2"> +    [ document manifest ] +  </font> } +    end +    def nav_txt_concordance +      %{  <font face="#{font_fonts}" size="2"> +      A-Z  +  </font> } +    end +    def nav_txt_pdf_portrait +      %{  <font face="#{font_fonts}" size="2"> +     pdf  +  </font> } +    end +    def nav_txt_pdf_landscape +      %{  <font face="#{font_fonts}" size="2"> +     pdf  +  </font> } +    end +    #% banner +    def banner_home_button_only +      %{<a href="#{url_site}/"> +    #{png_home_button} +  </a>} +    end +    def banner_band #yellow_dark now white +      %{<table summary="home button" width="100%" border="0" cellpadding="3" bgcolor= "#ffffff" align="center"> +<tr><td align="left" valign="middle" bgcolor="#{color_white}"> +  <a href="#{url_site}/" target="_top"> +    #{png_home} +  </a> +</td> +<td width="90%"> +#{table_close}} +    end +    def banner_instrument_cover_band_scr +      '<table summary="scroll instrument cover band" width="100%" border="0" cellpadding="8" bgcolor="#ffffff" align="center"> +<tr><td align="center">' +    end +    def banner_instrument_cover_band_seg +      '<table summary="segment instrument cover band, title, author, location" width="100%" border="0" cellpadding="8" bgcolor="#ffffff" align="center"> +<tr><td align="center">' +    end +    #% widget +    def widget_promo # Array used to build promo from list.yml and promo.yml +    #  ['sisu_icon','sisu','sisu_search_libre','open_society','fsf','ruby'] +    end +    def widgets_open +<<WOK +<table summary="SiSU summary" bgcolor="#ffffff" cellpadding="4" border="0"> +WOK +    end +    def widget_sisu_text +<<WOK +  <p class="tiny"><font color="#666666" size="2"> +    Output generated by +    <a href="#{url_sisu}"> +      #{@v[:project]} +    </a> +    #{@v[:version]} #{@v[:date]} (#{@v[:date_stamp]}) +  </font></p> +WOK +    end +    def widget_sisu +<<WOK +<!-- widget sisu --> +<tr><td valign="top" width="100%"> +<!-- SiSU Rights --> +#{widget_sisu_text} +</td></tr> +WOK +    end +    def widget_sisu_verbose +<<WOK +<!-- widget sisu --> +<tr><td valign="top" width="10%"> +  <p class="tiny_left"><font color="#666666" size="2"> +    <a href="#{url_sisu}"> +      <img border="0" src="../_sisu/image/sisu.png" alt="SiSU" width="120" height="39" /> +    </a> +  </font></p> +</td><td valign="top" width="45%"> +<!-- SiSU Rights --> +  <p class="tiny_left"><font color="#666666" size="2"> +    Output generated by +    <a href="#{url_sisu}"> +      #{@v[:project]} +    </a> +    #{@v[:version]} #{@v[:date]} (#{@v[:date_stamp]}) +    <br /> +    <a href="#{url_sisu}"> +      <b>#{@v[:project]}</b> +    </a> +    Copyright <sup>©</sup> Ralph Amissah +    1997, current #{@date.year_static}. +    All Rights Reserved. +    <br /> +    <a href="#{url_sisu}"> +      #{@v[:project]} +    </a> +    is software for document structuring, publishing and search, +    <br /> +    <a href="#{url_sisu}"> +      www.sisudoc.org/ +    </a> +    and +    <a href="#{url_sisudoc}"> +      www.sisudoc.org +    </a> +  <br /> +    <i>w3 since October 3 1993</i> +    <a href="mailto:ralph@amissah.com"> +      ralph@amissah.com +    </a> +  </font></p> +</td><td valign="top" width="45%"> +  <p class="tiny_left"><font color="#666666" size="2"> +    #{@v[:project]} using: +    <br />Standard SiSU markup syntax, +    <br />Standard SiSU meta-markup syntax, and the +    <br />Standard SiSU <u>object citation numbering</u> and system, (object/text positioning system) +  <br /> +    Copyright <sup>©</sup> Ralph Amissah 1997, current #{@date.year_static}. +    All Rights Reserved. +  </font></p> +</td></tr> +WOK +    end +    def widget_way_better +      <<WOK +<!-- widget way better --> +<tr><td valign="top" width="10%"> +  <p class="tiny_left"><font color="#666666" size="2"> +    <a href="http://www.gnu.org/licenses/gpl.html"> +      <img border="0" src="../_sisu/image/gplv3_free_software.png" alt="GPLv3" width="127" height="51" /> +    </a> +  </font></p> +</td><td valign="top" width="45%"> +  <p class="tiny_left"><font color="#666666" size="2"> +    <a href="#{url_sisu}"> +      #{@v[:project]} +    </a> +    is released under +    <a href="http://www.gnu.org/licenses/gpl.html">GPLv3</a> +    or later, +    #{url_decoration.xml_open}<a href="http://www.gnu.org/licenses/gpl.html">http://www.gnu.org/licenses/gpl.html</a>#{url_decoration.xml_close} +  </font></p> +</td><td valign="top" width="45%"> +  <p class="tiny_left"><font color="#666666" size="2"> +    #{@v[:project]}, developed using +    <a href="http://www.ruby-lang.org/en/"> +      Ruby +    </a> +    on +    <a href="http://www.debian.org/"> +      Debian/Gnu/Linux +    </a> +    software infrastructure, +    with the usual GPL (or OSS) suspects. +  <br /> +    Better - "performance, reliability, scalability, security & total cost of ownership" +    [not to mention flexibility & choice] use of and adherence to open standards (where practical and fair) and it is software libré. +  <br /> +    Get With the Future +    <a href="http://www.sisudoc.org/"> +      Way Better! +    </a> +  </font></p> +</td></tr> +WOK +    end +    #% credits +    def credits_sisu_manifest +      widget_sisu_text +    end +    def credits_sisu +      x=%{<div class="substance"> +<table summary="SiSU summary" bgcolor="#ffffff" cellpadding="4" border="0"> +<tr><td> +  #{widget_sisu} +  #{widget_way_better} +</table></div>} +      '' +    end +    def credits_splash +    end +    def credits_sisu_epub +      x=%{<div class="substance"> +<p class="center"><a href="http://www.openebook.org"><b>EPUB</b></a> generated by <a href="http://www.sisudoc.org"><b>#{@v[:project]}</b></a> v#{@v[:version]}, GPL3</p> +</div>} +      '' +    end +  end +  class Home < Defaults +    def initialize +      @v=SiSU_Env::InfoVersion.instance.get_version +      @dir=SiSU_Env::InfoEnv.new +      @date=SiSU_Env::InfoDate.new #{@date.year} +    end +    def redirect +      <<WOK +<html><head> +<title>SiSU</title> +<meta http-equiv="refresh" content="0, url=http://www.sisudoc.org/sisu/SiSU/"> +</head> +<body> +SiSU informtion provided at <a href="http://www.sisudoc.org/sisu/SiSU/">www.sisudoc.org/sisu/SiSU</a><p /> +If your browser supports redirection, you will be escorted there shortly. +</body> +</html> +WOK +    end +    def homepage +      <<WOK +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> +<title>SiSU information Structuring Universe - Structured information, Serialized Units - software for electronic texts, documents, books, digital libraries in plaintext, HTML, EPUB, XHTML, XML, ODF (OpenDocument), LaTeX, PDF, SQL (PostgreSQL and SQLite), and for search</title> +<meta name="dc.title" content="SiSU - SiSU information Structuring Universe, Structured information Serialised Units, #{@date.year_static}" /> +<meta name="dc.creator" content="Ralph Amissah" /> +<meta name="dc.subject" content= "document structuring, ebook, publishing, PDF, LaTeX, XML, ODF, EPUB, SQL, postgresql, sqlite, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, granular search, digital library" /> +<meta name="dc.publisher" content= "SiSU http://www.sisudoc.org/" /> +<meta name="dc.language" content="en" /> +<meta name="dc.rights" content="Copyright Ralph Amissah" /> +<meta name="generator" content="#{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!)" /> +<link rel="generator" href="http://www.sisudoc.org/" /> +<link rel="stylesheet" href="./#{@dir.path.style}/harvest.css" type="text/css" /> +<link rel="shortcut icon" href="./_sisu/image/rb7.ico" /> +</head> + +<body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en"> +<a name="top" id="top"></a> +<a name="up" id="up"></a> +<a name="start" id="start"></a> + +<h1>SiSU</h1> +<p> +[<a href="http://sisudoc.org/sisu_manual/en/html/sisu/toc.html">Manual</a>] +</p> +<p> +[<a href="http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=summary">Source</a>] +[<a href="http://lists.sisudoc.org/listinfo/sisu">List Info (sisu@lists.sisudoc.org)</a>] +</p> + +<h1>SiSU Markup Samples</h1> +<p> +[<a href="http://sources.sisudoc.org/gitweb/?p=doc/sisu-markup-samples.git;a=summary">Source</a>] +[<a href="http://sisudoc.org/sisu_markup_samples.html">Output</a>] +</p> + +<hr /> + +<h2 class="top_band_tiny"> +  Structured information, Serialized Units +     +  <a href="http://www.sisudoc.org" target="_top"> +    <www.sisudoc.org> +  </a> +    or   +  <a href="http://www.jus.uio.no/sisu/" target="_top"> +    <www.jus.uio.no/sisu/> +  </a> +software for electronic texts, document collections, books, digital libraries & search, with "atomic search" & text locating system (shared object citation numbering: "<i>ocn</i>"). +Outputs include: plaintext, HTML, EPUB, ODT (OpenDocumentText), (XHTML, XML,) LaTeX, PDF, SQL (PostgreSQL and SQLite). +</h2> +<p class="small"> +<a href="mailto:sisu@lists.sisudoc.org"> +<sisu@lists.sisudoc.org> +</a> +<a href="http://lists.sisudoc.org/listinfo/sisu"> +<http://lists.sisudoc.org/listinfo/sisu> +</a> +</p> +<p class="small"> +<a href="mailto:ralph@amissah.com"> +<ralph@amissah.com> +</a> +<a href="mailto:ralph.amissah@gmail.com"> +<ralph.amissah@gmail.com> +</a> +</p> +<p class="tiny"> +#{@v[:project]} #{@v[:version]} of #{@v[:date_stamp]} (#{@v[:date]}) (n*x and Ruby!), #{@date.year_static}. +</p> +<p class="tiny"> +w3 since October 3 1993. +</p> +</body> +</html> +WOK +    end +    def home_toc +      ' ' +    end +  end +  class Inserts +  end +  class TeX < Defaults +    def initialize(papersize='') +      @papersize=papersize +    end +    def a4 +      def portrait +        def w +          160 +        end +        def h +          228 +        end +        def img_px +          450 +        end +        self +      end +      def landscape +        def w +          238 +        end +        def h +          160 +        end +        def img_px +          300 +        end +        self +      end +      self +    end +    def letter +      def portrait +        def w +          166 +        end +        def h +          212 +        end +        def img_px +          468 +        end +        self +      end +      def landscape +        def w +          226 +        end +        def h +          166 +        end +        def img_px +          290 +        end +        self +      end +      self +    end +    def legal +      def portrait +        def w +          168 +        end +        def h +          286 +        end +        def img_px +          474 +        end +        self +      end +      def landscape +        def w +          296 +        end +        def h +          166 +        end +        def img_px +          420 +        end +        self +      end +      self +    end +    def b5 +      def portrait +        def w +          140 +        end +        def h +          204 +        end +        def img_px +          356 +        end +        self +      end +      def landscape +        def w +          200 +        end +        def h +          130 +        end +        def img_px +          260 +        end +        self +      end +      self +    end +    def a5 +      def portrait +        def w +          112 +        end +        def h +          162 +        end +        def img_px +          280 +        end +        self +      end +      def landscape +        def w +          152 +        end +        def h +          100 +        end +        def img_px +          190 +        end +        self +      end +      self +    end +    def dimensions +      d=case @papersize +      when /a4/;     a4 +      when /letter/; letter +      when /legal/;  legal +      when /b5/;     b5 +      when /a5/;     a5 +      else           a4 +      end +    end +  end +end +__END__ diff --git a/lib/sisu/v3/digests.rb b/lib/sisu/v5/digests.rb index d3c3f8c3..902a0e94 100644 --- a/lib/sisu/v3/digests.rb +++ b/lib/sisu/v5/digests.rb @@ -50,7 +50,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/v3/digests.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/digests.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -87,7 +87,6 @@ module SiSU_DigestView            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.hash_digest.dir}/#{@md.file.base_filename.hash_digest}").flow if @opt.cmd =~/[MV]/          end          SiSU_DigestView::Source::Scroll.new(@particulars).songsheet -        SiSU_Env::InfoSkin.new(@md).select        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -233,7 +232,7 @@ module SiSU_DigestView                  end                else                  prefix='' -                metad=[@tr.full_title,@tr.author,@tr.translator,@tr.illustrator,@tr.prepared_by,@tr.digitized_by,@tr.description,@tr.subject,@tr.abstract,@tr.publisher,@tr.contributor,@tr.date_created,@tr.date_issued,@tr.date_available,@tr.date_modified,@tr.date_valid,@tr.date,@tr.type,@tr.format,@tr.rights,@tr.identifier,@tr.source,@tr.language,@tr.language_original,@tr.relation,@tr.coverage,@tr.keywords,@tr.comments,@tr.cls_loc,@tr.cls_dewey,@tr.cls_gutenberg,@tr.cls_isbn,@tr.prefix_a,@tr.prefix_b,@tr.sourcefile,@tr.sourcefile_digest,@tr.last_generated,@tr.sisu_version,@tr.ruby_version,@tr.sc_number,@tr.sc_date,'Skin_Digest: ','Generated by: ','Ruby version: '] +                metad=[@tr.full_title,@tr.author,@tr.translator,@tr.illustrator,@tr.prepared_by,@tr.digitized_by,@tr.description,@tr.subject,@tr.abstract,@tr.publisher,@tr.contributor,@tr.date_created,@tr.date_issued,@tr.date_available,@tr.date_modified,@tr.date_valid,@tr.date,@tr.type,@tr.format,@tr.rights,@tr.identifier,@tr.source,@tr.language,@tr.language_original,@tr.relation,@tr.coverage,@tr.keywords,@tr.comments,@tr.cls_loc,@tr.cls_dewey,@tr.cls_gutenberg,@tr.cls_isbn,@tr.prefix_a,@tr.prefix_b,@tr.sourcefile,@tr.sourcefile_digest,@tr.last_generated,@tr.sisu_version,@tr.ruby_version,@tr.sc_number,@tr.sc_date,'Generated by: ','Ruby version: ']                  metad.each do |n|                    m=rgx_txt(n)                    if m=~/\S+/ \ @@ -261,8 +260,6 @@ module SiSU_DigestView                    @c=/#{m_author}: (.+?)#{Mx[:id_o]}~\d;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}[0-9a-f]{#{@dl}}:[0-9a-f]{#{@dl}}#{Mx[:id_c]}/.match(para)[1].gsub(/<\/?u>/,'').strip                  when /#{m_sourcefile_digest}.+?<u>/                                        #watch                    dgst_extra="\n" + ' '*21 +'source' +' '*4 + @md.dgst[1] + ' '*34 + @md.fns -                when /Skin_Digest: / -                  dgst_extra="\n" + ' '*21 + 'skin' +' '*6 + @md.dgst_skin[1] + ' '*34 + /(skin_\S+?\.rb)/.match(@md.dgst_skin[0])[1]                  when /#{m_sisu_version}: /                    @v=/#{m_sisu_version}: (.+?)#{Mx[:id_o]}~\d;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}[0-9a-f]{#{@dl}}:[0-9a-f]{#{@dl}}#{Mx[:id_c]}/.match(para)[1].gsub(/<\/?u>/,'').strip                  when /#{m_last_generated}: / diff --git a/lib/sisu/v3/embedded.rb b/lib/sisu/v5/embedded.rb index 2b1e7596..a75b1690 100644 --- a/lib/sisu/v3/embedded.rb +++ b/lib/sisu/v5/embedded.rb @@ -50,7 +50,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/v3/embedded.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/embedded.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/epub.rb b/lib/sisu/v5/epub.rb index e7325bcd..480474e1 100644 --- a/lib/sisu/v3/epub.rb +++ b/lib/sisu/v5/epub.rb @@ -50,7 +50,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/v3/epub.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/epub.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -99,7 +99,6 @@ module SiSU_EPUB          @env.processing_path.epub_bld #(@md)          @env.processing_path.epub_cp_images(@md)          dir_epub=@env.processing_path.epub -        SiSU_Env::InfoSkin.new(@md).select          data=nil          SiSU_Env::FileOp.new(@md).mkdir.output.epub          @tuned_file_array=SiSU_EPUB::Source::XHTML_Environment.new(@particulars).tuned_file_instructions @@ -136,7 +135,7 @@ module SiSU_EPUB        def initialize(particulars)          @particulars=particulars          @md,@env=particulars.md,particulars.env -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @env,@css=particulars.env,SiSU_Style::CSS.new        end        def directories @@ -145,7 +144,6 @@ module SiSU_EPUB        end        def tuned_file_instructions          @tell=SiSU_Screen::Ansi.new(@md.opt.cmd) -        @md.opt.cmd=@md.opt.cmd.gsub(/H/,'h')          directories          dal_array=@particulars.dal_array # dal file drawn here          @tuned_file_array=SiSU_EPUB_Tune::Tune.new(dal_array,@md).songsheet @@ -191,7 +189,7 @@ module SiSU_EPUB        @@firstseg=nil        def initialize(md=nil,data='')          @md,@data=md,data -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @epub=SiSU_EPUB_Format::HeadInformation.new(@md)          @tell=SiSU_Screen::Ansi.new(@md.opt.cmd) if @md          @make=SiSU_Env::ProcessingSettings.new(@md) @@ -213,6 +211,13 @@ module SiSU_EPUB          @@toc[:opf] << @epub.metadata_opf.manifest_open          @@toc[:seg] << %{<div class="content">\n<div class="substance">}          @@toc[:scr] << %{<div class="content">\n<div class="substance">} +        if defined? @md.make.cover_image \ +        and @md.make.cover_image.is_a?(Hash) \ +        and @md.make.cover_image[:cover] =~/\S+/ +          md_opf_a_content << @epub.metadata_opf.manifest_cover_image_information(@md) +          md_opf_a_spine << @epub.metadata_opf.spine_cover_image +          md_opf_a_guide << @epub.metadata_opf.guide_cover_image +        end          md_opf_a_content << @epub.metadata_opf.manifest_content_sisu_toc          if @make.build.toc?            md_opf_a_spine << @epub.metadata_opf.spine_sisu_toc @@ -229,7 +234,7 @@ module SiSU_EPUB              toc=case dob_toc.ln              when 1                @s_a_no +=1 -              name_s_a='section_a' + @s_a_no.to_s +              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[6] @@ -239,21 +244,21 @@ module SiSU_EPUB                @@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 -              @epub.sections(dob_toc,name_s_a) -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,name_s_a) if dob_toc +              @epub.sections(dob_toc,lv_name) +              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,lv_name) if dob_toc                if @level_a_first_occurrence \                && @make.build.toc?                  @nav_no+=1                  @@toc[:ncx] << @epub.toc_ncx.navmap_sisu_toc(@nav_no) #epub ncx navmap, toc                  @level_a_first_occurrence=false                end -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,name_s_a) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,name_s_a) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,name_s_a) +              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) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name)                SiSU_EPUB::Source::Toc.new(@md,dob_toc).level_1              when 2                @s_b_no +=1 -              name_s_b='section_b' + @s_b_no.to_s +              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[6] @@ -262,15 +267,15 @@ module SiSU_EPUB                @@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 -              @epub.sections(dob_toc,name_s_b) -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,name_s_b) if dob_toc -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,name_s_b) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,name_s_b) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,name_s_b) +              @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) +              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name)                SiSU_EPUB::Source::Toc.new(@md,dob_toc).level_2              when 3                @s_c_no +=1 -              name_s_c='section_c' + @s_c_no.to_s +              lv_name='section_c' + @s_c_no.to_s                @nav_no+=1                @nav_no3=@nav_no                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6] @@ -278,47 +283,50 @@ module SiSU_EPUB                @@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 -              @epub.sections(dob_toc,name_s_c) -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,name_s_c) if dob_toc -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,name_s_c) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,name_s_c) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,name_s_c) +              @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) +              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,lv_name) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name)                SiSU_EPUB::Source::Toc.new(@md,dob_toc).level_3              when 4                @ncx_cls=[] +              lv_name=dob_toc.name                @nav_no+=1                @dob_name=dob.name                @@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 -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no) if dob_toc -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc) +              @@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) +              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,lv_name)                SiSU_EPUB::Source::Toc.new(@md,dob_toc).level_4              when 5                @ncx_cls=[] -              name_lv5=@dob_name + '.xhtml' + '#o' + dob_toc.ocn.to_s +              hashtag='#o' + dob_toc.ocn.to_s +              lv_name=@dob_name                @nav_no+=1                @@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 -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,name_lv5) if dob_toc -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,name_lv5) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,name_lv5) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,name_lv5) +              @@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_EPUB::Source::Toc.new(@md,dob_toc).level_5              when 6                @ncx_cls=[] -              name_lv6=@dob_name + '.xhtml' + '#o' + dob_toc.ocn.to_s +              hashtag='#o' + dob_toc.ocn.to_s +              lv_name=@dob_name                @nav_no+=1                @@toc[:ncx] << @epub.toc_ncx.navpoint_close if @ncxo[6]                @ncxo[6]=true -              @@toc[:ncx] << @epub.toc_ncx.navpoint(dob_toc,@nav_no,name_lv6) if dob_toc -              md_opf_a_content << @epub.metadata_opf.manifest_content(dob_toc,name_lv6) -              md_opf_a_spine << @epub.metadata_opf.spine(dob_toc,name_lv6) -              md_opf_a_guide << @epub.metadata_opf.guide(dob_toc,name_lv6) +              @@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_EPUB::Source::Toc.new(@md,dob_toc).level_6              else nil              end @@ -515,7 +523,7 @@ module SiSU_EPUB      class ScrollHeadAndSegToc < Toc        def initialize(md='',toc='',links_guide_toc='')          @md,@toc,@links_guide_toc=md,toc,links_guide_toc -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new        end        def in_common          toc_shared=[] @@ -545,7 +553,7 @@ module SiSU_EPUB          segtoc << format_txt_obj.center_bold          if defined? @md.creator.author \          and @md.creator.author -          creator_endnote=@md.creator.author.gsub(/(\*+)/,%{ <sup><a href="#notes">\\1</a></sup>}) +          creator_endnote=@md.creator.author.gsub(/(\*+)/,%{#{$ep[:hsp]}<sup><a href="#notes">\\1</a></sup>})            tmp_head=creator_endnote + "\n"            txt_obj={ txt: tmp_head }            format_txt_obj=SiSU_EPUB_Format::FormatTextObject.new(@md,txt_obj) @@ -584,7 +592,8 @@ module SiSU_EPUB          #Segtoc tail added here          segtoc << format_head_toc.xhtml_close          segtoc=segtoc.flatten.compact #watch -        SiSU_EPUB::Source::Output.new(@md,segtoc).segtoc +        SiSU_EPUB::Source::Output.new(@md).make_cover_image +        SiSU_EPUB::Source::Output.new(@md,segtoc).make_segtoc          segtoc=[]          @toc[:scr],@toc[:seg]=[],[]          toc_shared @@ -692,7 +701,44 @@ module SiSU_EPUB            end          end        end -      def segtoc +      def make_cover_image +        begin +          if @md.make.cover_image? \ +          and @md.make.cover_image.is_a?(Hash) \ +          and @md.make.cover_image[:cover] =~/\S+/ +            filename_xhtml=@make_file.epub.xhtml_cover_image +            cover_image=<<WOK +<?xml version='1.0' encoding='utf-8'?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" +   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +  <head> +    <title>Cover</title> +    <meta http-equiv="Content-Type" content='text/html; charset=utf-8' /> +    <link rel="stylesheet" href="css/xhtml.css" type="text/css" /> +    <style type="text/css"> img { max-width: 100%; } </style> +  </head> +  <body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en"> +    <div class="svg_outer"> +      <div class="svg_inner"> +        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="100%" height="100%" viewBox="0 0 #{@md.make.cover_image[:w]} #{@md.make.cover_image[:h]}" preserveAspectRatio="xMidYMid meet"> +        <image width="#{@md.make.cover_image[:w]}" height="#{@md.make.cover_image[:h]}" xlink:href="image/#{@md.make.cover_image[:cover]}" /> +        </svg> +      </div> +    </div> +  </body> +</html> +WOK +            filename_xhtml.puts cover_image,"\n" +            filename_xhtml.close +          end +        rescue +          SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +            __LINE__.to_s + ':' + __FILE__ +          end +        end +      end +      def make_segtoc          begin            if @make.build.toc?              filename_xhtml=@make_file.epub.xhtml_index diff --git a/lib/sisu/v3/epub_concordance.rb b/lib/sisu/v5/epub_concordance.rb index 4a63df91..e528a788 100644 --- a/lib/sisu/v3/epub_concordance.rb +++ b/lib/sisu/v5/epub_concordance.rb @@ -50,7 +50,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/v3/epub_concordance.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/epub_concordance.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -103,13 +103,12 @@ module SiSU_EPUB_Concordance        def initialize(particulars)          @particulars,@md=particulars,particulars.md          @data=SiSU_EPUB::Source::XHTML_Environment.new(particulars).tuned_file_instructions -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          txt_path=%{#{@md.dir_out}} -        SiSU_Env::InfoSkin.new(@md).select          @fnb=@md.fnb -        @lex_button=%{<a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" height="44" width="144" valign="center" src="../_sisu/image/sisu.png" alt="SiSU home -->"></a>} +        @lex_button=%{<a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" height="44" width="144" valign="center" src="../_sisu/image/sisu.png" alt="SiSU home"></a>}          @doc_details =<<WOK -<table summary="links to text related to this rudimentary index" width="96%" border="0" bgcolor="white" cellpadding="0" align="center"><tr><td width="2%" align="right"> </td><td width="94%" valign="top" align="justify"><h1 class="small"><a href="#{@md.file.base_filename.epub}"><b>#{@md.title.full}</b></a></h1><p class="bold">#{@md.creator.author}</p></td></tr></table> +<table summary="links to text related to this rudimentary index" width="96%" border="0" bgcolor="white" cellpadding="0" align="center"><tr><td width="2%" align="right">#{$ep[:hsp]}</td><td width="94%" valign="top" align="justify"><h1 class="small"><a href="#{@md.file.base_filename.epub}"><b>#{@md.title.full}</b></a></h1><p class="bold">#{@md.creator.author}</p></td></tr></table>  WOK        end        def create @@ -127,7 +126,7 @@ WOK      [if number of occurences exceed number of references - word occurs more than once in at least one reference. Footnote/endnotes are either assigned to the paragraph from which they are referenced or ignored, so it is relevant to check the footnotes referenced from within a paragraph as well.]    </p>    <p> -    (After the page is fully loaded) you can jump directly to a word by appending a hash (#) and the word to the url for this text, (do not forget that words are case sensitive, and may be listed twice (starting with and without an upper case letter)), #your_word # [ http://[web host]/#{@fnb}/concordance.html#your_word ] +    (After the page is fully loaded) you can jump directly to a word by appending a hash (#) and the word to the url for this text, (do not forget that words are case sensitive, and may be listed twice (starting with and without an upper case letter)), #your_word # [#{$ep[:hsp]}http://[web host]/#{@fnb}/concordance.html#your_word#{$ep[:hsp]}]    </p>  WOK        end @@ -157,7 +156,7 @@ WOK        def initialize(particulars)          @particulars=particulars          begin -          @vz=SiSU_Env::GetInit.instance.skin +          @vz=SiSU_Viz::Defaults.new            @env,@md,@dal_array=particulars.env,particulars.md,particulars.dal_array            @path="#{@env.processing_path.epub}"            @freq=Hash.new(0) @@ -289,12 +288,12 @@ WOK              end            end          end -        scr='<font size="1" color="#777777" face=times new roman><img border="0" height="15" width="15" src="../_sisu/image/b_doc.png" alt="Full Text"> scroll: </font><font size="1" color="#222222" face=times new roman>doc# </font> ' +        scr=%{<font size="1" color="#777777" face=times new roman><img border="0" height="15" width="15" src="../_sisu/image/b_doc.png" alt="Full Text">#{$ep[:hsp]}scroll:#{$ep[:hsp]}</font><font size="1" color="#222222" face=times new roman>doc##{$ep[:hsp]}</font> }          seg=''          @file_concordance << SiSU_EPUB_Concordance::Source::DocTitle.new(@particulars).create          alph=%W[A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]          @file_concordance << '<p>' -        alph.each {|x| @file_concordance << %{<a href="##{x}">#{x}</a>, }} +        alph.each {|x| @file_concordance << %{<a href="##{x}">#{x}</a>,#{$ep[:hsp]}}}          @file_concordance << '</p>'          letter=alph.shift          @file_concordance << %{\n<p class="letter"><a name="A">A</a></p>} diff --git a/lib/sisu/v3/epub_format.rb b/lib/sisu/v5/epub_format.rb index 228c2df4..75967653 100644 --- a/lib/sisu/v3/epub_format.rb +++ b/lib/sisu/v5/epub_format.rb @@ -50,7 +50,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/v3/epub_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/epub_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -65,33 +65,31 @@ module SiSU_EPUB_Format      def initialize(md,ocn)        @md,@ocn=md,ocn.to_s        @ocn ||='' -      vz=SiSU_Env::GetInit.instance.skin      end      def ocn_display        make=SiSU_Env::ProcessingSettings.new(@md)        if make.build.ocn?          ocn_class='ocn' -        if @ocn.to_i==0 -          @ocn.gsub(/^(\d+|)$/, -            %{<label class="#{ocn_class}"> </label>}) +        if @ocn==nil \ +        or @ocn.to_i==0 \ +        or @ocn.empty? +          %{<label class="ocn_off"></label>}          else            @ocn.gsub(/^(\d+|)$/,              %{<label class="#{ocn_class}"><a href="#o\\1" class="lnk#{ocn_class}">\\1</a></label>})          end        else -        ocn_class='ocn_off' -        @ocn.gsub(/^(\d+|)$/, -          %{<label class="#{ocn_class}"> </label>}) +        %{<label class="ocn_off"></label>}        end      end      def name -      %{<a name="#{@ocn}"></a>} +      (@ocn==nil || @ocn.empty?) ? '' : %{<a name="#{@ocn}"></a>}      end      def id #w3c? "tidy" complains about numbers as identifiers ! annoying -      %{id="o#{@ocn}"} +      (@ocn==nil || @ocn.empty?) ? '' : %{id="o#{@ocn}"}      end      def goto -      %{<a href="##{@ocn}">} +      (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn}">}      end    end    class CSS @@ -1221,25 +1219,36 @@ module SiSU_EPUB_Format        WOK      end    end +  module SanitizeXML +    def self.xml(x) +      if x.is_a?(String) +        x=x.gsub(/ /,' ') if Ep[:alt]==:on +        x.gsub(/&/,'&'). +          gsub(/</,"<").gsub(/>/,">"). +          gsub(/#{Dx[:url_o]}/,Dx[:url_o_xml]).gsub(/#{Dx[:url_c]}/,Dx[:url_o_xml]). +          #gsub(/</,'<').gsub(/>/,'>'). +          gsub(/\\\\/,'<br />'). +          gsub(/<br(?: \/)?>/,'<br />') +      else x +      end +    end +  end    class HeadInformation      include SiSU_Viz      attr_reader :md,:rdf,:vz      def initialize(md)        @md=md        # DublinCore 1 - title -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @css=SiSU_Env::CSS_Stylesheet.new(md)        @seg_name_xhtml=(SiSU_EPUB::Source::Seg.new.seg_name_xhtml || [])        @seg_name_xhtml_tracker=(SiSU_EPUB::Source::Seg.new.seg_name_xhtml_tracker || []) -      @index='index' -      @metalink='#metadata'        @tocband_scroll,@tocband_segtoc=nil,nil +      @index,@metalink='index','#metadata'      end      def doc_type_xhtml        <<-WOK  <?xml version='1.0' encoding='utf-8'?> -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" -   "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">  <html xmlns="http://www.w3.org/1999/xhtml">        WOK      end @@ -1291,31 +1300,31 @@ application/epub+zip  </container>        WOK      end -    def sections(dob,name) -      filename="#{name}#{Sfx[:epub_xhtml]}" -      dir_epub_cont="#{@md.env.processing_path.epub}/#{Ep[:d_oebps]}" -      segfilename="#{dir_epub_cont}/#{filename}" +    def sections(dob,fn_base) +      name=fn_base + Sfx[:epub_xhtml] +      dir_epub_cont=@md.env.processing_path.epub + '/' + Ep[:d_oebps] +      segfilename=dir_epub_cont + '/' + name        output_epub_cont_seg=File.new(segfilename,'w')        output_epub_cont_seg << %{#{doc_type} -<head> -  <title> -    #{dob.obj} - -    #{@md.html_title} -  </title> -<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> -#{@css.xhtml_epub} -</head> -#{@vz.color_body} -<div class="content"> -  <div class="substance"> -    <label class="ocn"><a href="#o#{dob.ocn}" class="lnkocn">#{dob.ocn}</a></label> -    <h1 class="norm" id="o#{dob.ocn}"> -      #{dob.obj} -    </h1> -  </div> -</div> -</body> -</html>} +  <head> +    <title> +      #{dob.obj} - +      #{@md.html_title} +    </title> +    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> +    #{@css.xhtml_epub} +  </head> +  #{@vz.color_body} +    <div class="content"> +      <div class="substance"> +        <label class="ocn"><a href="#o#{dob.ocn}" class="lnkocn">#{dob.ocn}</a></label> +        <h1 class="norm" id="o#{dob.ocn}"> +          #{dob.obj} +        </h1> +      </div> +    </div> +    </body> +  </html>}  output_epub_cont_seg.close      end      def toc_ncx #list of navigation points (like chapters), table of contents, listing each navigation point (chapters and such) under the navigation map @@ -1333,9 +1342,7 @@ output_epub_cont_seg.close        end        def open          <<-WOK -<?xml version="1.0"?> -<!DOCTYPE ncx PUBLIC "-//NISO//DTD ncx 2005-1//EN" -  "http://www.daisy.org/z3986/2005/ncx-2005-1.dtd"> +<?xml version='1.0' encoding='utf-8'?>  <ncx xmlns="http://www.daisy.org/z3986/2005/ncx/" version="2005-1">          WOK        end @@ -1351,10 +1358,12 @@ output_epub_cont_seg.close        end        def head          depth=@md.lvs[1] + @md.lvs[2] + @md.lvs[3] + @md.lvs[4] +        title=SanitizeXML.xml(@md.title.full) +        author=SanitizeXML.xml(@md.author)          <<-WOK      <!-- four required metadata items (for all NCX documents,        (including the relaxed constraints of OPS 2.0) --> -    <title>#{@md.title.full} by #{@md.author}</title> +    <title>#{title} by #{author}</title>      <link href="css/xhtml.css" rel="stylesheet" type="text/css" id="main-css" />      <meta name="dtb:uid" content="urn:uuid:#{@md.dgst[1]}" />      <!-- <meta name="epub-creator" content="#{@md.publisher}" /> --> @@ -1369,16 +1378,18 @@ output_epub_cont_seg.close          WOK        end        def doc_title +        txt=SanitizeXML.xml(@md.title.full)          <<-WOK    <docTitle> -    <text>#{@md.title.full}</text> +    <text>#{txt}</text>    </docTitle>          WOK        end        def doc_author +        txt=SanitizeXML.xml(@md.author)          <<-WOK    <docAuthor> -    <text>#{@md.author}</text> +    <text>#{txt}</text>    </docAuthor>          WOK        end @@ -1392,31 +1403,31 @@ output_epub_cont_seg.close          ? ''          : "-#{no}"          <<-WOK -    <navPoint id="navpoint#{id_u}" playOrder="#{no}"> -      <navLabel> -        <text>Table of Contents</text> -      </navLabel> -      <content src="index#{Sfx[:epub_xhtml]}" /> -    </navPoint> +      <navPoint id="navpoint#{id_u}" playOrder="#{no}"> +        <navLabel> +          <text>Table of Contents</text> +        </navLabel> +        <content src="index#{Sfx[:epub_xhtml]}" /> +      </navPoint>          WOK        end -      def navpoint(dob,no,name=nil) -        name=name ? name : dob.name -        cont_name=(name =~/#{Sfx[:epub_xhtml]}/) ? name : (name + Sfx[:epub_xhtml]) +      def navpoint(dob,no,fn_base,hashtag=nil) +         fn=fn_base + Sfx[:epub_xhtml] +         name=hashtag ? fn + hashtag : fn          id_u=DISABLE[:epub][:ncx_navpoint_unique_id] \          ? ''          : "-#{no}"          <<-WOK -    <navPoint id="navpoint#{id_u}" playOrder="#{no}"> -      <navLabel> -        <text>#{dob.obj}</text> -      </navLabel> -      <content src="#{cont_name}" /> +      <navPoint class="chapter" id="navpoint#{id_u}" playOrder="#{no}"> +        <navLabel> +          <text>#{dob.obj}</text> +        </navLabel> +        <content src="#{name}" />          WOK        end        def navpoint_close          <<-WOK -    </navPoint> +      </navPoint>          WOK        end        def navmap_close @@ -1442,7 +1453,7 @@ output_epub_cont_seg.close        def package_open          <<-WOK  <?xml version='1.0' encoding='utf-8'?> -<package xmlns="http://www.idpf.org/2007/opf" unique-identifier="EPB-UUID" version="2.0"> +<package xmlns="http://www.idpf.org/2007/opf" version="2.0" unique-identifier="EPB-UUID">          WOK        end        def package_close @@ -1451,6 +1462,12 @@ output_epub_cont_seg.close          WOK        end        def metadata #metadata dc +        cover_image=if defined? @md.make.cover_image \ +        and @md.make.cover_image.is_a?(Hash) \ +        and @md.make.cover_image[:cover] =~/\S+/ +          %{\n    <#{$ep[:o]}meta name="cover" content="cover_image" />} +        else '' +        end          author=if defined? @md.creator.author \          and @md.creator.author =~/\S+/            m='' @@ -1464,12 +1481,10 @@ output_epub_cont_seg.close              m=(m.empty?) \              ? (surname + other_names)              : (m + '; ' + surname + ', ' + other_names) -            m=m.gsub(/</,'<').gsub(/>/,'>'). -              gsub(/<br(?: \/)?>/,';') +            m=SanitizeXML.xml(m)            end            x=@md.creator.author.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:creator opf:file-as="#{m}" opf:role="aut">#{x}</dc:creator>}          else ''          end @@ -1486,12 +1501,10 @@ output_epub_cont_seg.close              m=(m.empty?) \              ? (surname + other_names)              : (m + '; ' + surname + ', ' + other_names) -            m=m.gsub(/</,'<').gsub(/>/,'>'). -              gsub(/<br(?: \/)?>/,';') +            m=SanitizeXML.xml(m)            end            x=@md.creator.editor.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:creator opf:file-as="#{m}" opf:role="edt">#{x}</dc:creator>}          else ''          end @@ -1508,12 +1521,10 @@ output_epub_cont_seg.close              m=(m.empty?) \              ? (surname + other_names)              : (m + '; ' + surname + ', ' + other_names) -            m=m.gsub(/</,'<').gsub(/>/,'>'). -              gsub(/<br(?: \/)?>/,';') +            m=SanitizeXML.xml(m)            end            x=@md.creator.translator.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:creator opf:file-as="#{m}" opf:role="trl">#{x}</dc:creator>}          else ''          end @@ -1530,28 +1541,24 @@ output_epub_cont_seg.close              m=(m.empty?) \              ? (surname + other_names)              : (m + '; ' + surname + ', ' + other_names) -            m=m.gsub(/</,'<').gsub(/>/,'>'). -              gsub(/<br(?: \/)?>/,';') +            m=SanitizeXML.xml(m)            end            x=@md.creator.illustrator.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:creator opf:file-as="#{m}" opf:role="ill">#{x}</dc:creator>}          else ''          end          date_published=if defined? @md.date.published \          and @md.date.published =~/\S+/            x=@md.date.published.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:date opf:event="published">#{x}</dc:date>}          else ''          end          subject=if defined? @md.classify.subject \          and @md.classify.subject =~/\S+/            x=@md.classify.subject.dup -          x=x.gsub(/</,'<').gsub(/>/,'>'). -            gsub(/<br(?: \/)?>/,'<br />') +          x=SanitizeXML.xml(x)            %{\n    <dc:subject>#{x}</dc:subject>}          else ''          end @@ -1563,21 +1570,25 @@ output_epub_cont_seg.close          end          rights=if defined? @md.rights.all \          and @md.rights.all =~/\S+/ -          rights=@md.rights.all.gsub(/<br>/,'<br />') +          rights=SanitizeXML.xml(@md.rights.all) +          rights=rights.gsub(/<br\s*\/?>/,' ')            %{\n    <dc:rights>#{rights}</dc:rights>}          else ''          end          f=SiSU_Env::FileOp.new(@md)          <<-WOK -  <metadata xmlns:dc="http://purl.org/dc/elements/1.1/" +  <#{$ep[:o]}metadata +    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:opf="http://www.idpf.org/2007/opf" +    xmlns:dcterms="http://purl.org/dc/terms/" +    xmlns:dc="http://purl.org/dc/elements/1.1/"      unique-identifier="urn:uuid:#{@md.dgst[1]}" version="2.0">      <dc:title>#{@md.title.full}</dc:title> -    #{author}#{editor}#{translator}#{illustrator}#{language}#{date_published}#{subject}#{rights} -    <dc:identifier opf:scheme="URI">#{f.output_path.epub.url}/#{f.base_filename.epub}</dc:identifier> +    #{cover_image}#{author}#{editor}#{translator}#{illustrator}#{language}#{date_published}#{subject}#{rights} +    <dc:identifier opf:scheme="URI">#{f.output_path.epub.url.gsub(/http:\/\//,'')}/#{f.base_filename.epub}</dc:identifier>      <dc:identifier id="bookid">urn:uuid:#{@md.dgst[1]}</dc:identifier>      <!-- <dc:identifier id="EPB-UUID">urn:uuid:#{@md.dgst[1]}</dc:identifier> --> -  </metadata> +  </#{$ep[:o]}metadata>          WOK        end        def manifest_open @@ -1592,14 +1603,24 @@ output_epub_cont_seg.close        end        def manifest_content_sisu_toc          <<-WOK -    <item id="index" href="index.xhtml" media-type="application/xhtml+xml" /> +    <item id="index#{Sfx[:epub_xhtml]}" href="index#{Sfx[:epub_xhtml]}" media-type="application/xhtml+xml" />          WOK        end -      def manifest_content(dob,name=nil) -        name=name ? name : dob.name -        href_name=(name =~/#{Sfx[:epub_xhtml]}/) ? name : (name + Sfx[:epub_xhtml]) +      def manifest_cover_image_information(md) +        cover_image=if defined? md.make.cover_image \ +        and @md.make.cover_image.is_a?(Hash) \ +        and md.make.cover_image[:cover] =~/\S+/ +          <<-WOK +    <item id="cover_image#{Sfx[:epub_xhtml]}" href="cover_image#{Sfx[:epub_xhtml]}" media-type="application/xhtml+xml" /> +          WOK +        else '' +        end +      end +      def manifest_content(dob,fn_base,hashtag=nil) +         fn=fn_base + Sfx[:epub_xhtml] +         name=hashtag ? fn + hashtag : fn          <<-WOK -    <item id="#{name}" href="#{href_name}" media-type="application/xhtml+xml" /> +    <item id="#{name}" href="#{name}" media-type="application/xhtml+xml" />          WOK        end        def manifest_images(imgs) @@ -1607,6 +1628,7 @@ output_epub_cont_seg.close          images=["    <!-- Images -->\n"]          imgs.each do |i|            image,type=/(\S+?)\.(png|jpg|gif)/.match(i)[1,2] +          type=type.sub(/jpg/,'jpeg')            images<<<<-WOK      <item id="#{image}" href="image/#{image}.#{type}" media-type="image/#{type}" />            WOK @@ -1625,13 +1647,19 @@ output_epub_cont_seg.close    <spine toc="ncx">          WOK        end +      def spine_cover_image +        <<-WOK +    <itemref idref="cover_image#{Sfx[:epub_xhtml]}" /> +        WOK +      end        def spine_sisu_toc          <<-WOK -    <itemref idref="index" linear="yes" /> +    <itemref idref="index#{Sfx[:epub_xhtml]}" linear="yes" />          WOK        end -      def spine(dob,name=nil) -        name=name ? name : dob.name +      def spine(dob,fn_base,hashtag=nil) +         fn=fn_base + Sfx[:epub_xhtml] +         name=hashtag ? fn + hashtag : fn          <<-WOK      <itemref idref="#{name}" linear="yes" />          WOK @@ -1647,12 +1675,19 @@ output_epub_cont_seg.close    <guide>          WOK        end +      def guide_cover_image +        <<-WOK +    <reference type="cover" title="Cover of #{SanitizeXML.xml(@md.title.full)}" href="cover_image#{Sfx[:epub_xhtml]}" /> +        WOK +      end        def guide_sisu_toc          <<-WOK -    <reference type="index" href="index#{Sfx[:epub_xhtml]}" /> +    <reference type="index#{Sfx[:epub_xhtml]}" href="index#{Sfx[:epub_xhtml]}" />          WOK        end -      def guide(dob,name=nil) +      def guide(dob,fn_base,hashtag=nil) +         fn=fn_base + Sfx[:epub_xhtml] +         name=hashtag ? fn + hashtag : fn          name=name ? name : dob.name          guide_name=(name =~/#{Sfx[:epub_xhtml]}/) ? name : (name + Sfx[:epub_xhtml])          <<-WOK @@ -1695,20 +1730,20 @@ output_epub_cont_seg.close      end      def head        %{#{doc_type} -<head> -<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> -#{@css.xhtml_epub} -</head> -#{@vz.color_body}} +  <head> +    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> +    #{@css.xhtml_epub} +  </head> +  #{@vz.color_body}}      end      def concordance        if @md.concord_make        %{#{@vz.margin_css} -  <h4 class="toc"> -    <a href="./#{@md.file.base_filename.html_concordance}"> -      <i>Concordance</i> -    </a> -  </h4> +      <h4 class="toc"> +        <a href="./#{@md.file.base_filename.html_concordance}"> +          <i>Concordance</i> +        </a> +      </h4>  #{@vz.table_close}}        else        %{#{@vz.margin_css} @@ -1724,9 +1759,8 @@ output_epub_cont_seg.close      end      def rights        def all -        rghts=@md.rights.all.gsub(/<br>/,'<br />') -        rghts=rghts.gsub(/^\s*Copyright\s+\(C\)/,'Copyright <sup>©</sup> ') -        %{<p class="small_left">Rights: #{rghts}</p>} +        rights=SanitizeXML.xml(@md.rights.all) +        %{<p class="small_left">Rights: #{rights}</p>}        end        self      end @@ -1776,15 +1810,15 @@ output_epub_cont_seg.close      end      def head        %{#{doc_type} -<head> -  <title> -    #{@seg_name_xhtml[@seg_name_xhtml_tracker]} - -    #{@md.html_title} -  </title> -<meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> -#{@css.xhtml_epub} -</head> -#{@vz.color_body}} +  <head> +    <title> +      #{@seg_name_xhtml[@seg_name_xhtml_tracker]} - +      #{@md.html_title} +    </title> +    <meta http-equiv='Content-Type' content='text/html; charset=utf-8' /> +    #{@css.xhtml_epub} +  </head> +  #{@vz.color_body}}      end      def endnote_mark  %{ @@ -1802,7 +1836,7 @@ output_epub_cont_seg.close    <a href="#owner.details">      Owner Details      <font size="1" color="#777777"> -          +      #{$ep[:hsp]*3}      </font>    </a>    </font> @@ -1810,7 +1844,7 @@ output_epub_cont_seg.close      end    end    class FormatTextObject -    @vz=SiSU_Env::GetInit.instance.skin +    @vz=SiSU_Viz::Defaults.new      attr_accessor :md,:t_o,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url      def initialize(md,t_o)        @md,@t_o=md,t_o @@ -1854,7 +1888,7 @@ output_epub_cont_seg.close          @txt=@txt.gsub(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'')        end        @p_num=ParagraphNumber.new(@md,@ocn) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def nametags_seg(dob) #FIX        tags='' @@ -1883,7 +1917,7 @@ output_epub_cont_seg.close      def no_paranum        %{  <div class="substance"> -  <label class="ocn"> </label> +  <label class="ocn">#{$ep[:hsp]}</label>    <p class="norm">      #{@txt}    </p> @@ -1938,7 +1972,7 @@ output_epub_cont_seg.close        para_form_css('p','norm',@txt)      end      def break -      @txt=@txt.gsub(/#{Mx[:br_page_new]}|#{Mx[:br_page]}/,'<hr /><br />'). +      @txt=@txt.gsub(/#{Mx[:br_page_new]}|#{Mx[:br_page]}|#{Mx[:br_page_line]}/,'<hr /><br />').          gsub(/#{Mx[:br_obj]}/,'<hr style="width:30%" /><br />')        para_form_css('p','norm',@txt)      end @@ -2028,7 +2062,7 @@ output_epub_cont_seg.close      #{@txt}    </p>  #{@vz.margin_num_css} -      +  #{$ep[:hsp]*3}  #{@vz.table_close}}      end      def bold_heading #unused @@ -2038,26 +2072,30 @@ output_epub_cont_seg.close      #{@txt}    </p>  #{@vz.margin_num_css} -      +  #{$ep[:hsp]*3}  #{@vz.table_close}}      end      def toc_head_copy_at +      @txt=SanitizeXML.xml(@txt)        %{<p class="center">#{@txt}</p>\n}      end      def center +      @txt=SanitizeXML.xml(@txt)        %{<p class="center">#{@txt}</p>\n}      end      def bold +      @txt=SanitizeXML.xml(@txt)        %{<p class="bold">#{@txt}</p>\n}      end      def center_bold +      @txt=SanitizeXML.xml(@txt)        %{<p class="centerbold">#{@txt}</p>\n}      end    end    class FormatScroll < FormatTextObject      def initialize(md,txt)        super(md,txt) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end    end    class FormatSeg < FormatTextObject @@ -2088,8 +2126,8 @@ output_epub_cont_seg.close          note=$1          note=note.gsub(/[\n\s]+/m,' ')          txt=txt.gsub(/(?:#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}|#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]})\s*/m,' '). -          gsub(/<a[\n\s]+"[\n\s]+href="#note_ref\d+"> <sup id="note\d+">\d+<\/sup> /m,''). -          gsub(/<a[\n\s]+"[\n\s]+href="#note_ref\d+">#{Mx[:nbsp]}<sup id="note\d+">\d+<\/sup>#{Mx[:nbsp]}/m,'') #remove +          gsub(/<a[\n\s]+"[\n\s]+href="#note_ref\d+">#{$ep[:hsp]}<sup id="note\d+">\d+<\/sup>#{$ep[:hsp]}/m,''). +          gsub(/<a[\n\s]+"[\n\s]+href="#note_ref\d+">#{$ep[:hsp]}<sup id="note\d+">\d+<\/sup>#{$ep[:hsp]}/m,'') #remove        end        %{<#{tag} class="#{attrib}">      <a href="#o#{@ocn}"><i>#{txt}</i></a> #{note} diff --git a/lib/sisu/v3/epub_segments.rb b/lib/sisu/v5/epub_segments.rb index 40989632..64bea759 100644 --- a/lib/sisu/v3/epub_segments.rb +++ b/lib/sisu/v5/epub_segments.rb @@ -50,7 +50,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/v3/epub_segments.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/epub_segments.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -132,7 +132,7 @@ WOK      attr_reader :seg_name_xhtml,:seg_name_xhtml_tracker      def initialize(md='',data='')        @md,@data=md,data -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @seg_name_xhtml=@@seg_name_xhtml || nil        @seg_name_xhtml_tracker=@@tracker || nil        @make=SiSU_Env::ProcessingSettings.new(@md) if @md @@ -309,7 +309,7 @@ WOK          txt_obj={ txt: @@heading1, ocn_display: @p_num.ocn_display }          format_seg=SiSU_EPUB_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>/,'') +        @@heading1=@@heading1.gsub(/#{$ep[:hsp]}<a name="-[\d*+]+" href="#_[\d*+]+">#{$ep[:hsp]}<sup>[\d*+]+<\/sup>#{$ep[:hsp]}<\/a>/,'')        end        if @@is2==1          heading2=@@heading2 @@ -320,7 +320,7 @@ WOK          txt_obj={ txt: heading2, ocn_display: @p_num.ocn_display }          format_seg=SiSU_EPUB_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>/,'') +        @@heading2=@@heading2.gsub(/#{$ep[:hsp]}<a name="-[\d*+]+" href="#_[\d*+]+">#{$ep[:hsp]}<sup>[\d*+]+<\/sup>#{$ep[:hsp]}<\/a>/,'')        end        if @@is3==1          heading3=@@heading3 @@ -331,7 +331,7 @@ WOK          txt_obj={ txt: heading3, ocn_display: @p_num.ocn_display }          format_seg=SiSU_EPUB_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>/,'') +        @@heading3=@@heading3.gsub(/#{$ep[:hsp]}<a name="-[\d*+]+" href="#_[\d*+]+">#{$ep[:hsp]}<sup>[\d*+]+<\/sup>#{$ep[:hsp]}<\/a>/,'')        end        if @@is4==1          heading4=@@heading4 diff --git a/lib/sisu/v3/epub_tune.rb b/lib/sisu/v5/epub_tune.rb index 664f143e..c0005365 100644 --- a/lib/sisu/v3/epub_tune.rb +++ b/lib/sisu/v5/epub_tune.rb @@ -50,7 +50,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/v3/epub_tune.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/epub_tune.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -107,17 +107,17 @@ module SiSU_EPUB_Tune        str=str.gsub(/#{Mx[:gl_o]}(#[0-9]{3})#{Mx[:gl_c]}/u,'&\1;').          gsub(/#{Mx[:gl_o]}#([a-z]{2,4})#{Mx[:gl_c]}/u,'&\1;').          gsub(/<br>/u,'<br />'). -        gsub(/#{Mx[:nbsp]}/u,' ') +        gsub(/#{Mx[:nbsp]}/u,$ep[:hsp])      end    end    class Tune      def initialize(data,md)        @data,@md=data,md -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @env=SiSU_Env::InfoEnv.new(@md.fns)        @sys=SiSU_Env::SystemCall.new        @env=SiSU_Env::InfoEnv.new(@md.fns) -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration      end      def songsheet        begin @@ -155,8 +155,9 @@ module SiSU_EPUB_Tune            gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'<del>\1</del>').            gsub(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/,'<tt>\1</tt>'). # tt, kbd            gsub(/#{Mx[:mk_o]}:name#(\S+?)#{Mx[:mk_c]}/,''). -          gsub(/#{Mx[:gl_bullet]}/m,'●  '). -          gsub(/#{Mx[:nbsp]}/,' '). +          gsub(/#{Mx[:gl_bullet]}/m,"●#{$ep[:hsp]*2}"). +          gsub(/#{Dx[:url_o]}/,Dx[:url_o_xml]).gsub(/#{Dx[:url_c]}/,Dx[:url_o_xml]). +          gsub(/#{Mx[:nbsp]}/,$ep[:hsp]).            gsub(/<(p|br)>/,'<\1 />')          dob.obj=SiSU_EPUB_Tune::CleanXHTML.new(dob.obj).clean          @tuned_file << dob @@ -257,9 +258,9 @@ module SiSU_EPUB_Tune                %{\n<center><a href="\\1" target="_top"><img src="#{@env.url.images_epub}/\\2" alt="\\3" /></a></center>\n})            end            dob.obj=dob.obj.gsub(/!pick/,%{<img border="0" height="15" width="15" src="#{@env.url.images_epub}/#{@vz.icon_choice}" alt="stellar" />}). -            gsub(/!new/,%{ <img border="0" height="15" width="15" src="#{@env.url.images_epub}/#{@vz.icon_new}" alt="new" />}). +            gsub(/!new/,%{#{$ep[:hsp]}<img border="0" height="15" width="15" src="#{@env.url.images_epub}/#{@vz.icon_new}" alt="new" />}).              gsub(/<:h(.{1,7}?)>/,'<a href="#h\1">\1</a>'). -            gsub(/<:to(\d{1,7}?)>/,'<a href="#to\1">to { \1 }</a> '). +            gsub(/<:to(\d{1,7}?)>/,%{<a href="#to\\1">to#{$ep[:hsp]}\{#{$ep[:hsp]}\\1#{$ep[:hsp]}\}</a> }).              gsub(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'<a href="\1" target="_top">\1</a>'). #http ftp matches escaped, no decoration              gsub(/#{Mx[:url_o]}([a-zA-Z0-9._-]+\@\S+?\.[a-zA-Z0-9._-]+)#{Mx[:url_c]}/,%{#{@brace_url.xml_open}<a href="mailto:\\1">\\1</a>#{@brace_url.xml_close}}).              gsub(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,%{#{@brace_url.xml_open}<a href="\\1" target="_top">\\1</a>#{@brace_url.xml_close}}) #http ftp matches with decoration diff --git a/lib/sisu/v3/errors.rb b/lib/sisu/v5/errors.rb index 505ba616..9721bf72 100644 --- a/lib/sisu/v3/errors.rb +++ b/lib/sisu/v5/errors.rb @@ -50,7 +50,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/v3/errors.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/errors.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/git.rb b/lib/sisu/v5/git.rb index 9ec2986a..eb5a9b99 100644 --- a/lib/sisu/v3/git.rb +++ b/lib/sisu/v5/git.rb @@ -50,7 +50,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/v3/git.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/git.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -94,7 +94,6 @@ module SiSU_Git          po:        git_path_fnb + '/' + Gt[:po] + '/' + lng,          pot:       git_path_fnb + '/' + Gt[:pot],          conf:      git_path_fnb + '/' + Gt[:sisupod] + '/' + Gt[:conf], -        skin:      git_path_fnb + '/' + Gt[:sisupod] + '/' + Gt[:skin],          image:     git_path_fnb + '/' + Gt[:sisupod] + '/' + Gt[:image],          audio:     git_path_fnb + '/' + Gt[:sisupod] + '/' + Gt[:audio],          video:     git_path_fnb + '/' + Gt[:sisupod] + '/' + Gt[:video], @@ -131,7 +130,6 @@ module SiSU_Git        FileUtils::mkdir_p(@git_path[:po]) unless FileTest.directory?(@git_path[:po])        FileUtils::mkdir_p(@git_path[:pot]) unless FileTest.directory?(@git_path[:pot])        FileUtils::mkdir_p(@git_path[:conf]) unless FileTest.directory?(@git_path[:conf]) -      FileUtils::mkdir_p(@git_path[:skin]) unless FileTest.directory?(@git_path[:skin])        FileUtils::mkdir_p(@git_path[:image]) unless FileTest.directory?(@git_path[:image])        #FileUtils::mkdir_p(@git_path[:audio]) unless FileTest.directory?(@git_path[:audio])        #FileUtils::mkdir_p(@git_path[:video]) unless FileTest.directory?(@git_path[:video]) @@ -201,56 +199,10 @@ module SiSU_Git          else "#{@env.path.pwd}/#{@opt.fns}"          end        end -      def locate_skin -        SiSU_Env::InfoSkin.new(@md).select -      end        def read_composite          #print __FILE__ + ':'          #p __LINE__        end -      def extract_skin -        #print __FILE__ + ':' -        #p __LINE__ -      end -      def extract_skin_and_images #(parse_file) -        parse_file_name=locate_parse_file -        parse_file=IO.readlines(parse_file_name,'') -        rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ -        #rgx_rb_image=/["'](\S+?\.(?:png|jpg|gif))["']/ -        #rgx_rb_image=/[^\/]?([a-z]\S+?\.(?:png|jpg|gif))/ -        rgx_rb_image=/([a-z][^ \/]+?\.(?:png|jpg|gif))/ -        rgx_skin=/^\s+:skin:\s+(\S+)/ -        skin_get=nil -        images=[] -        skin_get -        parse_file.each do |f|                                                  #% work area -          if f !~/^%+\s/ -            skin_get ||= f.scan(rgx_skin).uniq.flatten if f =~rgx_skin -            if f =~rgx_image -              images << f.scan(rgx_image).uniq -            end -          end -        end -        skin=skin_get[0] if skin_get -        skin=locate_skin -        parse_skin=IO.readlines(skin,"\n") -        parse_skin.each do |f|                                                  #% work area -          if f !~/^#/ \ -          and f =~rgx_rb_image -            images << f.scan(rgx_rb_image).uniq -          end -        end -        image_path="#{@env.path.pwd}/_sisu/image" -        images.flatten.each do |i| -          if FileTest.file?("#{image_path}/#{i}") -            FileUtils::cp_r("#{image_path}/#{i}",@git_path[:image]) -          end -        end -        if FileTest.file?(skin) -          FileUtils::cp_r(skin,"#{@git_path[:conf]}/skin") -        end -        { skin: skin, images: images } -      end        def sisuyaml_rc          sisurc=@env.path.sisurc_path          if FileTest.file?(sisurc) @@ -269,11 +221,9 @@ module SiSU_Git          if composite_src?            populate.copy_related_sst_ssi          end -        populate.extract_skin          #parse_file_name=locate_parse_file          #parse_file=IO.readlines(parse_file_name,'')          populate.sisuyaml_rc #(parse_file) -        populate.extract_skin_and_images #(parse_file)          #populate.extract_composite_source          #populate.read_composite # or read_each_composite          populate.identify_language_versions diff --git a/lib/sisu/v3/harvest.rb b/lib/sisu/v5/harvest.rb index b458b8df..ffcb6aa3 100644 --- a/lib/sisu/v3/harvest.rb +++ b/lib/sisu/v5/harvest.rb @@ -52,7 +52,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/v3/harvest.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/harvest.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/harvest_authors.rb b/lib/sisu/v5/harvest_authors.rb index 0c5d82e9..89a64fee 100644 --- a/lib/sisu/v3/harvest_authors.rb +++ b/lib/sisu/v5/harvest_authors.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/v3/harvest_authors.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/harvest_authors.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -69,7 +69,6 @@ module SiSU_HarvestAuthors        @file_list=opt.files      end      def songsheet -      puts 'authors:'        idx_array={}        @opt.f_pths.each do |y|          lang_hash_file_array={} @@ -176,11 +175,11 @@ module SiSU_HarvestAuthors      def initialize(opt,the_idx)        @opt,@the_idx=opt,the_idx        @env=SiSU_Env::InfoEnv.new -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc        @alphabet_list=%W[9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]        @alph=@alphabet_list.dup        @letter=@alph.shift -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def html_file_open        @the_idx.keys.each do |lng| @@ -198,7 +197,8 @@ module SiSU_HarvestAuthors            file="#{harvest_pth}/authors.#{lng}.html"          end          FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) -        puts "file://#{file}" +        fileinfo=(@opt.cmd =~/[vVM]/) ? ("file://#{file}") : '' +        SiSU_Screen::Ansi.new(@opt.cmd,"harvest authors (#{@opt.files.length} files)",fileinfo).dark_grey_title_hi unless @opt.cmd =~/q/          @output[lng][:html]=File.new(file,'w')        end      end @@ -231,7 +231,7 @@ module SiSU_HarvestAuthors            topics="topics.#{lng}.html"          elsif @env.output_dir_structure.by? == :filename            css_path=(type !~/maintenance/) \ -          ? '../_sisu/css/harvest.css' +          ? './_sisu/css/harvest.css'            : 'harvest.css'            topics="topics.#{lng}.html"          end @@ -244,11 +244,27 @@ module SiSU_HarvestAuthors            elsif @env.output_dir_structure.by? == :filetype              harvest_pth='.'              file="#{harvest_pth}/authors.#{lng}.html" +          elsif @env.output_dir_structure.by? == :filename +            harvest_pth='.' +            file="#{harvest_pth}/authors.#{lng}.html"            end            l=ln[lng][:t]            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)' +        elsif @env.output_dir_structure.by? == :filetype +          home_pth='..' +          output_structure_by='(output organised by filetype)' +        elsif @env.output_dir_structure.by? == :filename +          home_pth='.' +          output_structure_by='(output organised by filename)' +        else +          home_pth='.' +          output_structure_by='(output organised by ?)' +        end          <<WOK  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -267,8 +283,8 @@ module SiSU_HarvestAuthors  <a name="top" id="top"></a>  <a name="up" id="up"></a>  <a name="start" id="start"></a> -<h1>SiSU Metadata Harvest - Authors</h1> -<p>[<a href="../index.html"> HOME </a>] also see <a href="#{topics}">SiSU Metadata Harvest - Topics</a></p> +<h1>SiSU Metadata Harvest - Authors #{output_structure_by}</h1> +<p>[<a href="#{home_pth}/index.html"> HOME </a>] also see <a href="#{topics}">SiSU Metadata Harvest - Topics</a></p>  <p>#{@env.widget_static.search_form}</p>  <hr />  <p class="tiny">#{harvest_languages}</p> @@ -357,7 +373,7 @@ WOK                  manifest_name=x[:file]                  x[:file] + '.' + lng +  '.html'                elsif @env.output_dir_structure.by? == :filename -                "../#{x[:file]}/#{x[:page]}" +                "./#{x[:file]}/#{x[:page]}"                else '' #error                end                work=[ "#{x[:date]} #{x[:title]}", %{<p class="publication">#{x[:date]} <a href="#{manifest_at}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>} ] diff --git a/lib/sisu/v3/harvest_topics.rb b/lib/sisu/v5/harvest_topics.rb index 59ba4c06..7375e191 100644 --- a/lib/sisu/v3/harvest_topics.rb +++ b/lib/sisu/v5/harvest_topics.rb @@ -52,7 +52,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/v3/harvest_topics.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/harvest_topics.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -71,7 +71,6 @@ module SiSU_HarvestTopics        @file_list=opt.files      end      def songsheet -      puts 'topics:'        idx_array={}        @opt.f_pths.each do |y|          lang_hash_file_array={} @@ -451,11 +450,11 @@ module SiSU_HarvestTopics      def initialize(opt,the_idx)        @opt,@the_idx=opt,the_idx        @env=SiSU_Env::InfoEnv.new -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc        @alphabet_list=%W[9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z]        @alph=@alphabet_list.dup        @letter=@alph.shift -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def html_file_open        @the_idx.keys.each do |lng| @@ -473,7 +472,8 @@ module SiSU_HarvestTopics            file="#{harvest_pth}/topics.#{lng}.html"          end          FileUtils::mkdir_p(harvest_pth) unless FileTest.directory?(harvest_pth) -        puts "file://#{file}" +        fileinfo=(@opt.cmd =~/[vVM]/) ? ("file://#{file}") : '' +        SiSU_Screen::Ansi.new(@opt.cmd,"harvest topics(#{@opt.files.length} files)",fileinfo).dark_grey_title_hi unless @opt.cmd =~/q/          @output[lng][:html]=File.new(file,'w')          if @opt.cmd.inspect =~/[M]/            @output[lng][:html_mnt]=File.new("#{@env.path.pwd}/topics.html",'w') @@ -610,6 +610,19 @@ module SiSU_HarvestTopics            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)' +        elsif @env.output_dir_structure.by? == :filetype +          home_pth='..' +          output_structure_by='(output organised by filetype)' +        elsif @env.output_dir_structure.by? == :filename +          home_pth='.' +          output_structure_by='(output organised by filename)' +        else +          home_pth='.' +          output_structure_by='(output organised by ?)' +        end          <<WOK  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -628,8 +641,8 @@ module SiSU_HarvestTopics  <a name="top" id="top"></a>  <a name="up" id="up"></a>  <a name="start" id="start"></a> -<h1>SiSU Metadata Harvest - Topics</h1> -<p>[<a href="../index.html"> HOME </a>] also see <a href="#{authors}">SiSU Metadata Harvest - Authors</a></p> +<h1>SiSU Metadata Harvest - Topics #{output_structure_by}</h1> +<p>[<a href="#{home_pth}/index.html"> HOME </a>] also see <a href="#{authors}">SiSU Metadata Harvest - Authors</a></p>  <p>#{@env.widget_static.search_form}</p>  <hr />  <p class="tiny">#{harvest_languages}</p> diff --git a/lib/sisu/v3/help.rb b/lib/sisu/v5/help.rb index f31e71d1..b73cd138 100644 --- a/lib/sisu/v3/help.rb +++ b/lib/sisu/v5/help.rb @@ -50,7 +50,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/v3/help.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/help.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -67,7 +67,8 @@ module SiSU_Help       require_relative 'i18n'                             # i18n.rb      def initialize(request='',color='')        @request,@color=request,color -      @cX=(color =~/color_off/) \ +      @cX=((color =~/color_off/) \ +      || (defined? color.act && color.act[:color_state][:set]==:off)) \        ? (SiSU_Screen::Ansi.new('k').cX)        : (SiSU_Screen::Ansi.new('yes').cX)        fns='help_example_dummy_file_name.sst' @@ -162,7 +163,7 @@ module SiSU_Help        end      end      def summary -      print <<WOK +      print <<-WOK      SiSU, Copyright (C) 1997 - 2013 Ralph Amissah      License GPL version 3 or Later. This program comes with ABSOLUTELY NO WARRANTY;      This is free software, and you are welcome to redistribute it under the conditions of the GPL3 or later. @@ -196,11 +197,10 @@ alternatively typing #{@cX.orange}sisu --help#{@cX.off} #{@cX.green}[keyword]#{@        #{@cX.green}license#{@cX.off}        sisu --help license  for help type 'sisu --help', 'sisu --help [help request]', 'man sisu', (or see the system or online documentation) -WOK -     # #{@cX.cyan}sisu_convert#{@cX.off}   program for initial (very basic and partial) conversion to sisu file format (html and word97 supported) +     WOK    end    def abstract -    print <<WOK +    print <<-WOK  Features:  #{@cX.cyan}(i)#{@cX.off} minimal markup requirement  #{@cX.cyan}(ii)#{@cX.off} single file marked up for multiple outputs @@ -228,27 +228,18 @@ SiSU was developed in relation to legal documents, and so is strong across a wid  There is more detailed information available on it from:    #{@cX.blue}http://www.jus.uio.no/sisu#{@cX.off}   *  plaintext - *  html + *  HTML + *  ODT (Open Document Format text) + *  EPUB   *  XML (structured) - *  LaTeX/pdf - *  texinfo - *  sql (at present postgresql & sqlite) - -A couple of sample inputs and outputs: - -The markup for "War and Peace" (chosen because it is a large text & to test the use of SiSU on Project Gutenberg's plaintext), this is the markup, very little after the headers (there is an insert of their legal notices). Took no time at all, it is a particularly simple text to markup though -A simple document                                                              and a more demanding document -         #{@cX.blue}http://www.jus.uio.no/sisu/sample/war.and.peace.leo.tolstoy.er20      http://www.jus.uio.no/sisu/sample/autonomy.markup1.er30#{@cX.off} -Some resulting outputs: -  html   #{@cX.blue}http://www.jus.uio.no/sisu/war.and.peace.leo.tolstoy/                 http://www.jus.uio.no/sisu/autonomy.markup1/#{@cX.off} -                                                                               #{@cX.blue}http://www.jus.uio.no/sisu/autonomy.markup1/doc#{@cX.off} -  pdf    #{@cX.blue}http://www.jus.uio.no/sisu/war.and.peace.leo.tolstoy/portrait         http://www.jus.uio.no/sisu/autonomy.markup1/portrait -         #{@cX.blue}http://www.jus.uio.no/sisu/war.and.peace.leo.tolstoy/landscape        http://www.jus.uio.no/sisu/autonomy.markup1/landscape#{@cX.off} -  plaintext  #{@cX.blue}http://www.jus.uio.no/sisu/war.and.peace.leo.tolstoy/doc.txt          http://www.jus.uio.no/sisu/autonomy.markup1/doc.txt#{@cX.off} -WOK + *  LaTeX + *  PDF (via LaTeX) + *  TeXinfo + *  SQL (at postgreSQL & SQLite) +      WOK      end      def commands -      print <<WOK +      print <<-WOK   #{@cX.ruby}-a#{@cX.off} #{@cX.green}[filename/wildcard]#{@cX.off} produces plaintext with Unix linefeeds. Without markup, (object numbers are omitted), has footnotes at end of each para‐ graph that contains them. Modifier options available: --footnotes (default) or --endnotes and for linefeeds --unix (default) or --msdos @@ -337,11 +328,11 @@ WOK   #{@cX.ruby}-D#{@cX.off} #{@cX.ruby}--recreate#{@cX.off} kills data" and drops (postgresql or sqlite) db, tables & indexes, then creates an empty db with tables and indexes [#{@cX.ruby}-d --recreate#{@cX.off} sqlite equivalent]    also see command #{@cX.green}shortcuts#{@cX.off}, and shorthand mappings for multiple flags -WOK +      WOK      end      def shortcuts        cf_defaults=SiSU_Env::InfoProcessingFlag.new -      print <<WOK +      print <<-WOK   #{@cX.ruby}Shorthand for multiple flags#{@cX.off} @@ -362,11 +353,10 @@ WOK    defaults may be changed in active sisurc.yml file under 'flag:'         add -v for verbose mode and -c (color toggle), e.g. -       sisu -2vc [filename  or  wildcard] -WOK +      WOK      end      def modifiers -      print <<WOK +      print <<-WOK   #{@cX.ruby}Command flag modifiers#{@cX.off} @@ -378,10 +368,10 @@ WOK    #{@cX.ruby}--no-dagger#{@cX.off} strips output text of editor endnotes~[+ square brackets ]~ denoted by dagger/plus sign -WOK +      WOK      end      def misc -      <<WOK +      <<-WOK    #{@cX.cyan}misc#{@cX.off}    #{@cX.green}-s#{@cX.off} [filename or wildcard]          #{@cX.green}spellcheck#{@cX.off} (aspell previously ispell    \t#{@cX.green}mailer examples#{@cX.off} @@ -393,15 +383,15 @@ WOK    #{@cX.blue}-R #{@cX.off} (yaml|rss)  extraction of semantic data into yaml file for auto build of xml feeds (rss, rdf) #{@cX.fuschia}[work area]#{@cX.off}    #{@cX.green}-R #{@cX.off} yaml  extraction of semantic data into yaml file for auto build of xml feeds (rss, rdf)    #{@cX.green}-R #{@cX.off} rss   creates rss2.0 feed -WOK +      WOK      end      def markup -      print <<WOK +      print <<-WOK  sisu    Note: files for SiSU should be in UTF-8 character encoding.    #{@cX.cyan}Data text markup#{@cX.off} (alternative to available html subset) -  #{@cX.green}% SiSU 2.00#{@cX.off}          [statement on first line of document, declared file-type identifier, SiSU markup document, markup used is version 0.38] +  #{@cX.green}% SiSU 4.00#{@cX.off}          [statement on first line of document, declared file-type identifier, SiSU markup document    #{@cX.green}A~#{@cX.off} heading/title    [levels A to C available (and beneath that 1 to 6)] @@ -518,16 +508,14 @@ sisu      general text markup: headings; endnotes; tables (which also includes a note on preformatted text)    configuration and customisation      document or site wide customisation: customise; skin -WOK +      WOK        help_markup -#  {../_sisu/image/tux.png http://www.jus.uio.no/sisu/ w=64 c=\"a better way\" }:image        depreciated image eg -#  <!image http://www.jus.uio.no/sisu/ ../_sisu/image/tux.png  width=\"64\" height=\"80\" !>   old form      end      def example        help_markup      end      def example_v1 -      print <<WOK +      print <<-WOK  % SiSU 1.0  @title: Working Sample Document @@ -567,11 +555,11 @@ _1 for a listing type: sisu ~ commands  _1 for an outline of sisu markup type: sisu ~ markup  The example ends here. -WOK +    WOK      help_markup    end      def example_v2 -      print <<WOK +      print <<-WOK  % SiSU 2.0  @title: Working Sample Document @@ -615,11 +603,11 @@ _1 for a listing type: sisu ~ commands  _1 for an outline of sisu markup type: sisu ~ markup  The example ends here. -WOK +    WOK      help_markup    end    def headers -    print <<WOK +    print <<-WOK  Header tags appear at the beginning of a document and provide meta information on the document (such as the Dublin Core), or information as to how the document as a whole is to be processed.  All header instructions take either the form #{@cX.green}@headername:#{@cX.off} followed on the next line by an indented sub-category header if any #{@cX.green}:sub-headername:#{@cX.off}.  #{@cX.green}@indentifier:#{@cX.off} information or instructions @@ -652,12 +640,10 @@ where the #{@cX.green}"identifier"#{@cX.off} is a tag recognised by the program,    #{@cX.cyan}:topic_register:#{@cX.off} [e.g.:] text markup language; application:text processing;output:html|xml|latex|pdf|sql    #{@cX.cyan}:subject:#{@cX.off} (whatever your subject)    #{@cX.cyan}:keywords:#{@cX.off} -  #{@cX.cyan}:coverage:#{@cX.off} -  #{@cX.cyan}:relation:#{@cX.off} -  #{@cX.cyan}:type:#{@cX.off} -  #{@cX.cyan}:identifier:#{@cX.off}    #{@cX.cyan}:loc:#{@cX.off} [Library of Congress classification]    #{@cX.cyan}:dewey:#{@cX.off} [Dewey classification] + +#{@cX.ruby}@identifier:#{@cX.off}    #{@cX.cyan}:isbn:#{@cX.off}    #{@cX.cyan}:oclc:#{@cX.off} @@ -665,7 +651,12 @@ where the #{@cX.green}"identifier"#{@cX.off} is a tag recognised by the program,    #{@cX.cyan}:description:#{@cX.off}    #{@cX.cyan}:abstract:#{@cX.off}    #{@cX.cyan}:comment:#{@cX.off} +  #{@cX.cyan}:coverage:#{@cX.off} +  #{@cX.cyan}:relation:#{@cX.off} +  #{@cX.cyan}:source:#{@cX.off}    #{@cX.cyan}:history:#{@cX.off} +  #{@cX.cyan}:type:#{@cX.off} +  #{@cX.cyan}:format:#{@cX.off}    #{@cX.cyan}:prefix:#{@cX.off}    #{@cX.cyan}:suffix:#{@cX.off} @@ -684,6 +675,9 @@ original language in which the work was published    #{@cX.cyan}:breaks:#{@cX.off} new=:B; break=1    #{@cX.cyan}:bold:#{@cX.off} [regular expression of words/phrases to be made bold]    #{@cX.cyan}:italics:#{@cX.off} [regular expression of words/phrases to italize] +  #{@cX.cyan}:home_button_image:#{@cX.off} {free_as_in_freedom.png }http://stallman.org/ +  #{@cX.cyan}:home_button_text:#{@cX.off} {Free Culture}http://www.free-culture.cc; {Lawrence Lessig}http://www.lessig.org +  #{@cX.cyan}:footer:#{@cX.off} {Free Culture}http://www.free-culture.cc; {Lawrence Lessig}http://www.lessig.org    #{@cX.cyan}:headings:#{@cX.off} PART; CHAPTER; Section; Article;       #{@cX.grey}% optional, document structure can be defined by words to match or regular expression (the regular expression is assumed to start at the beginning of a line of text i.e. ^) default markers A~ to C~ and 1~ to 6~ can be used within text instead, without this header tag, and may be used to supplement the instructions provided in this header tag if provided#{@cX.off}    #{@cX.cyan}:papersize:#{@cX.off} (A4|US_letter|book_B5|book_A5|US_legal) @@ -704,11 +698,11 @@ original language in which the work was published  #{@cX.blue}3~#{@cX.off} Third level heading preceding substantive text of document, that would normally be marked 1.1.1 or 1.1.2 or 1.2.1 or  2.1.1 etc. in a document -WOK +      WOK        help_markup      end      def customise -      print <<WOK +      print <<-WOK      There are a number of files that control the appearance of a site or a document i.e.      #{@cX.blue}(i)#{@cX.off} files that control #{@cX.green}site-wide appearance#{@cX.off}: @@ -739,21 +733,21 @@ WOK            if you have a body of documents the easiest way to give them a particular appearance/skin, is to associate that directory with a skin, all files in that directory take on the specified appearance, changing appearance of documents once directories are set up is as simple as copying the files from one directory to another (or renaming the directory); or associating the directory with a different skin.      see also directories -WOK +      WOK      end      def configure -      print <<WOK +      print <<-WOK        see the following topics          install          setup          and note for initial configuration it is necessary to run:            sisu -C            (this places the default CSS files and DTDs in place) -WOK +      WOK      end      def path        help_env -      puts <<WOK +      puts <<-WOK  If you have problems check permissions (and if in home directory ownership). @@ -795,12 +789,12 @@ If you have problems check permissions (and if in home directory ownership).     See also        sisu --help directory -WOK +      WOK        help_env      end      def directories        help_env -      print <<WOK +      print <<-WOK    the directory structure used by sisu is controlled by the configuration files #{@cX.blue}sisurc.yml#{@cX.off} @@ -886,7 +880,7 @@ WOK   See also      sisu --help path -WOK +      WOK        help_env      end      def program_found?(program) @@ -911,7 +905,12 @@ WOK        version=SiSU_Env::InfoVersion.instance.get_version        rb_ver=SiSU_Env::InfoVersion.instance.rbversion        if version[:version] -        SiSU_Screen::Ansi.new('-v',version[:project],version[:version],version[:date_stamp],version[:date],rb_ver).version +        opt_cmd=if defined? @color.cmd \ +        and @color.cmd =~/[ck]/ +          @color.cmd +        else '-v' +        end +        SiSU_Screen::Ansi.new(opt_cmd,version[:project],version[:version],version[:date_stamp],version[:date],rb_ver).version        else puts 'SiSU version information not available'        end      end @@ -959,7 +958,7 @@ WOK      def environment        cf_defaults=SiSU_Env::InfoProcessingFlag.new        sisu_version -      x =<<WOK +      x =<<-WOK    #{@cX.green}current and output directories#{@cX.off}    user:                                          #{@cX.blue}#{@env.user}#{@cX.off}    home:                                          #{@cX.blue}#{@env.path.home}#{@cX.off} @@ -1021,11 +1020,11 @@ WOK                                                    (true/false defaults may be changed in active sisurc.yml file under permissions_set:)  NOTE: for HELP type 'sisu --help', 'sisu --help [help request]', 'man sisu', (or see the system or online documentation) -WOK -print x +      WOK +      print x      end      def dublin_core -    print <<WOK +    print <<-WOK  @title:  @subtitle: [is added to title for purposes of Dublin Core description] @@ -1060,10 +1059,10 @@ print x  @rights: -WOK +      WOK      end      def headings -      print <<WOK +      print <<-WOK  These are not required, a header is quicker to prepare if a documents structure can be defined by matching words or a regular expression, see headers).  @structure: PART; CHAPTER; SECTION; ARTICLE; none; none; @@ -1072,10 +1071,6 @@ structure can be defined by a match words or regular expression (the regular exp  The following heading or level (structuring) defaults are available (for use instead of or together with @structure: header): -  1~  2~  3~  4~  5~  6~ - -or, [0.38] -    A~  B~  C~  1~  2~  3~  Heading tags take either of the forms above, ranging from 1-6 @@ -1088,26 +1083,6 @@ segments (in html output) are by default created on level 4  assigned a file name automatically according to the title number,  unless you explicitly specify otherwise) -eg. - -% SiSU 0.16 - 0.37 - -1~ Document Title - -2~ Document Subtitle whatever it is - -3~ Part - -4~ Chapter - -5~ Heading - -6~ sub-heading - -in the 0.38 notation this maps to: - -% SiSU 0.38 -  A~ Document Title  B~ Document Subtitle whatever it is @@ -1120,8 +1095,6 @@ C~ Part  3~ sub-heading -(a conversion script provided in sisu-examples, modify.rb makes conversion between 0.37 and 0.38 markup simple) -  Normal text would follow each heading level as appropriate, though it is most usual to start with ordinary writing beneath level 4 as it is at this level that segments are created.  Automatic numbering of paragraphs is usually set to start at level 4 trough level 6 and takes the form 1. then 1.1 then 1.1.1 this being given as a Header tag 0~ There may be up to 6 levels in a document, @@ -1135,13 +1108,13 @@ the words can be used to identify the levels in a header tag:  0~toc Part; Chapter; Section; Article; none; none  instead of providing individual heading tags -sisu structure, (0.38) alternative notation, A,B,C,1,2,3 mapping to 1,2,3,4,5,6 +sisu structure, notation, A,B,C,1,2,3   SiSU has in effect two sets of levels to be considered - 1-3 headings/levels, (A-C [0.38]) pre-ordinary paragraphs /pre-substantive text, and + A-C pre-ordinary paragraphs /pre-substantive text, and - 4-6 headings/levels, (1-3 [0.38]) levels which are followed by ordinary text. + 1-3 levels which are followed by ordinary text.   This may be conceptualised as levels A,B,C, 1,2,3, and using such letter number notation, in effect: @@ -1153,7 +1126,7 @@ sisu structure, (0.38) alternative notation, A,B,C,1,2,3 mapping to 1,2,3,4,5,6  on the positive side: (a) the A,B,C,1,2,3 alternative makes explicit an aspect of structuring documents in SiSU that is not otherwise obvious to the newcomer (though it appears more complicated, is more in your face and likely to be understood fairly quickly); (b) the substantive text follows levels 1,2,3 and it is 'nice' to do most work in those levels -WOK +      WOK      end      def languages        lang=SiSU_i18n::Languages.new.language.table @@ -1164,7 +1137,7 @@ WOK            puts "#{lng[:c]}:  #{lng[:t]} (#{lng[:n]})"          end        end -      puts <<WOK +      puts <<-WOK   Multi-language Document File Naming and Directory Mapping @@ -1200,10 +1173,10 @@ WOK    Selecting this form of filename will overide other language settings including the language header within a document. -WOK +      WOK      end      def endnotes -      print <<WOK +      print <<-WOK  (1) Footnote/endnotes tags take a number of possible forms, the simplest being to embed an endnote within your text~{ this would appear as an endnote, and would have an automatically assigned number }~ Embedded endnotes~{this is an endnote}~ and at the end of the paragraph~{* an asterisk marked note }~ writing the endnote:~{another endnote}~ @@ -1216,10 +1189,10 @@ WOK  ^~ another endnote -WOK +      WOK      end      def tables -      print <<WOK +      print <<-WOK  #{@cX.green}table{ [number of columns] [column width %];[column width %]#{@cX.off} @@ -1276,17 +1249,17 @@ preformatted text  #{@cX.green}}code#{@cX.off} -WOK +      WOK      end      def modules -      print <<WOK +      print <<-WOK        #{@cX.ruby}IGNORE#{@cX.off} -WOK +      WOK      end      def install                                                        #% system configuration -      print <<WOK +      print <<-WOK    #{@cX.green}Install SiSU#{@cX.off}    Presumably if you are reading this interactively you have a copy of SiSU already installed, nevertheless here are a few notes. @@ -1343,10 +1316,10 @@ WOK      sisu --help -WOK +      WOK      end      def setup -      print <<WOK +      print <<-WOK       #{@cX.green}configuration files#{@cX.off}       sisurc.yml used: @@ -1367,10 +1340,10 @@ WOK          #{@cX.blue}man 8 sisu#{@cX.off}        and          #{@cX.blue}http://www.jus.uio.no/sisu/SiSU#{@cX.off} -WOK +      WOK      end      def termsheet -      print <<WOK +      print <<-WOK    #{@cX.green}sisu --termsheet [termsheetname].termsheet.rb#{@cX.off}      will produce the collection of documents associated with [termsheetname.termsheet.rb] @@ -1399,29 +1372,29 @@ WOK    it is necessary to purge the directory ~facilityData when old files are removed -WOK +      WOK      end      def help_commands -      print <<WOK +      print <<-WOK      also see:        sisu --help commands        man sisu -WOK +      WOK      end      def help_env -      print <<WOK +      print <<-WOK      for sisu environment information see:        sisu --help env -WOK +      WOK      end      def help_general        help_env        help_commands      end      def help_markup -      print <<WOK +      print <<-WOK      for help with sisu markup see:        sisu --help markup @@ -1433,8 +1406,6 @@ WOK        for brief descriptive summary of markup history          sisu --query-history -      or if for a particular version -        sisu --query-0.38        for markup:          sisu --help example @@ -1443,19 +1414,14 @@ WOK          #{@cX.green}/usr/share/doc/sisu/markup-samples#{@cX.off}        and online          #{@cX.green}www.jus.uio.no/sisu#{@cX.off} -WOK +        WOK        end      def convert -      print <<WOK +      print <<-WOK        for information on the markup version used within a sisu markup file:          sisu --inspect [filename] -      to convert between sst markup versions 0.37 and 0.38: -        sisu --to-current -        sisu --to-38  [filename/wildcard] -        sisu --to-37  [filename/wildcard] -        convert an sst file with footnotes following text to (preferred) inline footnotes          sisu --convert-footnotes  [filename/wildcard] @@ -1476,50 +1442,50 @@ WOK        to attempt to convert a kdissert (.kdi) file to sisu markup:          sisu --from-kdi  [kdissert filename]          (very basic and experimental) -WOK +      WOK      end      def dal -      print <<WOK +      print <<-WOK      sisu --dal [filename/wildcard]    creates the metaverse, used by all other modules for downstream processing      sisu -m [filename/wildcard]    creates the metaverse, used by all other modules for downstream processing -WOK +      WOK        help_commands      end      def utf8 -      print <<WOK +      print <<-WOK        documents prepared for sisu processing should be stored in utf8 -WOK +      WOK      end      def plaintext -      print <<WOK +      print <<-WOK      sisu --txt [filename/wildcard]    plaintext with Unix linefeeds (footnotes follow paragraphs)      sisu -t [filename/wildcard]    plaintext with Unix linefeeds (footnotes follow paragraphs) -WOK +      WOK        help_commands      end      def html -      print <<WOK +      print <<-WOK      sisu --html [filename/wildcard]    html document type suffixes included      sisu -h [filename/wildcard]    html document type suffixes included -WOK +      WOK        help_commands      end      def xhtml -      print <<WOK +      print <<-WOK      sisu --xhtml [filename/wildcard]    xhtml document      sisu -b [filename/wildcard]    xhtml document -WOK +      WOK        help_commands      end      def xml -      print <<WOK +      print <<-WOK      sisu --xml-sax [filename/wildcard]    xml document (sax type parsing)      sisu -x [filename/wildcard]    xml document (sax type parsing) @@ -1532,52 +1498,52 @@ WOK      sisu --epub [filename/wildcard]    odt document, (epub document)      sisu -e [filename/wildcard]    odt document, (epub document) -WOK +      WOK        help_commands      end      def odf -      print <<WOK +      print <<-WOK      sisu --odt [filename/wildcard]    odt document, (odf open document format)      sisu -o [filename/wildcard]    odt document, (odf open document format) -WOK +      WOK        help_commands      end      def epub -      print <<WOK +      print <<-WOK      sisu --epub [filename/wildcard]    epub document, (open format for e-books)      sisu -e [filename/wildcard]    epub document, (open format for e-books) -WOK +      WOK        help_commands      end      def php -      print <<WOK +      print <<-WOK      not supported      [php output has been removed] -WOK +      WOK        help_commands      end      def pdf -      print <<WOK +      print <<-WOK      sisu --pdf [filename/wildcard]     produces pdf files from LaTeX output      sisu -p [filename/wildcard]     produces pdf files from LaTeX output -WOK +      WOK        help_commands      end      def latex -      print <<WOK +      print <<-WOK      sisu --pdf [filename/wildcard]     produces pdf files from LaTeX output      sisu -p [filename/wildcard]     produces pdf files from LaTeX output -WOK +      WOK        help_commands      end      def texinfo -      print <<WOK +      print <<-WOK      sisu --texinfo [filename]     produces texinfo and info files      sisu -I [filename]     produces texinfo and info files @@ -1591,29 +1557,29 @@ WOK      and then to point at the file using        pinfo ./[filename] -WOK +      WOK        help_commands      end      def lout -      print <<WOK +      print <<-WOK      sisu -l [filename/wildcard]      not currently supported, revisit someday? -WOK +      WOK        help_commands      end      def concordance -      print <<WOK +      print <<-WOK      sisu --concordance        starts the sisu webrick server, default port 8081      sisu --wordmap        starts the sisu webrick server, default port 8081      sisu -W        starts the sisu webrick server, default port 8081 -WOK +      WOK        help_commands      end      def help_search -      print <<WOK +      print <<-WOK        SiSU searches,        depending on how you wish to implement search, @@ -1622,10 +1588,10 @@ WOK          sisu --help searchform    (or 'sisu --help cgi')          sisu --help hyperestraier (or 'sisu --help est')          sisu --help webrick -WOK +      WOK      end      def cgi -      print <<WOK +      print <<-WOK        sisu --sample-search-form                 generates a sample search form        sisu -F                generates a sample search form @@ -1635,12 +1601,12 @@ WOK        sisu -W                starts the webrick server        the generated search form must be copied to the webserver directory as instructed -WOK +      WOK        help_search        help_general      end      def sql -      print <<WOK +      print <<-WOK      Mappings to two databases are provided by default,      postgresql (--pg or -D) and sqlite (--sqlite or -d), @@ -1671,21 +1637,21 @@ WOK     By default, [unless otherwise specified] databases are built on a directory basis, from collections of documents within that directory.     The name of the directory you choose to work from is used as the database name,     i.e. if you are working in a directory called #{@cX.blue}#{@env.path.home}/ebook#{@cX.off} the database #{@cX.blue}#{Db[:name_prefix]}ebook#{@cX.off} is used. [otherwise a manual mapping for the collection is necessary] -WOK +      WOK        help_search        help_general      end      def webrick -      print <<WOK +      print <<-WOK      sisu --webrick  starts the sisu webrick server, default port 8081      sisu -W         starts the sisu webrick server, default port 8081 -WOK +      WOK        help_commands      end      def hyperestraier        out_dir='(' + `ls #{@env.path.webserv}`.split("\n").join('|') + ')' -      print <<WOK +      print <<-WOK    Not tested recently, not up-to-date    NOTE: The examples that follow assume that sisu output is placed in the directory @@ -1742,10 +1708,10 @@ WOK     and try open the url: #{@cX.blue}       #{@env.url.webserv_host_base}/cgi-bin/estseek.cgi #{@cX.off} -WOK +      WOK      end      def yaml -      print <<WOK +      print <<-WOK     Yaml sisurc files may be used to configure sisu, these are searched for in the following locations:     under the current SiSU markup data directory: #{@cX.blue}#{Dir.pwd}/_sisu/sisurc.yml#{@cX.off} @@ -1760,10 +1726,10 @@ WOK     these may be called by the sisurc.yml, skins for document, directory or site, or from individual document headers in the header @@promo: [a commented out example header may be found in  document  sample: free_as_in_freedom.richard_stallman_cru‐ sade_for_free_software.sam_williams.sst, it calls for the specified lists in list.yml, which in turn calls the widgets named in promo.yml which are used to build content in the right pane of html output] -WOK +      WOK      end      def sitemap -      print <<WOK +      print <<-WOK        SiSU sitemaps,        an experimental feature (following g,y,m announcement to use them this week) @@ -1773,11 +1739,11 @@ WOK        to generate/update the index of sitemaps          sisu --sitemaps -WOK +      WOK      end      def license -      print <<WOK +      print <<-WOK   * License: GPL 3 or later: @@ -1802,7 +1768,6 @@ WOK     available at these locations:       <#{@cX.blue}http://www.fsf.org/licenses/gpl.html#{@cX.off}>       <#{@cX.blue}http://www.gnu.org/licenses/gpl.html#{@cX.off}> -     <#{@cX.blue}http://www.jus.uio.no/sisu/gpl.fsf#{@cX.off}>   * SiSU uses:     * Standard SiSU markup syntax, @@ -1810,20 +1775,21 @@ WOK     * Standard SiSU object citation numbering and system   * Hompages: -   <#{@cX.blue}http://www.jus.uio.no/sisu#{@cX.off}>     <#{@cX.blue}http://www.sisudoc.org#{@cX.off}> +   <#{@cX.blue}http://www.jus.uio.no/sisu#{@cX.off}>   * Download: -   <#{@cX.blue}http://www.jus.uio.no/sisu/SiSU/download.html#{@cX.off}> +   <#{@cX.blue}http://sources.sisudoc.org#{@cX.off}> +   <#{@cX.blue}http://www.jus.uio.no/sisu/en/html/SiSU/download.html#{@cX.off}>     Ralph Amissah     <#{@cX.blue}ralph@amissah.com#{@cX.off}>     <#{@cX.blue}ralph.amissah@gmail.com#{@cX.off}> -WOK +      WOK      end      def standards -      print <<WOK +      print <<-WOK   * SiSU uses:     *  Standard SiSU markup syntax, @@ -1834,7 +1800,7 @@ Copyright (C) Ralph Amissah 1997, current 2013.  All Rights Reserved.  Information on these may be obtained from: -  http://www.jus.uio.no/sisu +  <#{@cX.blue}http://sisudoc.org#{@cX.off}>  More information to be provided later. @@ -1843,10 +1809,10 @@ More information to be provided later.  * Ralph Amissah ralph@amissah.com    Ralph Amissah ralph.amissah@gmail.com -WOK +      WOK      end      def conversion -      print <<WOK +      print <<-WOK  sisu_convert does the initial conversion from a couple of file formats to SiSU file format, currently only html and word97    #{@cX.cyan}sisu_convert#{@cX.off} [keyword]    sisu [keyword] @@ -1854,10 +1820,10 @@ sisu_convert does the initial conversion from a couple of file formats to SiSU f    ------------------------------------------    Preparing Documents for SiSU      #{@cX.green}--word97#{@cX.off}       sisu --help markup     (an incomplete overview) -WOK +      WOK      end      def external_programs -      puts <<WOK +      puts <<-WOK      external ruby programs @@ -1877,10 +1843,10 @@ WOK          #{@cX.brown}suggested/recommended#{@cX.off}            tidy  (xml, xhtml well formed check)            trang (relaxng, rnc to dtd conversion) -WOK +      WOK      end      def scratch -      print <<WOK +      print <<-WOK  Types of tag,  then there are various tags which occur within the document. @@ -1907,7 +1873,7 @@ This makes citation a lot easier... regardless of the form of output that is bei  It also permits the building of various addons, like the concordance feature which identifies each word and the paragraphs in which the word appears with links to the paragraph...  Urls are automatically turned to live links in the html and pdf files created... -WOK +      WOK      end    end  end diff --git a/lib/sisu/v3/html.rb b/lib/sisu/v5/html.rb index 340b81e9..d3122670 100644 --- a/lib/sisu/v3/html.rb +++ b/lib/sisu/v5/html.rb @@ -50,7 +50,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/v3/html.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -93,29 +93,37 @@ module SiSU_HTML          @fnb=@md.fnb          @env=@particulars.env          loc=@env.url.output_tell +        primary_output_file=(@opt.act[:html_seg][:set]==:on) \ +        ? (@md.file.output_path.html_seg.dir + '/' + @md.file.base_filename.html_segtoc) +        : (@md.file.output_path.html_scroll.dir + '/' + @md.file.base_filename.html_scroll)          unless @opt.cmd =~/q/            tool=(@opt.cmd =~/[MVvz]/) \ -          ? ("#{@env.program.web_browser} file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}") +          ? ("#{@env.program.web_browser} file://#{primary_output_file}")            : ("[#{@opt.f_pth[:lng_is]}] #{@opt.fno}")            @opt.cmd=~/[MVvz]/ \            ? SiSU_Screen::Ansi.new(@opt.cmd,'HTML',tool).green_hi_blue            : SiSU_Screen::Ansi.new(@opt.cmd,'HTML',tool).green_title_hi -          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}").flow if @opt.cmd =~/[MV]/ +          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{primary_output_file}").flow if @opt.cmd =~/[MV]/          end -        SiSU_Env::InfoSkin.new(@md).select          data=nil          tuned_file_array=SiSU_HTML::Source::HTML_Environment.new(@particulars).tuned_file_instructions          data=tuned_file_array -        scr_endnotes=SiSU_HTML::Source::Endnotes.new(data,@md).scroll +        if @opt.act[:html_scroll][:set]==:on +          scr_endnotes=SiSU_HTML::Source::Endnotes.new(data,@md).scroll +        end          toc=SiSU_HTML::Source::Toc.new(@md,data).songsheet          links_guide=SiSU_HTML::Source::LinksGuide.new(data,@md).toc          data=tuned_file_array          scr_toc=SiSU_HTML::Source::ScrollHeadAndSegToc.new(@md,toc,links_guide).in_common #watch -        SiSU_HTML::Source::Seg.new(@md,data).songsheet +        if @opt.act[:html_seg][:set]==:on +          SiSU_HTML::Source::Seg.new(@md,data).songsheet +        end          data=tuned_file_array -        scr=SiSU_HTML::Source::Scroll.new(@md,data,scr_endnotes).songsheet -        scroll=SiSU_HTML::Source::ScrollOutput.new(scr_toc,scr[:body],scr[:metadata],scr[:owner_details],scr[:tails],@md).publish -        SiSU_HTML::Source::Output.new(scroll,@md).scroll +        if @opt.act[:html_scroll][:set]==:on +          scr=SiSU_HTML::Source::Scroll.new(@md,data,scr_endnotes).songsheet +          scroll=SiSU_HTML::Source::ScrollOutput.new(scr_toc,scr[:body],scr[:metadata],scr[:owner_details],scr[:tails],@md).publish +          SiSU_HTML::Source::Output.new(scroll,@md).scroll +        end        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -142,7 +150,7 @@ module SiSU_HTML        def initialize(particulars)          @particulars=particulars          @md,@env=particulars.md,particulars.env -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @env,@css=particulars.env,SiSU_Style::CSS.new        end        def tuned_file_instructions @@ -224,7 +232,7 @@ module SiSU_HTML        @@firstseg=nil        def initialize(md=nil,data='')          @data,@md=data,md -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @tell=SiSU_Screen::Ansi.new(@md.opt.cmd) if @md        end        def songsheet #extracts toc for scroll & seg @@ -516,7 +524,7 @@ WOK      class ScrollHeadAndSegToc < Toc        def initialize(md='',toc='',links_guide_toc='')          @md,@toc,@links_guide_toc=md,toc,links_guide_toc -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @make=SiSU_Env::ProcessingSettings.new(@md)        end        def in_common @@ -594,7 +602,9 @@ WOK          ads=SiSU_HTML_Promo::Ad.new(@md)          @segtoc << format_head_toc.seg_navigation_tail << ads.div.close << ads.display << format_head_toc.html_close          @segtoc=@segtoc.flatten.compact #watch -        SiSU_HTML::Source::Output.new(@segtoc,@md).segtoc +        if @md.opt.act[:html_seg][:set]==:on +          SiSU_HTML::Source::Output.new(@segtoc,@md).segtoc +        end          @segtoc=[]          @toc[:scr],@toc[:seg]=[],[]          toc_shared @@ -623,54 +633,58 @@ WOK          @o_str ||=SiSU_Env::ProcessingSettings.new(md).output_dir_structure        end        def scroll -        begin -          @filename_html_scroll=@file.write_file.html_scroll -          @data.each do |para| -            para=para.strip. -              gsub(/<:.+?>/,''). -              gsub(Xx[:html_relative2],@file.path_rel_links.html_scroll_2). -              gsub(Xx[:html_relative1],@file.path_rel_links.html_scroll_1). -             #gsub(/#{Xx[:html_relative]}/,@file.path_rel_links.html_scroll). -              gsub(/#{Rx[:mx_fa_clean]}/,'') -            unless para =~/\A\s*\Z/ -              @filename_html_scroll.puts para,"\n" +        if @md.opt.act[:html_scroll][:set]==:on +          begin +            @filename_html_scroll=@file.write_file.html_scroll +            @data.each do |para| +              para=para.strip. +                gsub(/<:.+?>/,''). +                gsub(Xx[:html_relative2],@file.path_rel_links.html_scroll_2). +                gsub(Xx[:html_relative1],@file.path_rel_links.html_scroll_1). +               #gsub(/#{Xx[:html_relative]}/,@file.path_rel_links.html_scroll). +                gsub(/#{Rx[:mx_fa_clean]}/,'') +              unless para =~/\A\s*\Z/ +                @filename_html_scroll.puts para,"\n" +              end              end +          rescue +            SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +              __LINE__.to_s + ':' + __FILE__ +            end +          ensure +            @filename_html_scroll.close            end -        rescue -          SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do -            __LINE__.to_s + ':' + __FILE__ -          end -        ensure -          @filename_html_scroll.close          end        end        def segtoc -        begin -          @filename_html_segtoc=@file.write_file.html_segtoc -          @data.each do |para| -            para=para.strip. -              gsub(/<!.+?!>/,''). -              gsub(Xx[:html_relative2],@file.path_rel_links.html_seg_2). -              gsub(Xx[:html_relative1],@file.path_rel_links.html_seg_1) -            unless para =~/\A\s*\Z/ -              @filename_html_segtoc.puts para,"\n" +        if @md.opt.act[:html_seg][:set]==:on +          begin +            @filename_html_segtoc=@file.write_file.html_segtoc +            @data.each do |para| +              para=para.strip. +                gsub(/<!.+?!>/,''). +                gsub(Xx[:html_relative2],@file.path_rel_links.html_seg_2). +                gsub(Xx[:html_relative1],@file.path_rel_links.html_seg_1) +              unless para =~/\A\s*\Z/ +                @filename_html_segtoc.puts para,"\n" +              end              end +          rescue +            SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do +              __LINE__.to_s + ':' + __FILE__ +            end +          ensure +            @filename_html_segtoc.close +            pwd_set=Dir.pwd +            idx_lnk=(@o_str.dump_or_redirect?) \ +            ? @file.base_filename.manifest +            : @file.base_filename.html_segtoc +            mlnk=@file.base_filename.html_seg_index +            Dir.chdir(@file.output_path.html_seg.dir) +            FileUtils::rm_f(mlnk) +            FileUtils::ln_s(idx_lnk,mlnk) +            Dir.chdir(pwd_set)            end -        rescue -          SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.fns).error do -            __LINE__.to_s + ':' + __FILE__ -          end -        ensure -          @filename_html_segtoc.close -          pwd_set=Dir.pwd -          idx_lnk=(@o_str.dump_or_redirect?) \ -          ? @file.base_filename.manifest -          : @file.base_filename.html_segtoc -          mlnk=@file.base_filename.html_seg_index -          Dir.chdir(@file.output_path.html_seg.dir) -          FileUtils::rm_f(mlnk) -          FileUtils::ln_s(idx_lnk,mlnk) -          Dir.chdir(pwd_set)          end        end      end diff --git a/lib/sisu/v3/html_format.rb b/lib/sisu/v5/html_format.rb index da67a296..3c8bc465 100644 --- a/lib/sisu/v3/html_format.rb +++ b/lib/sisu/v5/html_format.rb @@ -50,7 +50,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/v3/html_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -67,30 +67,28 @@ module SiSU_HTML_Format        @ocn ||=''      end      def ocn_display -      @make=SiSU_Env::ProcessingSettings.new(@md) -      if @make.build.ocn? +      make=SiSU_Env::ProcessingSettings.new(@md) +      if make.build.ocn?          ocn_class='ocn' -        if @ocn.to_i==0 -          @ocn.gsub(/^(\d+|)$/, -            %{<label class="#{ocn_class}"><a name="#{@ocn}"> </a></label>}) +        if @ocn.to_i==0 \ +        or @ocn.empty? +          %{<label class="ocn_off"> </label>}          else            @ocn.gsub(/^(\d+|)$/,              %{<label class="#{ocn_class}"><a name="#{@ocn}" href="##{@ocn}" class="lnk#{ocn_class}">\\1</a></label>})          end        else -        ocn_class='ocn_off' -        @ocn.gsub(/^(\d+|)$/, -          %{<label class="#{ocn_class}"> </label>}) +        %{<label class="ocn_off"> </label>}        end      end      def name -      %{<a name="#{@ocn}"></a>} +      (@ocn==nil || @ocn.empty?) ? '' : %{<a name="#{@ocn}"></a>}      end      def id #w3c? "tidy" complains about numbers as identifiers ! annoying -      %{id="o#{@ocn}"} +      (@ocn==nil || @ocn.empty?) ? '' : %{id="o#{@ocn}"}      end      def goto -      %{<a href="##{@ocn}">} +      (@ocn==nil || @ocn.empty?) ? '' : %{<a href="##{@ocn}">}      end    end    class HeadInformation @@ -101,15 +99,14 @@ module SiSU_HTML_Format      def initialize(md)        @md=md        # DublinCore 1 - title -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @seg_name_html=(SiSU_HTML::Source::Seg.new.seg_name_html || [])        @seg_name_html_tracker=(SiSU_HTML::Source::Seg.new.seg_name_html_tracker || []) -      @metalink='#metadata'        @tocband_scroll,@tocband_segtoc=nil,nil        @stylesheet=SiSU_Style::CSS_HeadInfo.new(md).stylesheet        @o_str ||=SiSU_Env::ProcessingSettings.new(md).output_dir_structure -      @index='index' -      @toc="#{@md.file.output_path.html_seg.dir}/#{@md.file.base_filename.html_segtoc}" +      @index,@metalink='index','#metadata' +      @toc=@md.file.base_filename.html_segtoc      end      def url_path_image_sys        (@o_str.dump_or_redirect?) \ @@ -158,14 +155,13 @@ module SiSU_HTML_Format        end        self      end -    def doc_types #used in toc & seg_nav_band -      scroll=seg='' +    def doc_types(page=:seg) #used in toc & seg_nav_band        wgt=SiSU_HTML_Format::Widget.new(@md)        %{  <table summary="segment navigation available documents types: toc,doc,pdf,concordance" border="0" cellpadding="3" cellspacing="0">  <tr>  <td align="center" bgcolor=#{@vz.color_band2}> -  #{wgt.manifest} +  #{wgt.manifest(page)}    #{wgt.search}  </tr></table>}      end @@ -181,16 +177,25 @@ module SiSU_HTML_Format        %{  </font>  #{@vz.table_close}}      end -    def buttons_home -      %{<!- home and index buttons -!> -  #{@vz.banner_home_and_index_buttons} -<!- home and index buttons -!>} -    end -    def copyat -      %{#{@vz.paragraph_font_tiny}copy @ -  <a href="#{@vz.url_home}"> -    #{@vz.txt_home} -  </a></h1>} +    def button_home(page=:seg) +      button=%{ <table summary="home button / home information" border="0" cellpadding="3" cellspacing="0">\n <tr><td align="left" bgcolor="#ffffff">\n} +      if @md.make.home_button_image.is_a?(Hash) +        image_path=if page==:manifest +          @md.file.output_path.manifest.rel_image +        elsif  page==:scroll +          @md.file.output_path.html_scroll.rel_image +        else +          @md.file.output_path.html_seg.rel_image +        end +        dir=SiSU_Env::FileOp.new(@md) +        button +=%{   <p class="tiny_left"><a href="#{@md.make.home_button_image[:link]}" target="_top"><img border="0" src="#{image_path}/#{@md.make.home_button_image[:home_button]}"  width="#{@md.make.home_button_image[:w]}" height="#{@md.make.home_button_image[:h]}" alt="home icon -->" /></a></p>\n} +      elsif @md.home_button_links.is_a?(Array) +        @md.home_button_links.each do |links| +          button +=%{  <p class="tiny_left"><a href="#{links[:url]}/" target="_top">\n    #{links[:say]}\n  </a></p>\n} +        end +      end +      button +=%{ </td></tr>\n </table>} +      button      end      def html_close #moved      %{</body> @@ -239,7 +244,7 @@ module SiSU_HTML_Format        else ''        end      end -    def manifest +    def manifest(page=:seg)        if @make.build.links_to_manifest? \        and not @o_str.dump_or_redirect?          manifest_lnk=if @file.output_dir_structure.by_language_code? \ @@ -247,11 +252,21 @@ module SiSU_HTML_Format            "#{Xx[:html_relative1]}manifest/#{@file.base_filename.manifest}"          else @file.base_filename.manifest          end -        %{<td align="center" bgcolor=#{@vz.color_band2}> +        if page==:manifest +          manifest_lnk="#{@md.file.output_path.manifest.url}/#{@file.base_filename.manifest}" +          brace_url=SiSU_Viz::Defaults.new.url_decoration +          %{<td align="center" bgcolor=#{@vz.color_band2}> +  <font face="#{@vz.font_fonts}" size="2"> +  #{brace_url.xml_open}<a href="#{manifest_lnk}" target="_top">#{@md.file.output_path.manifest.url}/#{@file.base_filename.manifest}</a>#{brace_url.xml_close} +  </font> +</td>} +        else +          %{<td align="center" bgcolor=#{@vz.color_band2}>    <a href="#{manifest_lnk}" target="_top">      #{@vz.nav_txt_manifest}    </a>  </td>} +        end        else ''        end      end @@ -282,6 +297,7 @@ module SiSU_HTML_Format        @md=md        @o_str ||=SiSU_Env::ProcessingSettings.new(md).output_dir_structure        @make=SiSU_Env::ProcessingSettings.new(@md) +      @file=SiSU_Env::FileOp.new(@md)      end      def scroll_head_navigation_band        if @make.build.html_top_band? @@ -292,8 +308,11 @@ module SiSU_HTML_Format  WOK          %{<table summary="table of contents scroll navigation band" id="toc" width="100%" bgcolor=#{@vz.color_band1}>  <tr><td width="20%"> -  #{@vz.banner_band} -</td>#{search_and_manifest} +  #{button_home(:scroll)} +</td> +<td width="75%" align="center"> +  #{doc_types} +</td>  <td width="20%">       #{@vz.table_close} @@ -301,13 +320,16 @@ WOK        else ''        end      end -    def concordance_navigation_band(type='') +    def concordance_navigation_band        if @make.build.html_top_band?          %{<table summary="concordance navigation band" id="toc" width="100%" bgcolor=#{@vz.color_band1}>  <tr><td width="20%"> - #{@vz.banner_band} +  #{button_home} +</td> +<td width="75%" align="center"> +  #{doc_types}  </td> -<td width="20%" align="right"> +<td width="5%" align="right">     <a href="toc.html" target="_top" alt="->">        #{png_nav.toc}      </a>  @@ -316,16 +338,24 @@ WOK        else ''        end      end -    def seg_head_navigation_band(type='') -      firstseg=%{<a href="#{@md.firstseg}#{@md.lang_code_insert}#{Sfx[:html]}" target="_top" alt="->"> -      #{png_nav.nxt} -    </a>} if @md.firstseg =~/\S+/ +    def seg_head_navigation_band(page=:seg) +      if page==:manifest +        nxt=(@file.output_dir_structure.by_language_code? \ +        || @file.output_dir_structure.by_filetype?) \ +        ? "../html/#{@md.fnb}/toc#{@md.lang_code_insert}#{Sfx[:html]}" +        : "toc#{@md.lang_code_insert}#{Sfx[:html]}" +        firstseg=%{<a href="#{nxt}" target="_top" alt="->"> +        #{png_nav.nxt}</a>} +      elsif @md.firstseg =~/\S+/ +        firstseg=%{<a href="#{@md.firstseg}#{@md.lang_code_insert}#{Sfx[:html]}" target="_top" alt="->"> +      #{png_nav.nxt}</a>} +      end        %{<table summary="table of contents segment navigation band" id="toc" width="100%" bgcolor=#{@vz.color_band1}>  <tr><td width="20%"> - #{@vz.banner_band} +#{button_home(page)}  </td>  <td width="75%" align="center"> -  #{doc_types} +  #{doc_types(page)}  </td>  <td width="5%" align="right">     #{firstseg}  @@ -494,15 +524,13 @@ WOK        %{<p class="small_left">Prefix: #{@md.prefix_b}<p />}      end      def scroll_head_title_banner_open -      %{<center> -#{@md.icon} -</center> +      icon=@md.icon ? %{<center>\n#{@md.icon}\n</center>} : '' +      %{#{icon}  #{@vz.banner_instrument_cover_band_scr}}      end      def seg_head_title_banner_open -      %{<center> -  #{@md.icon} -</center> +      icon=@md.icon ? %{<center>\n#{@md.icon}\n</center>} : '' +      %{#{icon}  #{@vz.banner_instrument_cover_band_seg}}      end      def make_scroll @@ -596,8 +624,6 @@ WOK  <a name="stop" id="stop"></a>  <a name="credits"></a>  </div> -</div> -</div>  }      end      def seg_navigation_tail #this is a bug area, look up and "tidy" @@ -766,7 +792,7 @@ WOK      def navigation_band(segtocband,seg_table_top_control) #change name to navigation_band_banner        %{<table summary="segment navigation band with banner" bgcolor=#{@vz.color_band1} width="100%"><tr>  <td width="20%" align="left"> -#{@vz.banner_band} +#{button_home}  </td>  <td width="75%" align="center">    #{doc_types} @@ -865,7 +891,7 @@ WOK      end    end    class FormatTextObject -    @vz=SiSU_Env::GetInit.instance.skin +    @vz=SiSU_Viz::Defaults.new      attr_accessor :md,:t_o,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url      def initialize(md,t_o)        @md,@t_o=md,t_o @@ -897,7 +923,7 @@ WOK          @txt=@txt.gsub(/#{Mx[:mk_o]}[-~]##{Mx[:mk_c]}/,'')        end        @p_num=ParagraphNumber.new(@md,@ocn) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @make=SiSU_Env::ProcessingSettings.new(@md)      end      def nametags_scroll(dob) @@ -1006,7 +1032,7 @@ WOK      end      def heading_normal(tag,attrib)        section_break=(tag=~/h[1-4]/) \ -      ? '<p><hr width=90% /></p>' +      ? '<br /><hr width=90% /><br />'        : ''        %{#{section_break}  <div class="substance"> @@ -1145,7 +1171,7 @@ WOK    class FormatScroll < FormatTextObject      def initialize(md,txt)        super(md,txt) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end    end    class FormatSeg < FormatTextObject @@ -1211,7 +1237,6 @@ WOK      def clean(txt)        txt=txt.gsub(/#{Mx[:en_a_o]}.+?#{Mx[:en_a_c]}/,'').          gsub(/#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/,'') -      txt      end      def subtoc_lev(tag,attrib)        @txt=clean(@txt) diff --git a/lib/sisu/v3/html_minitoc.rb b/lib/sisu/v5/html_minitoc.rb index 8158c48d..bd9835dd 100644 --- a/lib/sisu/v3/html_minitoc.rb +++ b/lib/sisu/v5/html_minitoc.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/v3/html_minitoc.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_minitoc.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/html_promo.rb b/lib/sisu/v5/html_promo.rb index c2a8462d..a76a15fa 100644 --- a/lib/sisu/v3/html_promo.rb +++ b/lib/sisu/v5/html_promo.rb @@ -50,7 +50,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/v3/html_promo.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_promo.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -66,9 +66,9 @@ module SiSU_HTML_Promo      def initialize(md)        @md=md        @env=SiSU_Env::InfoEnv.new(@md.fns,@md) -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc -      @ad=SiSU_Env::GetInit.instance.ads -      @vz=SiSU_Env::GetInit.instance.skin +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc +      @ad=SiSU_Env::GetInit.new.ads +      @vz=SiSU_Viz::Defaults.new        @flag=@env.widget.promo?        @make=SiSU_Env::ProcessingSettings.new(@md)      end @@ -99,7 +99,7 @@ module SiSU_HTML_Promo        && @flag[:ad]          ads=if @md.promo && @md.promo.length > 0           #promo set in document            promo_array=@md.promo -        elsif @flag[:sk]                                   #promo set in associated skin +        elsif @flag[:sk]                                   #promo set            promo_array=@vz.widget_promo          elsif @flag[:rc]                                   #promo set in rc file            promo_array=if @rc['html']['promo'].is_a?(String) diff --git a/lib/sisu/v3/html_scroll.rb b/lib/sisu/v5/html_scroll.rb index 3180586c..fa183f46 100644 --- a/lib/sisu/v3/html_scroll.rb +++ b/lib/sisu/v5/html_scroll.rb @@ -50,7 +50,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/v3/html_scroll.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_scroll.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -67,7 +67,7 @@ module SiSU_HTML_Scroll    class Scroll      def initialize(md='',data='',endnotes='')        @md,@data,@endnotes=md,data,endnotes -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def songsheet        begin @@ -129,7 +129,7 @@ module SiSU_HTML_Scroll              end            elsif dob.is==:break \            and dob.from==:markup -            '<p><hr width=90% /></p>' +            '<br /><hr width=90% /><br />'            elsif dob.is==:heading_insert              x=if dob.ln==1                unless dob.obj.empty? diff --git a/lib/sisu/v3/html_segments.rb b/lib/sisu/v5/html_segments.rb index 7c90c53e..9efa2067 100644 --- a/lib/sisu/v3/html_segments.rb +++ b/lib/sisu/v5/html_segments.rb @@ -50,7 +50,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/v3/html_segments.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_segments.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -153,7 +153,7 @@ module SiSU_HTML_Seg      attr_reader :seg_name_html,:seg_name_html_tracker      def initialize(md=nil,data='')        @md,@data=md,data -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @seg_name_html=@@seg_name_html || nil        @seg_name_html_tracker=@@tracker || nil        @env=SiSU_Env::InfoEnv.new(@md.fns) if @md @@ -480,7 +480,7 @@ module SiSU_HTML_Seg            sto.table          elsif dob.is==:break \          and dob.from==:markup -          '<p><hr width=90% /></p>' +          '<br /><hr width=90% /><br />'          end          if @md.flag_separate_endnotes            dob.obj=dob.obj.gsub(/"\s+href="#_(\d+)">/,%{" href=\"endnotes#{Sfx[:html]}#_\\1">})       #endnote- twice #removed file type diff --git a/lib/sisu/v3/html_table.rb b/lib/sisu/v5/html_table.rb index 7713a66f..8c9b76d0 100644 --- a/lib/sisu/v3/html_table.rb +++ b/lib/sisu/v5/html_table.rb @@ -50,7 +50,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/v3/html_table.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_table.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/html_tune.rb b/lib/sisu/v5/html_tune.rb index 23fa586e..9f81e8cd 100644 --- a/lib/sisu/v3/html_tune.rb +++ b/lib/sisu/v5/html_tune.rb @@ -50,7 +50,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/v3/html_tune.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/html_tune.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -116,11 +116,11 @@ module SiSU_HTML_Tune    class Tune      def initialize(data,md)        @data,@md=data,md -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @env=SiSU_Env::InfoEnv.new(@md.fns)        @sys=SiSU_Env::SystemCall.new        @env=SiSU_Env::InfoEnv.new(@md.fns) -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration      end      def songsheet        begin diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v5/hub.rb index 2421a50c..6f0d0b63 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v5/hub.rb @@ -50,7 +50,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/v3/hub.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/hub.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -146,11 +146,9 @@ module SiSU        number_of_files={}        @opt.files.each_with_index do |fns,i|          fn=fns.gsub(/(?:~(?:#{@r}))?\.ss[tm]$/,'') -        if number_of_files[fn].is_a?(Array) -          number_of_files[fn] << i -        else -          number_of_files.store(fn,[i]) -        end +        (number_of_files[fn].is_a?(Array)) \ +        ? (number_of_files[fn] << i) +        : (number_of_files.store(fn,[i]))        end        files_translated_idx=[]        number_of_files.each do |x| @@ -191,22 +189,22 @@ module SiSU        @@n_do=0      end      def remote_put_base_site_rsync                         # -CR -p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on +      puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(: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 -p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on +      puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(: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 -p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on +      puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(: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 -p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on +      puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:cyan) if @opt.act[:maintenance][:set] ==:on        require_relative 'remote'                        # remote.rb        SiSU_Remote::Put.new(@opt).scp_base_all      end @@ -256,11 +254,14 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on      attr_accessor :op      def initialize(opt)        @opt=opt -      @@env=SiSU_Env::InfoEnv.new +      @@env=@env=SiSU_Env::InfoEnv.new        @msg,@msgs='',nil        @tell=lambda { SiSU_Screen::Ansi.new(@opt.cmd,@msg,"#{@msgs.inspect if @msgs}") }      end      def do_loops +      if @opt.act[:zap][:set]==:on                     #% --zap, -Z +        do_loop_files_on_given_option_pre +      end        do_each_file_loop_options        do_loop_files_on_given_option_post      end @@ -307,6 +308,15 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on          if @opt.act[:html][:set]==:on                  #% --html, -h            require_relative 'html'                      # -h -H  html.rb            SiSU_HTML::Source.new(@opt).read +        else +          if @opt.act[:html_seg][:set]==:on            #% --html-seg +            require_relative 'html'                    # -h -H  html.rb +            SiSU_HTML::Source.new(@opt).read +          end +          if @opt.act[:html_scroll][:set]==:on         #% --html-scroll +            require_relative 'html'                    # -h -H  html.rb +            SiSU_HTML::Source.new(@opt).read +          end          end          if @opt.act[:concordance][:set]==:on           #% --concordance, -w            require_relative 'concordance'               # -w     concordance.rb @@ -332,7 +342,9 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on            require_relative 'xml_dom'                   # -X     xml_dom.rb            SiSU_XML_DOM::Source.new(@opt).read          end -        if @opt.act[:pdf][:set]==:on                   #% --pdf, -p latex/ texpdf +        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'                    # -p     texpdf.rb            SiSU_TeX::Source.new(@opt).read          end @@ -345,25 +357,28 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on            SiSU_TexInfo::Source.new(@opt).read          end          if @opt.act[:sqlite_discrete][:set]==:on       #% --sqlite, -d DB sqlite -          require_relative 'dbi_discrete'              # -d     dbi_discrete.rb +          require_relative 'dbi_discrete'              # -d dbi_discrete.rb            SiSU_DBI_Discrete::SQL.new(@opt).build          end          if @opt.act[:manifest][:set]==:on              #% --manifest, -y            require_relative 'manifest'                  # -y     manifest.rb -          SiSU_Manifest::Source.new(@opt).read +          ((@opt.act[:sisupod][:set]==:on \ +          || @opt.act[:share_source][:set]==:on) \ +          && @opt.files.length < 2 ) \ +          ? nil +          : SiSU_Manifest::Source.new(@opt).read          end        end      end -    def loop_files_on_given_option_pre_do -      if @opt.act[:sisupod][:set]==:on                 #% --sisupod, -S make sisupod -        require_relative 'sisupod_make'                # -S     sisupod_make.rb -        begin +    def do_loop_files_on_given_option_pre +      begin +        if @opt.act[:zap][:set]==:on                     #% --zap, -Z            OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_Doc::Source.new(@opt).read +            require_relative 'zap' +            SiSU_Zap::Source.new(@opt).read              # -Z     zap.rb            end -        ensure -          SiSU_Doc::Source.new(@opt).sisupod_tar_xz          end +      ensure        end      end      def do_loop_files_on_given_option_post @@ -406,11 +421,21 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on                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.cmd =~/M/              FileUtils::rm_rf("#{path_pod[:sisupod]}/*") if FileTest.directory?(path_pod[:sisupod]) -            #FileUtils::rm_rf("#{path_pod[:fnb]}/*") if FileTest.directory?(path_pod[:fnb])            end          end        end @@ -444,50 +469,18 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on          end          SiSU::Operations.new.counter        end -      if @opt.cmd =~/k/                                #% -k temporary tests -        OptionLoopFiles.new(@opt).loop_files_on_given_option do -          #require_relative 'xml_scaffold' -          #fix -        end -      end        if @opt.act[:psql][:set]==:on                    #% --pg, -D DB postgresql          require_relative 'dbi' -        if @opt.files.length > 0 #switch test to actual commands -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_DBI::SQL.new(@opt).connect            # -D -d  dbi.rb -          end -        else -          SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb +        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' -        if @opt.files.length > 0 #switch test to actual commands -          OptionLoopFiles.new(@opt).loop_files_on_given_option do -            SiSU_DBI::SQL.new(@opt).connect            # -D -d  dbi.rb -          end -        else -          SiSU_DBI::SQL.new(@opt).connect              # -D -d  dbi.rb +        OptionLoopFiles.new(@opt).loop_files_on_given_option do +          SiSU_DBI::SQL.new(@opt).connect            # -D -d  dbi.rb          end        end -      if @opt.act[:dal][:set]==:on                     #% --dal, -m embedded content -      # OptionLoopFiles.new(@opt).loop_files_on_given_option do -      #   require_relative 'embedded' -      #   SiSU_Embedded::Source.new(@opt).read         # -m     embedded.rb (image and other content) #check -      # end -      end -      if @opt.act[:zap][:set]==:on                     #% --zap, -Z -      # OptionLoopFiles.new(@opt).loop_files_on_given_option do -      #   require_relative 'zap' -      #   SiSU_Zap::Source.new(@opt).read              # -Z     zap.rb -      # end -      end -      if @opt.act[:sisupod][:set]==:on                 #% --sisupod, -S make sisupod -      # OptionLoopFiles.new(@opt).loop_files_on_given_option do -      #   require_relative 'sisupod_make' -      #   SiSU_Doc::Source.new(@opt).read              # -S     sisupod_make.rb -      # end -      end        if @opt.act[:manifest][:set]==:on                #% --manifest, -y          require_relative 'manifest'          OptionLoopFiles.new(@opt).manifest_on_files_translated do @@ -583,15 +576,10 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on        if @opt.act[:webrick][:set]==:on                   #% --webrick, -W webrick          SiSU::Operations.new(@opt).webrick        end -      if @opt.act[:zap][:set]==:on                     #% --zap -Z wipe previous output clean DUPLICATE -        #require_relative 'zap' -        #SiSU_Zap::Source.new(@opt).read               # -Z     zap.rb -      end        if @opt.act[:dal][:set]==:on          @retry_count= -1          begin            path_image='./_sisu/processing/external_document/image' -          path_skin='./_sisu/processing/external_document/skin/doc'            @get_s,@get_p,@get_pl=[],[],[]            re_s=/(\S+?\.-sst)$/            re_p3=/((?:https?|file):\/\/\S+?(?:\/\S+?\.ss[mt]\.txz|sisupod(?:\.txz)?|\.ssp))/ @@ -625,35 +613,93 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on          ensure          end        end -      if @opt.act[:site_init][:set]==:on               #% -C -        require_relative 'conf'                        # -s     conf.rb -        SiSU_Initialize::Source.new(@opt).read -      end      end      def actions        if @opt.act[:profile][:set]==:on          require 'profile'        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[:dal][:set]==:on \ +        || @opt.act[:manpage][:set]==:on \ +        || @opt.act[:texinfo][:set]==:on \ +        || @opt.act[:txt][: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[: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 @opt.cmd =~/([abCcDdeFGgHhIjikLMmNnoPpQqRrSsTtUuVvWwXxYyZ_0-9])/ \ -      and @opt.cmd =~/^-/ \ -      and @opt.mod.inspect !~/--(?:sitemaps|query|identify)/ \ -      or @opt.mod.inspect =~/--(?:(?:sq)?lite|pg(?:sql)?)/ +      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 +        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 -        do_loops -        @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil unless @opt.act[:quiet][:set] ==:on -        @tell.call.print_brown if @opt.cmd =~/[uUvVM]/ unless @opt.files.join.empty? -        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 -          FileUtils::cd(@@env.processing_path.processing_base_tmp) do -            FileUtils::rm_rf(@@env.user) unless @opt.act[:maintenance][:set] ==:on +        if action_on_file_ == :true \ +        and @opt.files.length > 0 +          do_loops +          @msg,@msgs="\tsisu -W [to start ruby web-server on output directory]\n",nil if @opt.cmd =~/[vVM]/ +          @tell.call.print_brown if @opt.cmd =~/[uUvVM]/ unless @opt.files.join.empty? +          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 +            FileUtils::cd(@@env.processing_path.processing_base_tmp) do +              FileUtils::rm_rf(@@env.user) 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 filame)} +          puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia) if @opt.cmd =~/[MV]/          end        elsif @opt.mod.inspect =~/--query/          require_relative 'sst_identify_markup'          # sst_identify_markup.rb diff --git a/lib/sisu/v3/i18n.rb b/lib/sisu/v5/i18n.rb index 9e61fbdf..b635af15 100644 --- a/lib/sisu/v3/i18n.rb +++ b/lib/sisu/v5/i18n.rb @@ -50,7 +50,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/v3/i18n.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/i18n.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v5/manifest.rb index 225c235d..75d8233d 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v5/manifest.rb @@ -50,7 +50,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/v3/manifest.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/manifest.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -83,7 +83,6 @@ module SiSU_Manifest        begin          @env=SiSU_Env::InfoEnv.new(@opt.fns)          @md=SiSU_Param::Parameters.new(@opt).get -        SiSU_Env::InfoSkin.new(@md).select          xbrowser=@env.program.web_browser          browser=@env.program.console_web_browser  #       webserv_url=@env.path.url.output_tell #fix in sysenv @@ -114,19 +113,20 @@ module SiSU_Manifest          @fnb=md.fnb          @base_url="#{@env.url.root}/#{@fnb}"          @o_str=SiSU_Env::FileOp.new(md).output_dir_structure -        @image_path=if @o_str.dump_or_redirect? -          './image' -        else -          %{#{@f.path_rel_links.html_scroll_2}_sisu/image_sys} -        end +        @image_path=(@o_str.dump_or_redirect?) \ +        ? './image' +        : %{#{@f.path_rel_links.html_scroll_2}_sisu/image_sys}          @base_path=@f.output_path.manifest.dir          @@dg ||=SiSU_Env::InfoEnv.new.digest.type          @dg=@@dg          l=SiSU_Env::StandardiseLanguage.new(md.opt.lng).language          @language=l[:n]          @translate=SiSU_Translate::Source.new(md,@language) -        @brace_url=SiSU_Viz::Skin.new.url_decoration +        @brace_url=SiSU_Viz::Defaults.new.url_decoration          @stylesheet=SiSU_Style::CSS_HeadInfo.new(md).stylesheet +        @fn_lng=(@f.output_dir_structure.by_language_code?) \ +        ? '' +        : ('.' + md.opt.lng)        end        def output          manifest=@f.write_file.manifest @@ -451,12 +451,15 @@ module SiSU_Manifest          end        end        def qrc_image -        fn=@md.fnb -        pth=(@o_str.dump_or_redirect?) \ +        fn=(@f.output_dir_structure.by_filename?) \ +        ? 'sisu_manifest' +        : @md.fnb +        pth=((@o_str.dump_or_redirect?) \ +        || (@f.output_dir_structure.by_filename?)) \          ? '.'          : 'qrcode' -        img_md="#{pth}/#{fn}.md.png" -        img_title="#{pth}/#{fn}.title.png" +        img_md="#{pth}/#{fn}#{@fn_lng}.md.png" +        img_title="#{pth}/#{fn}#{@fn_lng}.title.png"          if FileTest.file?(@f.place_file.qrcode_md.dir)==true            @manifest[:html] <<<<WOK  <tr><td class="left"> @@ -498,7 +501,7 @@ WOK          end          if FileTest.file?(@f.place_file.sisupod.dir)==true            pth=@f.output_path.sisupod.dir -          rel=@f.output_path.sisupod.ab_pod +          rel=@f.output_path.sisupod.rel_sm            url=@f.output_path.sisupod.url            id,file='SiSU doc (tar.xz)',@f.base_filename.sisupod            summarize_sources(id,file,pth,rel,url) @@ -512,77 +515,58 @@ WOK          end        end        def metadata_tests -        if defined? @md.title.full \ -        and @md.title.full=~/\S+/ -          id,info=@translate.full_title,@md.title.full -          metadata(id,info) -        end -        if defined? @md.creator.author \ -        and @md.creator.author=~/\S+/ -          id,info=@translate.author,@md.creator.author -          metadata(id,info) -        end -        if defined? @md.creator.editor \ -        and @md.creator.editor=~/\S+/ -          id,info=@translate.editor,@md.creator.editor -          metadata(id,info) -        end -        if defined? @md.creator.contributor \ -        and @md.creator.contributor=~/\S+/ -          id,info=@translate.contributor,@md.creator.contributor -          metadata(id,info) -        end -        if defined? @md.creator.translator \ -        and @md.creator.translator=~/\S+/ -          id,info=@translate.translator,@md.creator.translator -          metadata(id,info) -        end -        if defined? @md.creator.illustrator \ -        and @md.creator.illustrator=~/\S+/ -          id,info=@translate.illustrator,@md.creator.illustrator -          metadata(id,info) -        end -        if defined? @md.publisher \ -        and @md.publisher=~/\S+/ #dc -          id,info=@translate.publisher,@md.publisher -          metadata(id,info) -        end -        if defined? @md.creator.prepared_by \ -        and @md.creator.prepared_by=~/\S+/ -          id,info=@translate.prepared_by,@md.creator.prepared_by -          metadata(id,info) -        end -        if defined? @md.creator.digitized_by \ -        and @md.creator.digitized_by=~/\S+/ -          id,info=@translate.digitized_by,@md.creator.digitized_by -          metadata(id,info) -        end -        if defined? @md.classify.subject \ -        and @md.classify.subject=~/\S+/ -          id,info=@translate.subject,@md.classify.subject -          metadata(id,info) -        end -        if defined? @md.notes.description \ -        and @md.notes.description=~/\S+/ -          id,info=@translate.description,@md.notes.description -          metadata(id,info) -        end -        if defined? @md.notes.abstract \ -        and @md.notes.abstract=~/\S+/ -          id,info=@translate.abstract,@md.notes.abstract -          metadata(id,info) +        if defined? @md.title                                                   #% +          if defined? @md.title.full \ +          and @md.title.full=~/\S+/ +            id,info=@translate.full_title,@md.title.full +            metadata(id,info) +          end          end -        if defined? @md.type \ -        and @md.type=~/\S+/ #dc -          id,info=@translate.type,@md.type -          metadata(id,info) +        if defined? @md.creator                                                 #% +          if defined? @md.creator.author \ +          and @md.creator.author=~/\S+/ +            id,info=@translate.author,@md.creator.author +            metadata(id,info) +          end +          if defined? @md.creator.editor \ +          and @md.creator.editor=~/\S+/ +            id,info=@translate.editor,@md.creator.editor +            metadata(id,info) +          end +          if defined? @md.creator.contributor \ +          and @md.creator.contributor=~/\S+/ +            id,info=@translate.contributor,@md.creator.contributor +            metadata(id,info) +          end +          if defined? @md.creator.translator \ +          and @md.creator.translator=~/\S+/ +            id,info=@translate.translator,@md.creator.translator +            metadata(id,info) +          end +          if defined? @md.creator.illustrator \ +          and @md.creator.illustrator=~/\S+/ +            id,info=@translate.illustrator,@md.creator.illustrator +            metadata(id,info) +          end +          if defined? @md.creator.prepared_by \ +          and @md.creator.prepared_by=~/\S+/ +            id,info=@translate.prepared_by,@md.creator.prepared_by +            metadata(id,info) +          end +          if defined? @md.creator.digitized_by \ +          and @md.creator.digitized_by=~/\S+/ +            id,info=@translate.digitized_by,@md.creator.digitized_by +            metadata(id,info) +          end          end -        if defined? @md.rights.all \ -        and @md.rights.all=~/\S+/ #dc -          id,info=@translate.rights,@md.rights.all -          metadata(id,info) +        if defined? @md.rights +          if defined? @md.rights.all \ +          and @md.rights.all=~/\S+/ #dc +            id,info=@translate.rights,@md.rights.all +            metadata(id,info) +          end          end -        if defined? @md.date.published +        if defined? @md.date                                                    #%            if defined? @md.date.published \            and @md.date.published=~/\S+/ #dc              id,info=@translate.date,@md.date.published @@ -614,108 +598,136 @@ WOK              metadata(id,info)            end          end -        if defined? @md.title.language \ -        and @md.title.language=~/\S+/ -          id,info=@translate.language,@md.title.language -          metadata(id,info) -        end -        if defined? @md.original.language \ -        and @md.original.language=~/\S+/ -          id,info=@translate.language_original,@md.original.language -          metadata(id,info) -        end -        if defined? @md.classify.format \ -        and @md.classify.format=~/\S+/ -          id,info=@transate.format,@md.classify.format -          metadata(id,info) -        end -        if defined? @md.classify.identifier \ -        and @md.classify.identifier=~/\S+/ -          id,info=@translate.identifier,@md.classify.identifier -          metadata(id,info) -        end -        if defined? @md.original.source \ -        and @md.original.source=~/\S+/ -          id,info=@translate.source,@md.original.source -          metadata(id,info) -        end -        if defined? @md.classify.relation \ -        and @md.classify.relation=~/\S+/ -          id,info=@translate.relation,@md.classify.relation -          metadata(id,info) -        end -        if defined? @md.classify.coverage \ -        and @md.classify.coverage=~/\S+/ -          id,info=@translate.coverage,@md.classify.coverage -          metadata(id,info) -        end -        if defined? @md.classify.keywords \ -        and @md.classify.keywords=~/\S+/ -          id,info=@translate.keywords,@md.classify.keywords -          metadata(id,info) -        end -        if defined? @md.notes.comment \ -        and @md.notes.comment=~/\S+/ -          id,info=@translate.comments,@md.notes.comment -          metadata(id,info) -        end -        if defined? @md.classify.loc \ -        and @md.classify.loc=~/\S+/ -          id,info=@translate.cls_loc,@md.classify.loc -          metadata(id,info) -        end -        if defined? @md.classify.dewey \ -        and @md.classify.dewey=~/\S+/ -          id,info=@translate.cls_dewey,@md.classify.dewey -          metadata(id,info) -        end -        if defined? @md.classify.oclc \ -        and @md.classify.oclc=~/\S+/ -          id,info=@translate.cls_oclc,@md.classify.oclc -          @manifest[:html] << %{<tr><th class="left"><p class="bold_left">#{id}:</p></th><td>\n} -          @manifest[:html] << %{<p class="left"><a href="http://worldcat.org/oclc/#{info}">#{info}</a></p>\n} -          @manifest[:html] << %{</td></tr>\n} -        end -        if defined? @md.classify.pg \ -        and @md.classify.pg=~/\S+/ -          id,info=@translate.cls_gutenberg,@md.classify.pg -          metadata(id,info) -        end -        if defined? @md.classify.isbn \ -        and @md.classify.isbn=~/\S+/ -          id,info=@translate.cls_isbn,@md.classify.isbn +        if defined? @md.publisher \ +        and @md.publisher=~/\S+/ #dc +          id,info=@translate.publisher,@md.publisher            metadata(id,info)          end -        if defined? @md.notes.prefix_a \ -        and @md.notes.prefix_a=~/\S+/ -          id,info=@translate.prefix_a,@md.notes.prefix_a -          metadata(id,info) +        if defined? @md.notes                                                   #% +          if defined? @md.notes.description \ +          and @md.notes.description=~/\S+/ +            id,info=@translate.description,@md.notes.description +            metadata(id,info) +          end +          if defined? @md.notes.abstract \ +          and @md.notes.abstract=~/\S+/ +            id,info=@translate.abstract,@md.notes.abstract +            metadata(id,info) +          end +          if defined? @md.notes.comment \ +          and @md.notes.comment=~/\S+/ +            id,info=@translate.comments,@md.notes.comment +            metadata(id,info) +          end +          if defined? @md.notes.prefix_a \ +          and @md.notes.prefix_a=~/\S+/ +            id,info=@translate.prefix_a,@md.notes.prefix_a +            metadata(id,info) +          end +          if defined? @md.notes.prefix_b \ +          and @md.notes.prefix_b=~/\S+/ +            id,info=@translate.prefix_b,@md.notes.prefix_b +            metadata(id,info) +          end          end -        if defined? @md.notes.prefix_b \ -        and @md.notes.prefix_b=~/\S+/ -          id,info=@translate.prefix_b,@md.notes.prefix_b -          metadata(id,info) +        if defined? @md.title                                                   #% +          if defined? @md.title.language \ +          and @md.title.language=~/\S+/ +            id,info=@translate.language,@md.title.language +            metadata(id,info) +          end +          if defined? @md.original.language \ +          and @md.original.language=~/\S+/ +            id,info=@translate.language_original,@md.original.language +            metadata(id,info) +          end          end -        if defined? @md.topic_register_array \ -        and @md.topic_register_array.length > 0 -          @manifest[:html] << %{<tr><th class="left"><p class="bold_left">#{@translate.topic_register}:</p></th><td>\n} -          @md.topic_register_array.each do |t| -            t.each_with_index do |st,i| -              if st.is_a?(Array) -                st.each do |v| -                  if v.is_a?(Array) -                    v.each do |w,i| -                      @manifest[:html] << %{<p class="it#{i}">#{w}</p>\n} +        if defined? @md.classify                                                #% +          if defined? @md.topic_register_array \ +          and @md.topic_register_array.length > 0 +            @manifest[:html] << %{<tr><th class="left"><p class="bold_left">#{@translate.topic_register}:</p></th><td>\n} +            @md.topic_register_array.each do |t| +              t.each_with_index do |st,i| +                if st.is_a?(Array) +                  st.each do |v| +                    if v.is_a?(Array) +                      v.each do |w,i| +                        @manifest[:html] << %{<p class="it#{i}">#{w}</p>\n} +                      end +                    else +                      @manifest[:html] << %{<p class="it#{i}">#{v}</p>\n}                      end -                  else -                    @manifest[:html] << %{<p class="it#{i}">#{v}</p>\n}                    end +                else @manifest[:html] << %{<p class="it#{i}">#{st}</p>\n}                  end -              else @manifest[:html] << %{<p class="it#{i}">#{st}</p>\n}                end              end +            @manifest[:html] << %{</td></tr>\n} +          end +          if defined? @md.classify.subject \ +          and @md.classify.subject=~/\S+/ +            id,info=@translate.subject,@md.classify.subject +            metadata(id,info) +          end +          if defined? @md.classify.keywords \ +          and @md.classify.keywords=~/\S+/ +            id,info=@translate.keywords,@md.classify.keywords +            metadata(id,info) +          end +          if defined? @md.classify.loc \ +          and @md.classify.loc=~/\S+/ +            id,info=@translate.cls_loc,@md.classify.loc +            metadata(id,info) +          end +          if defined? @md.classify.dewey \ +          and @md.classify.dewey=~/\S+/ +            id,info=@translate.cls_dewey,@md.classify.dewey +            metadata(id,info) +          end +          if defined? @md.notes.coverage \ +          and @md.notes.coverage=~/\S+/ +            id,info=@translate.coverage,@md.notes.coverage +            metadata(id,info) +          end +          if defined? @md.notes.relation \ +          and @md.notes.relation=~/\S+/ +            id,info=@translate.relation,@md.notes.relation +            metadata(id,info) +          end +          if defined? @md.notes.type \ +          and @md.notes.type=~/\S+/ #dc +            id,info=@translate.type,@md.notes.type +            metadata(id,info) +          end +          if defined? @md.notes.format \ +          and @md.notes.format=~/\S+/ +            id,info=@transate.format,@md.notes.format +            metadata(id,info) +          end +        end +        if defined? @md.identifier                                              #% +          if defined? @md.identifier.oclc \ +          and @md.identifier.oclc=~/\S+/ +            id,info=@translate.cls_oclc,@md.identifier.oclc +            @manifest[:html] << %{<tr><th class="left"><p class="bold_left">#{id}:</p></th><td>\n} +            @manifest[:html] << %{<p class="left"><a href="http://worldcat.org/oclc/#{info}">#{info}</a></p>\n} +            @manifest[:html] << %{</td></tr>\n} +          end +          if defined? @md.identifier.pg \ +          and @md.identifier.pg=~/\S+/ +            id,info=@translate.cls_gutenberg,@md.identifier.pg +            metadata(id,info) +          end +          if defined? @md.identifier.isbn \ +          and @md.identifier.isbn=~/\S+/ +            id,info=@translate.cls_isbn,@md.identifier.isbn +            metadata(id,info)            end -          @manifest[:html] << %{</td></tr>\n} +        end +        if defined? @md.original.source \ +        and @md.original.source=~/\S+/ +          id,info=@translate.source,@md.original.source +          metadata(id,info)          end          if @md.fns            id,info=@translate.sourcefile,@md.fns @@ -773,31 +785,14 @@ WOK        end        def check_output(data)          begin +          make=SiSU_Env::ProcessingSettings.new(@md)            minitoc=SiSU_HTML_MiniToc::TocMini.new(@md,data).songsheet.join("\n")            id,file='','' -          vz=SiSU_Env::GetInit.instance.skin -          search_form=if @f.build.search_form? -            "<td>#{@env.widget_static.search_form}</td>" -          else '' -          end -          banner_table=if vz.banner_home_button_only !~ /http:\/\/www\.jus\.uio\.no\/sisu/ \ -          and vz.banner_home_button_only !~  /sisu\.home\.png/ -<<WOK -<table summary="band" border="0" cellpadding="3" cellspacing="0"> -<tr><td align="left"  width="15%" bgcolor="#ffffff">#{vz.banner_band}</td> -<td width="70%"><p class="tiny">#{@brace_url.xml_open}<a href="#{@base_url}/#{file}">#{@base_url}/#{file}</a>#{@brace_url.xml_close}</p></td> -#{search_form}</tr> -</table> -WOK -          else -<<WOK -<table summary="band" border="0" cellpadding="3" cellspacing="0"> -<tr><td align="left" bgcolor="#ffffff"><a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" src="#{vz.url_path_image_sys}/sisu.png" alt="SiSU -->" /></a></td> -<td><p class="tiny">#{@brace_url.xml_open}<a href="#{@base_url}/#{file}">#{@base_url}/#{file}</a>#{@brace_url.xml_close}</p></td> -#{search_form}</tr> -</table> -WOK -          end +          vz=SiSU_Viz::Defaults.new +          search_form=(make.build.search_form?) \ +          ? "<td>#{@env.widget_static.search_form}</td>" +          : '' +          format_head_toc=SiSU_HTML_Format::HeadToc.new(@md)            @manifest[:html] <<<<WOK  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> @@ -813,9 +808,9 @@ SiSU manifest: #{@md.title.full}  #{@stylesheet.css_head}  </head>  <body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en"> -#{banner_table} +#{format_head_toc.seg_head_navigation_band(:manifest)}  WOK -          if @f.build.manifest_minitoc? +          if make.build.manifest_minitoc?              if @o_str.dump_or_redirect?              elsif @f.output_dir_structure.by_language_code? \              or @f.output_dir_structure.by_filetype? @@ -834,10 +829,35 @@ WOK  <div>  WOK            end +          if @o_str.dump_or_redirect? +          elsif @f.output_dir_structure.by_language_code? \ +          or @f.output_dir_structure.by_filetype? +            pth_local=@f.output_path.manifest.dir +            pth_rel='.' +          else +            pth_local=@f.output_path.base.dir +            pth_rel='..' +          end +          pth_rel_home=if @env.output_dir_structure.by? == :language +            '../..' +          elsif @env.output_dir_structure.by? == :filetype +            '..' +          elsif @env.output_dir_structure.by? == :filename +            '..' +          else '..' +          end +          harvest=(FileTest.file?("#{pth_local}/authors#{@fn_lng}.html") \ +          && FileTest.file?("#{pth_local}/topics#{@fn_lng}.html")) \ +          ? %{<p class="small"><a href="#{pth_rel_home}/index.html">.:</a> other document manifests: [<a href="#{pth_rel}/authors#{@fn_lng}.html">authors</a>] [<a href="#{pth_rel}/topics#{@fn_lng}.html">topics</a>]</p>} +          : '' +          manifest_title=%{<p class="bold">#{@translate.manifest_description}</p>#{harvest}}            @manifest[:html] <<<<WOK -<h1 class="small">#{@translate.manifest_description}</h1> -<h2 class="small">#{@md.title.full}</h2> +<div id="horizontal_links"> +#{manifest_title} +</div> +<h1 class="small">#{@md.title.full}</h1>  <p class="bold">#{@md.author}</p> +<div id="horizontal_links"><p class="bold">  <p class="small">    <a href="#output">Document, Available Filetypes</a>  </p> @@ -847,6 +867,7 @@ WOK  <p class="tiny">        <a href="#links">metadata suggested links (if any)</a>  </p> +</div>  <table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center">  WOK            published_versions diff --git a/lib/sisu/v3/manpage.rb b/lib/sisu/v5/manpage.rb index 8be6ecdc..0873e3f3 100644 --- a/lib/sisu/v3/manpage.rb +++ b/lib/sisu/v5/manpage.rb @@ -50,7 +50,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/v3/manpage.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/manpage.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -97,7 +97,6 @@ module SiSU_Manpage          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@md.file.output_path.manpage.dir}/#{@md.file.base_filename.manpage}").flow if @opt.cmd =~/[MV]/          @dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here          SiSU_Manpage::Source::Scroll.new(@md,@dal_array).songsheet -        SiSU_Env::InfoSkin.new(@md).select #watch        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -113,8 +112,8 @@ module SiSU_Manpage        @@endnotes={ para: [], end: [] }        def initialize(md,data)          @md,@data=md,data -        @brace_url=SiSU_Viz::Skin.new.url_decoration -        @vz=SiSU_Env::GetInit.instance.skin +        @brace_url=SiSU_Viz::Defaults.new.url_decoration +        @vz=SiSU_Viz::Defaults.new          @tab="\t"          @br="\n"          @@notes=:end @@ -171,8 +170,7 @@ GSUB          @manpage[:metadata]=SiSU_Metadata::Summary.new(@md).manpage.metadata        end        def manpage_tail -        SiSU_Env::InfoSkin.new(@md).select -        vz=SiSU_Env::GetInit.instance.skin +        vz=SiSU_Viz::Defaults.new          generator="Generated by: #{@md.sisu_version[:project]} #{@md.sisu_version[:version]} of #{@md.sisu_version[:date_stamp]} (#{@md.sisu_version[:date]})"  if @md.sisu_version[:version]          lastdone="Last Generated on: #{Time.now}"          rubyv="Ruby version: #{@md.ruby_version}" @@ -183,21 +181,26 @@ GSUB          @manpage[:tail] <<<<WOK  #{@br}  .TP -Other versions of this document: +.SH SEE ALSO +       sisu(1), +       sisu-epub(1), +       sisu-harvest(1), +       sisu-html(1), +       sisu-odf(1), +       sisu-pdf(1), +       sisu-pg(1), +       sisu-sqlite(1), +       sisu-txt(1). +       sisu_vim(7)  .TP -  manifest: <#{@md.file.output_path.digest.url}/#{@md.file.base_filename.digest}> +.SH HOMEPAGE +       More information about SiSU can be found at <http://www.sisudoc.org/> or <http://www.jus.uio.no/sisu/>  .TP -at: <#{vz.url_site}> +.SH SOURCE +       <http://sources.sisudoc.org/>  .TP -#{sc} -.TP -* #{generator} -.TP -* #{rubyv} -.TP -* #{lastdone} -.TP -* SiSU #{vz.url_sisu} +.SH AUTHOR +       SiSU is written by Ralph Amissah <ralph@amissah.com>  WOK        end        def manpage_structure(dob='',hname='') #% Used to extract the structure of a document @@ -309,27 +312,27 @@ WOK                gsub(/#{Mx[:gl_o]}#169#{Mx[:gl_c]}/,'©')            else              dob.obj=dob.obj.gsub(/\\/,'\e'). -              gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*/,"\n")                                   # watch +              gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})\s*/,"\n")                          # watch            end -          dob.obj=dob.obj.gsub(/(^| |#{Mx[:nbsp]}|\s|\*)\\\*/,'\1\\\\\*'). #man page requires +          dob.obj=dob.obj.gsub(/(^| |#{Mx[:nbsp]}|\s|\*)\\\*/,'\1\\\\\*').          #man page requires              gsub(/┆/,'|'). -            gsub(/^(\.\S{3,})/m,' \1') # ^\. used by interpreter, disable when use not intended +            gsub(/^(\.\S{3,})/m,' \1')                                                   # ^\. used by interpreter, disable when use not intended            dob.obj=dob.obj.gsub(/~/,'~') if dob.obj #manpages use this            if dob.is ==:code              dob.obj=dob.obj.gsub(/(^|[^}])_([<>])/m,'\1\2'). # _> _<                gsub(/(^|[^}])_([<>])/m,'\1\2'). # _<_< -              gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})+(\s*)/m,"\n\\1").                                   # watch +              gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})+(\s*)/m,"\n\\1").                  # watch                gsub(/\A(.+?)\s*\Z/m,".nf\n\\1\n.fi")            end -          dob.obj=dob.obj.gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})+\s*/m,"\n\n")                                   # watch +          dob.obj=dob.obj.gsub(/(?:#{Mx[:br_line]}|#{Mx[:br_nl]})+\s*/m,"\n\n")          # watch            blit=dob.obj.scan(/\[[^\]]+\]|[^\[]+/)            blit_array=[] -          dob.obj=dob.obj.gsub(/#{Mx[:gl_o]}:name#\S+?#{Mx[:gl_c]}/mi,''). #added -            gsub(/#{Mx[:br_page]}\s*|#{Mx[:br_page_new]}/,'').                                         # remove page breaks +          dob.obj=dob.obj.gsub(/#{Mx[:gl_o]}:name#\S+?#{Mx[:gl_c]}/mi,'').               #added +            gsub(/#{Mx[:br_page]}\s*|#{Mx[:br_page_new]}|#{Mx[:br_page_line]}/,'').      # remove page breaks, you may wish to have a line across the page break instead              gsub(/(^|#{Mx[:gl_c]}|\s)#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'\1\2').              gsub(/<a href=".+?">(.+?)<\/a>/m,'\1'). -            gsub(/#{Mx[:mk_o]}name#\S+?#{Mx[:mk_c]}/,'').                                     # remove name links -            gsub(/ |#{Mx[:nbsp]}/,' ').                                          # decide on +            gsub(/#{Mx[:mk_o]}name#\S+?#{Mx[:mk_c]}/,'').                                # remove name links +            gsub(/ |#{Mx[:nbsp]}/,' ').                                             # decide on              gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]")              gsub(/(?:^|[^_\\])#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}image/,'    [ \1 ]'). #"[ #{dir.url.images_local}\/\\1 ]")              gsub(/^(?:^|[^_\\])#{Mx[:lnk_o]}\s*\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"\s*#{Mx[:lnk_c]}\S+/,'[image: "\1"]') diff --git a/lib/sisu/v3/manpage_format.rb b/lib/sisu/v5/manpage_format.rb index bd07a0bc..ce54fdb7 100644 --- a/lib/sisu/v3/manpage_format.rb +++ b/lib/sisu/v5/manpage_format.rb @@ -50,7 +50,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/v3/manpage_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/manpage_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -82,7 +82,7 @@ module SiSU_ManpageFormat        @md,@dob=md,dob        rgx=/#{Mx[:en_a_o]}[\d*+]+\s+(.+?)#{Mx[:en_a_c]}/        @dob.obj.gsub!(rgx,'\1') if @dob.obj =~rgx -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def scr_endnote_body        "<endnote>#{@dob.obj}</endnote> " diff --git a/lib/sisu/v3/odf.rb b/lib/sisu/v5/odf.rb index 71cbcca5..671cc350 100644 --- a/lib/sisu/v3/odf.rb +++ b/lib/sisu/v5/odf.rb @@ -50,7 +50,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/v3/odf.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/odf.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -92,7 +92,6 @@ module SiSU_ODF            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.odt.dir}/#{@md.file.base_filename.odt}").flow if @opt.cmd =~/[MV]/          end          SiSU_ODF::Source::Scroll.new(@particulars).songsheet -        SiSU_Env::InfoSkin.new(@md).select        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -110,9 +109,9 @@ module SiSU_ODF        @@fns=nil        def initialize(particulars)          @md,@env,@dal_array=particulars.md,particulars.env,particulars.dal_array -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @tab="\t" -        @brace_url=SiSU_Viz::Skin.new.url_decoration +        @brace_url=SiSU_Viz::Defaults.new.url_decoration          @br=(@md.opt.cmd =~/M/) ? '' : ''          #@br=(@md.opt.cmd =~/M/) ? "\n" : ''        end @@ -192,9 +191,11 @@ module SiSU_ODF            @@fns=@md.fns          end          unless @@docstart -          breakpage=if (@md.pagenew or @md.pagebreak) \ -          and (@md.pagenew =~ m or @md.pagebreak =~m) +          breakpage=if (@md.pagenew || @md.pagebreak) \ +          and (@md.pagenew =~m or @md.pagebreak =~m)              '<text:p text:style-name="P_normal_page_new"> </text:p>' +          elsif @md.pageline \ +          and @md.pageline =~m #fix            else ''            end          end @@ -527,6 +528,8 @@ module SiSU_ODF            if dob.obj==Mx[:br_page] \            or dob.obj==Mx[:br_page_new]              dob=br.br_page +          elsif dob.obj==Mx[:br_page_line] +            dob=br.br_page_line            elsif dob.obj==Mx[:br_obj]              dob=br.obj_sep            end @@ -726,6 +729,8 @@ WOK          breakpage=if @md.pagenew \          or @md.pagebreak            ' fo:break-before="page"' +        elsif @md.pageline ##fix +          ''          else ''          end          x=<<WOK diff --git a/lib/sisu/v3/odf_format.rb b/lib/sisu/v5/odf_format.rb index 9c5f37ce..8abff36f 100644 --- a/lib/sisu/v3/odf_format.rb +++ b/lib/sisu/v5/odf_format.rb @@ -50,7 +50,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/v3/odf_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/odf_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -139,7 +139,7 @@ module SiSU_ODF_Format        end        rgx=/#{Mx[:en_a_o]}\d+\s+(.+?)#{Mx[:en_a_c]}/        @txt=@txt.gsub(rgx,'\1') if @txt =~rgx -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def scr_endnote_body        "<endnote>#{@txt}</endnote> " @@ -164,7 +164,7 @@ module SiSU_ODF_Format      def initialize(md,dob,p_num)        @md,@dob,@p_num=md,dob,p_num        @txt=dob.obj -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        if @md.fns != @@fns          @@table_counter=0          @@fns=@md.fns @@ -650,6 +650,11 @@ WOK        @t_o.obj='<text:p text:style-name="P_page_break"> </text:p>'        @t_o      end +    def br_page_line +      sep='_' +      @t_o.obj=%{<text:p text:style-name="P_normal">#{sep*60}</text:p>} +      @t_o +    end      def obj_sep #center later        sep='--- '        @t_o.obj=%{<text:p text:style-name="P_normal">#{sep*20}</text:p>} diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v5/options.rb index f44b5505..2133a812 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v5/options.rb @@ -50,7 +50,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/v3/options.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/options.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -63,9 +63,81 @@  module SiSU_Commandline    require 'pathname'    require_relative 'sysenv'                             # sysenv.rb -  @@base_path=nil +  require_relative 'param_make'                         # param_make.rb +  @@sisu_call_origin_path=nil +  class HeaderCommon +    def initialize(make_instruct_array) +      @make_instruct_array=make_instruct_array +    end +    def sisu_document_make_instructions +      @pagenew=@pagebreak=@pageline=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@num_top=@i18n=@man_section=@emphasis_set_to=@bold_match_list=@italics_match_list=@substitution_match_list=@footer_links=@home_button_links=@links=nil +      @makeset=false +      if @make_instruct_array +        @make_instruct_array.each do |para|                                     #% scan document +          if para =~/^(?:@make:|@links:)[+-]?\s/ +            case para +            when /^@make:(.+)/m                                                #% header processing - make +              @env=SiSU_Env::InfoEnv.new +              @make=SiSU_Param_Make::MdMake.new($1.strip,@opt,@env).make +              makes=SiSU_Param_Make::MakeHead.new(@make).make_instruct +              @makeset=true +              @pagenew=makes[:pagenew] +              @pagebreak=makes[:pagenew] +              @pageline=makes[:pageline] +              @toc=makes[:toc] +              @lv1=makes[:lv1] +              @lv2=makes[:lv2] +              @lv3=makes[:lv3] +              @lv4=makes[:lv4] +              @lv5=makes[:lv5] +              @lv6=makes[:lv6] +              @num_top=makes[:num_top] +              @i18n=makes[:i18n] +              @man_section=makes[:man_section] +              @emphasis_set_to=makes[:emphasis_set_to] +              @bold_match_list=makes[:bold_match_list] +              @italics_match_list=makes[:italics_match_list] +              @substitution_match_list=makes[:substitution_match_list] +              @footer_links=makes[:footer_links] +              @home_button_links=makes[:home_button_links] +              @home_button_image=makes[:home_button_image] +              @cover_image=makes[:cover_image] +            when /^@links:(.+)/m                                                #% header processing - make +              make_links=SiSU_Param::Parameters::MdMake.new($1.strip,@opt,@env).make_links +              @links,@links_append=make_links.links,make_links.append? +            end +          end +        end                                                                    #% here endeth the common header loop +      end +      { makeset: @makeset, +        pagenew: @pagenew, +        pagebreak: @pagebreak, +        pageline: @pageline, +        toc: @toc, +        lv1: @lv1, +        lv2: @lv2, +        lv3: @lv3, +        lv4: @lv4, +        lv5: @lv5, +        lv6: @lv6, +        num_top: @num_top, +        i18n: @i18n, +        man_section: @man_section, +        emphasis_set_to: @emphasis_set_to, +        bold_match_list: @bold_match_list, +        italics_match_list: @italics_match_list, +        substitution_match_list: @substitution_match_list, +        footer_links: @footer_links, +        home_button_links: @home_button_links, +        home_button_image: @home_button_image, +        cover_image: @cover_image, +        links: @links, +        links_append: @links_append +      } +    end +  end    class Options -    attr_accessor :cmd,:mod,:act,:dir_structure_by,:f_pths,:files,:files_mod,:base_path,:base_stub,:sub_location,:paths,:lngs,:f_pth,:pth,:fno,:fns,:fnb,:fnc,:fng,:fncb,:lng,:lng_base,:what +    attr_accessor :cmd,:mod,:act,:dir_structure_by,:f_pths,:files,:files_mod,:base_path,:base_stub,:sub_location,: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)        @cmd,@f_pth,@pth,@fno,@fns,@fnb,@fnc,@fng,@fncb,@what,@lng,@lng_base,@base_path,@base_stub,@sub_location='','','','','','','','','','','','','','' @@ -73,13 +145,16 @@ module SiSU_Commandline        @env=SiSU_Env::InfoEnv.new        @lng_base=@env.language_default_set        @dir_structure_by=SiSU_Env::EnvCall.new.output_dir_structure.by? -      @@base_path ||=Dir.pwd -      @base_path=@@base_path +      @@sisu_call_origin_path ||=Dir.pwd +      @base_path=@@sisu_call_origin_path        r=Px[:lng_lst_rgx]        u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/        @base_stub=@base_path.gsub(u,'\1')        @a=sisu_glob_rules(a)        @a.freeze +      make_instruct_array=SiSU_Env::GetInit.new.sisu_document_make.makefile_read +      @make_instructions=HeaderCommon.new(make_instruct_array).sisu_document_make_instructions +      @make_instructions_pod=nil        init      end      def find_all(find_flag,opt) @@ -185,13 +260,13 @@ module SiSU_Commandline          @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 --v3 -0 [filename(s)] configured as flag default +        and @mod.length==0 #% if no other action called on filename given, default is sisu --v4 -0 [filename(s)] configured as flag default            shortcut=SiSU_Env::InfoProcessingFlag.new -          @mod=['--v3'] +          @mod=['--v4']            @cmd=shortcut.cf_0 + 'm'          end          if @cmd =~/[vVM]/ \ -        && @cmd !~/-vu?$/ +        && @cmd !~/-[ku]*v[ku]*$/            SiSU_Screen::Ansi.new(@cmd,"\tsisu " + @cmd +  ' ' + @mod.join(' ') + ' ' + @files.join(' ') + "\n").print_brown          end        end @@ -200,6 +275,22 @@ module SiSU_Commandline        @files        self      end +    def sisu_document_make_pod +      def makefile_name +        SiSU_Env::GetInit.new.sisu_document_make.makefile_name +      end +      def makefile(pod_make_path) +        "#{pod_make_path}/#{makefile_name}" +      end +      def makefile_read(pod_make_path) +        f=if FileTest.file?(makefile(pod_make_path)) +          sisu_doc_makefile=IO.read(makefile(pod_make_path), mode: 'r:utf-8') +          sisu_doc_makefile.split(/\s*\n\s*\n/m) +        else nil +        end +      end +      self +    end      def set_files_and_paths_and_general_extract(s)        c,w='',''        m,f,pth,z,lng,lngs=[],[],[],[],[],[] @@ -224,6 +315,10 @@ module SiSU_Commandline              fullname=@env.processing_path.processing + '/sisupod/' + fn_pod              pt=Pathname.new(fullname)              FileUtils::mkdir_p(pt.to_s) +            pod_make_path=fullname + '/sisupod/doc/_sisu' +            pod_make_path_file=pod_make_path +            make_instruct_array=sisu_document_make_pod.makefile_read(pod_make_path) +            @make_instructions_pod=HeaderCommon.new(make_instruct_array).sisu_document_make_instructions              Dir.chdir(pt.realpath)              options=s.gsub(/(\s+--?\S+)+.+/,'\1')              system(" @@ -373,46 +468,85 @@ module SiSU_Commandline      end      def opt_cmd_and_mod_adjust(c,m)        cmd,mod,files=@cmd,@mod,@files +      if not m.empty? \ +      and m.inspect =~/"--pdf-/ +       ps,psa='',[] +       mod << '--pdf' +       m.each do |m| +         if m =~ /^--pdf-(?:(?:l|landscape)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:l|landscape))$/ +           mod << '--landscape' +         end +         if m =~ /^--pdf-(?:(?:p|portrait)(?:-(?:a4|letter|a5|b5|legal))?|(?:a4|letter|a5|b5|legal)-(?:p|portrait))$/ +           mod << '--portrait' +         end +         if m =~ /^--pdf(?:-(?:a4|letter|a5|b5|legal)(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))(?:-(?:a4|letter|a5|b5|legal)))$/ +           if m =~ /^--pdf(?:-a4(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a4)$/ +             mod << '--papersize-a4' +           end +           if m =~ /^--pdf(?:-a5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-a5)$/ +             mod << '--papersize-a5' +           end +           if m =~ /^--pdf(?:-b5(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-b5)$/ +             mod << '--papersize-b5' +           end +           if m =~ /^--pdf(?:-letter(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-letter)$/ +             mod << '--papersize-letter' +           end +           if m =~ /^--pdf(?:-legal(?:-(?:[lp]|landscape|portrait))?|(?:-(?:[lp]|landscape|portrait))-legal)$/ +             mod << '--papersize-legal' +           end +         end +       end +       mod=mod.uniq +      end        unless m.empty?          m.each do |m|            case m -          when /^--(?:color-toggle)$/;                       c=c+'c' -          when /^--(?:configure|init-site)$/;                c=c+'CC' -          when /^--(?:dal?|machine|abstraction|abs)$/;       c=c+'m' -          when /^--(?:txt|text|plaintext)$/;                 c=c+'t' -          when /^--(?:html)$/;                               c=c+'h' -          when /^--(?:epub)$/;                               c=c+'e' -          when /^--(?:od[ft])$/;                             c=c+'o' -          when /^--(?:pdf)$/;                                c=c+'p' -          when /^--(?:concordance|wordmap)$/;                c=c+'w' -          when /^--(?:manpage|man)$/;                        c=c+'i' -          when /^--(?:texinfo)$/;                            c=c+'I' -          when /^--(?:xhtml)$/;                              c=c+'b' -          when /^--(?:xml-sax)$/;                            c=c+'x' -          when /^--(?:xml-dom)$/;                            c=c+'X' -          when /^--(?:images)$/;                             c=c+'j' -          when /^--(?:hash-digests)$/;                       c=c+'N' -          when /^--(?:po4a|pot?)$/;                          c=c+'P' -          when /^--(?:termsheet)$/;                          c=c+'T' -          when /^--(?:manifest)$/;                           c=c+'y' -          when /^--(?:qrcode)$/;                             c=c+'Q' -          when /^--(?:sqlite)$/;                             c=c+'d' -          when /^--(?:pg|pg?sql|postgresql)$/;               c=c+'D' -          when /^--(?:remote|rsync)$/;                       c=c+'R' -          when /^--(?:scp)$/;                                c=c+'r' -          when /^--(?:source)$/;                             c=c+'s' -          when /^--(?:sisupod|pod)$/;                        c=c+'S' -          when /^--(?:git)$/;                                c=c+'g' -          when /^--(?:urls)$/;                               c=c+'U' -          when /^--(?:zap|delete)$/;                         c=c+'Z' -          when /^--(?:sample-search-form)$/;                 c=c+'F' -          when /^--(?:webserv|webrick)$/;                    c=c+'W' -          when /^--(?:profile)$/;                            c=c+'E' -          when /^--(?:maintenance|keep-processing-files)$/;  c=c+'M' -          when /^--(?:verbose[=-]3)$/;                       c=c+'VM' -          when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/;       c=c+'V' -          when /^--(?:verbose(?:[=-]1)?)$/;                  c=c+'v' -          when /^--(?:verbose[=-]0|quiet|silent)$/;          c=c+'q' +          when /^--(?:color-toggle)$/;                               c=c+'c' +          when /^--(?:color-off)$/;                                  c=c+'k' +          when /^--(?:conf|config|configure|init|initialize|init-site)$/;                        c=c+'CC' +          when /^--(?:dal?|machine|abstraction|abs)$/;               c=c+'m' +          when /^--(?:txt|text|plaintext)$/;                         c=c+'t' +          when /^--(?:html)$/;                                       c=c+'h' +          when /^--(?:html-scroll|html-seg)$/;                       c=c+'H' +            mod << m +          when /^--(?:epub)$/;                                       c=c+'e' +          when /^--(?:od[ft])$/;                                     c=c+'o' +          when /^--(?:pdf)$/;                                        c=c+'p' +          when /^--pdf-(?:a4|a5|b5|legal|letter)$/;                  c=c+'p' +          when /^--pdf-(?:p|l|portrait|landscape)$/;                 c=c+'L' +          when /^--pdf-(?:p(?:ortrait)?|l(?:andscape)?)-(?:a4|letter|a5|b5|legal)$/;     c=c+'L' +          when /^--pdf-(?:a4|letter|a5|b5|legal)-(?:p(?:ortrait)?|l(?:andscape)?)$/;     c=c+'L' +          when /^--(?:concordance|wordmap)$/;                        c=c+'w' +          when /^--(?:manpage|man)$/;                                c=c+'i' +          when /^--(?:texinfo)$/;                                    c=c+'I' +          when /^--(?:xhtml)$/;                                      c=c+'b' +          when /^--(?:xml-sax)$/;                                    c=c+'x' +          when /^--(?:xml-dom)$/;                                    c=c+'X' +          when /^--(?:images)$/;                                     c=c+'j' +          when /^--(?:hash-digests)$/;                               c=c+'N' +          when /^--(?:po4a|pot?)$/;                                  c=c+'P' +          when /^--(?:termsheet)$/;                                  c=c+'T' +          when /^--(?:manifest)$/;                                   c=c+'y' +          when /^--(?:qrcode)$/;                                     c=c+'Q' +          when /^--(?:sqlite)$/;                                     c=c+'d' +          when /^--(?:pg|pg?sql|postgresql)$/;                       c=c+'D' +          when /^--(?:remote|rsync)$/;                               c=c+'R' +          when /^--(?:scp)$/;                                        c=c+'r' +          when /^--(?:source)$/;                                     c=c+'s' +          when /^--(?:sisupod|pod)$/;                                c=c+'S' +          when /^--(?:git)$/;                                        c=c+'g' +          when /^--(?:urls)$/;                                       c=c+'U' +          when /^--(?:zap|delete)$/;                                 c=c+'Z' +          when /^--(?:sample-search-form)$/;                         c=c+'F' +          when /^--(?:webserv|webrick)$/;                            c=c+'W' +          when /^--(?:profile)$/;                                    c=c+'E' +          when /^--(?:maintenance|keep-processing-files)$/;          c=c+'M' +          when /^--(?:verbose[=-]3)$/;                               c=c+'VM' +          when /^--(?:verbose[=-]2|Verbose|VERBOSE)$/;               c=c+'V' +          when /^--(?:verbose(?:[=-]1)?)$/;                          c=c+'v' +          when /^--(?:version)$/;                                    c=c+'v' +          when /^--(?:verbose[=-]0|quiet|silent)$/;                  c=c+'q'            else mod << m                                     #mod only contains command modifiers; commands converted to character            end          end @@ -425,7 +559,7 @@ module SiSU_Commandline        end        extra=''        if cmd !~/[mn]/ -        extra+=if cmd =~/[abegHhIiNOoPpQTtwXxyz]/ \ +        extra+=if cmd =~/[abegHhIiLNOoPpQTtwXxyz]/ \          and cmd !~/[mn]/            'm'                        #% add dal          elsif ((cmd =~/[Dd]/ \ @@ -468,12 +602,11 @@ module SiSU_Commandline          @act=@@act        else          act={} -        act[:license]=(cmd =~/L/ \ -        || mod.inspect =~/"--license/) \ +        act[:license]=(mod.inspect =~/"--license/) \          ? { bool: true, set: :on }          : { bool: false, set: :na }          act[:site_init]=(cmd =~/C/ \ -        || mod.inspect =~/"--init-site"|"--configure"/) \ +        || mod.inspect =~/"--init"|"--initialize"|"--init-site"|"--conf"|"--config"|"--configure"/) \          ? { bool: true, set: :on  }          : { bool: false, set: :na }          act[:rc]=if mod.inspect =~/"--rc=/ @@ -520,7 +653,8 @@ module SiSU_Commandline          : { bool: false, set: :na }          act[:color_state]=if mod.inspect =~/"--color-on"|"--color"/            { bool: true, set: :on } -        elsif mod.inspect =~/"--color-off"/ +        elsif (cmd =~/k/ \ +        || mod.inspect =~/"--color-off"/)            { bool: false, set: :off }          else { bool: true, set: :na } #fix default color          end @@ -584,6 +718,9 @@ module SiSU_Commandline          end          act[:links_to_manifest]=if mod.inspect =~/"--inc-links-to-manifest"|"--inc-manifest-links"/            { bool: true, set: :on } +        elsif mod.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)/ @@ -665,10 +802,20 @@ module SiSU_Commandline          || mod.inspect =~/"--dal"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:html]=(cmd =~/h/ \ -        || mod.inspect =~/"--html"/) \ -        ? { bool: true, set: :on } -        : { bool: false, set: :na } +        act[:html]=if (cmd =~/h/ \ +        || mod.inspect =~/"--html"/) +          act[:html_scroll]={ bool: true, set: :on } +          act[:html_seg]={ bool: true, set: :on } +          { bool: true, set: :on } +        else +          act[:html_scroll]=(mod.inspect =~/"--html-scroll"/) \ +          ? { bool: true, set: :on } +          : { bool: false, set: :na } +          act[:html_seg]=(mod.inspect =~/"--html-seg"/) \ +          ? { bool: true, set: :on } +          : { bool: false, set: :na } +          { bool: false, set: :na } +        end          act[:concordance]=(cmd =~/w/ \          || mod.inspect =~/"--concordance"/) \          ? { bool: true, set: :on } @@ -677,10 +824,65 @@ module SiSU_Commandline          || mod.inspect =~/"--images"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:pdf]=(cmd =~/p/ \ -        || mod.inspect =~/"--pdf"/) \ -        ? { bool: true, set: :on } -        : { bool: false, set: :na } +        if (cmd =~/p/ \ +        || mod.inspect =~/"--pdf"/) +          if mod.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"/ +            act[:pdf]=  { bool: false, set: :na } +            act[:pdf_l]={ bool: true, set: :on } +            act[:pdf_p]={ bool: false, set: :na } +          else +            act[:pdf]=  { bool: true, set: :on } +            act[:pdf_l]={ bool: true, set: :on } +            act[:pdf_p]={ bool: true, set: :on } +          end +        else +          act[:pdf]=       { bool: false, set: :na } +          act[:pdf_p]=     { bool: false, set: :na } +          act[:pdf_l]=     { bool: false, set: :na } +          act[:pdf_a4]=    { bool: false, set: :na } +          act[:pdf_a5]=    { bool: false, set: :na } +          act[:pdf_b5]=    { bool: false, set: :na } +          act[:pdf_letter]={ bool: false, set: :na } +          act[:pdf_legal]= { bool: false, set: :na } +        end +        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 +            { 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 +            { 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*"/ +            { 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*"/ +            { 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*"/ +            { bool: true, set: :on } +          else +            { bool: false, set: :na } +          end +        end          act[:epub]=(cmd =~/e/ \          || mod.inspect =~/"--epub"/) \          ? { bool: true, set: :on } @@ -743,10 +945,6 @@ module SiSU_Commandline          || mod.inspect =~/"--git"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:zap]=(cmd =~/Z/ \ -        || mod.inspect =~/"--zap"|"--delete"/) \ -        ? { bool: true, set: :on } -        : { bool: false, set: :na }          act[:hash_digests]=(cmd =~/N/ \          || mod.inspect =~/"--hash-digests"/) \          ? { bool: true, set: :on } @@ -775,8 +973,8 @@ module SiSU_Commandline          || mod.inspect =~/"--rsync"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na } -        act[:delete_output]=(cmd =~/z/ \ -        || mod.inspect =~/"--delete"|"--zap"/) \ +        act[:zap]=(cmd =~/Z/ \ +        || mod.inspect =~/"--zap"|"--delete"/) \          ? { bool: true, set: :on }          : { bool: false, set: :na }          act[:urls_all]=(cmd =~/U/ \ @@ -813,7 +1011,6 @@ module SiSU_Commandline      def files_mod        files_mod=files        @files_mod=files_mod -      @files_mod      end      def f_pth        @f_pth @@ -831,46 +1028,38 @@ module SiSU_Commandline        @lng_base      end      def fno -      @fno=if @fno \ -      and not @fno.empty? -        @fno -      else -        fns[/(.+?(?:sst|ssm))(?:\.sst)?/,1] -      end +      @fno=(fns.nil? || fns.empty?) \ +      ? '' \ +      : (fns[/(.+?(?:sst|ssm))(?:\.sst)?/,1])      end      def fng -      @fng=if @fng \ -      and not @fng.empty? -        @fng -      else -        fno.gsub(/(?:~(?:#{Px[:lng_lst_rgx]}))?(\.ss[tm])$/,'\1') -      end +      @fng=(fno.nil? || fno.empty?) \ +      ? '' \ +      : (fno.gsub(/(?:~(?:#{Px[:lng_lst_rgx]}))?(\.ss[tm])$/,'\1'))      end      def fns        @fns      end      def fnl -      x=@fns.gsub(/(\S+?)((?:\.ssm)?\.sst)/,"\\1.#{lng}\\2") +      @fns.gsub(/(\S+?)((?:\.ssm)?\.sst)/,"\\1.#{lng}\\2")      end      def what        @what      end      def fnb -      unless fns.empty? -        fns[/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/,1] -      end +      (fns.nil? || fns.empty?) \ +      ? '' \ +      : (fns[/(.+?)\.(?:(?:-|ssm\.)?sst|ssm)$/,1])      end      def fnc -      @fnc=if @fns =~/\.(?:ssm\.sst|ssm)$/ -        fnb + '.ssm.sst' -      else @fns -      end +      @fnc=(@fns =~/\.(?:ssm\.sst|ssm)$/) \ +      ? fnb + '.ssm.sst' +      : @fns      end      def fncb -      @fncb=if @fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/ -        fnb + '.ssm.sst' -      else @fns.gsub(/(?:\~\S{2,3})?(\.sst)$/,'\1') -      end +      @fncb=(@fns =~/(?:\~\S{2,3})?\.(?:ssm\.sst|ssm)$/) \ +      ? fnb + '.ssm.sst' +      : @fns.gsub(/(?:\~\S{2,3})?(\.sst)$/,'\1')      end    end  end diff --git a/lib/sisu/v3/param.rb b/lib/sisu/v5/param.rb index 0d882874..b2ced415 100644 --- a/lib/sisu/v3/param.rb +++ b/lib/sisu/v5/param.rb @@ -50,7 +50,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/v3/param.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/param.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -64,6 +64,7 @@ module SiSU_Param    require 'pstore'    require_relative 'sysenv'                             # sysenv.rb      include SiSU_Env +  require_relative 'param_make'                         # param_make.rb    require_relative 'param_identify_markup'              # param_identify_markup.rb    require_relative 'help'                               # help.rb      include SiSU_Help @@ -163,6 +164,8 @@ module SiSU_Param          self        end      end +    class MdMake < SiSU_Param_Make::MdMake +    end      class Md        def initialize(str,opt,env)          @s,@opt,@env=str,opt,env @@ -609,62 +612,52 @@ module SiSU_Param          end          self        end -      def classify -        a=@s.split(/(\n%\s.+?$|[ ]*)(?:\n[ ]*(?=:)|\Z)/m) +      def identifier +        a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m)          @h=build_hash(a) -        def coverage -          s=@h['coverage'] -          l,n=Db[:col_classify_short],'classify.coverage' +        def oclc +          s=@h['oclc'] +          l,n=Db[:col_library],'identifier.oclc'            validate_length(s,l,n)          end -        def relation -          s=@h['relation'] -          l,n=Db[:col_classify_short],'classify.short' +        def isbn +          s=@h['isbn'] +          l,n=Db[:col_small],'identifier.isbn'            validate_length(s,l,n)          end -        def subject -          s=@h['subject'] -          l,n=Db[:col_classify_txt_short],'classify.subject' +        def pg +          s=@h['pg'] +          l,n=Db[:col_small],'identifier.pg'            validate_length(s,l,n)          end +        self +      end +      def classify +        a=@s.split(/(\n%\s.+?$|[ ]*)(?:\n[ ]*(?=:)|\Z)/m) +        @h=build_hash(a)          def topic_register            s=@h['topic_register']            l,n=Db[:col_info_note],'classify.topic_register'            validate_length(s,l,n)          end -        def type -          s=@h['type'] -          l,n=Db[:col_classify_txt_short],'classify.type' +        def subject +          s=@h['subject'] +          l,n=Db[:col_txt_long],'classify.subject'            validate_length(s,l,n)          end -        def identifier -          s=@h['identifier'] -          l,n=Db[:col_classify_identify],'classify.identifier' +        def keywords +          s=@h['keywords'] +          l,n=Db[:col_txt_long],'classify.keywords'            validate_length(s,l,n)          end          def loc            s=@h['loc'] -          l,n=Db[:col_classify_library],'classify.loc' +          l,n=Db[:col_library],'classify.loc'            validate_length(s,l,n)          end          def dewey            s=@h['dewey'] -          l,n=Db[:col_classify_library],'classify.dewey' -          validate_length(s,l,n) -        end -        def oclc -          s=@h['oclc'] -          l,n=Db[:col_classify_library],'classify.oclc' -          validate_length(s,l,n) -        end -        def pg -          s=@h['pg'] -          l,n=Db[:col_classify_small],'classify.pg' -          validate_length(s,l,n) -        end -        def isbn -          s=@h['isbn'] -          l,n=Db[:col_classify_small],'classify.isbn' +          l,n=Db[:col_library],'classify.dewey'            validate_length(s,l,n)          end          self @@ -741,262 +734,6 @@ module SiSU_Param        #  end        #  self        #end -      def make -        a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m) -        @h=build_hash(a) -        def headings -          lv=[] -          x=@h['headings'] -          x=((x =~/;/) ? (x.split(/;\s*/)) : [ x ]) -          lv[0]=x -          lv1=x[0] ||='1~ '                                                                                     #some arbitrary changes made -          lv[1]=/^#{lv1}/ -          lv2=x[1] ||='2~ ' -          lv[2]=/^#{lv2}/ -          lv3=x[2] ||='3~ ' -          lv[3]=/^#{lv3}/ -          lv4=x[3] ||='4~ ' -          lv[4]=/^#{lv4}/ -          lv5=x[4] ||='5~ ' -          lv[5]=/^#{lv5}/ -          lv6=x[5] ||='6~ ' -          lv[6]=/^#{lv6}/ -          lv -        end -        def num_top -          @h['num_top'] -        end -        def breaks -          pagebreaks=((@h['breaks'] =~/;/) \ -          ? (@h['breaks'].split(/;\s*/)) -          : [ @h['breaks'] ]) -          page_new,page_break=nil,nil -          pagebreaks.each do |x| -            page_new=x[/(:?[\dA-C],?)+/] if x=~/new|clear/ -            page_break=x[/(:?[\dA-C],?)+/] if x =~/break/ -          end -          { page_new: page_new, page_break: page_break } -        end -        def language -          l=if @h['language'] && (@h['language']=~/\S{2,}/) -            ((@h['language'] =~/,/) \ -            ? (@h['language'].split(/,\s*/)) -            : [ @h['language'] ]) -          else [ 'en' ] -          end -        end -        def bold -          m=@h['bold'] -          i=(m=~/\/i$/)? 'i' : '' -          z=if m -            x=m.gsub(/^\/(.+?)\/i?/,'\1'). -              gsub(/\((?:\?:)?/,'(?:')                                         # avoid need to escape use of brackets within regex provided -            rgx='\b(' + x + ')\b' -            y=((i =~/i/) ? (/#{rgx}/i) : (/#{rgx}/)) -            { str: '\b(?:' + x + ')\b', regx: y, i: i } -          else nil -          end -        end -        def italics -          m=@h['italics'] -          i=((m=~/\/i$/) ? 'i' : '') -          z=if m -            x=m.gsub(/^\/(.+?)\/i?/,'\1'). -              gsub(/\((?:\?:)?/,'(?:')                                         # avoid need to escape use of brackets within regex provided -            rgx='\b(' + x + ')\b' -            y=((i =~/i/) ? (/#{rgx}/i) : (/#{rgx}/)) -            { str: '\b(?:' + x + ')\b', regx: y, i: i } -          else nil -          end -        end -        def emphasis -          if @h['emphasis'] =~/bold/                   then 'bold' -          elsif @h['emphasis'] =~/italics?/            then 'italics' -          elsif @h['emphasis'] =~/under(?:line|score)/ then 'underscore' -          else nil -          end -        end -        def substitute -          m=@h['substitute'] -          z=if m -            w=m.scan(/\/(.+?)\/(i?,)\s*'(.+?)'(?:\s+|\s*;\s*|$)/) -            arr_hash=[] -            matches='' -            w.each do |x| -              c=(x[1] =~/[i],/) ? :i : :s -              matches=matches + x[0].gsub(/([${}])/,'\\\\\1') + '|' -              arr_hash << { -                match: x[0].gsub(/([${}])/,'\\\\\1'), -                replace: x[2], -                case_s: c -              } -            end -            matches.chop! -            { match_and_replace: arr_hash, matches: matches } -          else nil -          end -        end -        def plaintext_wrap -          if @h['plaintext_wrap'].to_s =~/\d\d+/ \ -          and @h['plaintext_wrap'].to_i > 19 \ -          and @h['plaintext_wrap'].to_i < 201 -            @h['plaintext_wrap'].to_i -          else nil -          end -        end -        def omit -          m=@h['omit'] -          @m=m ? (m.split(/,\s+/)) : nil -          def list -            @m -          end -          self -        end -        def ocn? -          (omit.list.inspect =~/"ocn"/) \ -          ? :off -          : :na -        end -        def toc? -          (omit.list.inspect =~/"toc"/) \ -          ? :off -          : :na -        end -        def manifest? -          (omit.list.inspect =~/"manifest"/) \ -          ? :off -          : :na -        end -        def links_to_manifest? -          (omit.list.inspect =~/"manifest_links"|"links_to_manifest"/) \ -          ? :off -          : :na -        end -        def metadata? -          (omit.list.inspect =~/"metadata"/) \ -          ? :off -          : :na -        end -        def minitoc? -          (omit.list.inspect =~/"minitoc"/) \ -          ? :off -          : :na -        end -        def html_minitoc? -          (omit.list.inspect =~/"html_minitoc"/) \ -          ? :off -          : :na -        end -        def html_top_band? -          (omit.list.inspect =~/"html_top_band"/) \ -          ? :off -          : :na -        end -        def html_navigation? -          (omit.list.inspect =~/"html_navigation"/) \ -          ? :off -          : :na -        end -        def html_navigation_bar? -          (omit.list.inspect =~/"html_navigation_bar"/) \ -          ? :off -          : :na -        end -        def segsubtoc? -          (omit.list.inspect =~/"segsubtoc"/) \ -          ? :off -          : :na -        end -        def search_form? -          (omit.list.inspect =~/"search_form"/) \ -          ? :off -          : :na -        end -        def html_search_form? -          (omit.list.inspect =~/"html_search_form"/) \ -          ? :off -          : :na -        end -        def html_right_pane? -          (omit.list.inspect =~/"html_right_column"|"html_right_pane"/) \ -          ? :off -          : :na -        end -        def manifest_minitoc? -          (omit.list.inspect =~/"manifest_minitoc"/) \ -          ? :off -          : :na -        end -        def texpdf_font -          def main -            @h['texpdf_font'] \ -            && (@h['texpdf_font']=~/\S{3,}/) \ -            ? @h['texpdf_font'] -            : @env.font.texpdf.main -          end -          def sans                                                             # not used -            @h['texpdf_font_sans'] \ -            && (@h['texpdf_font_sans']=~/\S{3,}/) \ -            ? @h['texpdf_font_sans'] -            : @env.font.texpdf.sans -          end -          def serif                                                            # not used -            @h['texpdf_font_serif'] \ -            && (@h['texpdf_font_serif']=~/\S{3,}/) \ -            ? @h['texpdf_font_serif'] -            : @env.font.texpdf.serif -          end -          def mono -            @h['texpdf_font_mono'] \ -            && (@h['texpdf_font_mono']=~/\S{3,}/) \ -            ? @h['texpdf_font_mono'] -            : @env.font.texpdf.mono -          end -          self -        end -        def skin -          @h['skin'] -        end -        def promo -          @h['promo'] -        end -        def ad -          @h['ad'] -        end -        def manpage -          manpage={} -          if @h['manpage'] -            if @h['manpage'] =~/;/m -              man=@h['manpage'].split(/;/m) -              man.each do |x| -                m=(x=~/=/m) ? x.split(/=/m) : nil -                if m -                  manpage[m[0].strip] = m[1].split(/ \. /) -                end -              end -            end -          end -          if manpage['name'] -            manpage['name']=manpage['name'].join("\n.br\n"). -              gsub(/(-)/m,"\\\\\\1"). -              gsub(/\A/,"\n.br\n.SH NAME\n.br\n") -          else -            manpage['name']='man page "name/whatis" information not provided, set in header @man: name=[whatis information]' -          end -          if manpage['synopsis'] -            manpage['synopsis']=manpage['synopsis'].join("\n\n.br\n"). -              gsub(/(-)/m,"\\\\\\1"). -              gsub(/\A/,"\n.br\n.SH SYNOPSIS\n.br\n") -          else -            manpage['synopsis']='' -          end -          unless manpage['section'] -            manpage['section']=1 -          end -          manpage -        end -        self -      end        def current_publisher          @s        end @@ -1035,23 +772,53 @@ module SiSU_Param          end          self        end -      def links -        a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m) -      end        def notes          a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m)          @h=build_hash(a) +        def description +          s=@h['description'] +          l,n=Db[:col_info_note],'notes.description' +          validate_length(s,l,n) +        end          def abstract -          @h['abstract'] +          s=@h['abstract'] +          l,n=Db[:col_info_note],'notes.abstract' +          validate_length(s,l,n)          end          def comment -          @h['comment'] +          s=@h['comment'] +          l,n=Db[:col_info_note],'notes.comment' +          validate_length(s,l,n)          end -        def description -          @h['description'] +        def coverage +          s=@h['coverage'] +          l,n=Db[:col_info_note],'notes.coverage' +          validate_length(s,l,n) +        end +        def relation +          s=@h['relation'] +          l,n=Db[:col_info_note],'notes.relation' +          validate_length(s,l,n) +        end +        def source +          s=@h['source'] +          l,n=Db[:col_txt_long],'notes.source' +          validate_length(s,l,n)          end          def history -          @h['history'] +          s=@h['history'] +          l,n=Db[:col_txt_long],'notes.history' +          validate_length(s,l,n) +        end +        def type +          s=@h['type'] +          l,n=Db[:col_txt_long],'notes.relation' +          validate_length(s,l,n) +        end +        def format +          s=@h['format'] +          l,n=Db[:col_txt_short],'notes.format' +          validate_length(s,l,n)          end          def prefix            @h['prefix'] @@ -1063,9 +830,9 @@ module SiSU_Param        @doc={ lv: [] }        @doc[:fns],@doc[:fnb],@doc[:scr_suffix]='','',''        @@publisher='SiSU scribe' -      attr_accessor :make,:env,:path,:file,:fn,:fns,:fno,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:site_skin,:sisu,:sisu_version,:ruby_version,:title,:subtitle,:full_title,:html_title,:subtitle_tex,:creator,:classify,:author_home,:author,:author_title,:author_nationality,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:subject,:description,:publisher,:current_publisher,:contributor,:date,:date_created,:date_issued,:date_available,:date_valid,:date_modified,:date_translated,:date_added_to_site,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:type,:format,:identifier,:source,:language,:language_original,:relation,:coverage,:rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:lvs,:pagenew,:pagebreak,:num_top,:toc_lev_limit,:flag_endnotes,:flag_auto_endnotes,:flag_separate_endnotes,:flag_separate_endnotes_make,:markup,:markup_instruction,:markup_version,:markup_declared,:flag_tables,:vocabulary,:doc_skin,:doc_css,:yaml,:lnk,:links,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:filesize,:user,:home,:hostname,:pwd,:firstseg,:programs,:author_copymark,:i18n,:lang,:lang_code_insert,:en,:notes,:dgst,:dgst_skin,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original,:writing_focus,:audio,:daisy +      attr_accessor :make,:env,:path,:file,:fn,:fns,:fno,:fnb,:fnn,:fnt,:fnl,:flv,:fnz,:fnstex,:ocn,:sfx_src,:pdf,:file_type,:dir_out,:dir_tex,:dir_lout,:txt_path,:sisu,:sisu_version,:ruby_version,:title,:subtitle,:full_title,:html_title,:subtitle_tex,:creator,:classify,:author_home,:author,:author_title,:author_nationality,:authors,:authorship,:translator,:illustrator,:prepared_by,:digitized_by,:subject,:description,:publisher,:current_publisher,:contributor,:date,:date_created,:date_issued,:date_available,:date_valid,:date_modified,:date_translated,:date_added_to_site,:date_scheme,:date_created_scheme,:date_issued_scheme,:date_available_scheme,:date_valid_scheme,:date_modified_scheme,:type,:format,:identifier,:source,:language,:language_original,:relation,:coverage,:rights,:keywords,:comments,:abstract,:cls_loc,:cls_dewey,:cls_pg,:cls_isbn,:papersize,:papersize_array,:toc,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:lvs,:pagenew,:pagebreak,:pageline,:num_top,:bold_match_list,:italics_match_list,:substitution_match_list,:emphasis_set_to,:toc_lev_limit,:flag_endnotes,:flag_auto_endnotes,:flag_separate_endnotes,:flag_separate_endnotes_make,:markup,:markup_instruction,:markup_version,:markup_declared,:flag_tables,:vocabulary,:doc_css,:yaml,:lnk,:links,:prefix_a,:prefix_b,:suffix,:information,:contact,:icon,:image,:ad_url,:ad_png,:ad_alt,:ad_began,:flag_promo,:promo,:ad_home,:stmp,:stmpd,:sc_filename,:sc_number,:sc_date,:sc_time,:sc_info,:yamladdr,:locale,:wc_lines,:wc_words,:wc_bytes,:file_encoding,:filesize,:user,:home,:hostname,:pwd,:firstseg,:programs,:author_copymark,:i18n,:lang,:lang_code_insert,:en,:notes,:dgst,:generated,:tags,:tag_array,:concord_make,:seg_names,:seg_autoname_safe,:set_header_title,:set_heading_top,:set_heading_seg,:heading_seg_first,:heading_seg_first_flag,:base_program,:ec,:opt,:sem_tag,:book_idx,:topic_register,:topic_register_array,:original,:writing_focus,:audio,:daisy,:home_button_image,:home_button_links,:footer_links,:cover_image,:man_section        def initialize(fns_array,opt) -        @env=@path,@file=@fn=@fns=@fno=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@make=@flag_endnotes=@flag_auto_endnotes=@flag_separate_endnotes=@flag_separate_endnotes_make=@site_skin=@sisu=@sisu_version=@ruby_version=@title=@subtitle=@full_title=@html_title=@subtitle_tex=@creator=@classify=@author_home=@author=@author_title=@author_nationality=@translator=@illustrator=@prepared_by=@digitized_by=@subject=@description=@publisher=@current_publisher=@contributor=@date=@date_created=@date_issued=@date_available=@date_valid=@date_modified=@date_translated=@date_added_to_site=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@type=@format=@identifier=@source=@language=@language_original=@relation=@coverage=@rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@num_top=@toc_lev_limit=@flag_tables=@vocabulary=@doc_skin=@doc_css=@yaml=@lnk=@links=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@filesize=@firstseg=@programs=@author_copymark=@i18n=@lang=@lang_code_insert=@en=@notes=@dgst=@dgst_skin=@generated=@heading_seg_first=@base_program=@topic_register=@original=@writing_focus=@audio=nil +        @env=@path,@file=@fn=@fns=@fno=@fnb=@fnn=@fnt=@fnl=@flv=@fnz=@fnstex=@ocn=@sfx_src=@pdf=@file_type=@dir_out=@dir_tex=@dir_lout=@txt_path=@make=@flag_endnotes=@flag_auto_endnotes=@flag_separate_endnotes=@flag_separate_endnotes_make=@sisu=@sisu_version=@ruby_version=@title=@subtitle=@full_title=@html_title=@subtitle_tex=@creator=@classify=@author_home=@author=@author_title=@author_nationality=@translator=@illustrator=@prepared_by=@digitized_by=@subject=@description=@publisher=@current_publisher=@contributor=@date=@date_created=@date_issued=@date_available=@date_valid=@date_modified=@date_translated=@date_added_to_site=@date_scheme=@date_created_scheme=@date_issued_scheme=@date_available_scheme=@date_valid_scheme=@date_modified_scheme=@type=@format=@identifier=@source=@language=@language_original=@relation=@coverage=@rights=@keywords=@comments=@abstract=@cls_loc=@cls_dewey=@cls_pg=@cls_isbn=@papersize=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@pagenew=@pagebreak=@pageline=@num_top=@bold_match_list=@italics_match_list=@substitution_match_list=@emphasis_set_to=@toc_lev_limit=@flag_tables=@vocabulary=@doc_css=@yaml=@lnk=@links=@prefix_a=@prefix_b=@suffix=@information=@contact=@icon=@ad_url=@ad_png=@ad_alt=@ad_began=@promo=@ad_home=@stmp=@stmpd=@sc_filename=@sc_number=@sc_date=@sc_time=@sc_info=@yamladdr=@locale=@wc_lines=@wc_words=@wc_bytes=@file_encoding=@filesize=@firstseg=@programs=@author_copymark=@i18n=@lang=@lang_code_insert=@en=@notes=@dgst=@generated=@heading_seg_first=@base_program=@topic_register=@original=@writing_focus=@audio=@home_button_image=@home_button_links=@cover_image=@man_section=nil          @data,@path,@fns,@fno,@opt=fns_array,opt.pth,opt.fns,opt.fno,opt #@data used as data          @flag_tables,@set_header_title,@set_heading_top,@set_heading_seg,@heading_seg_first_flag,@flag_promo,@book_idx=false,false,false,false,false,false,false          @seg_autoname_safe=true @@ -1076,6 +843,7 @@ module SiSU_Param          @flv,@lang,@seg_names,@tags,@tag_array,@tag_a,@ec[:image],@ec[:audio],@ec[:multimedia]=Array.new(9){[]}          @authors,@topic_register_array,@papersize_array=[],[],[]          @lvs=[nil,0,0,0,0,0,0] +        @emphasis_set_to='bold'          @lang_code_insert=if @opt.act[:output_by][:set]==:language            ''          elsif @opt.act[:output_by][:set]==:filetype \ @@ -1086,6 +854,7 @@ module SiSU_Param          else            ".#{@opt.lng}"          end +        @footer_links= { left: { say: '', url: '' }, center: { say: '', url: '' } }          @rgx_image=/(?:^|[^_\\])\{(?:\s*|\~\^\s+)(\S+?\.(?:png|jpg|gif)\b)/m          @rgx_audio=/\{\s*(\S+?\.(?:mp3|ogg))/          @rgx_mm=/\{\s*(\S+?\.(?:ogg|mpeg))/ #expand and distinguish ogg @@ -1097,18 +866,39 @@ module SiSU_Param            end          ensure          end -      end -      #protected -      def determine_papersize(l) -        l=case l -        when /eu|europe|uk/i;           'A4'                 #European default, SiSU default -        when /(?:us-)?legal|legal/i;    'US_legal'           #U.S. alternative -        when /(?:us-)?letter|u.s.|us/i; 'US_letter'          #U.S. default -        when /book_a5|a5/i;             'book_a5' -        when /book_b5|b5|book/i;        'book_b5'            #book default - larger -        else                            'A4' +        @header_make_links_append=:no +        common_makes=(defined? @opt.make_instructions_pod) \ +        && @opt.make_instructions_pod !=nil \ +        && @opt.make_instructions_pod[:makeset]==true \ +        ? @opt.make_instructions_pod +        : @opt.make_instructions +        if common_makes[:makeset] +          @pagenew=common_makes[:pagenew] +          @pagebreak=common_makes[:pagebreak] +          @pageline=common_makes[:pageline] +          @toc=common_makes[:toc] +          @lv1=common_makes[:lv1] +          @lv2=common_makes[:lv2] +          @lv3=common_makes[:lv3] +          @lv4=common_makes[:lv4] +          @lv5=common_makes[:lv5] +          @lv6=common_makes[:lv6] +          @num_top=common_makes[:num_top] +          @i18n=common_makes[:i18n] +          @man_section=common_makes[:man_section] +          @emphasis_set_to=common_makes[:emphasis_set_to] +          @bold_match_list=common_makes[:bold_match_list] +          @italics_match_list=common_makes[:italics_match_list] +          @substitution_match_list=common_makes[:substitution_match_list] +          @footer_links=common_makes[:footer_links] +          @home_button_links=common_makes[:home_button_links] +          @home_button_image=common_makes[:home_button_image] +          @cover_image=common_makes[:cover_image] +          @lnk=@links=common_makes[:links] +          @header_make_links_append=common_makes[:links_append]          end        end +      #protected        def extract          @user,@home,@hostname,@pwd=ENV['USER'],ENV['HOME'],ENV['HOSTNAME'],ENV['PWD']          @programs,@wc,@language,@language_original={},{},{},{} @@ -1234,61 +1024,76 @@ module SiSU_Param                @rights=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).rights              when /^@classify:(.+)/m; classify=$1                               #% * header metadata - classify                @classify=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).classify +            when /^@identifier:(.+)/m; identify=$1                               #% * header metadata - identifier +              @identifier=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).identifier              when /^@original:(.+)/m                                            #% * header metadata - original (document)                @original=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).original                @source=@original.source              when /^@notes?:\s(.+)\Z/m                                          #% * header metadata - notes                @notes=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).notes              when /^@links:\s+(.+?)\Z/m                                         #% * header metadata - links -              doc_links=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).links -              a_idx=0 -              @links=[] -              doc_links.each do |doc_link| -                if doc_link=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ -                  @links[a_idx]={} -                  @links[a_idx][:say],@links[a_idx][:url]=/\{\s*(.+?)\s*\}((?:(?:https?|file|ftp):\/|\.\.)\/\S+)/im.match(doc_link)[1,2] -                  a_idx +=1 -                end +              links=SiSU_Param::Parameters::MdMake.new($1.strip,@opt,@env).make_links.links +              @lnk=@links=if @header_make_links_append == :yes +                (links) \ +                  ? (links + @links) +                  : @links +              else +                (links) \ +                  ? (links) +                  : @links                end -              @lnk=@links              when /^@make:(.+)/m                                                #% * header processing - make -              @make=SiSU_Param::Parameters::Md.new($1.strip,@opt,@env).make -              if defined? @make.breaks \ -              and @make.breaks[:page_new]                  #clearpage -                @pagenew=@make.breaks[:page_new] -              end -              if defined? @make.breaks \ -              and @make.breaks[:page_break]                #newpage -                @pagebreak=@make.breaks[:page_break] -              end -              if defined? @make.headings \ -              and @make.headings -                @toc=@make.headings[0] -                @lv1=@make.headings[1] -                @lv2=@make.headings[2] -                @lv3=@make.headings[3] -                @lv4=@make.headings[4] -                @lv5=@make.headings[5] -                @lv6=@make.headings[6] -              end -              if defined? @make.num_top \ -              and @make.num_top -                @num_top=@make.num_top # remove @num_top -              end -              if defined? @make.language \ -              and @make.language[0] -                @i18n=@make.language -              end -              if defined? @make.skin \ -              and @make.skin -                @doc_skin=@make.skin -              end -              if defined? @make.manpage \ -              and @make.manpage -                @man_section=(defined? @make.manpage.section) \ -                ? @make.manpage.section -                : 1 -              end +              @make=SiSU_Param::Parameters::MdMake.new($1.strip,@opt,@env).make +              makes=SiSU_Param_Make::MakeHead.new(@make).make_instruct +              @pagenew=(makes[:pagenew]) \ +                ? (makes[:pagenew]) \ +                : @pagenew +              @pagebreak=(makes[:pagebreak]) \ +                ? (makes[:pagebreak]) \ +                : @pagebreak +              @pageline=(makes[:pageline]) \ +                ? (makes[:pageline]) \ +                : @pageline +              @toc=(makes[:toc]) ? (makes[:toc]) : @toc +              @lv1=(makes[:lv1]) ? (makes[:lv1]) : @lv1 +              @lv2=(makes[:lv2]) ? (makes[:lv2]) : @lv2 +              @lv3=(makes[:lv3]) ? (makes[:lv3]) : @lv3 +              @lv4=(makes[:lv4]) ? (makes[:lv4]) : @lv4 +              @lv5=(makes[:lv5]) ? (makes[:lv5]) : @lv5 +              @lv6=(makes[:lv6]) ? (makes[:lv6]) : @lv6 +              @num_top=(makes[:num_top]) \ +                ? (makes[:num_top]) \ +                : @num_top +              @substitution_match_list=(makes[:substitution_match_list]) \ +                ? (makes[:substitution_match_list]) \ +                : @substitution_match_list +              @bold_match_list=(makes[:bold_match_list]) \ +                ? (makes[:bold_match_list]) \ +                : @bold_match_list +              @italics_match_list=(makes[:italics_match_list]) \ +                ? (makes[:italics_match_list]) \ +                : @italics_match_list +              @emphasis_set_to=(makes[:emphasis_set_to]) \ +                ? (makes[:emphasis_set_to]) \ +                : @emphasis_set_to +              @i18n=(makes[:i18n]) \ +                ? (makes[:i18n]) \ +                : @i18n +              @man_section=(makes[:man_section]) \ +                ? (makes[:man_section]) \ +                : @man_section +              @footer_links=(makes[:footer_links]) \ +                ? (makes[:footer_links]) \ +                : @footer_links +              @home_button_links=(makes[:home_button_links]) \ +                ? (makes[:home_button_links]) \ +                : @home_button_links +              @home_button_image=(makes[:home_button_image]) \ +                ? (makes[:home_button_image]) \ +                : @home_button_image +              @cover_image=(makes[:cover_image]) \ +                ? (makes[:cover_image]) \ +                : @cover_image              end              @lv1 ||=/^1~/              @lv2 ||=/^2~/ @@ -1349,8 +1154,13 @@ module SiSU_Param                  tf="@title: #{tf}"                  @title=SiSU_Param::Parameters::Md.new(tf.strip,@opt,@env).title                end -              @html_title=@title.full.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'') -              SiSU_Screen::Ansi.new(@opt.cmd,'Parameters',@html_title).txt_grey if @opt.cmd =~/v/ +              creator=(@creator.is_a?(SiSU_Param::Parameters::Md) \ +              && defined? @creator.author \ +              && @creator.author.is_a?(String)) \ +              ? " #{@creator.author}" +              : '' +              title=%{"#{@title.full.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'')}",} +              SiSU_Screen::Ansi.new(@opt.cmd,'Parameters',%{#{title}#{creator}}).txt_grey if @opt.cmd =~/v/              end              if not @book_idx \              and para =~/^=\{(.+?)\}\s*$/ @@ -1412,7 +1222,19 @@ module SiSU_Param            if @opt.cmd =~/[VM]/              SiSU_Screen::Ansi.new(@opt.cmd,'@make:','header absent').warn            end -          @make=SiSU_Param::Parameters::Md.new('@make: ',@opt,@env).make +          @make=SiSU_Param::Parameters::MdMake.new('@make: ',@opt,@env).make +        end +        if @cover_image \ +        and @cover_image.is_a?(Hash) \ +        and (@cover_image[:cover] =~@rgx_image \ +          or @cover_image[:cover] =~/\S+?.(?:jpg|png|gif)/) +          @ec[:image] << @cover_image[:cover] +        end +        if @home_button_image \ +        and @home_button_image.is_a?(Hash) \ +        and (@home_button_image =~@rgx_image \ +          or @home_button_image =~/\S+?\.(?:jpg|png|gif)/) +          @ec[:image] << @home_button_image          end          if @ec[:image].length > 0            @ec[:image]=@ec[:image].flatten.uniq @@ -1455,7 +1277,7 @@ module SiSU_Param          end          if @markup_version.determined >= 0.38 #convert values in headers to internal representation            translated=[] -          translate_list=[@pagenew,@pagebreak,@num_top,@toc_lev_limit] +          translate_list=[@pagenew,@pagebreak,@pageline,@num_top,@toc_lev_limit]            translate_list.each do |t|              translate=t.to_s if t              translated << if translate @@ -1478,35 +1300,40 @@ module SiSU_Param              else nil              end            end -          @pagenew,@pagebreak,@num_top,@toc_lev_limit=translated +          @pagenew,@pagebreak,@pageline,@num_top,@toc_lev_limit=translated            @markup=@markup.gsub(/page_new\s*=\s*([\dA-C])/,"page_new=#{@pagenew}").              gsub(/page_break\s*=\s*([\dA-C])/,"page_break=#{@pagebreak}"). +            gsub(/page_line\s*=\s*([\dA-C])/,"page_line=#{@pageline}").              gsub(/num_top\s*=\s*([\dA-C])/,"num_top=#{@num_top}").              gsub(/toc_lev_limit\s*=\s*([\dA-C])/,"toc_lev_limit=#{@toc_lev_limit}")          end -        if @opt.mod.inspect =~/--papersize[=-]\S+|--pdf[=-]\S+/ \ -        or  @opt.mod.inspect =~/--(?:a4|letter|legal|book|a5|b5)\b/i #command line config/header override -          @papersize=determine_papersize(@opt.mod.inspect) -        end -        @papersize_array=@papersize.scan(/(?:a4|letter|legal|book|a5|b5)/i) +        papersize_array_rc=@papersize.downcase.scan(/(?:a4|letter|legal|book|a5|b5)/) +        papersize_array_opt=[ +          ((@opt.act[:pdf_a4][:set]==:on)     ? 'a4'     : ''), +          ((@opt.act[:pdf_a5][:set]==:on)     ? 'a5'     : ''), +          ((@opt.act[:pdf_b5][:set]==:on)     ? 'b5'     : ''), +          ((@opt.act[:pdf_letter][:set]==:on) ? 'letter' : ''), +          ((@opt.act[:pdf_legal][:set]==:on)  ? 'legal'  : ''), +        ] - [""] +        @papersize_array=(papersize_array_opt.length > 0) \ +        ? papersize_array_opt +        : papersize_array_rc          fn=@opt.fno #decide what to do a filesize on .ssm tells very little about actual document size          @filesize=(File.size(fn)).to_s -        if @sys.openssl !=false -          skin=@doc_skin \ -          ? (SiSU_Env::InfoSkin.new(@opt,@doc_skin).select) -          : SiSU_Env::InfoSkin.new(@opt).select -          @dgst,@dgst_skin=[],[] +        if @sys.openssl !=false \ +        and FileTest.file?(@env.source_file_with_path) +          @dgst=[]            if @env.digest.type =~/sha256/              dgst=@sys.sha256(@env.source_file_with_path)              @dgst=dgst[1].length==64 ? dgst : nil              puts 'check document (sha256) digest' if not @dgst -            @dgst_skin=skin ? (@sys.sha256(skin)) : nil            else              dgst=@sys.md5(@env.source_file_with_path)              @dgst=dgst[1].length==32 ? dgst : nil              puts 'check document (md5) digest' if not @dgst -            @dgst_skin=skin ? (@sys.md5(skin)) : nil            end +        elsif not FileTest.file?(@env.source_file_with_path) +          #puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia)          end          @publisher ||= "#{@@publisher} (this copy)"          fn_set_lang=SiSU_Env::StandardiseLanguage.new(@opt.lng).language @@ -1521,19 +1348,8 @@ module SiSU_Param            @language[:name]=fn_set_lang[:n]          end          @fnl=@env.i18n.lang_filename(fn_set_lang[:c]) -#fix -#       @flv.each do |l| -#         lang=SiSU_Env::StandardiseLanguage.new.file_to_language(l) -#         c={ a: '', b: '', c: '' } -#         if @fnl[:pre] =~/\S/     then c[:a]="#{lang[:c]}." -#         elsif @fnl[:mid] =~/\S/  then c[:b]=".#{lang[:c]}" -#         elsif @fnl[:post] =~/\S/ then c[:c]=".#{lang[:c]}" -#         end -#         @lang << [lang[:n],"#{c[:a]}sisu_manifest#{c[:b]}.html#{c[:c]}"] -#       end if @flv          @lang=@lang.uniq          @fn=SiSU_Env::EnvCall.new(@fns).lang(fn_set_lang[:c]) -        @identifier="#{@env.url.root}/#{@fnb}/#{@fn[:toc]}" #DC note constructed dc identifier          if @en[:note] > 0 \          and @en[:sum] > 0            if @en[:sum] > 0 @@ -1628,9 +1444,6 @@ module SiSU_Param          @lv4 ||=/^4~/          @lv5 ||=/^5~/          @lv6 ||=/^6~/ -        if @doc_skin -          SiSU_Screen::Ansi.new(@opt.cmd,"doc_skin <- #{@doc_skin}").txt_grey if @opt.cmd =~/v/ -        end          @data=nil #else whole file's contents are stored in md pstore & is not required to be... big waste actually          @file=SiSU_Env::FileOp.new(self) #watch          Store.new(self,@env).store                                             #% pstore diff --git a/lib/sisu/v3/param_identify_markup.rb b/lib/sisu/v5/param_identify_markup.rb index 6449759b..148c73d5 100644 --- a/lib/sisu/v3/param_identify_markup.rb +++ b/lib/sisu/v5/param_identify_markup.rb @@ -50,7 +50,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/v3/param_identify_markup.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/param_identify_markup.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v5/param_make.rb b/lib/sisu/v5/param_make.rb new file mode 100644 index 00000000..24a4dbb7 --- /dev/null +++ b/lib/sisu/v5/param_make.rb @@ -0,0 +1,646 @@ +# 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 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 Lic/home/ralph/live-manual/build/manual/manifest/live-manual.ca.htmlense 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/param_make.rb;hb=HEAD> + + * Ralph Amissah +   <ralph@amissah.com> +   <ralph.amissah@gmail.com> + + ** Description: make parameters extracted for program use + +=end + +module SiSU_Param_Make +  class MdMake +    def initialize(str,opt,env) +      @s,@opt,@env=str,opt,env +    end +    def validate_length(s,l,n) +      #s=(s.length <= l) ? s : nil +      s=if s.is_a?(String) \ +      and s.length <= l +        s +      elsif s.is_a?(NilClass) +        nil +      elsif s.class !=String +        STDERR.puts "#{n} is #{s.class}: programming error, String expected #{__FILE__}:#{__LINE__}" +        s +      else +        SiSU_Screen::Ansi.new('v',"*WARN* #{n} length #{s.length} exceeds set db field length #{l}, metadata dropped",@opt.fns).warn unless @opt.cmd =~/q/ +        nil +      end +    end +    def name_format(name) +      if name +        name=name.strip +        @name_a_h=[] +        authors=name.scan(/[^;]+/) +        authors.each_with_index do |a,i| +          b=((a =~/\s*\|\s*/) ? (a.split(/\|/)) : [a]) +          if b[0] =~/"(.+?)"/ +            @name_a_h << { the: $1 } +          else +            x=b[0].scan(/[^,]+/) +            if x.length==1 +              @name_a_h << { the: x[0].strip } +            elsif x.length==2 +              @name_a_h << { the: x[0].strip, others: x[1].strip } +            else #p x.length +            end +          end +          b.delete_at(0) +          b.each do |d| +            k,c=nil +            k,c=/^(\S+)\s+(.*)/.match(d)[1,2] if d +            @name_a_h[i][:hon]=c.strip if k=='hon' +            @name_a_h[i][:affiliation]=c.strip if k=='affiliation' +            @name_a_h[i][:nationality]=c.strip if k=='nationality' +          end +        end +        l=@name_a_h.length +        name_str='' +        @name_a_h.each_with_index do |a,i| +          name_str += if a[:others] +            z=(((l - i) > 1) ? ', ' : '') +            "#{a[:others].strip} #{a[:the].strip}" + z +          else +            z=(((l - i) > 2) ? ', ' : '') +            "#{a[:the].strip}" + z +          end +        end +        { name_a_h: @name_a_h, name_str: name_str } +      else nil +      end +    end +    def build_hash(arr) +      @h={} +      arr.each_with_index do |x,i| +        a,b=nil,nil +        if x =~/^%[:\s]/ #ignore comment +        elsif x =~/:(\S+?):\s+(.+)/ +          a,b=/:(\S+?):\s+(.+)\Z/m.match(x)[1,2] +        elsif i == 0 +          a='main' +          b=x +        else +        end +        @h[a]=b +      end +      @h +    end +    def make +      a=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m) +      @h=build_hash(a) +      def headings +        lv=[] +        x=@h['headings'] +        x=((x =~/;/) ? (x.split(/;\s*/)) : [ x ]) +        lv[0]=x +        lv1=x[0] ||='1~ '                                                                                     #some arbitrary changes made +        lv[1]=/^#{lv1}/ +        lv2=x[1] ||='2~ ' +        lv[2]=/^#{lv2}/ +        lv3=x[2] ||='3~ ' +        lv[3]=/^#{lv3}/ +        lv4=x[3] ||='4~ ' +        lv[4]=/^#{lv4}/ +        lv5=x[4] ||='5~ ' +        lv[5]=/^#{lv5}/ +        lv6=x[5] ||='6~ ' +        lv[6]=/^#{lv6}/ +        lv +      end +      def num_top +        @h['num_top'] +      end +      def breaks +        pagebreaks=((@h['breaks'] =~/;/) \ +        ? (@h['breaks'].split(/;\s*/)) +        : [ @h['breaks'] ]) +        page_new,page_break,page_line=nil,nil,nil +        pagebreaks.each do |x| +          page_new=x[/(:?[\dA-C],?)+/] if x=~/new|clear/ +          page_break=x[/(:?[\dA-C],?)+/] if x =~/break/ +          page_line=x[/(:?[\dA-C],?)+/] if x =~/line/ +        end +        { page_new: page_new, page_break: page_break, page_line: page_line } +      end +      def language +        l=if @h['language'] && (@h['language']=~/\S{2,}/) +          ((@h['language'] =~/,/) \ +          ? (@h['language'].split(/,\s*/)) +          : [ @h['language'] ]) +        else [ 'en' ] +        end +      end +      def bold +        m=@h['bold'] +        i=(m=~/\/i$/)? 'i' : '' +        z=if m +          x=m.gsub(/^\/(.+?)\/i?/,'\1'). +            gsub(/\((?:\?:)?/,'(?:')                                         # avoid need to escape use of brackets within regex provided +          rgx='\b(' + x + ')\b' +          y=((i =~/i/) ? (/#{rgx}/i) : (/#{rgx}/)) +          { str: '\b(?:' + x + ')\b', regx: y, i: i } +        else nil +        end +      end +      def italics +        m=@h['italics'] +        i=((m=~/\/i$/) ? 'i' : '') +        z=if m +          x=m.gsub(/^\/(.+?)\/i?/,'\1'). +            gsub(/\((?:\?:)?/,'(?:')                                         # avoid need to escape use of brackets within regex provided +          rgx='\b(' + x + ')\b' +          y=((i =~/i/) ? (/#{rgx}/i) : (/#{rgx}/)) +          { str: '\b(?:' + x + ')\b', regx: y, i: i } +        else nil +        end +      end +      def emphasis +        if @h['emphasis'] =~/bold/                   then 'bold' +        elsif @h['emphasis'] =~/italics?/            then 'italics' +        elsif @h['emphasis'] =~/under(?:line|score)/ then 'underscore' +        else nil +        end +      end +      def substitute +        m=@h['substitute'] +        z=if m +          w=m.scan(/\/(.+?)\/(i?,)\s*'(.+?)'(?:\s+|\s*;\s*|$)/) +          arr_hash=[] +          matches='' +          w.each do |x| +            c=(x[1] =~/[i],/) ? :i : :s +            matches=matches + x[0].gsub(/([${}])/,'\\\\\1') + '|' +            arr_hash << { +              match: x[0].gsub(/([${}])/,'\\\\\1'), +              replace: x[2], +              case_s: c +            } +          end +          matches.chop! +          { match_and_replace: arr_hash, matches: matches } +        else nil +        end +      end +      def plaintext_wrap +        if @h['plaintext_wrap'].to_s =~/\d\d+/ \ +        and @h['plaintext_wrap'].to_i > 19 \ +        and @h['plaintext_wrap'].to_i < 201 +          @h['plaintext_wrap'].to_i +        else nil +        end +      end +      def omit +        m=@h['omit'] +        @m=m ? (m.split(/,\s+/)) : nil +        def list +          @m +        end +        self +      end +      def ocn? +        (omit.list.inspect =~/"ocn"/) \ +        ? :off +        : :na +      end +      def toc? +        (omit.list.inspect =~/"toc"/) \ +        ? :off +        : :na +      end +      def manifest? +        (omit.list.inspect =~/"manifest"/) \ +        ? :off +        : :na +      end +      def links_to_manifest? +        (omit.list.inspect =~/"manifest_links"|"links_to_manifest"/) \ +        ? :off +        : :na +      end +      def metadata? +        (omit.list.inspect =~/"metadata"/) \ +        ? :off +        : :na +      end +      def minitoc? +        (omit.list.inspect =~/"minitoc"/) \ +        ? :off +        : :na +      end +      def html_minitoc? +        (omit.list.inspect =~/"html_minitoc"/) \ +        ? :off +        : :na +      end +      def html_top_band? +        (omit.list.inspect =~/"html_top_band"/) \ +        ? :off +        : :na +      end +      def html_navigation? +        (omit.list.inspect =~/"html_navigation"/) \ +        ? :off +        : :na +      end +      def html_navigation_bar? +        (omit.list.inspect =~/"html_navigation_bar"/) \ +        ? :off +        : :na +      end +      def segsubtoc? +        (omit.list.inspect =~/"segsubtoc"/) \ +        ? :off +        : :na +      end +      def search_form? +        (omit.list.inspect =~/"search_form"/) \ +        ? :off +        : :na +      end +      def html_search_form? +        (omit.list.inspect =~/"html_search_form"/) \ +        ? :off +        : :na +      end +      def html_right_pane? +        (omit.list.inspect =~/"html_right_column"|"html_right_pane"/) \ +        ? :off +        : :na +      end +      def manifest_minitoc? +        (omit.list.inspect =~/"manifest_minitoc"/) \ +        ? :off +        : :na +      end +      def cover_image? +        (omit.list.inspect =~/"cover_image"/) \ +        ? :off +        : :na +      end +      def home_button_image? +        (omit.list.inspect =~/"home_button_image"/) \ +        ? :off +        : :na +      end +      def texpdf_font +        def main +          @h['texpdf_font'] \ +          && (@h['texpdf_font']=~/\S{3,}/) \ +          ? @h['texpdf_font'] +          : @env.font.texpdf.main +        end +        def sans                                                             # not used +          @h['texpdf_font_sans'] \ +          && (@h['texpdf_font_sans']=~/\S{3,}/) \ +          ? @h['texpdf_font_sans'] +          : @env.font.texpdf.sans +        end +        def serif                                                            # not used +          @h['texpdf_font_serif'] \ +          && (@h['texpdf_font_serif']=~/\S{3,}/) \ +          ? @h['texpdf_font_serif'] +          : @env.font.texpdf.serif +        end +        def mono +          @h['texpdf_font_mono'] \ +          && (@h['texpdf_font_mono']=~/\S{3,}/) \ +          ? @h['texpdf_font_mono'] +          : @env.font.texpdf.mono +        end +        self +      end +      def promo +        @h['promo'] +      end +      def ad +        @h['ad'] +      end +      def manpage +        manpage={} +        if @h['manpage'] +          if @h['manpage'] =~/;/m +            man=@h['manpage'].split(/;/m) +            man.each do |x| +              m=(x=~/=/m) ? x.split(/=/m) : nil +              if m +                manpage[m[0].strip] = m[1].split(/ \. /) +              end +            end +          end +        end +        if manpage['name'] +          manpage['name']=manpage['name'].join("\n.br\n"). +            gsub(/(-)/m,"\\\\\\1"). +            gsub(/\A/,"\n.br\n.SH NAME\n.br\n") +        else +          manpage['name']='man page "name/whatis" information not provided, set in header @man: name=[whatis information]' +        end +        if manpage['synopsis'] +          manpage['synopsis']=manpage['synopsis'].join("\n\n.br\n"). +            gsub(/(-)/m,"\\\\\\1"). +            gsub(/\A/,"\n.br\n.SH SYNOPSIS\n.br\n") +        else +          manpage['synopsis']='' +        end +        unless manpage['section'] +          manpage['section']=1 +        end +        manpage +      end +      def get_image_dimensions(img) +        imgk=SiSU_Env::SystemCall.new.imagemagick +        gmgk=SiSU_Env::SystemCall.new.graphicksmagick +        img_pth={ +          sst: @env.path.image_source_include, +          pod: File.expand_path("../../../sisupod/image" ) +        } +        path_img=if FileTest.file?("#{img_pth[:pod]}/#{img}") +          "#{img_pth[:pod]}/#{img}" +        elsif FileTest.file?("#{img_pth[:sst]}/#{img}") +          "#{img_pth[:sst]}/#{img}" +        else nil +        end +        if path_img +          if imgk or gmgk +            if imgk +              imgsys=`identify #{path_img}`.strip                           #system call +            elsif gmgk +              imgsys=`gm identify #{path_img}`.strip                        #system call +            end +            w,h=/(\d+)x(\d+)/m.match(imgsys)[1,2] +          else +            w,h='600','800' +          end +        else +          w,h=nil,nil +        end +        {w: w, h: h} +      end +      def home_button_text +        s=if @h['home_button_text'] +          @h['home_button_text'].split(/\s*;\s*/) +        else nil +        end +        #l,n=Db[:home_button],'make.home_button_text' +        #validate_length(s,l,n) +      end +      def home_button_image +        s=nil +        s=if @h['home_button_image'] +          s=@h['home_button_image'].split(/\s*;\s*/) +          s0=s[0] #if +          image={} +          s=if s0 =~/{(\S+\.(?:jpg|png|gif))(?:\s+(\d+x\d+))?\s*}(?:(http:\/\/\S+)|image)/ +            image[:home_button]=$1 +            if $2 +              image[:dimensions]=$2 +              image[:w],image[:h]=/(\d+)x(\d+)/m.match(image[:dimensions])[1,2] +            else +              d=get_image_dimensions(image[:home_button]) +              image[:w],image[:h]=d[:w],d[:h] +              image[:dimensions]="#{d[:w]}x#{d[:h]}" +            end +            image[:link]=$3 +            image +          end +        else nil +        end +      end +      def cover_image +        s=nil +        if @h['cover_image'] +          s=@h['cover_image'].split(/\s*;\s*/) +          s=s[0] #if +          image={} +          if s =~/{\s*(\S+\.(?:jpg|png|gif))(?:\s+(\d+x\d+))?(?:\s+"(.+?)")?\s*}image/ +            image[:cover]=$1 +            if $2 +              image[:dimensions]=$2 +              image[:w],image[:h]=/(\d+)x(\d+)/m.match(image[:dimensions])[1,2] +            else +              d=get_image_dimensions(image[:cover]) +              image[:w],image[:h]=d[:w],d[:h] +              image[:dimensions]="#{d[:w]}x#{d[:h]}" +            end +            image[:note]=$3 +          elsif s =~/(\S+\.(?:jpg|png|gif))/ +            image[:cover]=$1 +            d=get_image_dimensions(image[:cover]) +            image[:w],image[:h]=d[:w],d[:h] +            image[:dimensions]="#{d[:w]}x#{d[:h]}" +            image[:note]=nil +          end +          image +        else nil +        end +      end +      def footer +        s=if @h['footer'] +          @h['footer'].split(/\s*;\s*/) +        else nil +        end +      end +      self +    end +    def make_links +      @doc_links=@s.split(/\n%\s.+?$|[ ]*\n[ ]*/m) +      def links +        lnks,a_idx=[],0 +        @doc_links.each do |doc_link| +          if doc_link=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ +            say,url=/\{\s*(.+?)\s*\}((?:(?:https?|file|ftp):\/|\.\.)\/\S+)/im.match(doc_link)[1,2] +            lnks[a_idx]={ say: say, url: url  } +            a_idx +=1 +          end +        end +        lnks +      end +      def append? +        (@doc_links[0]=='+') \ +          ? :yes +          : :no +      end +      self +    end +  end +  class MakeHead +    attr_accessor :pagenew,:pagebreak,:pageline,:toc,:lv1,:lv2,:lv3,:lv4,:lv5,:lv6,:num_top,:i18n,:man_section,:substitution_match_list,:bold_match_list,:italics_match_list,:emphasis_set_to,:footer_links,:home_button_links,:home_button_image,:cover_image +    def initialize(make) +      @make=make +    end +    def clear +      @pagenew=@pagebreak=@pageline=@toc=@lv1=@lv2=@lv3=@lv4=@lv5=@lv6=@num_top=@i18n=@man_section=@footer_links=@substitution_match_list=@bold_match_list=@italics_match_list=@emphasis_set_to=@home_button_links=@home_button_image=@cover_image=nil +    end +    def make_instruct +      clear +      if defined? @make.breaks \ +      and @make.breaks[:page_new]                  #clearpage +        @pagenew=@make.breaks[:page_new] +      end +      if defined? @make.breaks \ +      and @make.breaks[:page_break]                #newpage +        @pagebreak=@make.breaks[:page_break] +      end +      if defined? @make.breaks \ +      and @make.breaks[:page_line]                 #page line across +        @pagebreak=@make.breaks[:page_line] +      end +      if defined? @make.headings \ +      and @make.headings +        @toc=@make.headings[0] +        @lv1=@make.headings[1] +        @lv2=@make.headings[2] +        @lv3=@make.headings[3] +        @lv4=@make.headings[4] +        @lv5=@make.headings[5] +        @lv6=@make.headings[6] +      end +      if defined? @make.num_top \ +      and @make.num_top +        @num_top=@make.num_top # remove @num_top +      end +      if defined? @make.language \ +      and @make.language[0] +        @i18n=@make.language +      end +      if defined? @make.manpage \ +      and @make.manpage +        @man_section=(defined? @make.manpage.section) \ +        ? @make.manpage.section +        : 1 +      end +      if defined? @make.substitute \ +      and @make.substitute +        @substitution_match_list=@make.substitute +      end +      if defined? @make.bold \ +      and @make.bold +        @bold_match_list=@make.bold +      end +      if defined? @make.italics \ +      and @make.italics +        @italics_match_list=@make.italics +      end +      if defined? @make.emphasis \ +      and @make.emphasis +        @emphasis_set_to=@make.emphasis +      end +      if defined? @make.footer \ +      and @make.footer.is_a?(Array) +        @footer_links= { left: { say: '', url: '' }, center: { say: '', url: '' } } #already set +        @footer_links[:left]=if @make.footer[0]=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ +          say,url=/\{\s*(.+?)\s*\}((?:(?:https?|file|ftp):\/|\.\.)\/\S+)/im.match(@make.footer[0])[1,2] +          { say: say, url: url } +        else +          { say: '', url: '' } +        end +        @footer_links[:center]=if @make.footer[1]=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ +          say,url=/\{\s*(.+?)\s*\}((?:(?:https?|file|ftp):\/|\.\.)\/\S+)/im.match(@make.footer[1])[1,2] +          { say: say, url: url } +        else +          { say: '', url: '' } +        end +        @footer_links +      else #already set +        @footer_links= { left: { say: '', url: '' }, center: { say: '', url: '' } } +      end +      if defined? @make.home_button_text \ +      and @make.home_button_text.is_a?(Array) +        a_idx=0 +        @home_button_links=[] +        @make.home_button_text.each do |doc_link| +          if doc_link=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ +            say,url=/\{\s*(.+?)\s*\}((?:(?:https?|file|ftp):\/|\.\.)\/\S+)/im.match(doc_link)[1,2] +            @home_button_links[a_idx]= { say: say, url: url } +            a_idx +=1 +          end +        end +        @home_button_links +      end +      if defined? @make.home_button_image \ +      and @make.home_button_image.is_a?(Hash) +        @home_button_image=@make.home_button_image +      end +      if defined? @make.cover_image \ +      and @make.cover_image.is_a?(Hash) +        @cover_image=@make.cover_image +      end +      { pagenew: @pagenew, +        pagebreak: @pagebreak, +        pageline: @pageline, +        toc: @toc, +        lv1: @lv1, +        lv2: @lv2, +        lv3: @lv3, +        lv4: @lv4, +        lv5: @lv5, +        lv6: @lv6, +        num_top: @num_top, +        i18n: @i18n, +        emphasis_set_to: @emphasis_set_to, +        bold_match_list: @bold_match_list, +        italics_match_list: @italics_match_list, +        substitution_match_list: @substitution_match_list, +        man_section: @man_section, +        footer_links: @footer_links, +        home_button_links: @home_button_links, +        home_button_image: @home_button_image, +        cover_image: @cover_image, +      } +    end +  end +end +__END__ diff --git a/lib/sisu/v3/particulars.rb b/lib/sisu/v5/particulars.rb index ca77074c..7cc54737 100644 --- a/lib/sisu/v3/particulars.rb +++ b/lib/sisu/v5/particulars.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/v3/particulars.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/particulars.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -207,8 +207,14 @@ module SiSU_Particulars          @nametags_map=SiSU_DAL::Source.new(opt).get_map_nametags          self        rescue -        SiSU_Errors::InfoError.new($!,$@,opt.cmd,opt.fnl).error do -          __LINE__.to_s + ':' + __FILE__ +        if @md +          SiSU_Errors::InfoError.new($!,$@,@md.opt.cmd,@md.opt.fnl).error do +            __LINE__.to_s + ':' + __FILE__ +          end +        else +          SiSU_Errors::InfoError.new($!,$@,opt.cmd,opt.fnl).error do +            __LINE__.to_s + ':' + __FILE__ +          end          end        end      end diff --git a/lib/sisu/v3/plaintext.rb b/lib/sisu/v5/plaintext.rb index 898b355c..9980b170 100644 --- a/lib/sisu/v3/plaintext.rb +++ b/lib/sisu/v5/plaintext.rb @@ -50,7 +50,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/v3/plaintext.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/plaintext.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -77,7 +77,7 @@ module SiSU_Plaintext      def initialize(opt)        @opt=opt        unless @opt.fns =~/(.+?)\.(?:-|ssm\.)?sst$/ -       puts "#{sf} not a processed file type" +        puts "#{sf} not a processed file type"        end      end      def read @@ -105,7 +105,6 @@ module SiSU_Plaintext          end          #wrap_width=(defined? md.make.plaintext_wrap) ? md.make.plaintext_wrap : 78          SiSU_Plaintext::Source::Scroll.new(md,dal_array,wrap_width).songsheet -        SiSU_Env::InfoSkin.new(md).select #watch        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -122,7 +121,7 @@ module SiSU_Plaintext        def initialize(md,data,wrap_width)          @md,@data,@wrap_width=md,data,wrap_width          @env=SiSU_Env::InfoEnv.new(@md.fns) -        @brace_url=SiSU_Viz::Skin.new.url_decoration +        @brace_url=SiSU_Viz::Defaults.new.url_decoration          @tab="\t"          @@endnotes_=case md.opt.mod.inspect          when /--footnote/; false @@ -188,9 +187,8 @@ WOK          end        end        def plaintext_tail -        SiSU_Env::InfoSkin.new(@md).select  #       env=SiSU_Env::InfoEnv.new(@md.fns) -        vz=SiSU_Env::GetInit.instance.skin +        vz=SiSU_Viz::Defaults.new          base_url="#{@env.url.root}/#{@md.fnb}"          generator="Generated by: #{@md.sisu_version[:project]} #{@md.sisu_version[:version]} of #{@md.sisu_version[:date_stamp]} (#{@md.sisu_version[:date]})"  if @md.sisu_version[:version]          lastdone="Last Generated on: #{Time.now}" @@ -365,7 +363,8 @@ WOK                sp=' '                ln='-'                @plaintext[:body] <<=if dob.obj==Mx[:br_page] \ -              or dob.obj==Mx[:br_page_new] +              or dob.obj==Mx[:br_page_new] \ +              or dob.obj==Mx[:br_page_line]                  "#{@br}#{ln*40}#{@br*2}"                elsif dob.obj ==Mx[:br_obj]                  "#{@br}#{sp*20}*  *  *#{@br*2}" diff --git a/lib/sisu/v3/plaintext_format.rb b/lib/sisu/v5/plaintext_format.rb index 0761260a..2d7850e0 100644 --- a/lib/sisu/v3/plaintext_format.rb +++ b/lib/sisu/v5/plaintext_format.rb @@ -50,7 +50,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/v3/plaintext_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/plaintext_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -92,7 +92,7 @@ module SiSU_PlaintextFormat        @txt=@txt.gsub(rgx,'') if @txt =~rgx        rgx=/#{Mx[:en_a_o]}[\d*+]+\s+(.+?)#{Mx[:en_a_c]}/        @txt=@txt.gsub(rgx,'\1') if @txt =~rgx -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def scr_endnote_body        "<endnote>#{@txt}</endnote> " diff --git a/lib/sisu/v3/po4a.rb b/lib/sisu/v5/po4a.rb index 6ea61e10..b3bcc81f 100644 --- a/lib/sisu/v3/po4a.rb +++ b/lib/sisu/v5/po4a.rb @@ -50,7 +50,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/v3/po4a.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/po4a.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -153,7 +153,6 @@ module SiSU_Po4a            else 78            end            SiSU_Po4a::Source::Scroll.new(fn,@dal_array_lang_src,@dal_array_lang_translation,@@md_src,@@md_trn,wrap_width).songsheet -          SiSU_Env::InfoSkin.new(md).select #watch          end        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do @@ -173,8 +172,8 @@ module SiSU_Po4a          @md=(md_trn.nil?) \          ? md_src          : md_trn -        @brace_url=SiSU_Viz::Skin.new.url_decoration -        @vz=SiSU_Env::GetInit.instance.skin +        @brace_url=SiSU_Viz::Defaults.new.url_decoration +        @vz=SiSU_Viz::Defaults.new          @tab="\t"          @@endnotes_=(@md.opt.mod.inspect =~/--endnote/) ? true : false    # --footnote          @br=(@md.opt.mod.inspect =~/--dos/) ? "\r\n" : "\n"               # --unix @@ -294,15 +293,14 @@ GSUB            "#: en/#{@md.fns}:#{SiSU_Po4aUtils::PotNumber.new.num}",            'msgid ""',            meta_src.metadata_tags.classify.head, -          meta_src.metadata_tags.classify.relation,            meta_src.metadata_tags.classify.subject,            meta_src.metadata_tags.classify.topic_register, -          meta_src.metadata_tags.classify.type, -          meta_src.metadata_tags.classify.identifier,            meta_src.metadata_tags.classify.loc,            meta_src.metadata_tags.classify.dewey, -          meta_src.metadata_tags.classify.oclc, -          meta_src.metadata_tags.classify.isbn, +          meta_src.metadata_tags.notes.relation, +          meta_src.metadata_tags.notes.type, +          meta_src.metadata_tags.identifier.oclc, +          meta_src.metadata_tags.identifier.isbn,            'msgstr ""',          ]          w << [ @@ -331,7 +329,6 @@ GSUB            meta_src.processing_tags.make.bold,            meta_src.processing_tags.make.italics,            meta_src.processing_tags.make.texpdf_font, -          meta_src.processing_tags.make.skin,            'msgstr ""',          ]          w.each do |y| @@ -424,26 +421,24 @@ GSUB            "#: en/#{@md.fns}:#{SiSU_Po4aUtils::PotNumber.new.num}",            'msgid ""',            meta_src.metadata_tags.classify.head, -          meta_src.metadata_tags.classify.relation,            meta_src.metadata_tags.classify.subject,            meta_src.metadata_tags.classify.topic_register, -          meta_src.metadata_tags.classify.type, -          meta_src.metadata_tags.classify.identifier,            meta_src.metadata_tags.classify.loc,            meta_src.metadata_tags.classify.dewey, -          meta_src.metadata_tags.classify.oclc, -          meta_src.metadata_tags.classify.isbn, +          meta_src.metadata_tags.notes.relation, +          meta_src.metadata_tags.notes.type, +          meta_src.metadata_tags.identifier.oclc, +          meta_src.metadata_tags.identifier.isbn,            'msgstr ""',            meta_trn.metadata_tags.classify.head, -          meta_trn.metadata_tags.classify.relation,            meta_trn.metadata_tags.classify.subject,            meta_trn.metadata_tags.classify.topic_register, -          meta_trn.metadata_tags.classify.type, -          meta_trn.metadata_tags.classify.identifier,            meta_trn.metadata_tags.classify.loc,            meta_trn.metadata_tags.classify.dewey, -          meta_trn.metadata_tags.classify.oclc, -          meta_trn.metadata_tags.classify.isbn, +          meta_trn.metadata_tags.notes.relation, +          meta_trn.metadata_tags.notes.type, +          meta_trn.metadata_tags.identifier.oclc, +          meta_trn.metadata_tags.identifier.isbn,          ]          w << [            "#. #{@po4a_identify_type} - metadata: date", @@ -479,7 +474,6 @@ GSUB            meta_src.processing_tags.make.bold,            meta_src.processing_tags.make.italics,            meta_src.processing_tags.make.texpdf_font, -          meta_src.processing_tags.make.skin,            'msgstr ""',            meta_trn.processing_tags.make.language,            meta_trn.processing_tags.make.headings, @@ -489,7 +483,6 @@ GSUB            meta_trn.processing_tags.make.bold,            meta_trn.processing_tags.make.italics,            meta_trn.processing_tags.make.texpdf_font, -          meta_trn.processing_tags.make.skin,          ]          w.each do |y|            z='' diff --git a/lib/sisu/v3/po4a_set.rb b/lib/sisu/v5/po4a_set.rb index 594c62bc..042bbaa0 100644 --- a/lib/sisu/v3/po4a_set.rb +++ b/lib/sisu/v5/po4a_set.rb @@ -50,7 +50,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/v3/po4a_set.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/po4a_set.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -255,7 +255,6 @@ WOK        when /^#{Mx[:meta_o]}(bold)#{Mx[:meta_c]}\s*(.+?)$/;                header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(italics|itali[sz]e)#{Mx[:meta_c]}\s*(.+?)$/;  header('italicize',$2,'process','instruct')        when /^#{Mx[:meta_o]}(vocabulary|wordlist)#{Mx[:meta_c]}\s*(.+?)$/; header('vocabulary',$2,'process','instruct') -      when /^#{Mx[:meta_o]}(skin)#{Mx[:meta_c]}\s*(.+?)$/;                header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(css|stylesheet)#{Mx[:meta_c]}\s*(.+?)$/;      header('css',$2,'process','instruct')        when /^#{Mx[:meta_o]}(links)#{Mx[:meta_c]}\s*(.+?)$/;               header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(prefix)#{Mx[:meta_c]}\s*(.+?)$/;              header($1,$2,'process','instruct') #add a & b diff --git a/lib/sisu/v3/prog_text_translation.rb b/lib/sisu/v5/prog_text_translation.rb index ee481d10..b35741c1 100644 --- a/lib/sisu/v3/prog_text_translation.rb +++ b/lib/sisu/v5/prog_text_translation.rb @@ -50,7 +50,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/v3/prog_text_translation.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/prog_text_translation.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/qrcode.rb b/lib/sisu/v5/qrcode.rb index a730b832..6d93cd64 100644 --- a/lib/sisu/v3/qrcode.rb +++ b/lib/sisu/v5/qrcode.rb @@ -50,7 +50,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/v3/qrcode.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/qrcode.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -81,7 +81,6 @@ module SiSU_QRcode        begin          @env=SiSU_Env::InfoEnv.new(@opt.fns)          @md=SiSU_Param::Parameters.new(@opt).get -        SiSU_Env::InfoSkin.new(@md).select          xbrowser=@env.program.web_browser          browser=@env.program.console_web_browser          unless @opt.cmd =~/q/ @@ -115,7 +114,7 @@ module SiSU_QRcode          l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language          @language=l[:n]          @translate=SiSU_Translate::Source.new(@md,@language) -        @brace_url=SiSU_Viz::Skin.new.url_decoration +        @brace_url=SiSU_Viz::Defaults.new.url_decoration          @f.make_path(@f.output_path.qrcode.dir)        end        def output_metadata @@ -529,26 +528,6 @@ WOK            id,info=@translate.digitized_by,@md.creator.digitized_by            metadata(id,info)          end -        if defined? @md.classify.subject \ -        and @md.classify.subject=~/\S+/ -          id,info=@translate.subject,@md.classify.subject -          metadata(id,info) -        end -        if defined? @md.notes.description \ -        and @md.notes.description=~/\S+/ -          id,info=@translate.description,@md.notes.description -          metadata(id,info) -        end -        if defined? @md.notes.abstract \ -        and @md.notes.abstract=~/\S+/ -          id,info=@translate.abstract,@md.notes.abstract -          metadata(id,info) -        end -        if defined? @md.type \ -        and @md.type=~/\S+/ #dc -          id,info=@translate.type,@md.type -          metadata(id,info) -        end          if defined? @md.rights.all \          and @md.rights.all=~/\S+/ #dc            id,info=@translate.rights,@md.rights.all @@ -597,34 +576,34 @@ WOK            id,info=@translate.language_original,@md.original.language            metadata(id,info)          end -        if defined? @md.classify.format \ -        and @md.classify.format=~/\S+/ -          id,info=@transate.format,@md.classify.format +        if defined? @md.classify.subject \ +        and @md.classify.subject=~/\S+/ +          id,info=@translate.subject,@md.classify.subject            metadata(id,info)          end -        if defined? @md.classify.identifier \ -        and @md.classify.identifier=~/\S+/ -          id,info=@translate.identifier,@md.classify.identifier +        if defined? @md.classify.keywords \ +        and @md.classify.keywords=~/\S+/ +          id,info=@translate.keywords,@md.classify.keywords            metadata(id,info)          end -        if defined? @md.original.source \ -        and @md.original.source=~/\S+/ -          id,info=@translate.source,@md.original.source +        if defined? @md.classify.loc \ +        and @md.classify.loc=~/\S+/ +          id,info=@translate.cls_loc,@md.classify.loc            metadata(id,info)          end -        if defined? @md.classify.relation \ -        and @md.classify.relation=~/\S+/ -          id,info=@translate.relation,@md.classify.relation +        if defined? @md.classify.dewey \ +        and @md.classify.dewey=~/\S+/ +          id,info=@translate.cls_dewey,@md.classify.dewey            metadata(id,info)          end -        if defined? @md.classify.coverage \ -        and @md.classify.coverage=~/\S+/ -          id,info=@translate.coverage,@md.classify.coverage +        if defined? @md.notes.description \ +        and @md.notes.description=~/\S+/ +          id,info=@translate.description,@md.notes.description            metadata(id,info)          end -        if defined? @md.classify.keywords \ -        and @md.classify.keywords=~/\S+/ -          id,info=@translate.keywords,@md.classify.keywords +        if defined? @md.notes.abstract \ +        and @md.notes.abstract=~/\S+/ +          id,info=@translate.abstract,@md.notes.abstract            metadata(id,info)          end          if defined? @md.notes.comment \ @@ -632,30 +611,34 @@ WOK            id,info=@translate.comments,@md.notes.comment            metadata(id,info)          end -        if defined? @md.classify.loc \ -        and @md.classify.loc=~/\S+/ -          id,info=@translate.cls_loc,@md.classify.loc +        if defined? @md.notes.coverage \ +        and @md.notes.coverage=~/\S+/ +          id,info=@translate.coverage,@md.notes.coverage            metadata(id,info)          end -        if defined? @md.classify.dewey \ -        and @md.classify.dewey=~/\S+/ -          id,info=@translate.cls_dewey,@md.classify.dewey +        if defined? @md.notes.relation \ +        and @md.notes.relation=~/\S+/ +          id,info=@translate.relation,@md.notes.relation            metadata(id,info)          end -        if defined? @md.classify.oclc \ -        and @md.classify.oclc=~/\S+/ -          id,info=@translate.cls_oclc,@md.classify.oclc -          @manifest[:txt] << %{#{id}:\n} -          @manifest[:txt] << %{#{info}\n} -        end -        if defined? @md.classify.pg \ -        and @md.classify.pg=~/\S+/ -          id,info=@translate.cls_gutenberg,@md.classify.pg +        #if defined? @md.notes.source \ +        #and @md.notes.source=~/\S+/ +        #  id,info=@translate.source,@md.notes.source +        #  metadata(id,info) +        #end +        #if defined? @md.notes.history \ +        #and @md.notes.history=~/\S+/ +        #  id,info=@translate.history,@md.notes.history +        #  metadata(id,info) +        #end +        if defined? @md.notes.type \ +        and @md.notes.type=~/\S+/ #dc +          id,info=@translate.type,@md.type            metadata(id,info)          end -        if defined? @md.classify.isbn \ -        and @md.classify.isbn=~/\S+/ -          id,info=@translate.cls_isbn,@md.classify.isbn +        if defined? @md.notes.format \ +        and @md.notes.format=~/\S+/ +          id,info=@transate.format,@md.notes.format            metadata(id,info)          end          if defined? @md.notes.prefix_a \ @@ -668,6 +651,22 @@ WOK            id,info=@translate.prefix_b,@md.notes.prefix_b            metadata(id,info)          end +        if defined? @md.original.source \ +        and @md.original.source=~/\S+/ +          id,info=@translate.source,@md.original.source +          metadata(id,info) +        end +        if defined? @md.identifier.oclc \ +        and @md.identifier.oclc=~/\S+/ +          id,info=@translate.cls_oclc,@md.identifier.oclc +          @manifest[:txt] << %{#{id}:\n} +          @manifest[:txt] << %{#{info}\n} +        end +        if defined? @md.identifier.isbn \ +        and @md.identifier.isbn=~/\S+/ +          id,info=@translate.cls_isbn,@md.identifier.isbn +          metadata(id,info) +        end          if defined? @md.topic_register_array \          and @md.topic_register_array.length > 0            @manifest[:txt] << %{#{@translate.topic_register}:\n} @@ -711,7 +710,7 @@ WOK        def check_output(data)          begin            id,file='','' -          vz=SiSU_Env::GetInit.instance.skin +          vz=SiSU_Viz::Defaults.new            @f=SiSU_Env::FileOp.new(@md) #.base_filename            url=@f.output_path.base.url            @en_manifest=if @env.output_dir_structure.by_language_code? diff --git a/lib/sisu/v3/relaxng.rb b/lib/sisu/v5/relaxng.rb index 0981692e..39d6bde9 100644 --- a/lib/sisu/v3/relaxng.rb +++ b/lib/sisu/v5/relaxng.rb @@ -50,7 +50,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/v3/relaxng.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/relaxng.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -984,7 +984,6 @@ start =           | element links { text }           | element markup { text }           | element rights { text } -         | element skin { xsd:NCName }           | element subject { text }           | element title { text }           | element type { xsd:NCName } @@ -1035,7 +1034,6 @@ start =           | element links { text }           | element markup { text }           | element rights { text } -         | element skin { xsd:NCName }           | element subject { text }           | element title { text }           | element type { xsd:NCName } @@ -1108,7 +1106,6 @@ start =           | element links { text }           | element markup { text }           | element rights { text } -         | element skin { xsd:NCName }           | element subject { text }           | element title { text }           | element type { xsd:NCName } diff --git a/lib/sisu/v3/remote.rb b/lib/sisu/v5/remote.rb index 4eecac50..3a560ae1 100644 --- a/lib/sisu/v3/remote.rb +++ b/lib/sisu/v5/remote.rb @@ -50,7 +50,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/v3/remote.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/remote.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -68,9 +68,9 @@ module SiSU_Remote        @opt=opt        @dir=SiSU_Env::InfoEnv.new(@opt.fns)        @put=(@opt.fns =~/\.ssm\.sst$/) \ -      ? @opt.fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') -      : @opt.fns -      @remote=SiSU_Env::InfoRemote.new(@opt) +      ? opt.fns.gsub(/(.+)?\.ssm\.sst$/,'\1.ssm') +      : opt.fns +      @remote=SiSU_Env::InfoRemote.new(opt)      end      def rsync        SiSU_Screen::Ansi.new(@opt.cmd,'Remote placement ->',@put).dark_grey_title_hi unless @opt.cmd =~/q/ @@ -90,7 +90,7 @@ module SiSU_Remote      end      def rsync_harvest        SiSU_Screen::Ansi.new(@opt.cmd,'Remote placement metadata harvest ->','rsync_harvest').dark_grey_title_hi unless @opt.cmd =~/q/ -      @remote.rsync_harvest +      @remote.rsync.site_harvest      end      def scp        SiSU_Screen::Ansi.new(@opt.cmd,'Remote placement ->',@put).dark_grey_title_hi unless @opt.cmd =~/q/ @@ -116,7 +116,6 @@ module SiSU_Remote        require 'pp'        require_relative 'composite'                      # composite.rb        @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ -      @rgx_skin=/@skin:\s+(\S+)/        threads=[]        for requested_page in @get_s          re_fnb=/((?:https?|file):\/\/[^\/ ]+?\/[^\/ ]+?)\/\S+?\/([^\/]+?)\.ss(t)/ #revisit and remove DO @@ -125,14 +124,11 @@ module SiSU_Remote              raise "#{url} not found" unless f              base_uri,fnb,instr=re_fnb.match(url)[1..3] if re_fnb              imagedir=base_uri + '/_sisu/image' #check on -            doc_skin_dir = /((?:https?|file):\/\/\S+?)\/[^\/]+?\.sst$/.match(url).captures.join + '/_sisu/skin/doc'              downloaded_file=File.new("#{fnb}.-sst",'w+')              image_download_url=SiSU_Assemble::RemoteImage.new.image(imagedir)              images=[] -            skin=SiSU_Assemble::RemoteImage.new.image(doc_skin_dir)              f.collect.each do |r|                            # work area                unless r =~/^%+\s/ -                skin << r.scan(@rgx_skin).uniq if r =~@rgx_skin                  if r !~/^%+\s/ \                  and r =~@rgx_image                    images << r.scan(@rgx_image).uniq @@ -140,10 +136,6 @@ module SiSU_Remote                end                downloaded_file << r              end -            if skin \ -            and skin.length > 0 -              SiSU_Assemble::RemoteImage.new.download_doc_skin(skin) -            end              if images \              and images.length > 1                images=images.flatten.uniq diff --git a/lib/sisu/v3/response.rb b/lib/sisu/v5/response.rb index a4849840..6d167ab6 100644 --- a/lib/sisu/v3/response.rb +++ b/lib/sisu/v5/response.rb @@ -50,7 +50,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/v3/response.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/response.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/rexml.rb b/lib/sisu/v5/rexml.rb index 4aedfe23..5a30734f 100644 --- a/lib/sisu/v3/rexml.rb +++ b/lib/sisu/v5/rexml.rb @@ -50,7 +50,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/v3/rexml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/rexml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/screen_text_color.rb b/lib/sisu/v5/screen_text_color.rb index dde1d338..ebd954ae 100644 --- a/lib/sisu/v3/screen_text_color.rb +++ b/lib/sisu/v5/screen_text_color.rb @@ -50,7 +50,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/v3/screen_text_color.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/screen_text_color.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -72,12 +72,12 @@ module SiSU_Screen        @cmd,@txt=cmd,txt        @color_instruct=txt[0]        flag=SiSU_Env::InfoProcessingFlag.new -      if @cmd +      if cmd          #set default colors on or off -c acts as toggle against this default, if default is off -c turns on, if default is on -c turns off          @use_color=(flag.color) \ -        ? ((@cmd =~/c/) ? false : true) -        : ((@cmd =~/c/) ? true : false) -        if @cmd =~/k/ then @use_color=false # useful color off switch, however, k may be used for something else in future +        ? ((cmd =~/c/) ? false : true) +        : ((cmd =~/c/) ? true : false) +        if cmd =~/k/ then @use_color=false # useful color off switch, however, k may be used for something else in future          end        else @use_color=false        end @@ -337,6 +337,9 @@ module SiSU_Screen      def green_hi_blue        puts %{#{@cX.green_hi}#{@cX.black}#{@txt[0]}#{@cX.off*2} #{@cX.blue}#{@txt[1]}#{@cX.off}}      end +    def blue_title_hi +      puts %{#{@cX.blue_hi}#{@txt[0]}#{@cX.off*2} #{@cX.blue}#{@txt[1]}#{@cX.off}} +    end      def grey_title_hi        puts %{#{@cX.grey_hi}#{@cX.black}#{@txt[0]}#{@cX.off*2} #{@cX.blue}#{@txt[1]}#{@cX.off}}      end @@ -349,6 +352,9 @@ module SiSU_Screen      def cyan_title_hi        puts %{#{@cX.cyan_hi}#{@cX.black}#{@txt[0]}#{@cX.off*2} #{@cX.blue}#{@txt[1]}#{@cX.off}}      end +    def cyan_hi_blue +      puts %{#{@cX.cyan_hi}#{@cX.black}#{@txt[0]}#{@cX.off*2} #{@cX.blue}#{@txt[1]}#{@cX.off}} +    end      def dbi_title        puts %{#{@cX.blue_hi}#{@cX.black}#{@txt[0]}#{@cX.off*2} #{@cX.cyan}#{@cX.grey}#{@txt[1]}#{@cX.off*2} #{@cX.green}#{@txt[2]}#{@cX.off}}      end diff --git a/lib/sisu/v3/share_src.rb b/lib/sisu/v5/share_src.rb index 3f8965c9..cb93dee2 100644 --- a/lib/sisu/v3/share_src.rb +++ b/lib/sisu/v5/share_src.rb @@ -50,7 +50,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/v3/share_src.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/share_src.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -64,7 +64,6 @@ module SiSU_Markup      include SiSU_Source    require_relative 'sysenv'                             # sysenv.rb      include SiSU_Env -  pwd=Dir.pwd    class Source < SiSU_Source::SiSUpodSource      def initialize(opt,build=nil,place=nil)        super(opt,build,place) @@ -73,15 +72,19 @@ module SiSU_Markup      def read        unless @opt.cmd =~/q/          @opt.cmd=~/[MVvz]/ \ -        ? SiSU_Screen::Ansi.new(@opt.cmd,'Share Document Source!',@opt.fns).green_hi_blue -        : SiSU_Screen::Ansi.new(@opt.cmd,'Share Document Source!',@opt.fns).green_title_hi -        SiSU_Screen::Ansi.new(@opt.cmd,"Copy sisu markup file to output directory","#{@opt.fno} -> #{@file.output_path.src.dir}").warn if @opt.cmd =~/[MVv]/ +        ? SiSU_Screen::Ansi.new(@opt.cmd,'Share document markup text source',@opt.fns).cyan_hi_blue +        : SiSU_Screen::Ansi.new(@opt.cmd,'Share document markup text source',@opt.fns).cyan_title_hi        end        if FileTest.directory?(@path_pod[:fnb])          FileUtils::mkdir_p(@file.output_path.src.dir) unless FileTest.directory?(@file.output_path.src.dir)          v=(@opt.cmd =~/M/) ? 'v' : ''          system(%{            rsync -a#{v} #{@path_pod[:fnb]} #{@file.output_path.sisupod.dir} +          chbk=`pwd` +          cd #{@file.output_path.sisupod.dir} +          for I in `find -type d` ; do chmod 755 $I ; done +          for I in `find -type f` ; do chmod 644 $I ; done +          cd ${chbk}          })        else          SiSU_Screen::Ansi.new('',"#{@opt.fno} not available").blue_tab if @opt.cmd=~/[MVv]/ diff --git a/lib/sisu/v3/share_src_kdissert.rb b/lib/sisu/v5/share_src_kdissert.rb index ccd76e1a..e91a3cf3 100644 --- a/lib/sisu/v3/share_src_kdissert.rb +++ b/lib/sisu/v5/share_src_kdissert.rb @@ -50,7 +50,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/v3/share_src_kdissert.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/share_src_kdissert.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/shared_html.rb b/lib/sisu/v5/shared_html.rb index 6e897cf6..84c89ecf 100644 --- a/lib/sisu/v3/shared_html.rb +++ b/lib/sisu/v5/shared_html.rb @@ -50,7 +50,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/v3/shared_html.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_html.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/shared_html_lite.rb b/lib/sisu/v5/shared_html_lite.rb index d7302212..c01ec086 100644 --- a/lib/sisu/v3/shared_html_lite.rb +++ b/lib/sisu/v5/shared_html_lite.rb @@ -50,7 +50,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/v3/shared_html_lite.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_html_lite.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -81,9 +81,9 @@ module SiSU_FormatShared        else @@hname        end        @tab="\t" -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration        @@tablehead,@@tablefoot=[],[] -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @env=SiSU_Env::InfoEnv.new(@md.fns)        @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html"      end diff --git a/lib/sisu/v3/shared_images.rb b/lib/sisu/v5/shared_images.rb index d71710df..1dc44121 100644 --- a/lib/sisu/v3/shared_images.rb +++ b/lib/sisu/v5/shared_images.rb @@ -50,7 +50,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/v3/shared_images.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_images.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -77,9 +77,6 @@ module SiSU_Images        def songsheet          images_set.select_sisu_base          images_set.select_with_document -        if @md.opt.cmd =~/h/ -          images_set.select_with_document_skin -        end        end        def images_set          @pwd=(/(\S+?)(?:\/(?:#{Px[:lng_lst_rgx]}))?$/).match(Dir.pwd)[1] @@ -130,39 +127,6 @@ module SiSU_Images            dest=dest_path(:image)            copy(src_path,dest,images)          end -        def select_with_document_skin -          rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/ -          skin_source=SiSU_Env::InfoSkin.new(@md).apply -          docskin=nil -          if skin_source \ -          and skin_source[:type] == :dir -            docskin_with_path="#{docskin_place}/skin_#{@env.stub_pwd}.rb" -            docskin=[docskin_with_path.gsub(/.+?\/(skin_\S+?)\.rb/,'\1')] -            #docskin='skin_sisupod' -          end -          images=[] -          if skin_source \ -          and skin_source[:name_path] #imperfect, revisit -            unless (skin_source[:name_path].nil? \ -            or skin_source[:name_path].empty?) -              skinfile_array=IO.readlines(skin_source[:name_path],'') -              skinfile_array.each do |f|                                           #% work area -                unless f =~/^%+ / #hmmm -                  images << f.scan(rgx_rb_image).uniq if f =~rgx_rb_image -                  #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool -                end -              end -            end -          end -          src_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/sisupod\/\S+?\/sisupod\/doc/ -            "#{@pwd}/_sisu/image" -          else #sisupod -            pt=/(\/\S+?\/sisupod\/\S+?\/sisupod)\/doc/.match(@md.opt.f_pth[:pth])[1] -            pt + '/image' -          end -          dest=dest_path(:image) -          copy(src_path,dest,images.flatten) -        end          def select_sisu_base            images=%w[arrow_next_red.png arrow_prev_red.png arrow_up_red.png dot_clear.png dot_white.png b_doc.png b_epub.png b_odf.png b_pdf.png b_toc.png]            src_path="#{@env.path.share}/image" diff --git a/lib/sisu/v3/shared_markup_alt.rb b/lib/sisu/v5/shared_markup_alt.rb index 9bceeb17..e0fec924 100644 --- a/lib/sisu/v3/shared_markup_alt.rb +++ b/lib/sisu/v5/shared_markup_alt.rb @@ -50,7 +50,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/v3/shared_markup_alt.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_markup_alt.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/shared_metadata.rb b/lib/sisu/v5/shared_metadata.rb index 6fd66291..5c8c225d 100644 --- a/lib/sisu/v3/shared_metadata.rb +++ b/lib/sisu/v5/shared_metadata.rb @@ -50,7 +50,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/v3/shared_metadata.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_metadata.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -108,6 +108,11 @@ module SiSU_Metadata          @tag,@inf,@class=tr.digitized_by,@md.creator.digitized_by,'ext'          meta << self.meta_para        end +      if defined? @md.creator.contributor \ +      and @md.creator.contributor=~/\S+/ +        @tag,@inf,@class=tr.contributor,@md.creator.contributor,'dc' #6 +        meta << self.meta_para +      end        if defined? @md.rights.all \        and @md.rights.all=~/\S+/          @tag,@inf,@class=tr.rights,@md.rights.all,'dc' #15 @@ -118,24 +123,24 @@ module SiSU_Metadata          @tag,@inf,@class=tr.subject,@md.classify.subject,'dc' #3          meta << self.meta_para        end -      if defined? @md.notes.description \ -      and @md.notes.description=~/\S+/ -        @tag,@inf,@class=tr.description,@md.notes.description,'dc' #4 +      if defined? @md.classify.keywords \ +      and @md.classify.keywords=~/\S+/ +        @tag,@inf,@class=tr.keywords,@md.classify.keywords,'ext'          meta << self.meta_para        end -      if defined? @md.publisher \ -      and @md.publisher=~/\S+/ -        @tag,@inf,@class=tr.publisher,@md.publisher,'dc' #5 +      if defined? @md.classify.loc \ +      and @md.classify.loc=~/\S+/ +        @tag,@inf,@class=tr.cls_loc,@md.classify.loc,'id'          meta << self.meta_para        end -      if defined? @md.creator.contributor \ -      and @md.creator.contributor=~/\S+/ -        @tag,@inf,@class=tr.contributor,@md.creator.contributor,'dc' #6 +      if defined? @md.classify.dewey \ +      and @md.classify.dewey=~/\S+/ +        @tag,@inf,@class=tr.cls_dewey,@md.classify.dewey,'id'          meta << self.meta_para        end -      if defined? @md.notes.abstract \ -      and @md.notes.abstract=~/\S+/ -        @tag,@inf,@class=tr.abstract,@md.notes.abstract,'ext' +      if defined? @md.publisher \ +      and @md.publisher=~/\S+/ +        @tag,@inf,@class=tr.publisher,@md.publisher,'dc' #5          meta << self.meta_para        end        if defined? @md.date.created \ @@ -168,29 +173,24 @@ module SiSU_Metadata          @tag,@inf,@class=tr.date,@md.date.published,'dc' #7          meta << self.meta_para        end -      if defined? @md.type \ -      and @md.date=~/\S+/ -        @tag,@inf,@class=tr.type,@md.type,'dc' #8 +      if defined? @md.identifier.isbn \ +      and @md.identifier.isbn=~/\S+/ +        @tag,@inf,@class=tr.cls_isbn,@md.identifier.isbn,'id'          meta << self.meta_para        end -      if defined? @md.classify.loc \ -      and @md.classify.loc=~/\S+/ -        @tag,@inf,@class=tr.cls_loc,@md.classify.loc,'id' +      if defined? @md.identifier.oclc \ +      and @md.identifier.oclc=~/\S+/ +        @tag,@inf,@class=tr.cls_oclc,@md.identifier.oclc,'id'          meta << self.meta_para        end -      if defined? @md.classify.dewey \ -      and @md.classify.dewey=~/\S+/ -        @tag,@inf,@class=tr.cls_dewey,@md.classify.dewey,'id' -        meta << self.meta_para -      end -      if defined? @md.classify.pg \ -      and @md.classify.pg=~/\S+/ -        @tag,@inf,@class=tr.cls_gutenberg,@md.classify.pg,'id' +      if defined? @md.notes.description \ +      and @md.notes.description=~/\S+/ +        @tag,@inf,@class=tr.description,@md.notes.description,'dc' #4          meta << self.meta_para        end -      if defined? @md.classify.isbn \ -      and @md.classify.isbn=~/\S+/ -        @tag,@inf,@class=tr.cls_isbn,@md.classify.isbn,'id' +      if defined? @md.notes.abstract \ +      and @md.notes.abstract=~/\S+/ +        @tag,@inf,@class=tr.abstract,@md.notes.abstract,'ext'          meta << self.meta_para        end        if defined? @md.notes.comment \ @@ -198,6 +198,36 @@ module SiSU_Metadata          @tag,@inf,@class=tr.comments,@md.notes.comment,'ext'          meta << self.meta_para        end +      if defined? @md.notes.coverage \ +      and @md.notes.coverage=~/\S+/ +        @tag,@inf,@class=tr.coverage,@md.notes.coverage,'dc' #14 +        meta << self.meta_para +      end +      if defined? @md.notes.relation \ +      and @md.notes.relation=~/\S+/ +        @tag,@inf,@class=tr.relation,@md.notes.relation,'dc' #13 +        meta << self.meta_para +      end +      #if defined? @md.notes.source \ +      #and @md.notes.source=~/\S+/ +      #  @tag,@inf,@class=tr.source,@md.notes.source,'dc' #11 +      #  meta << self.meta_para +      #end +      if defined? @md.notes.history \ +      and @md.notes.history=~/\S+/ +        @tag,@inf,@class=tr.type,@md.notes.history,'dc' #8 +        meta << self.meta_para +      end +      if defined? @md.notes.type \ +      and @md.notes.type=~/\S+/ +        @tag,@inf,@class=tr.type,@md.notes.type,'dc' #8 +        meta << self.meta_para +      end +      if defined? @md.notes.format \ +      and @md.notes.format=~/\S+/ +        @tag,@inf,@class=tr.format,@md.notes.format,'dc' #9 +        meta << self.meta_para +      end        if defined? @md.notes.prefix_a \        and @md.notes.prefix_a=~/\S+/          @tag,@inf,@class=tr.prefix_a,@md.notes.prefix_a,'inf' @@ -208,11 +238,6 @@ module SiSU_Metadata          @tag,@inf,@class=tr.prefix_b,@md.notes.prefix_b,'inf'          meta << self.meta_para        end -      if defined? @md.classify.identifier \ -      and @md.classify.identifier=~/\S+/ -        @tag,@inf,@class=tr.identifier,@md.classify.identifier,'dc' #10 -        meta << self.meta_para -      end        if defined? @md.original.source \        and @md.original.source=~/\S+/          @tag,@inf,@class=tr.source,@md.original.source,'dc' #11 @@ -228,26 +253,6 @@ module SiSU_Metadata          @tag,@inf,@class=tr.language_original,@md.original.language,'ext'          meta << self.meta_para        end -      if defined? @md.classify.format \ -      and @md.classify.format=~/\S+/ -        @tag,@inf,@class=tr.format,@md.classify.format,'dc' #9 -        meta << self.meta_para -      end -      if defined? @md.classify.relation \ -      and @md.classify.relation=~/\S+/ -        @tag,@inf,@class=tr.relation,@md.classify.relation,'dc' #13 -        meta << self.meta_para -      end -      if defined? @md.classify.coverage \ -      and @md.classify.coverage=~/\S+/ -        @tag,@inf,@class=tr.coverage,@md.classify.coverage,'dc' #14 -        meta << self.meta_para -      end -      if defined? @md.classify.keywords \ -      and @md.classify.keywords=~/\S+/ -        @tag,@inf,@class=tr.keywords,@md.classify.keywords,'ext' -        meta << self.meta_para -      end        if @display_heading          @tag,@inf=%{<b><u>Version Information</u></b>},''          meta << self.meta_para @@ -267,11 +272,6 @@ module SiSU_Metadata          @tag,@inf,@class='Source Digest',"#{@md.dgst[0]} #{@md.dgst[1]}",'src'          meta << self.meta_para        end -      if defined? @md.dgst_skin \ -      and @md.dgst_skin.is_a?(Array) -        @tag,@inf,@class='Skin Digest',"#{@md.dgst_skin[0]} #{@md.dgst_skin[1]}",'src' -        meta << self.meta_para -      end        if @display_heading          @tag,@inf=%{<b><u>Generated</u></b>},''          meta << self.meta_para @@ -362,13 +362,6 @@ module SiSU_Metadata            else nil            end          end -        def skin -          if defined? @md.make.skin \ -          and @md.make.skin -            ' :skin: ' + @md.make.skin -          else nil -          end -        end          self        end        self @@ -736,107 +729,19 @@ module SiSU_Metadata      end      def char_enc(str)        @s=str +      def amp +        if @s \ +        and @s.is_a?(String) +          @s=@s.gsub(/&/u,'&') +        end +        @s +      end        def utf8          if @s \          and @s.is_a?(String)            @s=@s.gsub(/<br(?: \/)?>/u,Mx[:br_paragraph]). -            gsub(/</um,'<'). # '<'   # < -            gsub(/</um,'<'). # '<'   # < -            gsub(/>/um,'>'). # '>'   # > -            gsub(/¢/um,'¢'). # '¢'   # ¢ -            gsub(/£/um,'£'). # '£'  # £ -            gsub(/¥/um,'¥'). # '¥'    # ¥ -            gsub(/§/um,'§'). # '§'   # § -            gsub(/©/um,'©'). # '©'   # © -            gsub(/ª/um,'ª'). # 'ª'   # ª -            gsub(/«/um,'«'). # '«'  # « -            gsub(/®/um,'®'). # '®'    # ® -            gsub(/°/um,'°'). # '°'    # ° -            gsub(/±/um,'±'). # '±' # ± -            gsub(/²/um,'²'). # '²'   # ² -            gsub(/³/um,'³'). # '³'   # ³ -            gsub(/µ/um,'µ'). # 'µ'  # µ -            gsub(/¶/um,'¶'). # '¶'   # ¶ -            gsub(/¹/um,'¹'). # '¹'   # ¹ -            gsub(/º/um,'º'). # 'º'   # º -            gsub(/»/um,'»'). # '»'  # » -            gsub(/¼/um,'¼'). # '¼' # ¼ -            gsub(/½/um,'½'). # '½' # ½ -            gsub(/¾/um,'¾'). # '¾' # ¾ -            gsub(/×/um,'×'). # '×'  # × -            gsub(/÷/um,'÷'). # '÷' # ÷ -            gsub(/¿/um,'¿'). # '¿' # ¿ -            gsub(/À/um,'À'). # 'À' # À -            gsub(/Á/um,'Á'). # 'Á' # Á -            gsub(/Â/um,'Â'). # 'Â'  # Â -            gsub(/Ã/um,'Ã'). # 'Ã' # Ã -            gsub(/Ä/um,'Ä'). # 'Ä'   # Ä -            gsub(/Å/um,'Å'). # 'Å'  # Å -            gsub(/Æ/um,'Æ'). # 'Æ'  # Æ -            gsub(/Ç/um,'Ç'). # 'Ç' # Ç -            gsub(/È/um,'È'). # 'È' # È -            gsub(/É/um,'É'). # 'É' # É -            gsub(/Ê/um,'Ê'). # 'Ê'  # Ê -            gsub(/Ë/um,'Ë'). # 'Ë'   # Ë -            gsub(/Ì/um,'Ì'). # 'Ì' # Ì -            gsub(/Í/um,'Í'). # 'Í' # Í -            gsub(/Î/um,'Î'). # 'Î'  # Î -            gsub(/Ï/um,'Ï'). # 'Ï'   # Ï -            gsub(/Ð/um,'Ð'). # 'Ð'    # Ð -            gsub(/Ñ/um,'Ñ'). # 'Ñ' # Ñ -            gsub(/Ò/um,'Ò'). # 'Ò' # Ò -            gsub(/Ó/um,'Ó'). # 'Ó' # Ó -            gsub(/Ô/um,'Ô'). # 'Ô'  # Ô -            gsub(/Õ/um,'Õ'). # 'Õ' # Õ -            gsub(/Ö/um,'Ö'). # 'Ö'   # Ö -            gsub(/Ø/um,'Ø'). # 'Ø' # Ø -            gsub(/Ù/um,'Ù'). # 'Ù' # Ù -            gsub(/Ú/um,'Ú'). # 'Ú' # Ú -            gsub(/Û/um,'Û'). # 'Û'  # Û -            gsub(/Ü/um,'Ü'). # 'Ü'   # Ü -            gsub(/Ý/um,'Ý'). # 'Ý' # Ý -            gsub(/Þ/um,'Þ'). # 'Þ'  # Þ -            gsub(/ß/um,'ß'). # 'ß'  # ß -            gsub(/à/um,'à'). # 'à' # à -            gsub(/á/um,'á'). # 'á' # á -            gsub(/â/um,'â'). # 'â'  # â -            gsub(/ã/um,'ã'). # 'ã' # ã -            gsub(/ä/um,'ä'). # 'ä'   # ä -            gsub(/å/um,'å'). # 'å'  # å -            gsub(/æ/um,'æ'). # 'æ'  # æ -            gsub(/ç/um,'ç'). # 'ç' # ç -            gsub(/è/um,'è'). # 'è' # è -            gsub(/é/um,'é'). # '´'  # é -            gsub(/ê/um,'ê'). # 'ˆ'   # ê -            gsub(/ë/um,'ë'). # 'ë'   # ë -            gsub(/ì/um,'ì'). # 'ì' # ì -            gsub(/í/um,'í'). # '´'  # í -            gsub(/î/um,'î'). # 'î'  # î -            gsub(/ï/um,'ï'). # 'ï'   # ï -            gsub(/ð/um,'ð'). # 'ð'    # ð -            gsub(/ñ/um,'ñ'). # 'ñ' # ñ -            gsub(/ò/um,'ò'). # 'ò' # ò -            gsub(/ó/um,'ó'). # 'ó' # ó -            gsub(/ô/um,'ô'). # 'ô'  # ô -            gsub(/õ/um,'õ'). # 'õ' # õ -            gsub(/ö/um,'ö'). # 'ö'   # ö -            gsub(/ø/um,'ø'). # 'ø' # ø -            gsub(/ù/um,'ú'). # 'ù' # ú -            gsub(/ú/um,'û'). # 'ú' # û -            gsub(/û/um,'ü'). # 'û'  # ü -            gsub(/ü/um,'ý'). # 'ü'   # ý -            gsub(/þ/um,'þ'). # 'þ'  # þ -            gsub(/ÿ/um,'ÿ'). # 'ÿ'   # ÿ -            gsub(/‘/um,'‘'). # '‘' # ‘ -            gsub(/’/um,'’'). # '’' # ’ -            gsub(/“/um,'“'). # “   # “ -            gsub(/”/um,'”'). # ”   # ” -            gsub(/–/um,'–'). # –   # – -            gsub(/—/um,'—'). # —   # — -            gsub(/∝/um,'∝'). # ∝    # ∝ -            gsub(/∞/um,'∞'). # ∞   # ∞ -            gsub(/™/um,'™'). # ™   # ™ -            gsub(/✠/um,'✠'). # ✗  # ✠ +            gsub(/</um,'<').gsub(/>/um,'>'). +            #gsub(/</um,'<').gsub(/>/um,'>').              gsub(/ /um,' ').       # space identify              gsub(/ /um,' ').       # space identify              gsub(/#{Mx[:br_paragraph]}/u,'<br />') @@ -899,7 +804,8 @@ WOK      end      def xhtml_display        def meta_para -        inf_xml=char_enc(@inf).utf8 +        inf_xml=char_enc(@inf).amp +        inf_xml=char_enc(inf_xml).utf8          %{<p class="norm">    <b>#{@tag}</b>: #{inf_xml}  </p>} @@ -911,7 +817,7 @@ WOK      end      def odf        def meta_para -        url_brace=SiSU_Viz::Skin.new.url_decoration +        url_brace=SiSU_Viz::Defaults.new.url_decoration          if @inf.is_a?(String)            @inf=@inf.gsub(/</,'<').gsub(/>/,'>').              gsub(/<br(?: \/)?>/,'<br />') @@ -1204,14 +1110,6 @@ WOK          tag,inf='Source Digest',"\\begin\{footnotesize\}#{hash_of}\\end\{footnotesize\}\\-\\begin\{scriptsize\}#{dgst}\\end\{scriptsize\}"          meta << meta_para(tag,inf,false)        end -      if defined? @md.dgst_skin \ -      and @md.dgst_skin.is_a?(Array) -        hash_of=spec_char(@md.dgst_skin[0]) -        hash_of=word_break_points(hash_of) -        dgst=number_break_points(@md.dgst_skin[1]) -        tag,inf='Skin Digest',"\\begin\{footnotesize\}#{hash_of}\\end\{footnotesize\}\\-\\begin\{scriptsize\}#{dgst}\\end\{scriptsize\}" -        meta << meta_para(tag,inf,false) -      end        meta << %{#{@br}\\begin\{bfseries\}Generated \\end\{bfseries\}}        if defined? @md.generated \        and @md.generated.is_a?(Time) @@ -1328,7 +1226,6 @@ if @md.make      @md.make.emphasis,      @md.make.plaintext_wrap,      @md.make.texpdf_font, -    @md.make.skin,      @md.make.promo,      @md.make.ad,      @md.make.manpage diff --git a/lib/sisu/v3/shared_sem.rb b/lib/sisu/v5/shared_sem.rb index 041448ab..4a30e26d 100644 --- a/lib/sisu/v3/shared_sem.rb +++ b/lib/sisu/v5/shared_sem.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/v3/shared_sem.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_sem.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/shared_sisupod_source.rb b/lib/sisu/v5/shared_sisupod_source.rb index f1eb048f..f35287de 100644 --- a/lib/sisu/v3/shared_sisupod_source.rb +++ b/lib/sisu/v5/shared_sisupod_source.rb @@ -50,7 +50,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/v3/shared_sisupod_source.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_sisupod_source.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -68,13 +68,13 @@ module SiSU_Source        @opt=opt        m=/.+\/(?:src\/)?(\S+)/im        @date=SiSU_Env::InfoDate.new.dt -      @env=SiSU_Env::InfoEnv.new(@opt.fns) +      @env=SiSU_Env::InfoEnv.new(opt.fns)        @ver=SiSU_Env::InfoVersion.instance.get_version -      @v=(@opt.cmd =~/[VM]/) ? 'v' : '' +      @v=(opt.cmd =~/[VM]/) ? 'v' : ''        @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt)        @file=@particulars.file        @local_path="#{@file.output_path.sisupod.dir}" -      processing_sisupod=@env.processing_path.processing_sisupod(@opt) +      processing_sisupod=@env.processing_path.processing_sisupod(opt)        processing_sisupod.make        path_pod=processing_sisupod.paths[:sisupod]        path_pod_fnb=processing_sisupod.paths[:fnb] @@ -82,11 +82,10 @@ module SiSU_Source        @path_pod={          fnb:       path_pod_fnb,          pod:       path_pod, -        doc:       path_pod + '/' + Gt[:doc] + '/' + @opt.lng, -        po:        path_pod + '/' + Gt[:po] + '/' + @opt.lng, +        doc:       path_pod + '/' + Gt[:doc] + '/' + opt.lng, +        po:        path_pod + '/' + Gt[:po] + '/' + opt.lng,          pot:       path_pod + '/' + Gt[:pot],          conf:      path_pod + '/' + Gt[:conf], -        skin:      path_pod + '/' + Gt[:skin],          image:     path_pod + '/' + Gt[:image],          audio:     path_pod + '/' + Gt[:audio],          video:     path_pod + '/' + Gt[:video], @@ -104,33 +103,7 @@ module SiSU_Source        end      end      def directories -      SiSU_Env::InfoEnv.new.sisupod_v3(@opt) -    end -    def select_skin(skin='')                                                   #skin loading logic here -      load "#{SiSU_lib}/defaults.rb" -      @skin={} -      skin_path = [ -        "#{@opt.base_path}/_sisu/skin", -        "#{@env.path.home}/.sisu/skin", -        '/etc/sisu/skin', -        "#{@path_pod[:pod]}/external_document/skin" #CHECK -      ] -      sk_doc,sk_dir="#{Gt[:doc]}/#{skin}.rb","dir/skin_#{@env.stub_pwd}.rb" -      skin_path.each do |v|                                                    #document skin priority 1 -        if FileTest.file?("#{v}/#{sk_doc}") -          @skin={ name_path: "#{v}/#{sk_doc}", type: :doc } -          break -        end -      end -      unless @skin.length > 0 -        skin_path.each do |v|                                                  #directory skin priority 2 -          if FileTest.file?("#{v}/#{sk_dir}") -            @skin={ name_path: "#{v}/#{sk_dir}", type: :dir } -            break -          end -        end -      end -      @skin +      SiSU_Env::InfoEnv.new.sisupod_v4(@opt)      end      def images_extract(f,images)                                                # consider using param info        rgx_image=/(?:^|[^_\\])\{(?:\s*|\~\^\s+)(\S+?\.(?:png|jpg|gif)\b)/m @@ -144,14 +117,12 @@ module SiSU_Source        @pwd=Dir.pwd        @rgx_rb_image=/["']\S*?([a-zA-Z0-9_-]+?\.(?:png|jpg|gif))["']/        @rgx_image=/(?:^|[^_\\])\{\s*(\S+?\.(?:png|jpg|gif))/ -      @rgx_skin=/^\s+:skin:\s+(\S+)/        @rgx_doc_import=/^<<\s*(\S+?\.ss[ti])/        file_array=IO.readlines(@opt.fno,'') -      skin,images,doc_import=[],[],[] +      images,doc_import=[],[]        doc_import_dir=@opt.sub_location        file_array.each do |f|                                                   #% work area          if f !~/^%+\s/ -          skin << f.scan(@rgx_skin).uniq.flatten if f =~@rgx_skin            f=f.gsub(/<:=(\S+?)>/,'{ c_\1.png 14x14 }image')                                                           # embedded symbol (image)            if f !~/^%+\s/ \            and f =~@rgx_image @@ -174,41 +145,15 @@ module SiSU_Source            end          end        end -      docskin=nil -      if skin \ -      and skin.length > 0 -        docskin=skin.pop.flatten.join -        skin_source=select_skin(docskin) -      else -        skin_source=select_skin -      end -      docskin_place="#{@path_pod[:skin]}/#{skin_source[:type].to_s}" -      FileUtils::mkdir_p(docskin_place) -      if skin_source[:type] == :dir -        docskin_with_path="#{docskin_place}/skin_#{@env.stub_pwd}.rb" -        docskin=[docskin_with_path.gsub(/.+?\/(skin_\S+?)\.rb/,'\1')] -        docskin='skin_sisupod' -      end -      if skin_source \ -      and skin_source[:name_path] -        unless skin_source[:name_path].nil? \ -        or skin_source[:name_path].empty? -          if FileTest.file?(skin_source[:name_path]) -            FileUtils::cp(skin_source[:name_path],"#{docskin_place}/#{docskin}.rb") -            skinfile_array=IO.readlines(skin_source[:name_path],'') -            para_images=[] -            skinfile_array.each do |f|                                           #% work area -              unless f =~/^%+ / #hmmm -                images << f.scan(@rgx_rb_image).uniq if f =~@rgx_rb_image -                #does not really discriminate, may duplicate images in sisu file, and may take images from default image pool -              end -            end -          else STDERR.puts %{\t*WARN* did not find - "#{skin_source[:name_path]}" [#{__FILE__}:#{__LINE__}]} -          end +      gi=SiSU_Env::GetInit.new +      unless FileTest.file?("#{@path_pod[:conf]}/#{gi.makefile_name}") +        if gi.makefile \ +        && FileTest.file?(gi.makefile) +          FileUtils::mkdir_p(@path_pod[:conf]) unless FileTest.directory?(@path_pod[:conf]) +          FileUtils::cp(gi.makefile,"#{@path_pod[:conf]}/#{gi.makefile_name}")          end +        #get images from makefile, consider placing in param        end -      #1. mapping in doc dir? -      #2. need images used by skin, scan skin??        if images \        and images.length > 1          images=images.flatten.uniq @@ -231,7 +176,7 @@ module SiSU_Source            images=images.uniq            images.each do |i|              if FileTest.file?("#{images_pwd}/#{i}") -              FileUtils::cp("#{images_pwd}/#{i}","#{@path_pod[:image]}/#{i}") if FileTest.file?("#{images_pwd}/#{i}") +              FileUtils::cp("#{images_pwd}/#{i}","#{@path_pod[:image]}/#{i}")              else STDERR.puts %{\t*WARN* did not find image - "#{images_pwd}/#{i}" [#{__FILE__}:#{__LINE__}]}              end            end @@ -266,11 +211,9 @@ module SiSU_Source                    cpy= :no                    cpy=if f[:f] =~ /^#{@opt.f_pth[:lng_is]}\// \                    or f[:f] =~ /~#{@opt.f_pth[:lng_is]}\.sst/ -                    p "#{@opt.base_path}/#{f[:f]} --> #{@path_pod[:doc]}/#{f[:n]}"                      :yes                    elsif f[:f] !~ /^(?:#{Px[:lng_lst_rgx]})\/|~(?:#{Px[:lng_lst_rgx]})\.sst/ \                    and @opt.f_pth[:lng_is] == 'en' -                    p "#{@opt.base_path}/#{f[:f]} --> #{@path_pod[:doc]}/#{f[:n]}"                      :yes                    else :no                    end @@ -294,11 +237,9 @@ module SiSU_Source                  cpy= :no                  cpy=if f[:f] =~ /^#{@opt.f_pth[:lng_is]}\// \                  or f[:f] =~ /~#{@opt.f_pth[:lng_is]}\.sst/ -                  p "#{@opt.base_path}/#{f[:f]} --> #{@path_pod[:doc]}/#{f[:n]}"                    :yes                  elsif f[:f] !~ /^(?:#{Px[:lng_lst_rgx]})\/|~(?:#{Px[:lng_lst_rgx]})\.sst/ \                  and @opt.f_pth[:lng_is] == 'en' -                  p "#{@opt.base_path}/#{f[:f]} --> #{@path_pod[:doc]}/#{f[:n]}"                    :yes                  else :no                  end @@ -321,8 +262,6 @@ question?:                   should you permit the packing of multiple documents    open @opt.fns, parse file      extract from file content:        images and copy each image from whatever image source to _sisu/sisupod/sisu/_sisu/image -      skin and copy active skin from whatever source to _sisu/sisupod/sisu/_sisu/skin/doc -      extract from skin images required by skin     remove previously existing contents of _/sisu/sisupod &     make directory structure: @@ -336,8 +275,6 @@ v3 -->           fr/content.sst           _sisu             conf -             skin/ -               doc                     [relevant skin if any other than default]             image (ln -s ../../image)             audio (ln -s ../../audio)             video (ln -s ../../video) @@ -351,19 +288,11 @@ v2 -->         content.sst                     [file content]         filename.sst                    [link to content.sst]         _sisu/ -         skin/ -           doc                         [relevant skin if any other than default]           image/                        [all images for specific document gathered here]  sisu    _sisu      sisurc.yml -    skin/ -      dir/ -      doc/ -      misc/ -      site/ -      yaml/      convert/      standard_terms/      image diff --git a/lib/sisu/v3/shared_txt.rb b/lib/sisu/v5/shared_txt.rb index 1ebefdd5..3401b05b 100644 --- a/lib/sisu/v3/shared_txt.rb +++ b/lib/sisu/v5/shared_txt.rb @@ -50,7 +50,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/v3/shared_txt.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_txt.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -207,7 +207,6 @@ module SiSU_TextUtils        when /^#{Mx[:meta_o]}(bold)#{Mx[:meta_c]}\s*(.+?)$/;                header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(italics|itali[sz]e)#{Mx[:meta_c]}\s*(.+?)$/;  header('italicize',$2,'process','instruct')        when /^#{Mx[:meta_o]}(vocabulary|wordlist)#{Mx[:meta_c]}\s*(.+?)$/; header('vocabulary',$2,'process','instruct') -      when /^#{Mx[:meta_o]}(skin)#{Mx[:meta_c]}\s*(.+?)$/;                header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(css|stylesheet)#{Mx[:meta_c]}\s*(.+?)$/;      header('css',$2,'process','instruct')        when /^#{Mx[:meta_o]}(links)#{Mx[:meta_c]}\s*(.+?)$/;               header($1,$2,'process','instruct')        when /^#{Mx[:meta_o]}(prefix)#{Mx[:meta_c]}\s*(.+?)$/;              header($1,$2,'process','instruct') #add a & b diff --git a/lib/sisu/v3/shared_xhtml.rb b/lib/sisu/v5/shared_xhtml.rb index bb2de86c..c9534823 100644 --- a/lib/sisu/v3/shared_xhtml.rb +++ b/lib/sisu/v5/shared_xhtml.rb @@ -50,7 +50,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/v3/shared_xhtml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_xhtml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/shared_xml.rb b/lib/sisu/v5/shared_xml.rb index 00312a66..fe4be74e 100644 --- a/lib/sisu/v3/shared_xml.rb +++ b/lib/sisu/v5/shared_xml.rb @@ -50,7 +50,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/v3/shared_xml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/shared_xml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -65,7 +65,7 @@ module SiSU_XML_Munge        @md=md        @sys=SiSU_Env::SystemCall.new        @dir=SiSU_Env::InfoEnv.new(@md.fns) -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration        if @md.sem_tag          @ab ||=semantic_tags.default        end @@ -376,6 +376,7 @@ module SiSU_XML_Munge          dob.obj=dob.obj.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,'<br />') unless dob.is==:table          dob.obj=dob.obj.gsub(/#{Mx[:br_page]}\s*/,'').            gsub(/#{Mx[:br_page_new]}\s*/,''). +          gsub(/#{Mx[:br_page_line]}\s*/,'').            gsub(/#{Mx[:pa_non_object_no_heading]}|#{Mx[:pa_non_object_dummy_heading]}/,'').            gsub(/<[-~]#>/,'').            gsub(/href="#{Xx[:segment]}/m,'href="'). @@ -542,18 +543,6 @@ module SiSU_XML_Tags #Format          content=meta_content_clean(@md.creator.author)          @author=%{  <meta name="dc.author" content="#{content}" />\n}        end -      if defined? @md.classify.subject \ -      and @md.classify.subject=~/\S+/                                          # DublinCore 3 - subject (us library of congress, eric or udc, or schema???) -        @rdf_subject=%{    dc.subject="#{@md.classify.subject}"\n} -        content=meta_content_clean(@md.classify.subject) -        @subject=%{  <meta name="dc.subject" content="#{content}" />\n} -      end -      if defined? @md.notes.description \ -      and @md.notes.description=~/\S+/                                         # DublinCore 4 - description -        @rdf_description=%{    dc.description="#{@md.notes.description}"\n} -        content=meta_content_clean(@md.notes.description) -        @description=%{  <meta name="dc.description" content="#{content}" />\n} -      end        if defined? @md.publisher \        and @md.publisher                                                        # DublinCore 5 - publisher (current copy published by)          @rdf_publisher=%{    dc.publisher="#{@md.publisher}"\n} @@ -596,24 +585,54 @@ module SiSU_XML_Tags #Format          @rdf_date_modified=%{    dc.date.modified="#{@md.date.modified}"\n}          @date_modified=%{  <meta name="dc.date.modified" content="#{@md.date.modified}" #{@md.date_scheme} />\n}        end -      if defined? @md.type \ -      and @md.type                                                            # DublinCore 8 - type (genre eg. report, convention etc) -        @rdf_type=%{    dc.type="#{@md.type}"\n} -        content=meta_content_clean(@md.type) +      if defined? @md.rights.all \ +      and @md.rights.all                                                      # DublinCore 15 - rights +        @rdf_rights=%{    dc.rights="#{@md.rights.all}"\n} +        content=meta_content_clean(@md.rights.all) +        @rights=%{  <meta name="dc.rights" content="#{content}" />\n} +      end +      if defined? @md.classify.subject \ +      and @md.classify.subject=~/\S+/                                          # DublinCore 3 - subject (us library of congress, eric or udc, or schema???) +        @rdf_subject=%{    dc.subject="#{@md.classify.subject}"\n} +        content=meta_content_clean(@md.classify.subject) +        @subject=%{  <meta name="dc.subject" content="#{content}" />\n} +      end +      if defined? @md.notes.description \ +      and @md.notes.description=~/\S+/                                         # DublinCore 4 - description +        @rdf_description=%{    dc.description="#{@md.notes.description}"\n} +        content=meta_content_clean(@md.notes.description) +        @description=%{  <meta name="dc.description" content="#{content}" />\n} +      end +      if defined? @md.notes.coverage \ +      and @md.notes.coverage=~/\S+/                                            # DublinCore 14 - coverage +        @rdf_coverage=%{    dc.coverage="#{@md.notes.coverage}"\n} +        content=meta_content_clean(@md.notes.coverage) +        @coverage=%{  <meta name="dc.coverage" content="#{content}" />\n} +      end +      if defined? @md.notes.relation \ +      and @md.notes.relation=~/\S+/                                            # DublinCore 13 - relation +        @rdf_relation=%{    dc.relation="#{@md.notes.relation}"\n} +        content=meta_content_clean(@md.notes.relation) +        @relation=%{  <meta name="dc.relation" content="#{content}" />\n} +      end +      if defined? @md.notes.type \ +      and @md.notes.type                                                       # DublinCore 8 - type (genre eg. report, convention etc) +        @rdf_type=%{    dc.type="#{@md.notes.type}"\n} +        content=meta_content_clean(@md.notes.type)          @type=%{  <meta name="dc.type" content="#{content}" />\n}        end -      if defined? @md.classify.format \ -      and @md.classify.format=~/\S+/                                          # DublinCore 9 - format (use your mime type) -        @rdf_format=%{    dc.format="#{@md.classify.format}"\n} -        content=meta_content_clean(@md.classify.format) +      if defined? @md.notes.format \ +      and @md.notes.format=~/\S+/                                              # DublinCore 9 - format (use your mime type) +        @rdf_format=%{    dc.format="#{@md.notes.format}"\n} +        content=meta_content_clean(@md.notes.format)          @format=%{  <meta name="dc.format" content="#{content}" />\n}        end -      if defined? @md.classify.identifier \ -      and @md.classify.identifier=~/\S+/                                       # DublinCore 10 - identifier (your identifier, could use urn which is free) -        @rdf_identifier=%{    dc.identifier="#{@md.classify.identifier}"\n} -        content=meta_content_clean(@md.classify.identifier) -        @identifier=%{  <meta name="dc.identifier" content="#{content}" />\n} -      end +      #if defined? @md.identifier.sisupod \ +      #and @md.identifier.sisupod=~/\S+/                                       # DublinCore 10 - identifier (your identifier, could use urn which is free) +      #  @rdf_identifier=%{    dc.identifier="#{@md.identifier.sisupod}"\n} +      #  content=meta_content_clean(@md.identifier.sisupod) +      #  @identifier=%{  <meta name="dc.identifier" content="#{content}" />\n} +      #end        if defined? @md.original.source \        and @md.original.source=~/\S+/                                           # DublinCore 11 - source (document source)          @rdf_source=%{    dc.source="#{@md.original.source}"\n} @@ -630,27 +649,9 @@ module SiSU_XML_Tags #Format          @rdf_language_original=%{    dc.language="#{@md.original.language}"\n}          @language_original=%{  <meta name="dc.language" content="#{@md.original.language}" />\n}        end -      if defined? @md.classify.relation \ -      and @md.classify.relation=~/\S+/                                         # DublinCore 13 - relation -        @rdf_relation=%{    dc.relation="#{@md.classify.relation}"\n} -        content=meta_content_clean(@md.classify.relation) -        @relation=%{  <meta name="dc.relation" content="#{content}" />\n} -      end -      if defined? @md.classify.coverage \ -      and @md.classify.coverage=~/\S+/                                         # DublinCore 14 - coverage -        @rdf_coverage=%{    dc.coverage="#{@md.classify.coverage}"\n} -        content=meta_content_clean(@md.classify.coverage) -        @coverage=%{  <meta name="dc.coverage" content="#{content}" />\n} -      end -      if defined? @md.rights.all \ -      and @md.rights.all                                                      # DublinCore 15 - rights -        @rdf_rights=%{    dc.rights="#{@md.rights.all}"\n} -        content=meta_content_clean(@md.rights.all) -        @rights=%{  <meta name="dc.rights" content="#{content}" />\n} -      end        content=meta_content_clean(@md.keywords)        @keywords=%{  <meta name="keywords" content="#{content}" />\n} if @md.keywords -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def meta_content_clean(content='')        content diff --git a/lib/sisu/v3/sisupod_make.rb b/lib/sisu/v5/sisupod_make.rb index 75182aba..d4341abf 100644 --- a/lib/sisu/v3/sisupod_make.rb +++ b/lib/sisu/v5/sisupod_make.rb @@ -50,7 +50,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/v3/sisupod_make.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sisupod_make.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -69,9 +69,11 @@ module SiSU_Doc      def initialize(opt,build=nil,place=nil)        super(opt,build,place)        @zipfile=@opt.fno.gsub(/(?:\~\S{2,3})?(\.ss[tm])$/,'\1') -      @ans=SiSU_Response::Response.new -      if @opt.cmd=~/[MVv]/ -        SiSU_Screen::Ansi.new(@opt.cmd,'Assemble source for sisu document',"#{@opt.fns} -> file://#{@file.output_path.sisupod.dir}/#{@zipfile}.txz").warn +      unless @opt.cmd =~/q/ +        pthinfo="#{@file.output_path.sisupod.dir}/#{@zipfile}.txz" +        @opt.cmd=~/[MVv]/ \ +        ? SiSU_Screen::Ansi.new(@opt.cmd,'Assemble source for sisu document',"#{@opt.fns} -> file://#{pthinfo}").cyan_hi_blue +        : SiSU_Screen::Ansi.new(@opt.cmd,'Assemble source for sisu document',pthinfo).cyan_title_hi        end      end      def sisupod_tar_xz @@ -106,8 +108,6 @@ question?:                   should you permit the packing of multiple documents    open @opt.fns, parse file      extract from file content:        images and copy each image from whatever image source to _sisu/sisupod/sisu/_sisu/image -      skin and copy active skin from whatever source to _sisu/sisupod/sisu/_sisu/skin/doc -      extract from skin images required by skin     remove previously existing contents of _/sisu/sisupod &     make directory structure: @@ -121,8 +121,6 @@ v3 -->           fr/content.sst           _sisu             conf -             skin/ -               doc                     [relevant skin if any other than default]             image (ln -s ../../image)             audio (ln -s ../../audio)             video (ln -s ../../video) @@ -136,19 +134,11 @@ v2 -->         content.sst                     [file content]         filename.sst                    [link to content.sst]         _sisu/ -         skin/ -           doc                         [relevant skin if any other than default]           image/                        [all images for specific document gathered here]  sisu    _sisu      sisurc.yml -    skin/ -      dir/ -      doc/ -      misc/ -      site/ -      yaml/      convert/      standard_terms/      image diff --git a/lib/sisu/v3/sitemaps.rb b/lib/sisu/v5/sitemaps.rb index 8eff9792..fcdfe883 100644 --- a/lib/sisu/v3/sitemaps.rb +++ b/lib/sisu/v5/sitemaps.rb @@ -50,7 +50,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/v3/sitemaps.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sitemaps.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/spell.rb b/lib/sisu/v5/spell.rb index ce881619..8f10e3be 100644 --- a/lib/sisu/v3/spell.rb +++ b/lib/sisu/v5/spell.rb @@ -50,7 +50,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/v3/spell.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/spell.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/sst_convert_markup.rb b/lib/sisu/v5/sst_convert_markup.rb index 7c83fd93..cbf40f24 100644 --- a/lib/sisu/v3/sst_convert_markup.rb +++ b/lib/sisu/v5/sst_convert_markup.rb @@ -50,7 +50,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/v3/sst_convert_markup.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sst_convert_markup.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/sst_do_inline_footnotes.rb b/lib/sisu/v5/sst_do_inline_footnotes.rb index d989c95e..08dd9f4f 100644 --- a/lib/sisu/v3/sst_do_inline_footnotes.rb +++ b/lib/sisu/v5/sst_do_inline_footnotes.rb @@ -50,7 +50,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/v3/set_do_inline_footnotes.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/set_do_inline_footnotes.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -176,7 +176,6 @@ module SiSU_ConvertFootnotes        @md,@data=md,data        @@word_mode=[]        @env=SiSU_Env::InfoEnv.new(@md.fns) -      @skin=SiSU_Env::InfoSkin.new(@md)        l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language        @language=l[:n]        @translate=SiSU_Translate::Source.new(@md,@language) @@ -278,7 +277,6 @@ module SiSU_ConvertFootnotes          end          if para =~/<:insert\d+!?>/ \          and para !~/^%\s+/ -          @skin.select            ins=SiSU_Viz::Inserts.new            case para            when /^\s*<:insert1>\s*$/ diff --git a/lib/sisu/v3/sst_from_xml.rb b/lib/sisu/v5/sst_from_xml.rb index 8346ce16..9d9f90ce 100644 --- a/lib/sisu/v3/sst_from_xml.rb +++ b/lib/sisu/v5/sst_from_xml.rb @@ -50,7 +50,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/v3/sst_from_xml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sst_from_xml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/sst_identify_markup.rb b/lib/sisu/v5/sst_identify_markup.rb index 6cc1a589..248aa207 100644 --- a/lib/sisu/v3/sst_identify_markup.rb +++ b/lib/sisu/v5/sst_identify_markup.rb @@ -50,7 +50,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/v3/sst_identify_markup.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sst_identify_markup.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/sst_to_s_xml_sax.rb b/lib/sisu/v5/sst_to_s_xml_sax.rb index ccc518d4..3276d1fc 100644 --- a/lib/sisu/v3/sst_to_s_xml_sax.rb +++ b/lib/sisu/v5/sst_to_s_xml_sax.rb @@ -50,7 +50,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/v3/sst_to_s_xml_sax.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sst_to_s_xml_sax.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -143,7 +143,7 @@ module SiSU_SimpleXML_ModelSax        @@xml={ body: [], open: [], close: [], head: [] }        def initialize(data='',particulars='')          @data,@env,@md=data,particulars.env,particulars.md -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @regx=/^(?:#{Mx[:mk_o]}:p[bn]#{Mx[:mk_c]}\s*)?(?:#{Mx[:lv_o]}[1-9]:(\S*)#{Mx[:lv_c]})?(.+)/          @tab="\t"          if @md diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v5/sysenv.rb index 9e03406d..25984397 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v5/sysenv.rb @@ -50,7 +50,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/v3/sysenv.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/sysenv.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -64,6 +64,7 @@  @@lang_info=nil  module SiSU_Env    require_relative 'constants'                             # constants.rb +  require_relative 'utils'                                 # utils.rb    require 'fileutils'      include FileUtils::Verbose    require 'singleton' @@ -94,9 +95,8 @@ module SiSU_Env        YEAR      end    end -  class InfoSystem +  class InfoSystemGen      require 'rbconfig' -      include Singleton      @@user,@@home,@@hostname,@@pwd,@@sisu_etc,@@host,@@arch,@@rbver,@@dir_arch,@@dir_sitearch,@@dir_bin,@@locale,@@rc,@@sisurc_path,@@ad=ENV['USER'],ENV['HOME'],ENV['HOSTNAME'],ENV['PWD'],Config::CONFIG['sysconfdir'] + '/sisu',Config::CONFIG['host'],Config::CONFIG['arch'],%x{ruby -v}.strip,Config::CONFIG['archdir'],Config::CONFIG['sitearchdir'],Config::CONFIG['bindir'],%x{locale charmap}.strip,nil,nil,{} # %x{ruby -v}.strip # Config::CONFIG['rb_ver']      out=Config::CONFIG['localstatedir']      etc=Config::CONFIG['sysconfdir'] + '/sisu' @@ -218,31 +218,21 @@ module SiSU_Env      }      @@default_dir=DEFAULT_DIR      m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m -    stub_pwd=@@pwd[m,1] -    @@rc_path=[ -      "#{@@pwd}/.sisu/#{SiSU_version_dir}", -      "#{@@pwd}/.sisu", -      "#{@@pwd}/_sisu/#{SiSU_version_dir}", -      "#{@@pwd}/_sisu", -      "#{@@home}/.sisu/#{SiSU_version_dir}", -      "#{@@home}/.sisu", -      "#{@@sisu_etc}/#{SiSU_version_dir}", -    ] -    @@ad_path=(stub_pwd !~/^sisupod$/) \ -    ? ([ -        "#{@@pwd}/.sisu/skin/yml", -        "#{@@pwd}/_sisu/skin/yml", -        "#{@@home}/.sisu/skin/yml", -        "#{@@sisu_etc}/skin/yml", -      ]) -    : ["#{@@home}/.sisu",@@sisu_etc] +    @@pwd=@pwd=SiSU_Utils::Path.new.base_markup +    stub_pwd=@pwd[m,1]      attr_accessor :user,:home,:hostname,:pwd,:host,:arch,:rbver,:dir_arch,:dir_sitearch,:dir_bin,:locale,:webserv_path,:webserv_host_cgi,:webserv_port_cgi,:default_dir,:rc_path,:ad_path      def initialize -      @user,@home,@hostname,@pwd,@sisu_etc,@host,@arch,@rbver,@dir_arch,@dir_sitearch,@dir_bin,@locale,@default_dir,@rc_path,@ad_path=\ -      @@user,@@home,@@hostname,@@pwd,@@sisu_etc,@@host,@@arch,@@rbver,@@dir_arch,@@dir_sitearch,@@dir_bin,@@locale,@@default_dir,@@rc_path,@@ad_path +      @user,@home,@hostname,@pwd,@sisu_etc,@host,@arch,@rbver,@dir_arch,@dir_sitearch,@dir_bin,@locale,@default_dir=\ +      @@user,@@home,@@hostname,@@pwd,@@sisu_etc,@@host,@@arch,@@rbver,@@dir_arch,@@dir_sitearch,@@dir_bin,@@locale,@@default_dir        #note rbver is duplicated in InfoVersion      end    end +  class InfoSystem < InfoSystemGen +    include Singleton +    def initialize +      super() +    end +  end    class Load      def initialize(prog,mandatory=false)        @prog,@mandatory=prog,mandatory @@ -279,44 +269,87 @@ module SiSU_Env        load_prog      end    end -  class GetInit < InfoSystem -    include Singleton +  class GetInit < InfoSystemGen      @@noyaml=false -    @@rc,@@sisurc_path,@@vz,@@tx=nil,nil,nil,nil +    @@rc,@@sisu_doc_makefile,@@sisurc_path,@@tx=nil,nil,nil,nil      @@ad={ promo: nil, promo_list: nil, flag_promo: false } +    @@sdmd=nil      attr_accessor :yaml      def initialize        super() -    end -    def skin -      @@vz ||=SiSU_Viz::Skin.new +        @markup_dir_changed_=if @@sdmd==$sisu_document_markup_directory +          false +        else +          @@sdmd=$sisu_document_markup_directory +          true +        end      end      def tex        @@tx ||=SiSU_Viz::TeX.new      end +    def rc_path_options +      @rc_path=[ +        "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/#{SiSU_version_dir}", +        "#{$sisu_document_markup_directory_base_fixed_path}/.sisu", +        "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/#{SiSU_version_dir}", +        "#{$sisu_document_markup_directory_base_fixed_path}/_sisu", +        "#{@@home}/.sisu/#{SiSU_version_dir}", +        "#{@@home}/.sisu", +        "#{@@sisu_etc}/#{SiSU_version_dir}", +        "#{@@sisu_etc}", +      ] +    end +    def sisu_document_make +      def makefile_name +        S_CONF[:header_make] +      end +      def makefile +        #if @markup_dir_changed_ +          rc_path_options.each do |v| +            if FileTest.exist?("#{v}/#{makefile_name}") +              @sisu_make_path=v +              break +            end +          end +        #end +        @sisu_make_file_path=@sisu_make_path \ +        ? "#{@sisu_make_path}/#{makefile_name}" +        : nil +      end +      def makefile_read +        if makefile +          sisu_doc_makefile=IO.read(makefile, mode: 'r:utf-8') +          @sisu_doc_makefile=sisu_doc_makefile.split(/\s*\n\s*\n/m) +        end +        @sisu_doc_makefile +      end +      self +    end      def sisu_yaml        def rc -        unless @@rc -          @rc_path.each do |v| +        if @markup_dir_changed_ +          rc_path_options.each do |v|              if @@noyaml \              or FileTest.exist?("#{v}/noyaml")                STDERR.puts "WARNING - YAML loading switched off, to enable delete the file:\n\t#{v}/noyaml\n\n" unless @@noyaml                @@noyaml=true                break              else -              f='sisurc.yml' -              if FileTest.exist?("#{v}/#{f}") +              f=S_CONF[:rc_yml] +              p_f="#{v}/#{f}" +              if FileTest.exist?(p_f)                  require 'yaml' -                @@sisurc_path="#{v}/#{f}" -                @@rc=YAML::load(File::open(@@sisurc_path)) +                @@sisurc_path=v +                @@rc=YAML::load(File::open(p_f))                  break                end                unless @@rc                  f='sisurc.yaml' -                if FileTest.exist?("#{v}/#{f}") +                p_f="#{v}/#{f}" +                if FileTest.exist?(p_f)                    require 'yaml' -                  @@sisurc_path="#{v}/#{f}" -                  @@rc=YAML::load(File::open(@@sisurc_path)) +                  @@sisurc_path=v +                  @@rc=YAML::load(File::open(p_f))                    break                  end                end @@ -333,40 +366,52 @@ module SiSU_Env      end      def ads #WORK AREA        tell_no_yaml='WARNING - YAML loading switched off, to enable delete the file:' -      @ad_path.each do |v| -        if @@noyaml \ -        or FileTest.exist?("#{v}/noyaml") -          puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml -          @@noyaml=true -          break -        else -          if FileTest.exist?("#{v}/list.yml") -            unless @@ad[:promo_list] -              require 'yaml' -              @@ad[:promo_list] ||= YAML::load(File::open("#{v}/list.yml")) -            end -            @@ad[:flag_promo]=true +      if @markup_dir_changed_ +        @ad_path=[ +          "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/#{SiSU_version_dir}/skin/yml", +          "#{$sisu_document_markup_directory_base_fixed_path}/.sisu/skin/yml", +          "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/#{SiSU_version_dir}/skin/yml", +          "#{$sisu_document_markup_directory_base_fixed_path}/_sisu/skin/yml", +          "#{@@home}/.sisu/#{SiSU_version_dir}/skin/yml", +          "#{@@home}/.sisu/skin/yml", +          "#{@@sisu_etc}/#{SiSU_version_dir}/skin/yml", +          "#{@@sisu_etc}/skin/yml", +        ] +        @ad_path.each do |v| +          if @@noyaml \ +          or FileTest.exist?("#{v}/noyaml") +            puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml +            @@noyaml=true              break +          else +            if FileTest.exist?("#{v}/list.yml") +              unless @@ad[:promo_list] +                require 'yaml' +                @@ad[:promo_list] ||= YAML::load(File::open("#{v}/list.yml")) +              end +              @@ad[:flag_promo]=true +              break +            end +            @@ad[:flag_promo]=false            end -          @@ad[:flag_promo]=false          end -      end -      @ad_path.each do |v| -        if @@noyaml \ -        or FileTest.exist?("#{v}/noyaml") -          puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml -          @@noyaml=true -          break -        else -          if FileTest.exist?("#{v}/promo.yml") -            unless @@ad[:promo] -              require 'yaml' -              @@ad[:promo] ||= YAML::load(File::open("#{v}/promo.yml")) -            end -            @@ad[:flag_promo]=true +        @ad_path.each do |v| +          if @@noyaml \ +          or FileTest.exist?("#{v}/noyaml") +            puts tell_no_yaml + "\n\t#{v}/noyaml\n" unless @@noyaml +            @@noyaml=true              break +          else +            if FileTest.exist?("#{v}/promo.yml") +              unless @@ad[:promo] +                require 'yaml' +                @@ad[:promo] ||= YAML::load(File::open("#{v}/promo.yml")) +              end +              @@ad[:flag_promo]=true +              break +            end +            @@ad[:flag_promo]=false            end -          @@ad[:flag_promo]=false          end        end        @@ad @@ -377,11 +422,11 @@ module SiSU_Env      @@ad={}      attr_accessor :rc,:fnn,:fnb,:fnt,:fnv,:fnz,:ad      def initialize(fns='') -      super()        @fns=fns        @sys=InfoSystem.instance -      @rc=GetInit.instance.sisu_yaml.rc -      @ad=GetInit.instance.ads +      get_init=SiSU_Env::GetInit.new +      @rc=get_init.sisu_yaml.rc +      @ad=get_init.ads        if @fns \        and @fns != '' \        and @fns !=@@fns @@ -427,9 +472,11 @@ module SiSU_Env            or ((defined? @rc['output_structure']['by_filename']) \            && @rc['output_structure']['by_filename'] ==true)              :filename -          else #recheck current default +          else #set default              :language            end +        else #set default +          :language          end        end        def dump? @@ -611,8 +658,11 @@ module SiSU_Env    end    class SystemCall      @@locale_flag=false -    def initialize(input='',output='',cmd='') -      @input,@output,@cmd=input,output,cmd +    def initialize(input='',output='',opt_or_cmd='') +      @input,@output=input,output +      (opt_or_cmd.is_a?(SiSU_Commandline::Options)) \ +      ? (@cmd,@opt=opt_or_cmd.cmd,opt_or_cmd) +      : (@cmd,@opt=opt_or_cmd,nil) #cmd.is_a?(String)        @prog=SiSU_Env::InfoProgram.new        @sys=InfoSystem.instance      end @@ -746,14 +796,14 @@ module SiSU_Env        program='identify'        program_ref="\n\t\tsee <http://www.imagemagick.org/>"        found=(program_found?(program)) ? true : false -      STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found +      #STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found        found      end      def graphicksmagick                                                        #graphicsmagick is a image manipulation program        program='gm'        program_ref="\n\t\tsee <http://www.graphicsmagick.org/>"        found=(program_found?(program)) ? true : false -      STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found +      #STDERR.puts "\t*WARN* #{program} is not installed #{program_ref}" unless found        found      end      def well_formed?                                                           #tidy - check for well formed xml xhtml etc. @@ -828,19 +878,23 @@ module SiSU_Env          elsif @cmd =~/v/; 'v'          else              ''          end -        msg='' -        msg=" && echo 'OK: #{@input} -> #{@output}'" unless @cmd =~/q/ +        cX=SiSU_Screen::Ansi.new(@cmd).cX +        msg=(@cmd =~/q/) ? '' : %{ && echo " #{cX.grey}OK: #{@input} -> #{@output}#{cX.off}"} +        amp=(@opt \ +        && @opt.files.length > 1) \ +        ? '' +        : ((@cmd =~/[vVM]/) ? '' : '&')          rsync_cmd="rsync -az#{vb} #{action} #{@input} #{@output}"          puts rsync_cmd if @cmd =~/[vVM]/          dir_change,dir_return='','' -        if chdir \ +        if not chdir.nil? \          && chdir != Dir.pwd            dir_change=Dir.chdir(chdir)            dir_return=Dir.pwd          end          dir_change          system(" -          #{rsync_cmd} #{msg} +          #{rsync_cmd} #{msg} #{amp}          ")          dir_return        else STDERR.puts "\t*WARN* #{program} not found" @@ -980,6 +1034,7 @@ module SiSU_Env      @@fb,@@man_path=nil,nil      def initialize(fns='',md=nil)        super() #you may not want to re-execute this static info so frequently! +      @init=SiSU_Env::GetInit.new        @fns,@md=fns,md        @env=SiSU_Env::EnvCall.new(fns) if fns        fnb=if @md \ @@ -1027,6 +1082,9 @@ module SiSU_Env          pt.split[-1].to_s        elsif  output_dir_structure.by_filename?          '' +      else +        puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuschia) +        puts 'set output type, by: language, filetype or filename'        end        @stub_set_manifest=stub + '/manifest'      end @@ -1101,6 +1159,52 @@ module SiSU_Env      def stub_pod        @stub_pod      end +    def sisupod_v4(opt) +      #processing_path.processing +      #  sisupod +      #    doc/ +      #      manifest.txt +      #      en/content.sst                [file content] +      #      fr/content.sst +      #      _sisu +      #        sisu_document_make +      #        image@ (ln -s ../../image) +      #        audio@ (ln -s ../../audio) +      #        video@ (ln -s ../../video) +      #    image/                          [all images for specific document gathered here] +      #    audio/ +      #    video/ +      spp="#{processing_path.processing}/#{Gt[:sisupod]}" +      sppc="#{spp}/doc/_sisu" +      lng_dirs=[] +      if FileTest.directory?(spp) \ +      or FileTest.file?(spp) +        FileUtils::rm_rf(spp) +      end +      paths=[] +      flv=SiSU_Env::EnvCall.new(opt.fns).document_language_versions_found +      flv[:f].each {|l| lng_dirs << l[:l] } +      lng_dirs.uniq.each do |lng| +        paths << "#{spp}/doc/#{lng}" +      end +      paths \ +      << "#{spp}/image" +     #<< "#{spp}/audio" \ +     #<< "#{spp}/video" \ +      paths.each do |x| +        unless FileTest.directory?(x) +          FileUtils::mkdir_p(x) +        end +      end +      if FileTest.directory?(sppc) +        pwd=Dir.pwd +        Dir.chdir(sppc) +        FileUtils::ln_s('../../image', 'image') +       #FileUtils::ln_s('../../audio', 'audio') +       #FileUtils::ln_s('../../video', 'video') +        Dir.chdir(pwd) +      end +    end      def sisupod_v3(opt)        #processing_path.processing        #  sisupod @@ -1378,9 +1482,9 @@ module SiSU_Env        : false      end      def widget #needs (md) #move -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc -      @ad=SiSU_Env::GetInit.instance.ads -      @vz=SiSU_Env::GetInit.instance.skin +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc +      @ad=SiSU_Env::GetInit.new.ads +      @vz=SiSU_Viz::Defaults.new        @flag={ ad: false, md: false, sk: false, rc: false }        def promo?          @flag[:ad]=if @md.flag_promo && @ad[:flag_promo] @@ -1453,7 +1557,7 @@ module SiSU_Env          end        end        def search_form(type='sisusearch',action=nil,db=nil,table=false) -        rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +        rc=SiSU_Env::GetInit.new.sisu_yaml.rc          create_form_sisu=if action \          and db \          and action =~/https?:\/\// \ @@ -1509,7 +1613,7 @@ WOK          form        end        def search_form_static(action=nil,db=nil) -        rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +        rc=SiSU_Env::GetInit.new.sisu_yaml.rc          create_form=if rc['search']['sisu']['flag']==true \          and action \          and db \ @@ -1557,8 +1661,8 @@ WOK        self      end      def widget_static -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc -      @vz=SiSU_Env::GetInit.instance.skin +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc +      @vz=SiSU_Viz::Defaults.new        @flag={ ad: false, md: false, sk: false, rc: false }        def search?          flag=if defined? @rc['search'] \ @@ -1566,8 +1670,6 @@ WOK          and defined? @rc['search']['sisu']['action'] \          and @rc['search']['sisu']['action'] =~/https?:\/\// \          and defined? @rc['search']['sisu']['db'] \ -        and @rc['search']['sisu']['db'] =~/\S+/ \ -        and defined? @rc['search']['sisu']['db'] \          and @rc['search']['sisu']['db'] =~/\S+/            flag=if defined? @vz.widget_search \            and @vz.widget_search==true @@ -1605,7 +1707,7 @@ WOK          end        end        def search_form(action=nil,db=nil) -        rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +        rc=SiSU_Env::GetInit.new.sisu_yaml.rc          create_form=if defined? rc['search']['sisu']['flag'] \          and rc['search']['sisu']['flag']==true \          and action \ @@ -1742,22 +1844,28 @@ WOK        end        self      end +    def read_source_file_array(fns) +      fns_array=(fns !~/\.ssm.sst$/) \ +      ? (IO.readlines(fns, mode: 'r:utf-8', cr_newline: true)) +      : (IO.readlines("#{processing_path.composite_file}/#{fns}", mode: 'r:utf-8', cr_newline: true)) +    end      def read_source_file(fns) -      fns_array=unless fns =~/\.ssm.sst$/ -        IO.readlines(fns, mode: 'r:utf-8', cr_newline: true) -      else -        IO.readlines("#{processing_path.composite_file}/#{fns}", mode: 'r:utf-8', cr_newline: true) -      end +      read_source_file_array(fns) +    end +    def read_source_file_string(fns) +      fns_str=(fns !~/\.ssm.sst$/) \ +      ? (IO.read(fns, mode: 'r:utf-8', cr_newline: true)) +      : (IO.read("#{processing_path.composite_file}/#{fns}", mode: 'r:utf-8', cr_newline: true))      end      def source_file_processing_array(fns) -      sf=read_source_file(fns).join.split(/\s*\n\s*\n/m) +      sf=read_source_file_string(fns).split(/\s*\n\s*\n/m)      end      def path                                                                     #dir        def home          @sys.home        end        def sisurc_path -        GetInit.instance.sisu_yaml.rc_path +        GetInit.new.sisu_yaml.rc_path        end        def pwd          @sys.pwd @@ -1825,10 +1933,10 @@ WOK          defaults[:sample_data_path]        end        def rc -        @sys.rc_path +        @init.rc_path        end        def yamlrc -        GetInit.instance.sisu_yaml.rc_path +        GetInit.new.sisu_yaml.rc_path        end        def man #check use          (defined? @rc['webserv']['man']) \ @@ -1842,7 +1950,11 @@ WOK          man_path=if @@man_path.nil?            man_path=if defined? @rc['webserv']['path'] \            and @rc['webserv']['path'] =~/\S\S+/ +            pwd=Dir.pwd +            Dir.chdir(SiSU_Utils::Path.new.base_markup)              man_path=@@man_path=File.expand_path(@rc['webserv']['path']) +            Dir.chdir(pwd) +            man_path            else defaults[:webserv_path]            end          else @@man_path @@ -1922,7 +2034,8 @@ WOK          and defined? @rc['image']['public']            pth="#{@rc['image']['path']}"            "#{pth}/#{@rc['image']['public']}" -        else "#{share}/image" +        else +          "#{share}/image"          end        end        def image_source_sisu_includes @@ -1935,6 +2048,8 @@ WOK            "#{@rc['image']['path']}/#{@rc['image']['public']}"          elsif FileTest.directory?("#{@@pwd}/#{defaults[:image_stub]}")==true            "#{@@pwd}/#{defaults[:image_stub]}" +        elsif FileTest.directory?("#{SiSU_Utils::Path.new.base_markup}/#{defaults[:image_stub]}")==true +          "#{SiSU_Utils::Path.new.base_markup}/#{defaults[:image_stub]}"          else            "#{share}/image"          end @@ -2036,7 +2151,6 @@ WOK            else              sisupod_processing_path + '/' + Gt[:doc]            end -#p sisup  od_processing_path_lng            unless FileTest.directory?(sisupod_processing_path_lng)              #puts "a processing directory (#{sisupod_processing_path_lng}) is being created for use by sisu"              FileUtils::mkdir_p(sisupod_processing_path_lng) @@ -2280,7 +2394,7 @@ WOK          end        end        def webserv_cgi                                                          #web url for local webserv (localhost, or hostname) -        if defined? @rc['webserv_cgi']['host'] \ +        http=if defined? @rc['webserv_cgi']['host'] \          and @rc['webserv_cgi']['host'].is_a?(String)            http=((@rc['webserv_cgi']['host'] =~ /https?:\/\//) ? '' : 'http://') #check https? missing            if port.webserv_port_cgi @@ -2294,9 +2408,10 @@ WOK            else "#{http}#{webserv_host_base}/#{@stub_pwd}"            end          end +        http=http.strip        end        def webserv_base_cgi                                                     #web url for local webserv (localhost, or hostname) -        if defined? @rc['webserv_cgi']['host'] \ +        http=if defined? @rc['webserv_cgi']['host'] \          and @rc['webserv_cgi']['host'].is_a?(String)            http=((@rc['webserv_cgi']['host'] =~ /https?:\/\//) ? '' : 'http://')            if port.webserv_port_cgi @@ -2310,6 +2425,7 @@ WOK            else "#{http}#{webserv_host_base}"            end          end +        http=http.strip        end        def webrick #must have a port #REMOVE          if defined? @rc['webserv_cgi']['host'] \ @@ -2365,12 +2481,13 @@ WOK          else                  webserv_base_cgi          end        end -      def sample_search_form_title -        if defined? @rc['search']['sisu']['title'] \ +      def sample_search_form_title(organised_by=:language) +        title=if defined? @rc['search']['sisu']['title'] \          and @rc['search']['sisu']['title'] =~/\S+/            @rc['search']['sisu']['title'] -        else %{(SiSU (generated sample) search form} +        else %{SiSU (generated sample) search form}          end +        title=title + " (content organised by #{organised_by})"        end        def output_tell                                      #BROKEN Revisit 2011-02          output_type=if defined? @rc['show_output_on'] \ @@ -2728,7 +2845,7 @@ WOK    class InfoProcessingFlag      attr_accessor :color,:cf_0,:cf_1,:cf_2,:cf_3,:cf_4,:cf_5      def initialize -      @rc=GetInit.instance.sisu_yaml.rc +      @rc=GetInit.new.sisu_yaml.rc      end      def color                                                                  #processing flag shortcuts        (defined? @rc['flag']['color']) ? @rc['flag']['color'] : false @@ -2796,121 +2913,124 @@ WOK        @env=(@opt.fns && !(@opt.fns.empty?) \        ? (SiSU_Env::InfoEnv.new(@opt.fns))        : (SiSU_Env::InfoEnv.new('dummy.sst'))) -      if @opt.cmd =~/m/; @md=SiSU_Param::Parameters.new(@opt).get -      end        ft=[] -      if @md \ -      and defined? @md.fn \ -      and @md.fn        # used for by_language_code? -        if @md.opt.cmd =~ /[hH]/ -          ft << @md.fn[:html] -        end -        if @md.opt.cmd =~ /w/ \ -        and @md.opt.cmd !~ /[hH]/ -          ft << @md.fn[:concordance] -        end -        if @md.opt.cmd =~ /y/ \ -        and @md.opt.cmd !~ /[hH]/ -          ft << @md.fn[:manifest] -        end -        if @md.opt.cmd =~ /[at]/; ft << @md.fn[:plain] -        end -        if @md.opt.cmd =~ /b/; ft << @md.fn[:xhtml] -        end -        if @md.opt.cmd =~ /e/; ft << @md.fn[:epub] -        end -        if @md.opt.cmd =~ /g/; ft << @md.fn[:wiki] -        end -        if @md.opt.cmd =~ /i/; ft << @md.fn[:manpage] -        end -        if @md.opt.cmd =~ /N/; ft << @md.fn[:digest] -        end -        if @md.opt.cmd =~ /o/; ft << @md.fn[:odf] -        end -        if @md.opt.cmd =~ /O/; ft << @md.fn[:oai_pmh] -        end -        if @md.opt.cmd =~ /p/; ft << @md.fn[:pdf_l] << @md.fn[:pdf_p] -        end -        if @md.opt.cmd =~ /s/; ft << @md.fns -        end -        if @md.opt.cmd =~ /S/; ft << @md.fn[:sisupod] << '.kdi' -        end -        if @md.opt.cmd =~ /x/; ft << @md.fn[:sax] -        end -        if @md.opt.cmd =~ /X/; ft << @md.fn[:dom] -        end -        if @md.opt.cmd =~ /G/; ft << @md.fn[:pot] -        end -        @fnb=@md.fnb -      else                                                                     # still needed where/when param is not parsed -        if @opt.cmd =~ /[hH]/; ft << '.html' << '.html.??' -        end -        if @opt.cmd =~ /w/ \ -        and @opt.cmd !~ /[hH]/ -          ft << 'concordance.html' << '??.concordance.html' << 'concordance.??.html' -        end -        if @opt.cmd =~ /y/ \ -        and @opt.cmd !~ /[hH]/ -          ft << 'sisu_manifest.html' << '??.sisu_manifest.html' << 'sisu_manifest.??.html' -        end -        if @opt.cmd =~ /a/; ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt' -        end -        if @opt.cmd =~ /b/; ft << 'scroll.xhtml' << '??.scroll.xhtml' << 'scroll.??.xhtml' -        end -        if @opt.cmd =~ /e/; ft  << @fnb << '.epub' -        end -        if @opt.cmd =~ /g/; ft << 'wiki.txt' << '??.wiki.txt' << 'wiki.??.txt' -        end -        if @opt.cmd =~ /i/; ft << '.1' << '??.man.1' << 'man.??.1' -        end -        if @opt.cmd =~ /N/; ft << 'digest.txt' << '??.digest.txt' << 'digest.??.txt' -        end -        if @opt.cmd =~ /o/; ft << 'opendocument.odt' << '??.opendocument.odt' << 'opendocument.??.odt' -        end -        if @opt.cmd =~ /O/; ft << 'oai_pmh.xml' -        end -        if @opt.cmd =~ /p/; ft << 'landscape.pdf' << 'portrait.pdf' << '.pdf' -        end -        if @opt.cmd =~ /s/; ft << '.sst' << '.ssi' << '.ssm' -        end -        if @opt.cmd =~ /S/; ft << '.zip' << '.kdi' -        end -        if @opt.cmd =~ /x/; ft << 'sax.xml' << '??.sax.xml' << 'sax.??.xml' -        end -        if @opt.cmd =~ /X/; ft << 'dom.xml' << '??.dom.xml' << 'dom.??.xml' -        end -        if @opt.mod.inspect =~ /sxm|sxs|xml/; ft << @fnb << '.sxs.xml' -        end -        if @opt.mod.inspect =~ /sxd/; ft << @fnb << '.sxd.xml' -        end -        if @opt.mod.inspect =~ /sxn/; ft << @fnb << '.sxn.xml' +      if @opt.act[:dal][:set]==:on +        @md=SiSU_Param::Parameters.new(@opt).get +        if @md \ +        and defined? @md.fn \ +        and @md.fn        # used for by_language_code? +          if @md.opt.cmd =~ /[hH]/ +            ft << @md.fn[:html] +          end +          if @md.opt.cmd =~ /w/ \ +          and @md.opt.cmd !~ /[hH]/ +            ft << @md.fn[:concordance] +          end +          if @md.opt.cmd =~ /y/ \ +          and @md.opt.cmd !~ /[hH]/ +            ft << @md.fn[:manifest] +          end +          if @md.opt.cmd =~ /[at]/; ft << @md.fn[:plain] +          end +          if @md.opt.cmd =~ /b/; ft << @md.fn[:xhtml] +          end +          if @md.opt.cmd =~ /e/; ft << @md.fn[:epub] +          end +          if @md.opt.cmd =~ /g/; ft << @md.fn[:wiki] +          end +          if @md.opt.cmd =~ /i/; ft << @md.fn[:manpage] +          end +          if @md.opt.cmd =~ /N/; ft << @md.fn[:digest] +          end +          if @md.opt.cmd =~ /o/; ft << @md.fn[:odf] +          end +          if @md.opt.cmd =~ /O/; ft << @md.fn[:oai_pmh] +          end +          if @md.opt.cmd =~ /p/; ft << @md.fn[:pdf_l] << @md.fn[:pdf_p] +          end +          if @md.opt.cmd =~ /s/; ft << @md.fns +          end +          if @md.opt.cmd =~ /S/; ft << @md.fn[:sisupod] << '.kdi' +          end +          if @md.opt.cmd =~ /x/; ft << @md.fn[:sax] +          end +          if @md.opt.cmd =~ /X/; ft << @md.fn[:dom] +          end +          if @md.opt.cmd =~ /G/; ft << @md.fn[:pot] +          end +          @fnb=@md.fnb +        else                                                                     # still needed where/when param is not parsed +          if @opt.cmd =~ /[hH]/; ft << '.html' << '.html.??' +          end +          if @opt.cmd =~ /w/ \ +          and @opt.cmd !~ /[hH]/ +            ft << 'concordance.html' << '??.concordance.html' << 'concordance.??.html' +          end +          if @opt.cmd =~ /y/ \ +          and @opt.cmd !~ /[hH]/ +            ft << 'sisu_manifest.html' << '??.sisu_manifest.html' << 'sisu_manifest.??.html' +          end +          if @opt.cmd =~ /a/; ft << 'plain.txt' << '??.plain.txt' << 'plain.??.txt' +          end +          if @opt.cmd =~ /b/; ft << 'scroll.xhtml' << '??.scroll.xhtml' << 'scroll.??.xhtml' +          end +          if @opt.cmd =~ /e/; ft  << @fnb << '.epub' +          end +          if @opt.cmd =~ /g/; ft << 'wiki.txt' << '??.wiki.txt' << 'wiki.??.txt' +          end +          if @opt.cmd =~ /i/; ft << '.1' << '??.man.1' << 'man.??.1' +          end +          if @opt.cmd =~ /N/; ft << 'digest.txt' << '??.digest.txt' << 'digest.??.txt' +          end +          if @opt.cmd =~ /o/; ft << 'opendocument.odt' << '??.opendocument.odt' << 'opendocument.??.odt' +          end +          if @opt.cmd =~ /O/; ft << 'oai_pmh.xml' +          end +          if @opt.cmd =~ /p/; ft << 'landscape.pdf' << 'portrait.pdf' << '.pdf' +          end +          if @opt.cmd =~ /s/; ft << '.sst' << '.ssi' << '.ssm' +          end +          if @opt.cmd =~ /S/; ft << '.zip' << '.kdi' +          end +          if @opt.cmd =~ /x/; ft << 'sax.xml' << '??.sax.xml' << 'sax.??.xml' +          end +          if @opt.cmd =~ /X/; ft << 'dom.xml' << '??.dom.xml' << 'dom.??.xml' +          end +          if @opt.mod.inspect =~ /sxm|sxs|xml/; ft << @fnb << '.sxs.xml' +          end +          if @opt.mod.inspect =~ /sxd/; ft << @fnb << '.sxd.xml' +          end +          if @opt.mod.inspect =~ /sxn/; ft << @fnb << '.sxn.xml' +          end          end +        ft=ft.uniq +        filetypes=ft.join(',') +        @filetypes=if filetypes !~/..+/;             ''   # -r called alone, copy all +        elsif @opt.cmd =~/u/;                        ''   # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u +        elsif filetypes =~/\S+?,\S+/;                '*{' + filetypes + '}' # more than one relevant file type +        else                                         '*' + filetypes # one relevant file type +        end +        @source_path=(@fnb && !(@fnb.empty?) \ +        ? "#{@env.path.output}/#{@fnb}" +        : @env.path.output) +        @source_path_epub=(@fnb && !(@fnb.empty?) \ +        ? "#{@env.path.output}/epub" +        : @env.path.output_epub) +        @source_path_src=(@fnb && !(@fnb.empty?) \ +        ? "#{@env.path.output}/src" +        : @env.path.output_src) +        @source_path_pod=(@fnb && !(@fnb.empty?) \ +        ? "#{@env.path.output}/pod" +        : @env.path.output_pod) +        @source_path_harvest=(@fnb && !(@fnb.empty?) \ +        ? "#{@env.path.output}/manifest" +        : @env.path.output_harvest) +        @local_sisu_source=(@filetypes =~/\S/) \ +        ? "#{@source_path}/#{@filetypes}" +        : @source_path +      end +      if @opt.act[:rsync][:set]==:on        end -      ft=ft.uniq -      filetypes=ft.join(',') -      @filetypes=if filetypes !~/..+/;             ''   # -r called alone, copy all -      elsif @opt.cmd =~/u/;                        ''   # -u added, copy all, (used to create remote directory tree see output path), not the usual function of -u -      elsif filetypes =~/\S+?,\S+/;                '*{' + filetypes + '}' # more than one relevant file type -      else                                         '*' + filetypes # one relevant file type -      end -      @source_path=(@fnb && !(@fnb.empty?) \ -      ? "#{@env.path.output}/#{@fnb}" -      : @env.path.output) -      @source_path_epub=(@fnb && !(@fnb.empty?) \ -      ? "#{@env.path.output}/epub" -      : @env.path.output_epub) -      @source_path_src=(@fnb && !(@fnb.empty?) \ -      ? "#{@env.path.output}/src" -      : @env.path.output_src) -      @source_path_pod=(@fnb && !(@fnb.empty?) \ -      ? "#{@env.path.output}/pod" -      : @env.path.output_pod) -      @source_path_harvest=(@fnb && !(@fnb.empty?) \ -      ? "#{@env.path.output}/manifest" -      : @env.path.output_harvest) -      @local_sisu_source=(@filetypes =~/\S/) \ -      ? "#{@source_path}/#{@filetypes}" -      : @source_path      end    end    class CleanOutput @@ -2918,52 +3038,78 @@ WOK        include FileUtils::Verbose      def initialize(opt)        @opt=opt -      z=SiSU_Env::FileMap.new(@opt) -      @zap=z.local_sisu_source -      if @opt.cmd =~ /[hH]/ -        @zap=Dir.glob(@zap).join(' ') -        @zap=if @opt.cmd !~ /w/ -          @zap.gsub(/#{@source_path}\/concordance.html/,'') -        else @zap +      z=SiSU_Env::FileMap.new(opt) +      zap=z.local_sisu_source +      if opt.cmd =~ /h/i +        zap=Dir.glob(zap).join(' ') +        @zap=if opt.cmd !~ /w/ +          zap.gsub(/#{@source_path}\/concordance.html/,'') +        else zap          end        end        @env=SiSU_Env::InfoEnv.new      end      def zap -      def main_output -        (@zap !~/\/\//) \ -        ? (FileUtils::rm_rf(@zap) if FileTest.directory?(@zap)) -        : (puts 'suspect zap request, ignored') -      end -      def site_map -        if @opt.fnb \ -        and not @opt.fnb.empty? -          sm="#{@env.path.output}/sitemaps/sitemap_#{@opt.fnb}.xml" -          FileUtils::rm(sm) if FileTest.file?(sm) -        end -      end -      def epub -        if @opt.fnb \ -        and not @opt.fnb.empty? -          sm="#{@env.path.output}/epub/#{@opt.fnb}.epub" -          FileUtils::rm(sm) if FileTest.file?(sm) -        end -      end -      def src # consider -        if @opt.fnb \ -        and not @opt.fnb.empty? -          sm="#{@env.path.output}/src/pod/#{@opt.fns}.txz" -          FileUtils::rm(sm) if FileTest.file?(sm) -          sm="#{@env.path.output}/src/#{@opt.fns}" -          FileUtils::rm(sm) if FileTest.file?(sm) -        end +      def deletion(fn) +        if FileTest.file?(fn)==true +          File.delete(fn) +          tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns, 'remove: ' + fn) +          tell.warn unless @opt.cmd =~/q/ +        end +      end +      def remove_output +        if @opt.act[:maintenance][:set] == :on +          m=InfoFile.new(@opt.fnc) +          tell=SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns, 'remove maintenance files from: ' + @env.processing_path.dal) +          tell.warn unless @opt.cmd =~/q/ +          deletion(m.marshal.dal_content) +          deletion(m.marshal.dal_idx_sst_rel_html_seg) +          deletion(m.dal_idx_sst_rel) +          deletion(m.dal_idx_html) +          deletion(m.dal_idx_xhtml) +          deletion(m.dal_metadata) +          deletion(m.dal_map_nametags) +          deletion(m.dal_map_ocn_htmlseg) +          deletion(m.html_tune) +        end +        md=SiSU_Param::Parameters.new(@opt).get +        f=SiSU_Env::FileOp.new(md) +        deletion(f.place_file.html_segtoc.dir) +        deletion(f.place_file.html_scroll.dir) +        deletion(f.place_file.html_book_index.dir) +        deletion(f.place_file.html_concordance.dir) +        deletion(f.place_file.epub.dir) +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_letter}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_letter}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_a4}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_a4}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_a5}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_a5}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_b5}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_l_b5}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_legal}") +        deletion("#{f.output_path.pdf.dir}/#{f.base_filename.pdf_p_legal}") +        deletion(f.place_file.odt.dir) +        deletion(f.place_file.xhtml.dir) +        deletion(f.place_file.xml_sax.dir) +        deletion(f.place_file.xml_dom.dir) +        deletion(f.place_file.info.dir) +        deletion(f.place_file.manpage.dir) +        deletion(f.place_file.sqlite_discrete.dir) +        deletion(f.place_file.txt.dir) +        deletion(f.place_file.hash_digest.dir) +        deletion(f.place_file.manifest.dir) +        deletion(f.place_file.qrcode_md.dir) +        deletion(f.place_file.qrcode_title.dir) +        deletion(f.place_file.src.dir) +        deletion(f.place_file.sisupod.dir)        end        self      end    end    class InfoRemoteHost      def initialize -      @rc=GetInit.instance.sisu_yaml.rc +      @rc=GetInit.new.sisu_yaml.rc      end      def remote_host #see InfoRemote remote_host_base_general        r=[] @@ -3047,7 +3193,7 @@ WOK      def initialize(opt)        super(opt) #        @opt=opt -      @rc=GetInit.instance.sisu_yaml.rc +      @rc=GetInit.new.sisu_yaml.rc      end      def remote_host_base_general        SiSU_Env::InfoRemoteHost.new.remote_host @@ -3149,194 +3295,195 @@ WOK        end        self      end -    def images_from_skin -      skin=SiSU_Env::InfoSkin.new(@md).select -      skin_array=nil -      skin_images_array=[] -      if skin -        skin_array=IO.readlines(skin,"\n") -        skin_array.each do |l| -          if l !~/^#/ -            if l =~/([a-z0-9._-]+\.(?:png|jpg|gif))/i -              skin_images_array << $1 +    def rsync +      def document +        f=(@opt.act[:dal][:set]==:on) \ +        ? SiSU_Env::FileOp.new(@md) +        : nil +        if f +          self.remote_host_base.each do |remote_conn| +            local_gen=@source_path +            #local_gen_image="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" +            #local_gen_image_external="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external" +            remote_gen="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." +            remote_rel=remote_conn[:name] + '/' + f.output_path.stub.rcp +            src_txt=@opt.fnc +            if (local_gen =~/\S/ \ +            and local_gen !~/\/\//) \ +            and (remote_gen =~/\S/ \ +            and remote_gen !~/\/\//) \ +            and @@flag_remote==true \ +            and @opt.cmd !~/U/ +#             SiSU_Env::SystemCall.new("#{local_src}/#{src_txt}",remote_src,@opt.cmd).rsync +              delete_extra_files='--delete' # '--delete-after' +              inp=[] +              if (@opt.act[:html][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.html_scroll.dir) +                inp << f.output_path.html_seg.rel << f.place_file.html_scroll.rel +              end +              if (@opt.act[:concordance][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.html_concordance.dir) +                inp << f.place_file.html_concordance.rel +              end +              if (@opt.act[:epub][:set]==:on \ +              || @opt.cmd =~/^-R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.epub.dir) +                inp << f.place_file.epub.rel +              end +              if (@opt.act[:odt][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.odt.dir) +                inp << f.place_file.odt.rel +              end +              if (@opt.act[:xhtml][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.xhtml.dir) +                inp << f.place_file.xhtml.rel +              end +              if (@opt.act[:xml_sax][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.xml_sax.dir) +                inp << f.place_file.xml_sax.rel +              end +              if (@opt.act[:xml_dom][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.xml_dom.dir) +                inp << f.place_file.xml_dom.rel +              end +              if (@opt.act[:txt][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.txt.dir) +                inp << f.place_file.txt.rel +              end +              if (@opt.act[:manpage][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*i[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.manpage.dir) +                inp << f.place_file.manpage.rel +              end +              if (@opt.act[:texinfo][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*I[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.info.dir) +                inp << f.place_file.info.rel +              end +              if (@opt.act[:hash_digests][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.hash_digest.dir) +                inp << f.place_file.hash_digest.rel +              end +              if (@opt.act[:share_source][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.src.dir) +                inp << f.place_file.src.rel +              end +              if (@opt.act[:sisupod][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.sisupod.dir) +                inp << f.place_file.sisupod.rel +              end +              if (@opt.act[:pdf][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) +                inp <<=(@opt.dir_structure_by == :filename) \ +                ? (f.output_path.pdf.rel + '/*.pdf') +                : (f.output_path.pdf.rel + '/' + @opt.fnb + '*.pdf') +              end +              if (@opt.act[:sqlite_discrete][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.sqlite_discrete.dir) +                inp << f.place_file.sqlite_discrete.rel +              end +              if (@opt.act[:qrcode][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.qrcode_md.dir) +                inp << f.place_file.qrcode_md.rel << f.place_file.qrcode_title.rel +              end +              if (@opt.act[:manifest][:set]==:on \ +              || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ +              && FileTest.file?(f.place_file.manifest.dir) +                inp << f.place_file.manifest.rel +              end +              local_gen=if inp.length > 0 +                inp.join(' ') +              else '' +              end +              local_css,images,images_external,images_system='','','','' +              images_gen=images=images_skin=images_system=local_css='' +              if @opt.cmd =~/[hwbxX]/ \ +              && (defined? @md.ec[:image]) \ +              && (@md.ec[:image].length > 0) +                images=f.place_file.images.rel + '/' + @md.ec[:image].join(" #{f.output_path.images.rel}/") +              end +              if @opt.cmd =~/[yhwbxX]/ \ +              && (defined? @md.ec[:image]) \ +              && (@md.ec[:image].length > 0) +                local_css=f.output_path.css.rel +                images_system='_sisu/image_sys' +              end +              begin +                ##create file structure without copying files?: +                ##rsync -av -f"+ */" -f"- *" f.output_path.base.dir remote:./path/. +                #local_dirs=%{-f"+ */" -f"- *" #{f.output_path.base.dir}/*} +                #SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync +                local=local_gen + ' ' + images + ' ' + images_skin + ' ' + images_system + ' ' + local_css +                SiSU_Env::SystemCall.new(local,remote_rel,@opt.cmd).rsync('--relative',f.output_path.base.dir) +              rescue +                p __LINE__.to_s + ':' + __FILE__ +                local_dirs=%{--include='*/' --exclude='*' #{f.output_path.base.dir}} +                SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync +              end +            elsif @opt.cmd =~/U/ +              puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ +              puts "#{local_gen} -> #{remote_gen}" +              if FileTest.file?("#{local_src}/#{src_doc}") \ +              or FileTest.file?("#{local_src}/#{src_doc}.txz") +                puts "#{local_src}/#{src_doc}* -> #{remote_src}" +              end +            else +              puts 'suspect rsync request, ignored' +              puts "#{local_gen} -> #{remote_gen} remote flag: #{@@flag_remote}" +              puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/              end            end          end        end -      skin_images_array -    end -    def rsync -      @f=SiSU_Env::FileOp.new(@md) -      def document +      def site_harvest          self.remote_host_base.each do |remote_conn| -          local_gen=@source_path -          #local_gen_image="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image" -          #local_gen_image_external="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_external" -          remote_gen="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." -          remote_rel=remote_conn[:name] + '/' + @f.output_path.stub.rcp -          src_txt=@opt.fnc -          if (local_gen =~/\S/ \ -          and local_gen !~/\/\//) \ -          and (remote_gen =~/\S/ \ -          and remote_gen !~/\/\//) \ -          and @@flag_remote==true \ -          and @opt.cmd !~/U/ -#           SiSU_Env::SystemCall.new("#{local_src}/#{src_txt}",remote_src,@opt.cmd).rsync -            delete_extra_files='--delete' # '--delete-after' -            inp=[] -            if (@opt.act[:html][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.html_scroll.dir) -              inp << @f.output_path.html_seg.rel << @f.place_file.html_scroll.rel -            end -            if (@opt.act[:concordance][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.html_concordance.dir) -              inp << @f.place_file.html_concordance.rel -            end -            if (@opt.act[:epub][:set]==:on \ -            || @opt.cmd =~/^-R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.epub.dir) -              inp << @f.place_file.epub.rel -            end -            if (@opt.act[:odt][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.odt.dir) -              inp << @f.place_file.odt.rel -            end -            if (@opt.act[:xhtml][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.xhtml.dir) -              inp << @f.place_file.xhtml.rel -            end -            if (@opt.act[:xml_sax][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.xml_sax.dir) -              inp << @f.place_file.xml_sax.rel -            end -            if (@opt.act[:xml_dom][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.xml_dom.dir) -              inp << @f.place_file.xml_dom.rel -            end -            if (@opt.act[:txt][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.txt.dir) -              inp << @f.place_file.txt.rel -            end -            if (@opt.act[:manpage][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*i[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.manpage.dir) -              inp << @f.place_file.manpage.rel -            end -            if (@opt.act[:texinfo][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*I[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.info.dir) -              inp << @f.place_file.info.rel -            end -            if (@opt.act[:hash_digests][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.hash_digest.dir) -              inp << @f.place_file.hash_digest.rel -            end -            if (@opt.act[:share_source][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.src.dir) -              inp << @f.place_file.src.rel -            end -            if (@opt.act[:sisupod][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.sisupod.dir) -              inp << @f.place_file.sisupod.rel -            end -            if (@opt.act[:pdf][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) -              inp << @f.output_path.pdf.rel + '/' + @opt.fnb + '*' -            end -            if (@opt.act[:sqlite_discrete][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.sqlite_discrete.dir) -              inp << @f.place_file.sqlite_discrete.rel -            end -            if (@opt.act[:qrcode][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.qrcode_md.dir) -              inp << @f.place_file.qrcode_md.rel << @f.place_file.qrcode_title.rel -            end -            if (@opt.act[:manifest][:set]==:on \ -            || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ -            && FileTest.file?(@f.place_file.manifest.dir) -              inp << @f.place_file.manifest.rel -            end -            local_gen=if inp.length > 0 -              inp.join(' ') -            else '' -            end -            local_css,images,images_external,images_system='','','','' -            images_gen=images=images_skin=images_system=local_css='' -            if @opt.cmd =~/[hwbxX]/ \ -            && (defined? @md.ec[:image]) \ -            && (@md.ec[:image].length > 0) -              images=@f.place_file.images.rel + '/' + @md.ec[:image].join(" #{@f.output_path.images.rel}/") -            end -            if @opt.cmd =~/[yhwbxX]/ \ -            && (defined? @md.ec[:image]) \ -            && (@md.ec[:image].length > 0) -              local_css=@f.output_path.css.rel -              images_system='_sisu/image_sys' -              if @f.output_path.images.rel.length > 0 \ -              && images_from_skin.length > 0 -                images_skin=@f.place_file.images.rel + '/' + images_from_skin.join(" #{@f.output_path.images.rel}/") -              end -            end -            begin -              ##create file structure without copying files?: -              ##rsync -av -f"+ */" -f"- *" @f.output_path.base.dir remote:./path/. -              #local_dirs=%{-f"+ */" -f"- *" #{@f.output_path.base.dir}/*} -              #SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync -              local=local_gen + ' ' + images + ' ' + images_skin + ' ' + images_system + ' ' + local_css -              SiSU_Env::SystemCall.new(local,remote_rel,@opt.cmd).rsync('--relative',@f.output_path.base.dir) -            rescue -              p __LINE__.to_s + ':' + __FILE__ -              local_dirs=%{--include='*/' --exclude='*' #{@f.output_path.base.dir}} -              SiSU_Env::SystemCall.new(local_dirs,remote_gen,@opt.cmd).rsync -            end +          local=@source_path_harvest +          l_rel="#{@env.path.webserv}/#{@env.path.stub_pwd}" +          lng='en' +          if @env.output_dir_structure.by? == :language +            ldest="#{lng}/manifest" +            files="#{ldest}/authors.html #{ldest}/topics.html" +          elsif @env.output_dir_structure.by? == :filetype +            ldest="manifest" +            files="#{ldest}/authors.#{lng}.html #{ldest}/topics.#{lng}.html" +          elsif @env.output_dir_structure.by? == :filename +            files="#{l_rel}/authors.#{lng}.html #{l_rel}/topics.#{lng}.html" +          end +          remote="#{remote_conn[:name]}/#{@opt.base_stub}" +          if @opt.act[:harvest][:set] \ +          && @opt.act[:rsync][:set] +            (@env.output_dir_structure.by? == :filename) \ +            ? (SiSU_Env::SystemCall.new(files,remote).rsync) +            : (SiSU_Env::SystemCall.new(ldest,remote).rsync('--relative',l_rel))            elsif @opt.cmd =~/U/              puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ -            puts "#{local_gen} -> #{remote_gen}" -            if FileTest.file?("#{local_src}/#{src_doc}") \ -            or FileTest.file?("#{local_src}/#{src_doc}.txz") -              puts "#{local_src}/#{src_doc}* -> #{remote_src}" -            end -          else -            puts 'suspect rsync request, ignored' -            puts "#{local_gen} -> #{remote_gen} remote flag: #{@@flag_remote}" -            puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ +            puts "rsync_harvest: #{local} -> #{remote}" +          else  puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/            end          end        end        def site_base                                                             #base site -        ldest="#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu" +        ldest='_sisu/*' +        l_rel="#{@env.path.webserv}/#{@env.path.stub_pwd}"          image_sys="#{@env.path.webserv}/_sisu/image_sys"          images="#{@env.path.webserv}/_sisu/image"          self.remote_host_base.each do |remote_conn| -          remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." +          remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}"            remote_conf="#{remote_conn[:name]}/_sisu" -          if defined? @rc['permission_set']['remote_base_site'] \ -          and @rc['permission_set']['remote_base_site'] \ -          and @@flag_remote==true \ -          and @opt.cmd !~/U/ -            SiSU_Env::SystemCall.new("#{image_sys}","#{remote_conf}").rsync -            SiSU_Env::SystemCall.new("#{images}","#{remote_conf}").rsync -            SiSU_Env::SystemCall.new("#{ldest}","#{remote}").rsync -          elsif @opt.cmd =~/U/ -            puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ -            puts "rsync_base: #{local} -> #{remote}" -            puts "#{local}/_sisu/image -> #{remote}" -            puts "#{local}/_sisu/image_sys/ -> #{remote}" -            puts "#{local}/#{@env.path.style}/ -> #{remote}" -          else  puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ -          end +            SiSU_Env::SystemCall.new(image_sys,remote_conf).rsync +            SiSU_Env::SystemCall.new(ldest,remote).rsync('--relative',l_rel)          end        end        def site_base_sync @@ -3378,32 +3525,22 @@ WOK          end        end      end -    def rsync_harvest -      self.remote_host_base.each do |remote_conn| -        local=@source_path_harvest -        remote="#{remote_conn[:name]}/#{@env.path.stub_pwd}/." -        if @@flag_remote -          delete_extra_files='--delete' # '--delete-after' -          SiSU_Env::SystemCall.new(local,remote).rsync(delete_extra_files) -        elsif @opt.cmd =~/U/ -          puts "#{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ -          puts "rsync_sitemaps: #{local} -> #{remote}" -        else  puts "permission not granted #{__FILE__} #{__LINE__}" if @opt.cmd =~/M/ -        end -      end -    end    end    class InfoVersion <InfoEnv      include Singleton      require 'rbconfig' +    require 'yaml'      @@lib_path=nil      def get_version        @version={}        @pwd=ENV['PWD'] -      yst_ver="#{defaults[:sisu_share]}/#{SiSU_version_dir}/v/version.yml" +      yst_ver=SiSU_path_specified_Version_ \ +      ? SiSU_path_specified_Version_ +      : "#{defaults[:sisu_share]}/#{SiSU_version_dir}/v/version.yml"        lib_path=@@lib_path ? @@lib_path : `echo $RUBYLIB`.split(':')        @@lib_path ||=lib_path -      if File.exist?(yst_ver); @version=YAML::load(File::open(yst_ver)) #unless @@noyaml +      if File.exist?(yst_ver) +        @version=YAML::load(File::open(yst_ver)) #unless @@noyaml        end        @version      end @@ -3497,7 +3634,7 @@ WOK        @md=md      end      def cnf_rc #sisurc.yml -      @rc=SiSU_Env::GetInit.instance.sisu_yaml.rc +      @rc=SiSU_Env::GetInit.new.sisu_yaml.rc      end      def env_rc #env rc (including sisurc.yml)        @env_rc ||=SiSU_Env::InfoEnv.new(@md.fns) @@ -3516,8 +3653,9 @@ WOK            true          elsif cmd_rc_act[:ocn][:set]==:off            false -        elsif defined? @md.make.ocn? \ -        and @md.make.ocn? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.ocn? \ +        and doc_rc.toc? ==:off            false          elsif env_rc.build.ocn? ==:off            false @@ -3530,8 +3668,9 @@ WOK            true          elsif cmd_rc_act[:toc][:set]==:off            false -        elsif defined? @md.make.toc? \ -        and @md.make.toc? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.toc? \ +        and doc_rc.toc? ==:off            false          elsif env_rc.build.toc? ==:off            false @@ -3544,8 +3683,9 @@ WOK            true          elsif cmd_rc_act[:manifest][:set]==:off            false -        elsif defined? @md.make.manifest? \ -        and @md.make.manifest? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.manifest? \ +        and doc_rc.manifest? ==:off            false          elsif env_rc.build.manifest? ==:off            false @@ -3558,8 +3698,9 @@ WOK            true          elsif cmd_rc_act[:links_to_manifest][:set]==:off            false -        elsif defined? @md.make.links_to_manifest? \ -        and @md.make.links_to_manifest? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.links_to_manifest? \ +        and doc_rc.links_to_manifest? ==:off            false          elsif env_rc.build.links_to_manifest? ==:off            false @@ -3572,8 +3713,9 @@ WOK            true          elsif cmd_rc_act[:metadata][:set]==:off            false -        elsif defined? @md.make.metadata? \ -        and @md.make.metadata? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.metadata? \ +        and doc_rc.metadata? ==:off            false          elsif env_rc.build.metadata? ==:off            false @@ -3588,8 +3730,9 @@ WOK            true          elsif cmd_rc_act[:minitoc][:set]==:off            false -        elsif defined? @md.make.minitoc? \ -        and @md.make.minitoc? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.minitoc? \ +        and doc_rc.minitoc? ==:off            false          elsif env_rc.build.minitoc? ==:off            false @@ -3606,9 +3749,10 @@ WOK          elsif cmd_rc_act[:manifest_minitoc][:set]==:off \          || cmd_rc_act[:minitoc][:set]==:off            false -        elsif defined? @md.make.manifest_minitoc? \ -        and (@md.make.manifest_minitoc? ==:off \ -        || @md.make.minitoc? ==:off) +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.manifest_minitoc? \ +        and (doc_rc.manifest_minitoc? ==:off \ +        || doc_rc.minitoc? ==:off)            false          elsif env_rc.build.manifest_minitoc? ==:off \          || env_rc.build.minitoc? ==:off @@ -3628,9 +3772,10 @@ WOK          elsif cmd_rc_act[:html_minitoc][:set]==:off \          || cmd_rc_act[:minitoc][:set]==:off            false -        elsif defined? @md.make.html_minitoc? \ -        and (@md.make.html_minitoc? ==:off \ -        || @md.make.minitoc? ==:off) +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_minitoc? \ +        and (doc_rc.html_minitoc? ==:off \ +        || doc_rc.minitoc? ==:off)            false          elsif env_rc.build.html_minitoc? ==:off \          || env_rc.build.minitoc? ==:off @@ -3646,8 +3791,9 @@ WOK            true          elsif cmd_rc_act[:html_top_band][:set]==:off            false -        elsif defined? @md.make.html_top_band? \ -        and @md.make.html_top_band? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_top_band? \ +        and doc_rc.html_top_band? ==:off            false          elsif env_rc.build.html_top_band? ==:off            false @@ -3660,8 +3806,9 @@ WOK            true          elsif cmd_rc_act[:html_navigation][:set]==:off            false -        elsif defined? @md.make.html_navigation? \ -        and @md.make.html_navigation? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_navigation? \ +        and doc_rc.html_navigation? ==:off            false          elsif env_rc.build.html_navigation? ==:off            false @@ -3674,8 +3821,9 @@ WOK            true          elsif cmd_rc_act[:html_navigation_bar][:set]==:off            false -        elsif defined? @md.make.html_navigation_bar? \ -        and @md.make.html_navigation_bar? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_navigation_bar? \ +        and doc_rc.html_navigation_bar? ==:off            false          elsif env_rc.build.html_navigation_bar? ==:off            false @@ -3688,8 +3836,9 @@ WOK            true          elsif cmd_rc_act[:search_form][:set]==:off            false -        elsif defined? @md.make.html_search_form? \ -        and @md.make.search_form? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_search_form? \ +        and doc_rc.search_form? ==:off            false          elsif env_rc.build.search_form? ==:off            false @@ -3704,9 +3853,10 @@ WOK          elsif cmd_rc_act[:html_search_form][:set]==:off \          || cmd_rc_act[:search_form][:set]==:off            false -        elsif defined? @md.make.html_search_form? \ -        and (@md.make.html_search_form? ==:off \ -        || @md.make.search_form? ==:off) +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_search_form? \ +        and (doc_rc.html_search_form? ==:off \ +        || doc_rc.search_form? ==:off)            false          elsif env_rc.build.html_search_form? ==:off \          || env_rc.build.search_form? ==:off @@ -3722,8 +3872,9 @@ WOK            true          elsif cmd_rc_act[:html_right_pane][:set]==:off            false -        elsif defined? @md.make.html_right_pane? \ -        and @md.make.html_right_pane? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.html_right_pane? \ +        and doc_rc.html_right_pane? ==:off            false          elsif env_rc.build.html_right_pane? ==:off            false @@ -3736,8 +3887,9 @@ WOK            true          elsif cmd_rc_act[:segsubtoc][:set]==:off            false -        elsif defined? @md.make.segsubtoc? \ -        and @md.make.segsubtoc? ==:off +        elsif doc_rc.is_a?(Method) \ +        and defined? doc_rc.segsubtoc? \ +        and doc_rc.segsubtoc? ==:off            false          elsif env_rc.build.segsubtoc? ==:off            false @@ -3827,14 +3979,13 @@ WOK    class InfoDb < InfoEnv      @@rc=nil      def initialize -      @@pwd ||=Dir.pwd -      @pwd=Dir.pwd +      @@pwd=@pwd=SiSU_Utils::Path.new.base_markup        @env=SiSU_Env::InfoEnv.new        pt=Pathname.new(@pwd)        r=Px[:lng_lst_rgx]        u=/.+?\/([^\/]+)(?:\/(?:#{r})$|$)/        @pwd_stub=pt.realpath.to_s[u,1] -      @rc=@@rc ||=GetInit.instance.sisu_yaml.rc +      @rc=@@rc ||=GetInit.new.sisu_yaml.rc        @defaults=SiSU_Env::InfoEnv.new.defaults      end      def share_source? @@ -4099,7 +4250,7 @@ WOK          @@filename_html_scroll=File.new(p_fn,'w+')        end        def html_seg_index -        pth=((by_filename?) \ +        pth=((output_dir_structure.by_filename?) \            || (output_dir_structure.dump?)) \          ? "#{output_path.html.dir}"          : "#{output_path.html.dir}/#{@md.fnb}" @@ -4109,7 +4260,7 @@ WOK          @@filename_html_index=File.new(p_fn,'w+')        end        def html_segtoc -        pth=((by_filename?) \ +        pth=((output_dir_structure.by_filename?) \            || (output_dir_structure.dump?) \            || (output_dir_structure.redirect?)) \          ? "#{output_path.html.dir}" @@ -4818,7 +4969,7 @@ WOK            if output_dir_structure.dump_or_redirect?              '.'            elsif output_dir_structure.by_language_code? -            "../../#{@ft}/#{@md.opt.lng}" +            "../../#{@ft}"            else              "../#{@ft}"            end @@ -5303,6 +5454,17 @@ WOK          def rel            set_path(ft).rel.abc          end +        def rel_image +          if output_dir_structure.dump_or_redirect? +            './image' +          elsif output_dir_structure.by_language_code? +            '../../_sisu/image' +          elsif output_dir_structure.by_filetype? +            '../_sisu/image' +          else +            '../_sisu/image' +          end +        end          def rcp            set_path(ft).rcp.abc          end @@ -5549,6 +5711,10 @@ WOK          filename_index="#{@pth}/#{Ep[:d_oebps]}/index.xhtml"          File.new(filename_index,'w+')        end +      def xhtml_cover_image +        filename_index="#{@pth}/#{Ep[:d_oebps]}/cover_image.xhtml" +        File.new(filename_index,'w+') +      end        def xhtml_segtoc          filename_segtoc="#{@pth}/#{Ep[:d_oebps]}/toc.xhtml"          File.new(filename_segtoc,'w+') @@ -5627,98 +5793,6 @@ WOK        @editor,@wc,@tidy,@rexml,@pdflatex,@postgresql,@sqlite=prog.text_editor,prog.wc,prog.tidy,prog.rexml,prog.pdflatex,prog.postgresql,prog.sqlite      end    end -  class InfoSkin -    def initialize(md=nil,skin=nil) -      @md=md -      @d_sk=if skin.is_a?(String) -        skin -      elsif defined? md.doc_skin \ -      and md.doc_skin -        md.doc_skin -      else nil -      end -      @home,@pwd=ENV['HOME'],ENV['PWD'] -      m=/.+\/(?:src\/)?(\S+)/m # m=/.+?\/(?:src\/)?([^\/]+)$/im # m=/.+\/(\S+)/m -      @pwd_stub=@pwd[m,1] -      @env=SiSU_Env::InfoEnv.new -    end -    def apply -      if @m.respond_to?(:make) \ -      and @md.make.respond_to(:skin) -        skin_path=unless @md.opt.f_pth[:pth] =~/\/\S+?\/#{Gt[:sisupod]}\/\S+?\/#{Gt[:pod]}\/#{Gt[:doc]}/ -          [ -            "#{@env.path.pwd}/_sisu/skin", -            "#{@env.path.home}/.sisu/skin", -            '/etc/sisu/skin', -            "#{@env.processing_path.processing_sisupod(@md.opt)}/external_document/skin" -          ] -        else #sisupod -          pt=/(\/\S+?\/#{Gt[:sisupod]}\/\S+?\/#{Gt[:pod]}\/#{Gt[:doc]})/.match(@md.opt.f_pth[:pth])[1] -          [ "#{pt}/_sisu/skin" ] -        end -        sk_doc,sk_dir="doc/#{@md.make.skin}.rb","dir/skin_#{@env.stub_pwd}.rb" -        skin_path.each do |v|                                                    #document skin priority 1 -          if FileTest.file?("#{v}/#{sk_doc}") -            @skin_apply={ name: @md.make.skin, name_path: "#{v}/#{sk_doc}", type: :doc } -            break -          end -        end -        unless @skin_apply.length > 0 -          skin_path.each do |v|                                                  #directory skin priority 2 -            if FileTest.file?("#{v}/#{sk_dir}") -              @skin_apply={ name: "skin_#{@env.stub_pwd}.rb", name_path: "#{v}/#{sk_dir}", type: :dir } -              break -            end -          end -        end -      else nil -      end -      @skin_apply -    end -    def select                                                                 # skin loading logic here -      load "#{SiSU_lib}/defaults.rb" -      skin_path=[] -      @env.sys.rc_path.each {|x| skin_path << "#{x}/skin"} -      skin_path << "#{@env.processing_path.processing}/external_document/skin" -      skin=if @pwd_stub =~/^(?:doc|sisupod)$/ \ -      and ((! @md.nil?) \ -      && (defined? @md.opt) \ -      && (defined? @md.opt.mod) \ -      && @md.opt.mod.inspect !~/--trust/) -        true                                                                   # security only run skins on sisupod if --trust flag is provided -      elsif @pwd_stub =~/^(?:doc|sisupod)$/                                    # consider/reconsider doc -        false -      else true -      end -      doc_skin,dir_skin=nil,nil -      if skin -        unless @d_sk.nil? -          sk_doc="doc/#{@d_sk}.rb" -          skin_path.each do |v|                                                # document skin priority 1 -            if FileTest.file?("#{v}/#{sk_doc}") -              doc_skin="#{v}/#{sk_doc}" -              load doc_skin -              break -            end -          end -        end -        unless doc_skin -          sk_dir="dir/skin_#{@pwd_stub}.rb" -          skin_path.each do |v|                                                # directory skin priority 2 -            if FileTest.file?("#{v}/#{sk_dir}") -              dir_skin="#{v}/#{sk_dir}" -              load dir_skin -              break -            end -          end -        end -      end -      sk=if doc_skin; doc_skin -      elsif dir_skin; dir_skin -      else            nil -      end -    end -  end    class CSS_Default      def html        'html.css' @@ -5823,13 +5897,16 @@ WOK        @file=SiSU_Env::FileOp.new(@md)      end      def html -      %{  <link rel="stylesheet" href="#{@file.path_rel_links.html_scroll_css}#{@env.path.style}/#{@css.html}" type="text/css" />} +      stylesheet="#{@file.path_rel_links.html_scroll_css}#{@env.path.style}/#{@css.html}" +      %{  <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}      end      def html_seg -      %{  <link rel="stylesheet" href="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}" type="text/css" />} +      stylesheet="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}" +      %{  <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}      end      def html_tables -      %{  <link rel="stylesheet" href="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}" type="text/css" />} +      stylesheet="#{@file.path_rel_links.html_seg_css}#{@env.path.style}/#{@css.html}" +      %{  <link rel="stylesheet" href="#{stylesheet}" type="text/css" />}      end      def xhtml_epub        %{  <link rel="stylesheet" href="css/xhtml.css" type="text/css" />} @@ -5838,13 +5915,16 @@ WOK        xhtml_epub      end      def xhtml -      %{<?xml-stylesheet type="text/css" href="#{@file.path_rel_links.xhtml_css}#{@env.path.style}/#{@css.xhtml}"?>} +      stylesheet="#{@file.path_rel_links.xhtml_css}#{@env.path.style}/#{@css.xhtml}" +      %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}      end      def xml_sax -      %{<?xml-stylesheet type="text/css" href="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_sax}"?>} +      stylesheet="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_sax}" +      %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}      end      def xml_dom -      %{<?xml-stylesheet type="text/css" href="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_dom}"?>} +      stylesheet="#{@file.path_rel_links.xml_css}#{@env.path.style}/#{@css.xml_dom}" +      %{<?xml-stylesheet type="text/css" href="#{stylesheet}"?>}      end    end    class CreateSite < InfoEnv @@ -5853,36 +5933,37 @@ WOK      def initialize(cmd)        @cmd=cmd        @env=SiSU_Env::InfoEnv.new +      @init=SiSU_Env::GetInit.new        @home,@pwd=ENV['HOME'],ENV['PWD'] #@pwd=Dir.pwd -      @rc=GetInit.instance.sisu_yaml.rc -      @vz=SiSU_Env::GetInit.instance.skin +      @rc=GetInit.new.sisu_yaml.rc +      @vz=SiSU_Viz::Defaults.new        @vz_home=SiSU_Viz::Home.new      end -    def homepage -      home_pages_manually_created=nil -      @env.sys.rc_path.each do |v| -        home_pages_manually_created=Dir.glob("#{v}/home/*.html") -        if home_pages_manually_created.length > 0 -          break -        end +    def create_default_sisu_homepage(action=:none) +      if action==:none +        puts %{  place your homepages in directory:\n    "#{@env.path.rc}/home/*.html"\n  (no action taken)} +      else +        puts %{  place your homepages in directory:\n    "#{@env.path.rc}/home/*.html"\n  (in order to replace default sisu homepage)} +        filename_homepage="#{@env.path.webserv}/#{@env.path.stub_pwd}/index.html" +        filename_home_toc="#{@env.path.webserv}/#{@env.path.stub_pwd}/toc.html" +        file_homepage=File.new(filename_homepage,'w') +        file_home_toc=File.new(filename_home_toc,'w') +        file_homepage << @vz_home.homepage +        file_home_toc << @vz_home.homepage +        file_homepage.close +        file_home_toc.close        end +    end +    def homepage +      home_pages_manually_created=Dir.glob("#{@env.path.rc}/home/*.html")        FileUtils::mkdir_p("#{@env.path.webserv}/#{@env.path.stub_pwd}") unless FileTest.directory?("#{@env.path.webserv}/#{@env.path.stub_pwd}") -      if home_pages_manually_created -        FileUtils.cp(home_pages_manually_created,"#{@env.path.webserv}/#{@env.path.stub_pwd}") -      else -        doc_skin=nil -        sk_doc='doc/skin_sisu.rb' -        @env.sys.rc_path.each do |v|                                                     #document skin priority 1 -          if FileTest.file?("#{v}/skin/#{sk_doc}") -            doc_skin="#{v}/skin/#{sk_doc}" -            load doc_skin -            break -          end +      if home_pages_manually_created.length > 0 +        home_pages_manually_created.each do |homepage| +          FileUtils.cp(homepage,"#{@env.path.webserv}/#{@env.path.stub_pwd}")          end -        filename_homepage=File.new("#{@env.path.webserv}/#{@env.path.stub_pwd}/index.html",'w') -        filename_homepage_toc=File.new("#{@env.path.webserv}/#{@env.path.stub_pwd}/toc.html",'w') -        filename_homepage << @vz_home.homepage -        filename_homepage_toc << @vz_home.homepage +      else +        create_default_sisu_homepage(:none) +        #create_default_sisu_homepage(:default)        end      end      def cp_images(src_path,dest_path) @@ -5930,7 +6011,9 @@ WOK        cp_images(src,dest) if FileTest.directory?(src)      end      def cp_base_images #fix images -      src="#{@env.path.share}/image" +      src=SiSU_path_base \ +      ? SiSU_path_base + '/data/sisu/image' +      : "#{@env.path.share}/image"        dest_arr=[          "#{@env.path.webserv}/_sisu/image_sys",          "#{@env.path.webserv}/#{@env.path.stub_pwd}/_sisu/image_sys" diff --git a/lib/sisu/v3/termsheet.rb b/lib/sisu/v5/termsheet.rb index d6f18987..e25673b4 100644 --- a/lib/sisu/v3/termsheet.rb +++ b/lib/sisu/v5/termsheet.rb @@ -50,7 +50,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/v3/termsheet.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/termsheet.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/texinfo.rb b/lib/sisu/v5/texinfo.rb index d2a96844..069d9166 100644 --- a/lib/sisu/v3/texinfo.rb +++ b/lib/sisu/v5/texinfo.rb @@ -50,7 +50,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/v3/texinfo.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/texinfo.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -82,7 +82,7 @@ module SiSU_TexInfo        @opt=opt        @md=SiSU_Param::Parameters.new(@opt).get        @env=SiSU_Env::InfoEnv.new(@opt.fns) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def directories        begin @@ -138,7 +138,7 @@ module SiSU_TexInfo      def initialize(md,data)        @md,@data=md,data        @env=SiSU_Env::InfoEnv.new(@md.fns) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @f=SiSU_Env::FileOp.new(@md)      end      def songsheet diff --git a/lib/sisu/v3/texinfo_format.rb b/lib/sisu/v5/texinfo_format.rb index af968cac..e4efdb3b 100644 --- a/lib/sisu/v3/texinfo_format.rb +++ b/lib/sisu/v5/texinfo_format.rb @@ -50,7 +50,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/v3/texinfo_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/texinfo_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -77,7 +77,7 @@ module SiSU_TexInfoFormat          p dob.class          p caller        end -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def head        t=Time.now @@ -175,14 +175,6 @@ WOK        and @md.creator.author=~/\S+/          author=spec_char(@md.creator.author)        end -      if defined? @md.classify.subject \ -      and @md.classify.subject=~/\S+/ -        subject=spec_char(@md.classify.subject) -      end -      if defined? @md.notes.description \ -      and @md.notes.description=~/\S+/ -        description=spec_char(@md.description) -      end        if defined? @md.publisher \        and @md.publisher=~/\S+/          publisher=spec_char(@md.publisher) @@ -215,15 +207,31 @@ WOK        and @md.date.modified=~/\S+/          date_modified=spec_char(@md.date.modified)        end -      type=spec_char(@md.type) if @md.type                                   #dc -      if defined? @md.classify.format \ -      and @md.classify.format=~/\S+/ -        format=spec_char(@md.classify.format) +      if defined? @md.classify.subject \ +      and @md.classify.subject=~/\S+/ +        subject=spec_char(@md.classify.subject) +      end +      if defined? @md.notes.description \ +      and @md.notes.description=~/\S+/ +        description=spec_char(@md.description)        end -      if defined? @md.classify.identifier \ -      and @md.classify.identifier=~/\S+/ -        identifier=spec_char(@md.classify.identifier) +      if defined? @md.notes.coverage \ +      and @md.notes.coverage=~/\S+/ +        coverage=spec_char(@md.notes.coverage)        end +      if defined? @md.notes.relation \ +      and @md.notes.relation=~/\S+/ +        relation=spec_char(@md.notes.relation) +      end +      #type=spec_char(@md.type) if @md.type                                   #dc +      if defined? @md.notes.format \ +      and @md.notes.format=~/\S+/ +        format=spec_char(@md.notes.format) +      end +      #if defined? @md.identifier.sisupod \ +      #and @md.identifier.sisupod=~/\S+/ +      #  identifier=spec_char(@md.identifier.sisupod) +      #end        if defined? @md.original.source \        and @md.original.source=~/\S+/          source=spec_char(@md.original.source) @@ -232,14 +240,6 @@ WOK        and @md.title.language=~/\S+/          language=spec_char(@md.title.language)        end -      if defined? @md.classify.relation \ -      and @md.classify.relation=~/\S+/ -        relation=spec_char(@md.classify.relation) -      end -      if defined? @md.classify.coverage \ -      and @md.classify.coverage=~/\S+/ -        coverage=spec_char(@md.classify.coverage) -      end        if defined? @md.rights.all \        and @md.rights.all=~/\S+/          rights=spec_char(@md.rights.all) diff --git a/lib/sisu/v3/texpdf.rb b/lib/sisu/v5/texpdf.rb index 1221d818..7a98d9fa 100644 --- a/lib/sisu/v3/texpdf.rb +++ b/lib/sisu/v5/texpdf.rb @@ -50,7 +50,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/v3/texpdf.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/texpdf.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -113,14 +113,17 @@ module SiSU_TeX          SiSU_Screen::Ansi.new(@opt.cmd,'LaTeX/PDF',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_title_hi unless @opt.cmd =~/q/          if @opt.cmd =~/[MVv]/            path=@env.url.output_tell -          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_l}pdf").flow -          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@opt.fns} #{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_p}pdf").flow +          if @md.opt.act[:pdf_l][:set]==:on +            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_l}pdf").flow +          end +          if @md.opt.act[:pdf_p][:set]==:on +            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@opt.fns} #{@env.program.pdf_viewer} #{@md.file.output_path.pdf.dir}/#{@md.file.base_filename.pdf_p}pdf").flow +          end          end          @md=@particulars.md          $flag=@md.opt.cmd                                                          #introduced to pass 0 for no object citation numbers... to texpdf_format          directories                                                                                 #% needed needs to be reprogrammed !!! -        SiSU_Env::InfoSkin.new(@md).select          dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here          SiSU_TeX::Source::LaTeXcreate.new(@particulars).songsheet          dal_array='' @@ -162,27 +165,35 @@ module SiSU_TeX        def latex_do(texfilename,papersize)          @texfilename=texfilename          @@n_lpdf=@@n_lpdf+1 -        SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} portrait ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/          tex_fn_base=@texfilename.gsub(/\.tex$/,'') -        cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.cmd)          tell=SiSU_Screen::Ansi.new(@md.opt.cmd) -        tell.grey_open if @md.opt.cmd =~/[MVv]/ -        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]/ -        SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} landscape ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ -        cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) -        tell.grey_open if @md.opt.cmd =~/[MVv]/ -        if "#{tex_fn_base}" =~/\w+/ \ -        and "#{papersize}" =~/\w+/ -          2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex landscape -        end -        tell.p_off if @md.opt.cmd =~/[MVv]/ +        if @md.opt.act[:pdf_p][:set]==:on +          SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} portrait ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ +          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.tex",'',@md.opt.cmd) +          tell.grey_open if @md.opt.cmd =~/[MVv]/ +          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]/ +        end +        if @md.opt.act[:pdf_l][:set]==:on +          SiSU_Screen::Ansi.new(@md.opt.cmd,"#{papersize} landscape ->").dark_grey_title_hi if @md.opt.cmd =~/[MVv]/ +          cmd=SiSU_Env::SystemCall.new("#{tex_fn_base}.landscape.tex",'',@md.opt.cmd) +          tell.grey_open if @md.opt.cmd =~/[MVv]/ +          if "#{tex_fn_base}" =~/\w+/ \ +          and "#{papersize}" =~/\w+/ +            2.times { |i| cmd.latex2pdf(@md,papersize) } #comment out to skip processing of latex landscape +          end +          tell.p_off if @md.opt.cmd =~/[MVv]/ +        end          pwd=Dir.pwd -        portrait_pdf="#{pwd}/#{tex_fn_base}.pdf" -        landscape_pdf="#{pwd}/#{tex_fn_base}.landscape.pdf" +        if @md.opt.act[:pdf_p][:set]==:on +          portrait_pdf="#{pwd}/#{tex_fn_base}.pdf" +        end +        if @md.opt.act[:pdf_l][:set]==:on +          landscape_pdf="#{pwd}/#{tex_fn_base}.landscape.pdf" +        end          case papersize          when /a4/;     pdf_p=@f.pdf_p_a4;     pdf_l=@f.pdf_l_a4          when /a5/;     pdf_p=@f.pdf_p_a5;     pdf_l=@f.pdf_l_a5 @@ -192,15 +203,24 @@ module SiSU_TeX          else           pdf_p=@f.pdf_p_a4;     pdf_l=@f.pdf_l_a4          end          FileUtils::mkdir_p(@md.file.output_path.pdf.dir) unless FileTest.directory?(@md.file.output_path.pdf.dir) -        if FileTest.file?(portrait_pdf) -          FileUtils::cp(portrait_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_p}") -          FileUtils::rm(portrait_pdf) -        else p "#{__FILE__}:#{__LINE__} NOT FOUND: #{portrait_pdf}" if @md.opt.cmd.inspect =~/M/ +        cX=SiSU_Screen::Ansi.new(@md.opt.cmd).cX +        if @md.opt.act[:pdf_p][:set]==:on +          if FileTest.file?(portrait_pdf) +            FileUtils::cp(portrait_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_p}") +            FileUtils::rm(portrait_pdf) +          else +            STDERR.puts "#{cX.fuschia}pdf file not generated#{cX.off} <#{cX.blue}#{portrait_pdf.gsub(/.+?([^\/]+?\.pdf)$/,'\1')}#{cX.off}> (check texlive dependencies)" +            STDERR.puts "#{__FILE__}:#{__LINE__} NOT FOUND: #{portrait_pdf}" if @md.opt.cmd.inspect =~/M/ +          end          end -        if FileTest.file?(landscape_pdf) -          FileUtils::cp(landscape_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_l}") -          FileUtils::rm(landscape_pdf) -        else p "#{__FILE__}:#{__LINE__} NOT FOUND: #{landscape_pdf}" if @md.opt.cmd.inspect =~/M/ +        if @md.opt.act[:pdf_l][:set]==:on +          if FileTest.file?(landscape_pdf) +            FileUtils::cp(landscape_pdf,"#{@md.file.output_path.pdf.dir}/#{pdf_l}") +            FileUtils::rm(landscape_pdf) +          else +            STDERR.puts "#{cX.fuschia}pdf file not generated#{cX.off} <#{cX.blue}#{landscape_pdf.gsub(/.+?([^\/]+?\.pdf)$/,'\1')}#{cX.off}> (check texlive dependencies)" +            STDERR.puts "#{__FILE__}:#{__LINE__} NOT FOUND: #{landscape_pdf}" if @md.opt.cmd.inspect =~/M/ +          end          end          SiSU_Screen::Ansi.new(@md.opt.cmd,@@n_lpdf,'processed (SiSU LaTeX to pdf - using pdfetex aka. pdftex or pdflatex)').generic_number if @md.opt.cmd =~/[MVv]/        end @@ -219,13 +239,18 @@ module SiSU_TeX                      Dir.chdir(@env.processing_path.tex)                      texfile=@md.fns.gsub(/$/,".#{ps}.tex").                        gsub(/~/,'-') -                    if File.exist?(texfile) \ -                    and File.size(texfile) > 0 -                      @tex_f_no+=1 -                      #p "#{__FILE__}:#{__LINE__} texpdf generation disabled" if @md.opt.cmd.inspect =~/M/ #%% disable temporarily, re-enable +                    if @md.opt.act[:pdf_p][:set]==:on \ +                    or @md.opt.act[:pdf_l][:set]==:on                        latex_do(texfile,ps) -                    else -                      puts "\tzero file size #{@env.processing_path.tex}/#{texfile}" +                      if @md.opt.act[:pdf_p][:set]==:on +                        if File.exist?(texfile) \ +                        and File.size(texfile) > 0 +                          #@tex_f_no+=1 +                        else +                          puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia) +                          puts "\tzero file size #{@env.processing_path.tex}/#{texfile}" +                        end +                      end                      end                    end                  end @@ -239,31 +264,33 @@ module SiSU_TeX              when /legal/;  pdf_p=@f.pdf_p_legal;  pdf_l=@f.pdf_l_legal              else           pdf_p=@f.pdf_p_a4;     pdf_l=@f.pdf_l_a4              end -            if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_p}") -              mklnk=if @md.file.output_dir_structure.by_language_code? \ -              or @md.file.output_dir_structure.by_filetype? -                "#{@md.fnb}.portrait.pdf" -              else 'portrait.pdf' +            if @md.opt.act[:pdf_p][:set]==:on +              if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_p}") +                mklnk=((@md.file.output_dir_structure.by_language_code?) \ +                || (@md.file.output_dir_structure.by_filetype?)) \ +                ? "#{@md.fnb}.portrait.pdf" +                : 'portrait.pdf' +                if FileTest.directory?(@md.file.output_path.pdf.dir) +                  pwd=Dir.pwd +                  Dir.chdir(@md.file.output_path.pdf.dir) +                  FileUtils::rm_f(mklnk) +                  FileUtils::ln_s(pdf_p, mklnk) +                  Dir.chdir(pwd) +                end                end -              if FileTest.directory?(@md.file.output_path.pdf.dir) -                pwd=Dir.pwd +            end +            if @md.opt.act[:pdf_l][:set]==:on +              if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_l}") +                mklnk=((@md.file.output_dir_structure.by_language_code?) \ +                || (@md.file.output_dir_structure.by_filetype?)) \ +                ? "#{@md.fnb}.landscape.pdf" +                : 'landscape.pdf' +                pwd_set=Dir.pwd                  Dir.chdir(@md.file.output_path.pdf.dir)                  FileUtils::rm_f(mklnk) -                FileUtils::ln_s(pdf_p, mklnk) -                Dir.chdir(pwd) -              end -            end -            if FileTest.file?("#{@md.file.output_path.pdf.dir}/#{pdf_l}") -              mklnk=if @md.file.output_dir_structure.by_language_code? \ -              or @md.file.output_dir_structure.by_filetype? -                "#{@md.fnb}.landscape.pdf" -              else 'landscape.pdf' +                FileUtils::ln_s(pdf_l, mklnk) +                Dir.chdir(pwd_set)                end -              pwd_set=Dir.pwd -              Dir.chdir(@md.file.output_path.pdf.dir) -              FileUtils::rm_f(mklnk) -              FileUtils::ln_s(pdf_l, mklnk) -              Dir.chdir(pwd_set)              end            else              SiSU_Screen::Ansi.new(@md.opt.cmd,"*WARN* FILE NOT FOUND: << #{@md.fns} >> - requested latex system processing skipped").warn @@ -294,9 +321,9 @@ module SiSU_TeX          @data=@particulars.dal_array # dal file drawn here          @st={ tex: {} }          @tex_ml=SiSU_TeX_Pdf::UseTeX.new(@md) -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @dp=@@dp ||=SiSU_Env::InfoEnv.new.digest.pattern -        @brace_url=SiSU_Viz::Skin.new.url_decoration +        @brace_url=SiSU_Viz::Defaults.new.url_decoration          l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language          @language=l[:n]          @translate=SiSU_Translate::Source.new(@md,@language) @@ -308,7 +335,18 @@ module SiSU_TeX            data=@data            @@tex_footnote_array=[]            @@rights=nil -          SiSU_Screen::Ansi.new(@md.opt.cmd,"pdfTex portrait & landscape").txt_grey if @md.opt.cmd=~/[MVvz]/ +          txt_gen=if @md.opt.act[:pdf_l][:set]==:on \ +          and @md.opt.act[:pdf_p][:set]==:on +            'pdfTex portrait & landscape' +          elsif @md.opt.act[:pdf_l][:set]==:on +            'pdfTex landscape' +          elsif @md.opt.act[:pdf_p][:set]==:on +            'pdfTex portrait' +          else +            puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:fuchsia) +            'error: neither landscape nor portrait' +          end +          SiSU_Screen::Ansi.new(@md.opt.cmd,txt_gen).txt_grey if @md.opt.cmd=~/[MVvz]/            if defined? @md.rights.all \            and not @md.rights.all.empty?              rght=@md.rights #.author.dup #dup is necessary, else contents of :rights changed @@ -365,6 +403,7 @@ module SiSU_TeX            elsif dob.is ==:break              if dob.obj==Mx[:br_page]; dob.tmp='\newpage'              elsif dob.obj==Mx[:br_page_new]; dob.tmp='\clearpage' +            elsif dob.obj==Mx[:br_page_line]; dob.tmp=' \\ \hline \\ '              elsif dob.obj==Mx[:br_obj]; dob.tmp='\parasep'              end            elsif dob.is==:comment \ @@ -612,7 +651,7 @@ module SiSU_TeX          dob        end        def tex_box_listings -        <<WOK +        <<-WOK  \\definecolor{listinggray}{gray}{0.9}  \\definecolor{lbcolor}{rgb}{0.9,0.9,0.9}  \\lstset{ @@ -637,10 +676,10 @@ module SiSU_TeX    commentstyle=\\color[rgb]{0.133,0.545,0.133},    stringstyle=\\color[rgb]{0.627,0.126,0.941},  } -WOK +        WOK        end        def tex_box_boites -        <<WOK +        <<-WOK  \\def\\codeblockboitebox{%    \\def\\bkvz@before@breakbox{\\ifhmode\\par\\fi\\vskip\\breakboxskip\\relax}%    \\def\\bkvz@set@linewidth{\\advance\\linewidth -2\\fboxrule @@ -658,7 +697,7 @@ WOK    \\def\\bkvz@bottom{\\hrule\\@height\\fboxrule}%    \\breakbox}  \\def\\endcodeblockboitebox{\\endbreakbox} -WOK +        WOK        end        def tex_codeblock          codeblock_box=if @codeblock_box=='listings' @@ -676,14 +715,18 @@ WOK          home=@vz.txt_home.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}|#{Mx[:br_paragraph]}|\\\\/,' - ') #no line splitting in heading neither html nor latex          title=@md.title.full.gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}|#{Mx[:br_paragraph]}|\\\\/,' - ') #no line splitting in heading neither html nor latex          @md.papersize_array.each do |ps| -          txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'portrait' } -          orient_portrait=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) -          txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'landscape' } -          orient_landscape=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) -          @@tex_head[ps][:p]=orient_portrait.document_head_with_orientation(@codeblock_box) -          @@tex_head[ps][:l]=orient_landscape.document_head_with_orientation(@codeblock_box) -        end -        @tex_file <<<<WOK +          if @md.opt.act[:pdf_p][:set]==:on +            txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'portrait' } +            orient_portrait=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) +            @@tex_head[ps][:p]=orient_portrait.document_head_with_orientation(@codeblock_box) +          end +          if @md.opt.act[:pdf_l][:set]==:on +            txt_obj={ txt: "#{home}: - #{title}", paper_size: ps, orientation: 'landscape' } +            orient_landscape=SiSU_TeX_Pdf::FormatHead.new(@md,txt_obj) +            @@tex_head[ps][:l]=orient_landscape.document_head_with_orientation(@codeblock_box) +          end +        end +        @tex_file <<<<-WOK  #{@tex_ml.header}#{@tex_ml.footer}  \\tolerance=300  \\clubpenalty=300 @@ -713,15 +756,19 @@ WOK  % (tilde hash amp affected by http)  % \\sloppy  \\begin{document} -WOK +        WOK          sisu_rc_footnote=if @md.sc_info then @tex_ml.doc_sc_info_footnote_full          else                                 @tex_ml.doc_sc_info_footnote_brief          end          @copymark='' #check and remove as now is superflous          x={}          txt_obj={ title: @md.title.full } -        x[:l]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_landscape -        x[:p]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_portrait +        if @md.opt.act[:pdf_l][:set]==:on +          x[:l]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_landscape +        end +        if @md.opt.act[:pdf_p][:set]==:on +          x[:p]=SiSU_TeX_Pdf::FormatTextObject.new(@md,txt_obj).title_portrait +        end          @tex_file << x          x=nil          if defined? @md.creator.author \ @@ -729,20 +776,34 @@ WOK            sp_char=SiSU_TeX_Pdf::SpecialCharacters.new(@md,@md.creator.author)            author=sp_char.special_characters            @tex_file << if @md.author_home -            <<WOK +            <<-WOK  \\author{\\href{#{@md.author_home}}{#{@copymark} \\textnormal{#{author}}}} -WOK +            WOK            else "\n\\author{#{@copymark} \\textnormal{#{author}}}"            end          end -        @tex_file << unless @md.fnb =~/^mail\s*$/; @tex_ml.site -        else                                       '\date' +        if defined? @md.make.cover_image \ +        and not @md.make.cover_image.nil? \ +        and @md.make.cover_image[:cover] =~/\S+/ +          x={} +          dir=SiSU_Env::InfoEnv.new(@md.fns) +          x[:l] =<<-WOK +\\titlepic{\\includegraphics[width=0.3\\textwidth]{#{dir.path.image_source_include}/#{@md.make.cover_image[:cover]}}} +          WOK +          x[:p] =<<-WOK +\\titlepic{\\includegraphics[width=0.6\\textwidth]{#{dir.path.image_source_include}/#{@md.make.cover_image[:cover]}}} +          WOK +          @tex_file << x +          x=nil          end -        @tex_file <<<<WOK +        @tex_file << unless @md.fnb =~/^mail\s*$/ then @tex_ml.site +        else                                           '\date' +        end +        @tex_file <<<<-WOK  \\pagenumbering{roman}\\maketitle  \\pagestyle{fancy} -WOK +        WOK          if defined? @md.rights.all \          and @md.rights.all            @tex_file << "\\newpage\n" @@ -751,24 +812,27 @@ WOK          end          x={}          if (@make.build.toc?) -          toc=<<WOK +          toc=<<-WOK  \\renewcommand{\\contentsname}{#{@translate.contents}}  \\tableofcontents -WOK +          WOK            toc_pb={ l: @tex_ml.newpage('landscape'), p: @tex_ml.newpage('portrait') }          else            toc=''            toc_pb={ l: '', p: '' }          end -        x[:l] =<<WOK +        if @md.opt.act[:pdf_l][:set]==:on +          x[:l] =<<-WOK  #{@tex_ml.newpage('landscape')}  \\pagestyle{fancy}  #{toc}#{toc_pb[:l]}  \\pagenumbering{arabic}  #{@tex_ml.paraskip_normal}  #{@tex_ml.newpage('landscape')} -WOK -        x[:p] =<<WOK +          WOK +        end +        if @md.opt.act[:pdf_p][:set]==:on +          x[:p] =<<-WOK  #{@tex_ml.newpage('portrait')}  \\pagestyle{fancy}  #{toc}#{toc_pb[:p]} @@ -776,7 +840,8 @@ WOK  \\pagenumbering{arabic}  #{@tex_ml.paraskip_normal}  #{@tex_ml.newpage('portrait')} -WOK +          WOK +        end          @tex_file << x          x=nil          data.each do |dob|                                                      #% case follows with levels 1-6 indents & graphics @@ -888,59 +953,77 @@ WOK        def output_morph_hash(o)          ps,h,fn=o[:ps],o[:h],o[:filename]          if h[ps] \ -        and (h[ps][:p] and h[ps][:l]) -          if h[ps][:p] -            h[ps][:p]=h[ps][:p].gsub(/[ ]+$/m,''). -              gsub(/\n\n\n+/m,"\n\n") -          end -          if h[ps][:l] -            h[ps][:l]=h[ps][:l].gsub(/[ ]+$/m,''). -              gsub(/\n\n\n+/m,"\n\n") -          end -            #h[ps][:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:p] -            #h[ps][:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[ps][:l] -          if h[ps][:p] !~/\A\s*\Z/ -            fn[:portrait].puts h[ps][:p],"\n" -          end -          if h[ps][:l] !~/\A\s*\Z/ -            fn[:landscape].puts h[ps][:l],"\n" -          end -        elsif (h[:p] and h[:l]) -          if h[:p] -            h[:p]=h[:p].gsub(/[ ]+$/m,''). -              gsub(/\n\n\n+/m,"\n\n") +        and (h[ps][:p] or h[ps][:l]) +          if @md.opt.act[:pdf_p][:set]==:on +            if h[ps][:p] +              h[ps][:p]=h[ps][:p].gsub(/[ ]+$/m,''). +                gsub(/\n\n\n+/m,"\n\n") +            end +            if h[ps][:p] !~/\A\s*\Z/ +              fn[:portrait].puts h[ps][:p],"\n" +            end            end -          if h[:l] -            h[:l]=h[:l].gsub(/[ ]+$/m,''). -              gsub(/\n\n\n+/m,"\n\n") +          if @md.opt.act[:pdf_l][:set]==:on +            if h[ps][:l] +              h[ps][:l]=h[ps][:l].gsub(/[ ]+$/m,''). +                gsub(/\n\n\n+/m,"\n\n") +            end +            if h[ps][:l] !~/\A\s*\Z/ +              fn[:landscape].puts h[ps][:l],"\n" +            end            end -            #h[:p].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:p] -            #h[:l].gsub!(/(?:^[ ]+|[ ]+$)/m,'') if h[:l] -          if h[:p] !~/\A\s*\Z/ -            fn[:portrait].puts h[:p],"\n" +        elsif (h[:p] or h[:l]) +          if @md.opt.act[:pdf_p][:set]==:on +            if h[:p] +              h[:p]=h[:p].gsub(/[ ]+$/m,''). +                gsub(/\n\n\n+/m,"\n\n") +            end +            if h[:p] !~/\A\s*\Z/ +              fn[:portrait].puts h[:p],"\n" +            end            end -          if h[:l] !~/\A\s*\Z/ -            fn[:landscape].puts h[:l],"\n" +          if @md.opt.act[:pdf_l][:set]==:on +            if h[:l] +              h[:l]=h[:l].gsub(/[ ]+$/m,''). +                gsub(/\n\n\n+/m,"\n\n") +            end +            if h[:l] !~/\A\s*\Z/ +              fn[:landscape].puts h[:l],"\n" +            end            end          else p "#{__FILE__}:#{__LINE__}" if @md.opt.cmd.inspect =~/M/          end        end        def output(array)          @array=array=array.flatten.compact -        fns_l=@md.fns.gsub(/~/,'-') #this is a sorry fix, but necessary as it appears latex programs like not ~ +        fns=@md.fns.gsub(/~/,'-') #this is a sorry fix, but necessary as it appears latex programs like not ~          @md.papersize_array.each do |ps| +          texfile_landscape=(@md.opt.act[:pdf_l][:set]==:on) \ +          ? (File.new("#{@env.processing_path.tex}/#{fns}.#{ps}.landscape.tex",'w+')) +          : nil +          texfile_portrait=(@md.opt.act[:pdf_p][:set]==:on) \ +          ? (File.new("#{@env.processing_path.tex}/#{fns}.#{ps}.tex",'w+')) +          : nil            file={ -            landscape: File.new("#{@env.processing_path.tex}/#{fns_l}.#{ps}.landscape.tex",'w+'), -            portrait: File.new("#{@env.processing_path.tex}/#{fns_l}.#{ps}.tex",'w+') +            landscape: texfile_landscape, +            portrait:  texfile_portrait            } -          file[:portrait] << @@tex_head[ps][:p] -          file[:landscape] << @@tex_head[ps][:l] +          if @md.opt.act[:pdf_p][:set]==:on +            file[:portrait] << @@tex_head[ps][:p] +          end +          if @md.opt.act[:pdf_l][:set]==:on +            file[:landscape] << @@tex_head[ps][:l] +          end            array.each do |morph|              if morph.is_a?(String)                #morph.gsub!(/^\s+/,'')                if morph !~/\A\s*\Z/ -                file[:portrait].puts morph,"\n" -                file[:landscape].puts morph,"\n" +                if @md.opt.act[:pdf_p][:set]==:on +                  file[:portrait].puts morph,"\n" +                end +                if @md.opt.act[:pdf_l][:set]==:on +                  file[:landscape].puts morph,"\n" +                end                end              elsif morph.class.inspect =~ /SiSU_DAL_DocumentStructure/ \              and morph.tmp \ @@ -952,8 +1035,12 @@ WOK                end                if (morph.tmp !~/\A\s*\Z/) \                || morph.is==:code -                file[:portrait].puts morph.tmp,"\n" -                file[:landscape].puts morph.tmp,"\n" +                if @md.opt.act[:pdf_p][:set]==:on +                  file[:portrait].puts morph.tmp,"\n" +                end +                if @md.opt.act[:pdf_l][:set]==:on +                  file[:landscape].puts morph.tmp,"\n" +                end                end              elsif morph.is_a?(Hash)            #inserted headers and the like, only                h={ ps: ps, h: morph, filename: file } @@ -964,8 +1051,12 @@ WOK              end            end            array=@array -          file[:portrait].close -          file[:landscape].close +          if @md.opt.act[:pdf_p][:set]==:on +            file[:portrait].close +          end +          if @md.opt.act[:pdf_l][:set]==:on +            file[:landscape].close +          end          end          @@tex_head={            'a4'=>    { p: nil, l: nil }, diff --git a/lib/sisu/v3/texpdf_format.rb b/lib/sisu/v5/texpdf_format.rb index 30ccc862..df6c5a25 100644 --- a/lib/sisu/v3/texpdf_format.rb +++ b/lib/sisu/v5/texpdf_format.rb @@ -50,7 +50,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/v3/texpdf_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/texpdf_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -65,7 +65,7 @@ module SiSU_TeX_Pdf    class BareUrls      def initialize(md,dob=nil)        @md,@dob=md,dob -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration      end      def bare_urls        @dob.obj=@dob.obj.gsub(/#{Mx[:url_o]}([a-zA-Z0-9._-]+\@\S+?\.[a-zA-Z0-9._-]+)#{Mx[:url_c]}/, @@ -103,8 +103,8 @@ module SiSU_TeX_Pdf        else @center_begin,@center_end='',''        end        @start_table='' -      @tx=SiSU_Env::GetInit.instance.tex -      @brace_rel=SiSU_Viz::Skin.new.rel_decoration +      @tx=SiSU_Env::GetInit.new.tex +      @brace_rel=SiSU_Viz::Defaults.new.rel_decoration        @env ||=SiSU_Env::InfoEnv.new(@md.fns)        @tex2pdf=@@tex3pdf ||=SiSU_Env::SystemCall.new.tex2pdf_engine        @make ||=SiSU_Env::ProcessingSettings.new(@md) @@ -733,8 +733,8 @@ module SiSU_TeX_Pdf          p t_o.class          p caller        end -      @tx=SiSU_Env::GetInit.instance.tex -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @tx=SiSU_Env::GetInit.new.tex +      @brace_url=SiSU_Viz::Defaults.new.url_decoration        @tex2pdf=@@tex3pdf ||=SiSU_Env::SystemCall.new.tex2pdf_engine        @ps=@txt if @txt=~/(?:a4|letter|legal|book|a5|b5)/i        @lang ||=SiSU_i18n::Languages.new #.list[@md.opt.lng][:xlp] @@ -802,7 +802,7 @@ module SiSU_TeX_Pdf        # fc-list :outline -f "%{family}\n"        case @tex2pdf        when /xe/ -        <<WOK +        <<-WOK  \\usepackage{polyglossia, ucs, fontspec, xltxtra, xunicode}  \\setmainlanguage{#{tex_head_lang[:mainlang]}}  \\setotherlanguage{#{tex_head_lang[:otherlang]}} @@ -810,19 +810,19 @@ module SiSU_TeX_Pdf  \\setmonofont[Scale=0.85]{#{texpdf_font_mono}}  % \\setsansfont{#{texpdf_font_sans}}  % \\setromanfont{#{texpdf_font_serif}} -WOK +        WOK        when /pdf/          if @md.file_encoding =~ /iso-?8859/i                                   #% iso8859 -        <<WOK +          <<-WOK  % \\usepackage[latin1]{inputenc}  \\usepackage{fontspec} -WOK +          WOK          else                                                                   #% utf-8 assumed -        <<WOK +        <<-WOK  \\usepackage{babel}  \\usepackage{ucs}  \\usepackage[utf8x]{inputenc} -WOK +          WOK          end        end      end @@ -830,18 +830,18 @@ WOK        generator="Generated by: #{@md.sisu_version[:project]} #{@md.sisu_version[:version]} of #{@md.sisu_version[:date_stamp]} (#{@md.sisu_version[:date]})" if @md.sisu_version[:version]        lastdone="Last Generated on: #{Time.now}"        rubyv="Ruby version: #{@md.ruby_version}" -      <<WOK +      <<-WOK  %% SiSU (Linux & Ruby - \"better ways\") LaTeX output  %% #{generator}  %% #{rubyv}  %% LaTeX output  %% #{lastdone}  %% SiSU http://www.jus.uio.no/sisu -WOK +      WOK      end      def tex_head_paper_portrait(d)        multicol=(@md.book_idx ? '\usepackage{multicol}' : '') -      <<WOK +      <<-WOK  #{tex_head_info}  \\documentclass[#{d[:fontsize]},#{d[:papertype]},titlepage]{scrartcl}        %with titlepage  \\setlength{\\textheight}{#{d[:textheight]}mm} \\setlength{\\textwidth}{#{d[:textwidth]}mm} @@ -851,10 +851,10 @@ WOK  \\setlength{\\marginparsep}{#{d[:marginparsep]}}  \\setlength{\\marginparwidth}{#{d[:marginparwidth]}}  #{multicol} -WOK +      WOK      end      def tex_head_paper_landscape(d) -      <<WOK +      <<-WOK  #{tex_head_info}  \\documentclass[#{d[:fontsize]},#{d[:papertype]},landscape,titlepage,twocolumn]{scrartcl}        %with titlepage  \\setlength{\\textheight}{#{d[:textheight]}mm} \\setlength{\\textwidth}{#{d[:textwidth]}mm} @@ -864,10 +864,10 @@ WOK  \\setlength{\\columnsep}{#{d[:columnsep]}}  \\setlength{\\marginparsep}{#{d[:marginparsep]}}  \\setlength{\\marginparwidth}{#{d[:marginparwidth]}} -WOK +      WOK      end      def tex_head_paper_portrait_dvi(d) -      <<WOK +      <<-WOK  #{tex_head_info}  \\documentclass[#{d[:fontsize]},#{d[:papertype]},titlepage]{scrartcl}      %with titlepage  \\setlength{\\textheight}{#{d[:textheight]}mm} \\setlength{\\textwidth}{#{d[:textwidth]}mm} @@ -876,7 +876,7 @@ WOK  \\setlength{\\headsep}{#{d[:headsep]}}  \\setlength{\\marginparsep}{#{d[:marginparsep]}}  \\setlength{\\marginparwidth}{#{d[:marginparwidth]}} -WOK +      WOK      end      def tex_head_paper_dimensions        d={} @@ -950,22 +950,22 @@ WOK      def tex_head_pdftex_dvi        color=case @layout        when /portrait/ -      <<WOK +      <<-WOK    colorlinks=true,    urlcolor=myblack,    filecolor=myblack,    linkcolor=myblack, -WOK +        WOK        when /landscape/ -      <<WOK +      <<-WOK    colorlinks=true,    urlcolor=myblue,    % \\href{...}{...}   external url    filecolor=mygreen,  % \\href{...}     local file    linkcolor=myred,    % \\href{...} and \\pageref{...} -WOK +        WOK        end        if @layout =~/portrait|landscape/ -      <<WOK +      <<-WOK  \\usepackage{alltt}  \\usepackage{thumbpdf}  \\usepackage[#{@tex2pdf}, @@ -1004,9 +1004,9 @@ WOK  \\definecolor{mywhite}{rgb}{1,1,1}  \\usepackage{url}  %\\usepackage{breakurl} -WOK +        WOK        elsif @txt =~/dvi/ -      <<WOK +      <<-WOK  \\usepackage{alltt}    #{color.strip}    pageanchor=true, @@ -1025,16 +1025,16 @@ WOK  \\definecolor{mywhite}{rgb}{1,1,1}  \\usepackage{url}  %\\usepackage{breakurl} -WOK +        WOK        end      end      def tex_head_codeblock(codeblock_box_type)        codeblock_box=if codeblock_box_type=='listings' -        <<WOK +        <<-WOK  \\usepackage{listings}  \\usepackage{color}  \\usepackage{textcomp} -WOK +        WOK        elsif codeblock_box_type=='boites'          "\\usepackage{boites}"        else @@ -1043,24 +1043,25 @@ WOK        codeblock_box      end      def tex_head_misc -      <<WOK +      <<-WOK  \\usepackage{textcomp}  \\usepackage[parfill]{parskip}  \\usepackage[normalem]{ulem}  \\usepackage{soul}  \\usepackage{longtable} +\\usepackage[tc]{titlepic}  \\usepackage{graphicx}  \\makeatletter  \\parindent0pt  %\\usepackage{mathptmx}  \\usepackage{amssymb}  % amssymb used for backslash -WOK +      WOK      end      def document_head_with_orientation(codeblock_box_type) -      endnotes=("\\usepackage{endnotes}" if @txt =~/endnotes?/)||'' #not implemented see also def endnotes +      endnotes=("\\usepackage{endnotes}" if @txt =~/endnotes?/) || '' #not implemented see also def endnotes        @lang.list[@md.i18n[0]][:xlp] -      <<WOK +      <<-WOK  #{tex_head_paper}  #{tex_head_encode}  #{tex_head_pdftex_dvi} @@ -1137,7 +1138,7 @@ WOK    {\\normalfont\\normalsize\\itshape\\raggedright}}  % \\makeatother  \\selectlanguage{#{@lang.list[@md.i18n[0]][:xlp]}} -WOK +      WOK      end      def a4generic      end @@ -1145,7 +1146,7 @@ WOK    class SpecialCharacters      def initialize(md,str,is=:default)        @md,@txt,@is=md,str,is -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration        @tex2pdf=@@tex3pdf ||=SiSU_Env::SystemCall.new.tex2pdf_engine      end      def xetex_code_listings(str,is=:default)                                  # ~ ^ $ & % _ { }  #LaTeX special characters - KEEP list @@ -1194,7 +1195,6 @@ WOK          gsub(/\\copy(right|mark)?/,'<=copymark>') # ok problem with superscript      end      def xetex_special_characters_1(str,is=:default)                                  # ~ ^ $ & % _ { }  #LaTeX special characters - KEEP list -      #str=Iconv.conv('ISO-8859-1', 'UTF-8', @txt) # `require': iconv will be deprecated in the future, use String#encode instead.        word=str.scan(/\S+|\n/) #unless line =~/^(?:@\S|%+\s)/        para_array=[]        str=if word @@ -1388,10 +1388,10 @@ WOK      attr_accessor :url,:txt,:date      def initialize(md)        @md=md -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @date=SiSU_Env::InfoDate.new # #{@date.year}        @copymark='{\\begin{footnotesize}\\raisebox{1ex}{\\copyright}\\end{footnotesize}}' -      @brace_url=SiSU_Viz::Skin.new.url_decoration +      @brace_url=SiSU_Viz::Defaults.new.url_decoration      end      def skip        "\n\\vspace*{\\smallskipamount} \n" @@ -1425,21 +1425,14 @@ WOK        "\\rhead[ ]{ }\n"      end      def footer -      base_prog_txt=if @md.base_program -        case @md.base_program -        when /kdissert/i; " \\\\ \\href{http://freehackers.org/~tnagy/kdissert/}{Kdissert}" -        else '' -        end -      else '' -      end -      "\\lfoot[\\textrm{\\thepage}]{\\tiny \\href{#{@vz.url_footer_signature}}{#{@vz.txt_signature}}#{base_prog_txt}}\n" + -      "\\cfoot[\\href{#{@vz.url_home}}{#{@vz.url_txt}}]{\\href{#{@vz.url_home}}{#{@vz.url_txt}}}\n" + -      "\\rfoot[\\tiny \\href{#{@vz.url_sisu}}{#{@vz.txt_signature}}]{\\textrm{\\thepage}}\n" +      f="\\lfoot[\\textrm{\\thepage}]{\\tiny \\href{#{@md.footer_links[:left][:url]}}{#{@md.footer_links[:left][:say]}}}\n" + +      "\\cfoot{\\href{#{@md.footer_links[:center][:url]}}{#{@md.footer_links[:center][:say]}}}\n" + +      "\\rfoot[\\tiny \\href{}{}]{\\textrm{\\thepage}}\n"      end      def site        if not @vz.url_home.empty? \        and not @vz.url_txt.empty? -        "\n\\date{\\begin{footnotesize} copy @ \\href{#{@vz.url_home}}{#{@vz.url_txt}} \\end{footnotesize}}" +        "\n\\date{\\begin{tiny} \\end{tiny}}"        else ''        end      end @@ -1453,13 +1446,13 @@ WOK      def newpage(orientation)        case orientation        when /landscape/ # using longtable latex package -<<WOK +        <<-WOK  \\clearpage -WOK +        WOK        when /portrait/ -<<WOK +        <<-WOK  \\newpage -WOK +        WOK        end      end      def sisu_rights @@ -1471,7 +1464,7 @@ WOK          end        else ''        end -<<WOK +      <<-WOK  \\\\ ~  {\\begin{footnotesize}#{base_prog_txt}  \\\\ Generated by \\href{http://www.jus.uio.no/sisu}{SiSU} \\begin{tiny}[ #{v[:project]} #{v[:version]} of #{v[:date_stamp]} ]\\end{tiny} \\href{http://www.jus.uio.no/sisu}{www.jus.uio.no/sisu} @@ -1480,19 +1473,19 @@ WOK  \\\\ SiSU is released under \\href{http://www.fsf.org/licenses/gpl.html}{GPL 3 } or later, #{@brace_url.tex_open}\\href{http://www.fsf.org/licenses/gpl.html}{http://www.fsf.org/licenses/gpl.html}#{@brace_url.tex_close}.  {\\end{footnotesize}  \\\\ -WOK +      WOK      end      def doc_sc_info_footnote_full -<<WOK +      <<-WOK  \\footnote{%\nGenerated by \\href{http://www.jus.uio.no/sisu}{SiSU \\ www.jus.uio.no/sisu }\\ \\newline \\scriptsize{Document version information: \\emph{sourcefile} \\uline{#{@md.fnstex}}; \\emph{version} \\uline{#{@md.sc_number}}; \\emph{date} \\uline{#{@md.sc_date}}; \\emph{time} \\uline{#{@md.sc_time}}}} -WOK +      WOK      end      def doc_sc_info_footnote_brief        " \\footnote{%\nGenerated by \\href{http://www.jus.uio.no/sisu}{SiSU} \\ \\href{http://www.jus.uio.no/sisu}{www.jus.uio.no/sisu} \\newline \\href{http://www.sisudoc.org}{www.sisudoc.org} \\\n}"      end      def doc_sc_info        v=SiSU_Env::InfoVersion.instance.get_version -<<WOK +      <<-WOK  \\\\  {\\begin{footnotesize}  Document version information: \\\\ @@ -1500,11 +1493,11 @@ Document version information: \\\\  Generated by \\href{http://www.jus.uio.no/sisu}{SiSU www.jus.uio.no/sisu }\\- version information: \\\\  \\uline{ #{v[:project]} #{v[:version]} of #{v[:date_stamp]}}  \\end{footnotesize}}& -WOK +      WOK      end      def doc_no_sc_info        v=SiSU_Env::InfoVersion.instance.get_version -<<WOK +      <<-WOK  \\\\  {\\begin{small}  Document information: \\\\ @@ -1513,15 +1506,15 @@ Generated by \\href{http://www.jus.uio.no/sisu}{SiSU www.jus.uio.no/sisu } \\\\  \\uline{ #{v[:project]} #{v[:version]} of #{v[:date_stamp]}}  \\end{small}}& -WOK +      WOK      end      def endnotes #not used should be inserted before MetaData section which preceeds doc_tail, but is "part of document" -<<WOK +      <<-WOK  \\subsection*{Endnotes}  \\addcontentsline{toc}{section}{Endnotes}  \\  \\listofendnotes -WOK +      WOK      end      def doc_tail        dir=SiSU_Env::InfoEnv.new(@md.fns) @@ -1534,7 +1527,7 @@ WOK          " SiSU "        end        url=@md.fnb.gsub(/(?:\\)*([$&~%_#}{^])/,'\\\\\1') -<<WOK +      <<-WOK  \\begin{english}[variant=british]  \\subsection*{Information on this document copy and an unofficial List of Some web related information and sources}  \\addcontentsline{toc}{section}{Information on this document copy and an unofficial List of Some web related information and sources} @@ -1561,11 +1554,11 @@ WOK   #{sitename} found at: \\begin{scriptsize}#{site}\\end{scriptsize}\\subsubsection*{Links that may be of interest at #{@vz.txt_home} and elsewhere:}  \\addcontentsline{toc}{subsection}{Links that may be of interest}  \\end{english} -WOK +      WOK      end      def mail_tail #not retested, the old mail_tail is commented out and appended to this program        dir=SiSU_Env::InfoEnv.new(@md.fns) -<<WOK +      <<-WOK  \\subsection*{Mail sender details}  \\addcontentsline{toc}{subsection}{Mail sender details}  \\\\ @@ -1576,7 +1569,7 @@ Mail from: ralph@amissah.com\\\\   \"Support Open Standards and Open Sources for the Information Technology Infrastructure\" RA  \\subsubsection*{Information on this document copy #{site}\\copyright}  Presentations' look and feel generated by \\href{http://www.jus.uio.no/sisu/}{SiSU Scribe} \\href{http://www.jus.uio.no/sisu/}{http://www.jus.uio.no/sisu/} programmed in Ruby on Debian/Gnu/Linux by Copyright \\copyright Ralph Amissah, W3 since October 3 1993 \\href{http://www.jus.uio.no/sisu/}{\\includegraphics*[width=35pt]{#{dir.path.image_source_include}/sisu.png}}for #{sitename}. SiSU Scribe (sisu information structuring unit) produces Electronic Documents, i.e. it generates structured output for use in a number of file formats, including the pdf file produced here. -WOK +      WOK      end    end  end diff --git a/lib/sisu/v3/update.rb b/lib/sisu/v5/update.rb index 039dace8..c311b77c 100644 --- a/lib/sisu/v3/update.rb +++ b/lib/sisu/v5/update.rb @@ -50,7 +50,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/v3/update.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/update.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v5/urls.rb index d04225cc..0a583f99 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v5/urls.rb @@ -50,7 +50,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/v3/urls.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/urls.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -320,11 +320,17 @@ module SiSU_Urls                  show.epub(x)                end                if x=~/--html\b/ \ -              and @opt.act[:html][:set]==:on +              and (@opt.act[:html][:set]==:on \ +              or @opt.act[:html_scroll][:set]==:on \ +              or @opt.act[:html_seg][:set]==:on)                  if x =~/scroll/ -                  show.html.scroll(x) +                  if @opt.act[:html_scroll][:set]==:on +                    show.html.scroll(x) +                  end                  else -                  show.html.toc(x) +                  if @opt.act[:html_seg][:set]==:on +                    show.html.toc(x) +                  end                  end                end                if x=~/--texinfo\b/ \ @@ -353,11 +359,17 @@ module SiSU_Urls                  end                end                if x=~/--pdf\b/ \ -              and @opt.act[:pdf][:set]==:on +              and (@opt.act[:pdf][:set]==:on \ +              or @opt.act[:pdf_p][:set]==:on \ +              or @opt.act[:pdf_l][:set]==:on)                  if x =~/portrait/ -                  show.pdf.portrait(x) +                  if @opt.act[:pdf_p][:set]==:on +                    show.pdf.portrait(x) +                  end                  else -                  show.pdf.landscape(x) +                  if @opt.act[:pdf_l][:set]==:on +                    show.pdf.landscape(x) +                  end                  end                end                if x=~/--sisupod\b/ \ diff --git a/lib/sisu/v3/utils.rb b/lib/sisu/v5/utils.rb index 260e1883..eb707ee9 100644 --- a/lib/sisu/v3/utils.rb +++ b/lib/sisu/v5/utils.rb @@ -48,10 +48,9 @@   * 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/v3/utils.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/utils.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -60,8 +59,8 @@   ** Description: system environment, debug related  =end -module SiSU_Debug -  class Mark +module SiSU_Utils +  class CodeMarker      def initialize(line,file,color=:red)        @line,@file,@color=line.to_s,file,color      end @@ -104,6 +103,17 @@ module SiSU_Debug          @file.gsub(/([^\/]+$)/,"#{c[:on]}\\1#{c[:off]}")      end    end +  class Path +    def initialize(dir=Dir.pwd) +      @dir=dir +    end +    def base_markup +      (/(\S+?)(?:\/(?:#{Px[:lng_lst_rgx]}))?$/).match(Dir.pwd)[1] +    end +    def bmd +      base_markup +    end +  end  end  __END__  puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set(:red) diff --git a/lib/sisu/v3/webrick.rb b/lib/sisu/v5/webrick.rb index 7efc5414..67c44d50 100644 --- a/lib/sisu/v3/webrick.rb +++ b/lib/sisu/v5/webrick.rb @@ -50,7 +50,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/v3/webrick.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/webrick.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/wikispeak.rb b/lib/sisu/v5/wikispeak.rb index f7267705..e9ada3be 100644 --- a/lib/sisu/v3/wikispeak.rb +++ b/lib/sisu/v5/wikispeak.rb @@ -50,7 +50,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/v3/wikispeak.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/wikispeak.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -88,7 +88,6 @@ module SiSU_Wikispeak          SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"#{@env.path.output_tell}/#{@md.fnb}/#{@md.fn[:wiki]}").flow if @opt.cmd =~/[MV]/          @dal_array=SiSU_DAL::Source.new(@opt).get # dal file drawn here          SiSU_Wikispeak::Source::Scroll.new(@dal_array,@md).songsheet -        SiSU_Env::InfoSkin.new(@md).select #watch        rescue          SiSU_Errors::InfoError.new($!,$@,@opt.cmd,@opt.fns).error do            __LINE__.to_s + ':' + __FILE__ @@ -153,7 +152,7 @@ module SiSU_Wikispeak        @@dp=nil        def initialize(data,md)          @data,@md=data,md -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @dp=@@dp ||=SiSU_Env::InfoEnv.new.digest.pattern          @regx=/^(?:(?:#{Mx[:br_line]}\s*|#{Mx[:br_nl]}\s*)?#{Mx[:lv_o]}\d:(\S*?)#{Mx[:lv_c]}\s*)?(.+)/ #fix Mx[:lv_o] #m # 2004w18 pb pn removal added          @tab="\t" @@ -181,8 +180,7 @@ WOK          end        end        def wiki_tail -        SiSU_Env::InfoSkin.new(@md).select -        vz=SiSU_Env::GetInit.instance.skin +        vz=SiSU_Viz::Defaults.new          generator="Generated by: #{@md.sisu_version[:project]} #{@md.sisu_version[:version]} of #{@md.sisu_version[:date_stamp]} (#{@md.sisu_version[:date]})"  if @md.sisu_version[:version]          lastdone="Last Generated on: #{Time.now}"          rubyv="Ruby version: #{@md.ruby_version}" diff --git a/lib/sisu/v3/xhtml.rb b/lib/sisu/v5/xhtml.rb index 95d5ab56..2b972e0e 100644 --- a/lib/sisu/v3/xhtml.rb +++ b/lib/sisu/v5/xhtml.rb @@ -50,7 +50,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/v3/xhtml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xhtml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -93,7 +93,7 @@ module SiSU_XHTML            else "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"            end            @opt.cmd=~/[MVvz]/ \ -          ? SiSU_Screen::Ansi.new(@opt.cmd,'invert','XHTML',tool).colorize +          ? SiSU_Screen::Ansi.new(@opt.cmd,'XHTML',tool).green_hi_blue            : SiSU_Screen::Ansi.new(@opt.cmd,'XHTML',tool).green_title_hi            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"/#{@md.file.output_path.xhtml.dir}/#{@md.file.base_filename.xhtml}").flow if @opt.cmd =~/[MV]/          end @@ -133,7 +133,7 @@ module SiSU_XHTML        @@xml={ body: [], sisu: [], open: [], close: [], head: [] }        def initialize(particulars)          @env,@md,@dal_array=particulars.env,particulars.md,particulars.dal_array -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @tab="\t"          @trans=SiSU_XML_Munge::Trans.new(@md)          @sys=SiSU_Env::SystemCall.new diff --git a/lib/sisu/v3/xhtml_table.rb b/lib/sisu/v5/xhtml_table.rb index c3bb84c4..1431306d 100644 --- a/lib/sisu/v3/xhtml_table.rb +++ b/lib/sisu/v5/xhtml_table.rb @@ -50,7 +50,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/v3/xhtml_table.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xhtml_table.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -65,7 +65,7 @@ module SiSU_XHTML_Table      @@tablehead=0      @@tablefoot=[] #watch      def initialize(table) -      @table_obj,@vz=table,SiSU_Env::GetInit.instance.skin +      @table_obj,@vz=table,SiSU_Viz::Defaults.new      end      def table        table_obj=@table_obj diff --git a/lib/sisu/v3/xml.rb b/lib/sisu/v5/xml.rb index 101b30d0..913d1afc 100644 --- a/lib/sisu/v3/xml.rb +++ b/lib/sisu/v5/xml.rb @@ -50,7 +50,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/v3/xml.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -91,7 +91,7 @@ module SiSU_XML_SAX            else "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"            end            @opt.cmd=~/[MVvz]/ \ -          ? SiSU_Screen::Ansi.new(@opt.cmd,'invert','XML SAX',tool).colorize +          ? SiSU_Screen::Ansi.new(@opt.cmd,'XML SAX',tool).green_hi_blue            : SiSU_Screen::Ansi.new(@opt.cmd,'XML SAX',tool).green_title_hi            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.xml_sax.dir}/#{@md.file.base_filename.xml_sax}").flow if @opt.cmd =~/[MV]/          end @@ -132,7 +132,7 @@ module SiSU_XML_SAX        @@xml={ body: [], open: [], close: [], head: [] }        def initialize(particulars)          @env,@md,@dal_array=particulars.env,particulars.md,particulars.dal_array -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @trans=SiSU_XML_Munge::Trans.new(@md)          @sys=SiSU_Env::SystemCall.new        end diff --git a/lib/sisu/v3/xml_dom.rb b/lib/sisu/v5/xml_dom.rb index bc2affa5..80dc397d 100644 --- a/lib/sisu/v3/xml_dom.rb +++ b/lib/sisu/v5/xml_dom.rb @@ -50,7 +50,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/v3/xml_dom.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_dom.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -92,7 +92,7 @@ module SiSU_XML_DOM            else "[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"            end            @opt.cmd=~/[MVvz]/ \ -          ? SiSU_Screen::Ansi.new(@opt.cmd,'invert','XML DOM',tool).colorize +          ? SiSU_Screen::Ansi.new(@opt.cmd,'XML DOM',tool).green_hi_blue            : SiSU_Screen::Ansi.new(@opt.cmd,'XML DOM',tool).green_title_hi            SiSU_Screen::Ansi.new(@opt.cmd,@opt.fns,"file://#{@md.file.output_path.xml_dom.dir}/#{@md.file.base_filename.xml_dom}").flow if @opt.cmd =~/[MV]/          end @@ -131,7 +131,7 @@ module SiSU_XML_DOM        @@xml={ body: [], open: [], close: [], head: [], sc: [] }        def initialize(particulars)          @env,@md,@dal_array=particulars.env,particulars.md,particulars.dal_array -        @vz=SiSU_Env::GetInit.instance.skin +        @vz=SiSU_Viz::Defaults.new          @trans=SiSU_XML_Munge::Trans.new(@md)          @sys=SiSU_Env::SystemCall.new        end diff --git a/lib/sisu/v3/xml_fictionbook.rb b/lib/sisu/v5/xml_fictionbook.rb index 7082d98d..6d0073c1 100644 --- a/lib/sisu/v3/xml_fictionbook.rb +++ b/lib/sisu/v5/xml_fictionbook.rb @@ -50,7 +50,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/v3/xml_fictionbook.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_fictionbook.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/xml_format.rb b/lib/sisu/v5/xml_format.rb index 0e76d40a..cccfc59f 100644 --- a/lib/sisu/v3/xml_format.rb +++ b/lib/sisu/v5/xml_format.rb @@ -50,7 +50,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/v3/xml_format.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_format.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -153,21 +153,31 @@ module SiSU_XML_Format          @rdf_date_modified=%{    dc.date.modified="#{@md.date.modified}"\n}          @date_modified=%{<meta name="dc.date.modified" content="#{@md.date.modified}" #{@md.date_modified_scheme} />\n}        end -      if defined? @md.type \ -      and @md.type                                                            # DublinCore 8 - type (genre eg. report, convention etc) -        @rdf_type=%{    dc.type="#{@md.type}"\n} -        @type=%{<meta name="dc.type" content="#{@md.type}" />\n} +      if defined? @md.notes.coverage \ +      and @md.notes.coverage=~/\S+/                                        # DublinCore 14 - coverage +        @rdf_coverage=%{    dc.coverage="#{@md.notes.coverage}"\n} +        @coverage=%{<meta name="dc.coverage" content="#{@md.notes.coverage}" />\n}        end -      if defined? @md.classify.format \ -      and @md.classify.format=~/\S+/                                           # DublinCore 9 - format (use your mime type) -        @rdf_format=%{    dc.format="#{@md.classify.format}"\n} -        @format=%{<meta name="dc.format" content="#{@md.classify.format}" />\n} +      if defined? @md.notes.relation \ +      and @md.notes.relation=~/\S+/                                         # DublinCore 13 - relation +        @rdf_relation=%{    dc.relation="#{@md.notes.relation}"\n} +        @relation=%{<meta name="dc.relation" content="#{@md.notes.relation}" />\n}        end -      if defined? @md.classify.identifier \ -      and @md.classify.identifier=~/\S+/                                      # DublinCore 10 - identifier (your identifier, could use urn which is free) -        @rdf_identifier=%{    dc.identifier="#{@md.classify.identifier}"\n} -        @identifier=%{<meta name="dc.identifier" content="#{@md.identifier}" />\n} +      if defined? @md.notes.type \ +      and @md.notes.type                                                            # DublinCore 8 - type (genre eg. report, convention etc) +        @rdf_type=%{    dc.type="#{@md.notes.type}"\n} +        @type=%{<meta name="dc.type" content="#{@md.notes.type}" />\n}        end +      if defined? @md.notes.format \ +      and @md.notes.format=~/\S+/                                              # DublinCore 9 - format (use your mime type) +        @rdf_format=%{    dc.format="#{@md.notes.format}"\n} +        @format=%{<meta name="dc.format" content="#{@md.notes.format}" />\n} +      end +      #if defined? @md.identifier.sisupod \ +      #and @md.identifier.sisupod=~/\S+/                                       # DublinCore 10 - identifier (your identifier, could use urn which is free) +      #  @rdf_identifier=%{    dc.identifier="#{@md.identifier.sisupod}"\n} +      #  @identifier=%{<meta name="dc.identifier" content="#{@md.identifier.sisupod}" />\n} +      #end        if defined? @md.original.source \        and @md.original.source=~/\S+/                                           # DublinCore 11 - source (document source)          @rdf_source=%{    dc.source="#{@md.original.source}"\n} @@ -178,16 +188,6 @@ module SiSU_XML_Format          @rdf_language=%{    dc.language="#{@md.original.title}"\n}          @language=%{<meta name="dc.language" content="#{@md.language[:name]}" />\n}        end -      if defined? @md.classify.relation \ -      and @md.classify.relation=~/\S+/                                         # DublinCore 13 - relation -        @rdf_relation=%{    dc.relation="#{@md.classify.relation}"\n} -        @relation=%{<meta name="dc.relation" content="#{@md.classify.relation}" />\n} -      end -      if defined? @md.classify.coverage \ -      and @md.classify.coverage=~/\S+/                                        # DublinCore 14 - coverage -        @rdf_coverage=%{    dc.coverage="#{@md.classify.coverage}"\n} -        @coverage=%{<meta name="dc.coverage" content="#{@md.classify.coverage}" />\n} -      end        if defined? @md.rights.all \        and @md.rights.all=~/\S+/                                               # DublinCore 15 - rights          @rdf_rights=%{    dc.rights="#{@md.rights.all}"\n} @@ -196,7 +196,7 @@ module SiSU_XML_Format        @copyright=%{<meta name="copyright" content="#{@md.rights.copyright.all}" />\n} if @md.rights.copyright.all # possibly redundant see dc.rights        @owner=%{<meta name="owner" content="#{@md.owner}" />\n} if @md.owner        @keywords=%{<meta name="keywords" content="#{@md.keywords}" />\n} if @md.keywords -      @vz=SiSU_Env::GetInit.instance.skin #margin,paragraph,table,banner,url,png,txt,color,font,nav_txt,nav_png,credits,js,php +      @vz=SiSU_Viz::Defaults.new #margin,paragraph,table,banner,url,png,txt,color,font,nav_txt,nav_png,credits,js,php        @index='index'      end      def table_close @@ -283,7 +283,7 @@ WOK        @lnk_url=@lnk_url.gsub(rgx,'') if @lnk_url =~rgx        rgx=/~\{\d+\s+(.+?)\}~/        @lnk_url=@lnk_url.gsub(rgx,'\1') if @lnk_url =~rgx -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def scr_endnote_body        "<endnote>#{@txt}</endnote> " @@ -361,7 +361,7 @@ WOK        @md=md        @rdf=SiSU_XML_Tags::RDF.new(md)        # DublinCore 1 - title -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new        @stylesheet=SiSU_Style::CSS_HeadInfo.new(md).stylesheet        @seg_name_html=(SiSU_HTML::Source::Seg.new.seg_name_html || [])        @seg_name_html_tracker=(SiSU_HTML::Source::Seg.new.seg_name_html_tracker || []) @@ -977,7 +977,7 @@ WOK      end    end    class FormatTextObject -    @vz=SiSU_Env::GetInit.instance.skin +    @vz=SiSU_Viz::Defaults.new      attr_accessor :md,:dob,:txt,:ocn,:format,:table,:link,:linkname,:paranum,:p_num,:headname,:banner,:url      def initialize(md,t_o)        @md,@t_o=md,t_o @@ -1023,7 +1023,7 @@ WOK          end        end        @dob=t_o if defined? t_o.is -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end      def endnote_body        %{ @@ -1200,7 +1200,7 @@ WOK    class FormatScroll < FormatTextObject      def initialize(md,txt)        super(md,txt) -      @vz=SiSU_Env::GetInit.instance.skin +      @vz=SiSU_Viz::Defaults.new      end    end    class FormatSeg < FormatTextObject diff --git a/lib/sisu/v3/xml_md_oai_pmh_dc.rb b/lib/sisu/v5/xml_md_oai_pmh_dc.rb index 81b22d16..e5857fb1 100644 --- a/lib/sisu/v3/xml_md_oai_pmh_dc.rb +++ b/lib/sisu/v5/xml_md_oai_pmh_dc.rb @@ -50,7 +50,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/v3/xml_md_oai_pmh_dc.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_md_oai_pmh_dc.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -94,95 +94,96 @@ WOK          @oai_pmh << %{  <dc:author>#{txt}</dc:author>\n}        end        if defined? @md.classify.subject \ -      and @md.classify.subject=~/\S+/                                         # DublinCore 3 - subject (us library of congress, eric or udc, or schema???) +      and @md.classify.subject=~/\S+/                                          # DublinCore 3 - subject (us library of congress, eric or udc, or schema???)          txt=meta_content_clean(@md.classify.subject)          @oai_pmh << %{  <dc:subject>#{txt}</dc:subject>\n}        end -      if defined? @md.notes.description \ -      and @md.notes.description=~/\S+/                                        # DublinCore 4 - description -        txt=meta_content_clean(@md.notes.description) -        @oai_pmh << %{  <dc:description>#{txt}</dc:description>\n} +      if defined? @md.classify.keywords \ +      and @md.classify.keywords=~/\S+/ +        txt=meta_content_clean(@md.classify.keywords) +        @oai_pmh << %{  <dc:keywords>#{txt}</dc:keywords>\n}        end -      if @md.publisher                                                        # DublinCore 5 - publisher (current copy published by) +      if @md.publisher                                                         # DublinCore 5 - publisher (current copy published by)          txt=meta_content_clean(@md.publisher)          @oai_pmh << %{  <dc:publisher>#{txt}</dc:publisher>\n}        end        if defined? @md.creator.contributor \ -      and @md.creator.contributor=~/\S+/                                      # DublinCore 6 - contributor +      and @md.creator.contributor=~/\S+/                                       # DublinCore 6 - contributor          txt=meta_content_clean(@md.creator.contributor)          @oai_pmh << %{  <dc:contributor>#{txt}</dc:contributor>\n}        end        if defined? @md.date.published \ -      and @md.date.published=~/\S+/                                           # DublinCore 7 - date year-mm-dd +      and @md.date.published=~/\S+/                                            # DublinCore 7 - date year-mm-dd          @oai_pmh << %{  <dc:date>#{@md.date.published}</dc:date>\n}        end        if defined? @md.date.created \ -      and @md.date.created=~/\S+/                                             # DublinCore 7 - date.created +      and @md.date.created=~/\S+/                                              # DublinCore 7 - date.created          @oai_pmh << %{  <dc:date_created>#{@md.date.created}</dc:date_created>\n}        end        if defined? @md.date.issued \ -      and @md.date.issued=~/\S+/                                              # DublinCore 7 - date.issued +      and @md.date.issued=~/\S+/                                               # DublinCore 7 - date.issued          @oai_pmh << %{  <dc:date_issued>#{@md.date.issued}</dc:date_issued>\n}        end        if defined? @md.date.available \ -      and @md.date.available=~/\S+/                                           # DublinCore 7 - date.available +      and @md.date.available=~/\S+/                                            # DublinCore 7 - date.available          @oai_pmh << %{  <dc:date_available>#{@md.date.available}</dc:date_available>\n}        end        if defined? @md.date.valid \ -      and @md.date.valid=~/\S+/                                               # DublinCore 7 - date.valid +      and @md.date.valid=~/\S+/                                                # DublinCore 7 - date.valid          @oai_pmh << %{  <dc:date_valid>#{@md.date.valid}</dc:date_valid>\n}        end        if defined? @md.date.modified \ -      and @md.date.modified=~/\S+/                                            # DublinCore 7 - date.modified +      and @md.date.modified=~/\S+/                                             # DublinCore 7 - date.modified          @oai_pmh <<  %{  <dc:date_modified>#{@md.date.modified}</dc:date_modified>\n}        end -      if @md.type                                                             # DublinCore 8 - type -        txt=meta_content_clean(@md.type) +      if defined? @md.notes.description \ +      and @md.notes.description=~/\S+/                                         # DublinCore 4 - description +        txt=meta_content_clean(@md.notes.description) +        @oai_pmh << %{  <dc:description>#{txt}</dc:description>\n} +      end +      if defined? @md.notes.coverage \ +      and @md.notes.coverage=~/\S+/                                            # DublinCore 14 - coverage +        txt=meta_content_clean(@md.notes.coverage) +        @oai_pmh << %{  <dc:coverage>#{txt}</dc:coverage>\n} +      end +      if defined? @md.notes.relation \ +      and @md.notes.relation=~/\S+/                                            # DublinCore 13 - relation +        txt=meta_content_clean(@md.notes.relation) +        @oai_pmh << %{  <dc:relation>#{txt}</dc:relation>\n} +      end +      if defined? @md.notes.type \ +      and @md.notes.type=~/\S+/                                                # DublinCore 8 - type +        txt=meta_content_clean(@md.notes.type)          @oai_pmh << %{  <dc:type>#{txt}</dc:type>\n}        end -      if defined? @md.classify.format \ -      and @md.classify.format=~/\S+/                                          # DublinCore 9 - format -        txt=meta_content_clean(@md.classify.format) +      if defined? @md.notes.format \ +      and @md.notes.format=~/\S+/                                              # DublinCore 9 - format +        txt=meta_content_clean(@md.notes.format)          @oai_pmh << %{  <dc:format>#{txt}</dc:format>\n}        end -      if defined? @md.classify.identifier \ -      and @md.classify.identifier=~/\S+/                                      # DublinCore 10 - identifier -        txt=meta_content_clean(@md.classify.identifier) -        @oai_pmh << %{  <dc:identifier>#{txt}</dc:identifier>\n} -      end +      #if defined? @md.identifier.sisupod \ +      #and @md.identifier.sisupod=~/\S+/                                       # DublinCore 10 - identifier +      #  txt=meta_content_clean(@md.identifier.sisupod) +      #  @oai_pmh << %{  <dc:identifier>#{txt}</dc:identifier>\n} +      #end        if defined? @md.original.source \ -      and @md.original.source=~/\S+/                                          # DublinCore 11 - source +      and @md.original.source=~/\S+/                                           # DublinCore 11 - source          txt=meta_content_clean(@md.original.source)          @oai_pmh << %{  <dc:source>#{txt}</dc:source>\n}        end        if defined? @md.title.language \ -      and @md.title.language=~/\S+/                                           # DublinCore 12 - language (English) +      and @md.title.language=~/\S+/                                            # DublinCore 12 - language (English)          @oai_pmh << %{  <dc:language>#{@md.title.language}</dc:language>\n}        end        if defined? @md.original.language \        and @md.original.language=~/\S+/          @oai_pmh << %{  <dc:language>#{@md.original.language}</dc:language>\n}        end -      if defined? @md.classify.relation \ -      and @md.classify.relation=~/\S+/                                        # DublinCore 13 - relation -        txt=meta_content_clean(@md.relation) -        @oai_pmh << %{  <dc:relation>#{txt}</dc:relation>\n} -      end -      if defined? @md.classify.coverage \ -      and @md.classify.coverage=~/\S+/                                        # DublinCore 14 - coverage -        txt=meta_content_clean(@md.classify.coverage) -        @oai_pmh << %{  <dc:coverage>#{txt}</dc:coverage>\n} -      end        if defined? @md.rights.all \ -      and @md.rights.all=~/\S+/                                               # DublinCore 15 - rights +      and @md.rights.all=~/\S+/                                                # DublinCore 15 - rights          txt=meta_content_clean(@md.rights.all)          @oai_pmh << %{  <dc:rights>#{txt}</dc:rights>\n}        end -      if defined? @md.classify.keywords \ -      and @md.classify.keywords=~/\S+/ -        txt=meta_content_clean(@md.classify.keywords) -        @oai_pmh << %{  <dc:keywords>#{txt}</dc:keywords>\n} -      end        @oai_pmh      end      def meta_content_clean(content='') diff --git a/lib/sisu/v3/xml_scaffold.rb b/lib/sisu/v5/xml_scaffold.rb index 352779f3..5b038edf 100644 --- a/lib/sisu/v3/xml_scaffold.rb +++ b/lib/sisu/v5/xml_scaffold.rb @@ -50,7 +50,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/v3/xml_scaffold.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_scaffold.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> diff --git a/lib/sisu/v3/xml_tables.rb b/lib/sisu/v5/xml_tables.rb index 4f1ada1b..9cbf259b 100644 --- a/lib/sisu/v3/xml_tables.rb +++ b/lib/sisu/v5/xml_tables.rb @@ -50,7 +50,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/v3/xml_tables.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/xml_tables.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -66,7 +66,7 @@ module SiSU_Tables      @@tablehead=0      @@tablefoot=[] #watch #bug??? #check was @@tablefoot      def initialize(one,ocn='') -      @one,@parablock,@ocn,@vz=one,one,ocn,SiSU_Env::GetInit.instance.skin +      @one,@parablock,@ocn,@vz=one,one,ocn,SiSU_Viz::Defaults.new      end      def table_split                                                            #% used but, no longer operational, revisit        @new_content=[] @@ -81,7 +81,7 @@ module SiSU_Tables      @@tablehead=0      @@tablefoot=[]      def initialize(one,ocn='') -      @one,@parablock,@ocn,@vz=one,one,ocn,SiSU_Env::GetInit.instance.skin +      @one,@parablock,@ocn,@vz=one,one,ocn,SiSU_Viz::Defaults.new      end      def table        m=@parablock[/<!f(.+?)!>/,1] @@ -125,7 +125,7 @@ module SiSU_Tables      @@tablehead=0      @@tablefoot=[]      def initialize(one) -      @one,@parablock,@vz=one,one,SiSU_Env::GetInit.instance.skin +      @one,@parablock,@vz=one,one,SiSU_Viz::Defaults.new      end      def table_head(inf)        %{<table summary="normal text css" width="100%" border="0" bgcolor="white" cellpadding="2" align="center"> diff --git a/lib/sisu/v3/zap.rb b/lib/sisu/v5/zap.rb index 86022abc..cc542f97 100644 --- a/lib/sisu/v3/zap.rb +++ b/lib/sisu/v5/zap.rb @@ -50,7 +50,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/v3/zap.rb;hb=HEAD> +   <http://sources.sisudoc.org/?p=code/sisu.git;a=blob;f=lib/sisu/v5/zap.rb;hb=HEAD>   * Ralph Amissah     <ralph@amissah.com> @@ -66,20 +66,23 @@ module SiSU_Zap    class Source      def initialize(opt)        @opt=opt -      @env=SiSU_Env::InfoEnv.new(@opt.fns) -      @zap_path="#{@env.path.output}/#{@env.fnb}" -      @zap=SiSU_Env::CleanOutput.new(@opt) +      @env=SiSU_Env::InfoEnv.new(opt.fns)      end      def read +      zap_path="#{@env.path.output}/#{@env.fnb}" +      z=SiSU_Env::CleanOutput.new(@opt)        if SiSU_Env::InfoSettings.new.permission?('zap') -        tell=SiSU_Screen::Ansi.new(@opt.cmd,"Clean files related to processing #{@opt.cmd} ->","#{@opt.fns} -> #{@zap_path}") -        @zap.zap.main_output -        @zap.zap.site_map -        @zap.zap.epub -        @zap.zap.src -      else tell=SiSU_Screen::Ansi.new(@opt.cmd,'use of -Z (zap) has not enabled in sisurc.yml') +        unless @opt.cmd =~/q/ +          tell=SiSU_Screen::Ansi.new(@opt.cmd,"Clean files related to processing #{@opt.cmd} ->","#{@opt.fns} -> #{zap_path}") +          tell.warn +        end +        z.zap.remove_output +      else +        unless @opt.cmd =~/q/ +          tell=SiSU_Screen::Ansi.new(@opt.cmd,'use of -Z (zap) has not enabled in sisurc.yml') +          tell.warn +        end        end -      tell.warn unless @opt.cmd =~/q/      end    end  end  | 
