summaryrefslogtreecommitdiffstats
path: root/lib/sisu
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sisu')
-rw-r--r--lib/sisu/v3/defaults.rb2196
-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.rb1212
-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.rb646
-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 416534d..0000000
--- 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 # &bullet;
- '&#149;&nbsp;' # [&#149; flagged]
- end
- #% html
- def html_hardspace
- '&nbsp;'
- 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
- '&nbsp;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 #'&lt;'
- Dx[:url_o]
- end
- def xml_close #'&gt;'
- 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 #'&lt;'
- Dx[:rel_o]
- end
- def xml_close #'&gt;'
- 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">&nbsp;</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">&nbsp;</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} --&gt;" />}
- #%{<img border="0" src="#{dir.url.images_local}/#{icon_home_button}" alt="#{txt_home} --&gt;" />}
- end
- def png_home_button
- rel=@dir.path_rel_links.html_scroll_2
- %{<img border="0" src="#{rel}/#{icon_home_button}" alt="#{txt_home} --&gt;" />}
- 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="&lt;&lt;&nbsp;previous" />}
- end
- def png_nav_next
- %{<img border="0" width="22" height="22" src="#{url_path_image_sys}/#{icon_next}" alt="next&nbsp;&gt;&gt;" />}
- 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="&lt;&lt;&nbsp;previous" />}
- end
- def epub_png_nav_next
- %{<img border="0" width="22" height="22" src="#{url_path_image_epub}/#{icon_next}" alt="next&nbsp;&gt;&gt;" />}
- end
- def epub_png_nav_up
- %{<img border="0" width="22" height="22" src="#{url_path_image_epub}/#{icon_up}" alt="&#094;up&nbsp;&#094;" />}
- 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="&#094;" />}
- end
- def png_nav_dot_previous
- %{<img border="0" width="100%" height="20" src="#{url_path_image_sys}/#{icon_dot}" alt="&lt;" />}
- end
- def png_nav_dot_next
- %{<img border="0" width="100%" height="20" src="#{url_path_image_sys}/#{icon_dot}" alt="&gt;" />}
- 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}&nbsp;
- </font> }
- end
- def nav_txt_home_button
- %{ <font face="#{font_fonts}" size="2">
- #{png_home_button}&nbsp;
- </font> }
- end
- def nav_txt_homepage
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;home&nbsp;
- </font> }
- end
- def nav_txt_toc_link
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;&nbsp;toc&nbsp;
- </font> }
- end
- def nav_txt_toc_link_verbose
- %{ <font face="#{font_fonts}" size="2">
- #{png_toc}&nbsp;&nbsp;segments'&nbsp;toc&nbsp;
- </font> }
- end
- def nav_txt_doc_link
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;scroll&nbsp;
- </font> }
- end
- def nav_txt_manifest
- #{png_manifest}&nbsp;document&nbsp;manifest
- %{ <font face="#{font_fonts}" size="2">
- [&nbsp;document&nbsp;manifest&nbsp;]
- </font> }
- end
- def nav_txt_concordance
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;&nbsp;A-Z&nbsp;
- </font> }
- end
- def nav_txt_previous
- ' <font face="" size="2">
- &nbsp;&nbsp;<b>&lt;&lt;</b>&nbsp;Previous&nbsp;&nbsp;
- </font>
- Full&nbsp;Text&nbsp;'
- end
- def nav_txt_next
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;&nbsp;Next&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<b>&gt;&gt;</b>&nbsp;&nbsp;
- </font> }
- end
- def nav_txt_plaintext
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;&nbsp;txt&nbsp;
- </font> }
- end
- def nav_txt_odf
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;&nbsp;odt&nbsp;
- </font> }
- end
- def nav_txt_pdfs
- %{ <font face="#{font_fonts}" size="2">
- pdfs&nbsp;&nbsp;
- </font> }
- end
- def nav_txt_epub
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;epub&nbsp;
- </font> }
- end
- def nav_txt_pdf_portrait
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;pdf&nbsp;
- </font> }
- end
- def nav_txt_pdf_landscape
- %{ <font face="#{font_fonts}" size="2">
- &nbsp;pdf&nbsp;
- </font> }
- end
- #% banner
- def banner_home
- %{ <center>
- <a href="#{url_site}/" target="_top">
- #{png_site}
- </a>
- <br />
- <font size="2" color="#444444">
- an
- <br />
- (&nbsp;international&nbsp;|&nbsp;transnational&nbsp;)
- <br />
- commercial&nbsp;law&nbsp;&&nbsp;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">
- &nbsp;This&nbsp;text's&nbsp;sub-&nbsp;
- <br />
- &nbsp;Table&nbsp;of&nbsp;Contents&nbsp;
- </a>
- </font>
-</td></tr>
-</table>
-</td>
-<td width="20%">
- &nbsp;
-#{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">
- &nbsp;Epiphany
- </a>
- <sup>&reg;</sup>&nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://galeon.sourceforge.net/" target="external">
- &nbsp;Galeon
- </a>
- <sup>&reg;</sup>&nbsp;|
- </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>&reg;</sup>&nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://kazehakase.sourceforge.jp/" target="external">
- Kazehakase</a>
- <sup>&reg;</sup>&nbsp;|</font></p></td>
-<td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://www.konqueror.org/" target="external">
- Konqueror</a>
- <sup>&reg;</sup>&nbsp;|</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>&reg;</sup>&nbsp;|
- </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>&reg;</sup>&nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://www.opera.com/" target="external">
- Opera
- </a>
- <sup>&reg;</sup>&nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://www.apple.com/safari/" target="external">
- Safari
- </a>
- <sup>&reg;</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>&nbsp;|
- </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>&nbsp;|
- </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>
- &nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://www.gnome.org/projects/epiphany/" target="external">
- &nbsp;Epiphany
- </a>
- <sup>&reg;</sup>&nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p>
- <font color="#666666" size="1">
- <a href="http://galeon.sourceforge.net/" target="external">
- &nbsp;Galeon
- </a>&nbsp;|
- </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">
- &amp; 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>&reg;</sup>
- &nbsp;|
- </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>&reg;</sup>
- </font>
- </p>
-</td>
-<td>
- <p class="center"><font color="#666666" size="1">
- <a href="http://www.cs.wisc.edu/~ghost/gv/" target="external">
- &nbsp;GhostView<sup>&reg;</sup>&nbsp;</a>,
- <a href="http://wwwthep.physik.uni-mainz.de/~plass/gv/" target="external">
- GV<sup>&reg;</sup>
- </a>
- &amp;
- <a href="http://www.cs.wisc.edu/~ghost/gsview/" target="external">
- GSview<sup>&reg;</sup>
- </a>
- &nbsp;|
- </font>
- </p>
-</td>
-<td>
- <p class="center">
- <font color="#666666" size="1">
- <a href="http://www.foolabs.com/xpdf/" target="external">
- &nbsp;Xpdf
- </a>
- <sup>&reg;</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>&copy;</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>&copy;</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 &amp; total cost of ownership"
- [not to mention flexibility &amp; 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 &gt;&gt;">
- </a>
-</p>
-<h1 class="top_band">
- SiSU information Structuring Universe
-</h1>
-<h2 class="top_band_tiny">
- Structured information, Serialized Units
- &nbsp;&nbsp;
- <a href="http://www.sisudoc.org" target="_top">
- &lt;www.sisudoc.org&gt;
- </a>
- &nbsp;&nbsp;or&nbsp;&nbsp;
- <a href="http://www.jus.uio.no/sisu/" target="_top">
- &lt;www.jus.uio.no/sisu/&gt;
- </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">
- &lt;http://git.sisudoc.org&gt;
- </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">&lt;ralph.amissah@gmail.com&gt;</a> and can be contacted via mailing list <a href="http://lists.sisudoc.org/listinfo/sisu">&lt;http://lists.sisudoc.org/listinfo/sisu&gt;</a> at <a href="mailto:sisu@lists.sisudoc.org">&lt;sisu@lists.sisudoc.org&gt;</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">&lt;www.sisudoc.org&gt;</a> or <a href="http://www.jus.uio.no/sisu/">&lt;www.jus.uio.no/sisu/&gt;</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">&lt;search.sisudoc.org&gt;</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/">
- &lt;www.sisudoc.org/sisu/SiSU&gt;
- </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">
-&lt;ralph@amissah.com&gt;
-</a>
-</p>
-<p class="small">
-<a href="mailto:ralph.amissah@gmail.com">
-&lt;ralph.amissah@gmail.com&gt;
-</a>
-</p>
-<p class="small">
-<a href="mailto:sisu@lists.sisudoc.org">
-&lt;sisu@lists.sisudoc.org&gt;
-</a>
-</p>
-<p class="small">
-<a href="http://lists.sisudoc.org/listinfo/sisu">
-&lt;http://lists.sisudoc.org/listinfo/sisu&gt;
-</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 d4b4939..cd5c2f6 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 5f08ef4..3a9d49a 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 f0ae55b..dd9cdf2 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 20e5177..8d09f73 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 627cdbf..5604d6c 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 --&gt;" /></a></td><td>
-<!-- <p class="tiny"><a href="http://www.jus.uio.no/sisu/SiSU/">&nbsp;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 &amp; total cost of ownership"
- [not to mention flexibility &amp; 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>&nbsp;}
: %{<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>&nbsp;}
- 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">&nbsp;#{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>&nbsp;<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">&nbsp;#{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>&nbsp;}
: %{<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>&nbsp;}
- 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">&nbsp;#{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>&nbsp;<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">&nbsp;#{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>&nbsp;<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> [&sect; <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> [&sect; <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 e56fa35..45f6d1c 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 3923799..c1cfb12 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 6a98445..ac148f4 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 --&gt;"></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">&nbsp;</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 e9fecf3..4d5b58d 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 10eb804..d72049e 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: '&nbsp;',
+ }
+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 c6358cd..4b682e5 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 3feb578..e6003b4 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 c993b8e..62aa60c 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 94bb9cb..de9d568 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 87da4fa..da417bd 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 326efea..8412b45 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 68855ba..46efaa6 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 f2e13cb..29d8a1e 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 bf8d569..67f2805 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(/&/,'&#038;').
- gsub(/\(/,'&#040;').
- gsub(/\)/,'&#041;').
- gsub(/\*/,'&#042;').
- gsub(/\+/,'&#043;').
- gsub(/,/,'&#044;')
+ str=str.gsub(/&/,'&amp;')
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>,&nbsp;}
- idx[:xhtml] << %{<a href="##{x.downcase}">#{x}</a>,&nbsp;}
+ 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 2c867c1..1141447 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 4dbfe17..1fa5619 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 21ada29..39524cc 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 847f917..051d2bf 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 a43ca00..03d397b 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 02adf4c..14d3bb4 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 5df72a2..e2d1f91 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 0164ceb..85640b3 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 b4f8c7e..caf7faa 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 530e23d..a1d332b 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 beae0aa..265d516 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 d615fca..bdaf285 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 de57983..1fb40e3 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 efa1e7b..f6930fa 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 91c775f..eb52f30 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 3376298..5cc7c98 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 9521edb..3359272 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 b8e8f6e..89fd389 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 0000000..6b3004e
--- /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 # &bullet;
+ '&#149;&nbsp;' # [&#149; flagged]
+ end
+ #% html
+ def html_hardspace
+ '&nbsp;'
+ 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
+ '&nbsp;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 #'&lt;'
+ Dx[:url_o]
+ end
+ def xml_close #'&gt;'
+ 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 #'&lt;'
+ Dx[:rel_o]
+ end
+ def xml_close #'&gt;'
+ 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">&nbsp;</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">&nbsp;</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} --&gt;" />}
+ #%{<img border="0" src="#{dir.url.images_local}/#{icon_home_button}" alt="#{txt_home} --&gt;" />}
+ end
+ def png_home_button
+ rel=@dir.path_rel_links.html_scroll_2
+ %{<img border="0" src="#{rel}/#{icon_home_button}" alt="#{txt_home} --&gt;" />}
+ end
+ #% png_nav #not currently used
+ #% nav_txt
+ def nav_txt_homepage
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;home&nbsp;
+ </font> }
+ end
+ def nav_txt_toc_link
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;&nbsp;toc&nbsp;
+ </font> }
+ end
+ def nav_txt_doc_link
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;scroll&nbsp;
+ </font> }
+ end
+ def nav_txt_manifest
+ #{png_manifest}&nbsp;document&nbsp;manifest
+ %{ <font face="#{font_fonts}" size="2">
+ [&nbsp;document&nbsp;manifest&nbsp;]
+ </font> }
+ end
+ def nav_txt_concordance
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;&nbsp;A-Z&nbsp;
+ </font> }
+ end
+ def nav_txt_pdf_portrait
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;pdf&nbsp;
+ </font> }
+ end
+ def nav_txt_pdf_landscape
+ %{ <font face="#{font_fonts}" size="2">
+ &nbsp;pdf&nbsp;
+ </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>&copy;</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>&copy;</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 &amp; total cost of ownership"
+ [not to mention flexibility &amp; 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
+ &nbsp;&nbsp;
+ <a href="http://www.sisudoc.org" target="_top">
+ &lt;www.sisudoc.org&gt;
+ </a>
+ &nbsp;&nbsp;or&nbsp;&nbsp;
+ <a href="http://www.jus.uio.no/sisu/" target="_top">
+ &lt;www.jus.uio.no/sisu/&gt;
+ </a>
+software for electronic texts, document collections, books, digital libraries &amp; search, with "atomic search" &amp; 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">
+&lt;sisu@lists.sisudoc.org&gt;
+</a>
+<a href="http://lists.sisudoc.org/listinfo/sisu">
+&lt;http://lists.sisudoc.org/listinfo/sisu&gt;
+</a>
+</p>
+<p class="small">
+<a href="mailto:ralph@amissah.com">
+&lt;ralph@amissah.com&gt;
+</a>
+<a href="mailto:ralph.amissah@gmail.com">
+&lt;ralph.amissah@gmail.com&gt;
+</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 d3c3f8c..902a0e9 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 2b1e759..a75b169 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 e7325bc..480474e 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(/(\*+)/,%{&nbsp;<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 4a63df9..e528a78 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 --&gt;"></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">&nbsp;</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 # [&nbsp;http://[web host]/#{@fnb}/concordance.html#your_word&nbsp;]
+ (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">&nbsp;scroll:&nbsp;</font><font size="1" color="#222222" face=times new roman>doc#&nbsp;</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>,&nbsp;}}
+ 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 228c2df..7596765 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}">&nbsp;</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}">&nbsp;</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(/&nbsp;/,' ') if Ep[:alt]==:on
+ x.gsub(/&/,'&amp;').
+ gsub(/</,"&lt;").gsub(/>/,"&gt;").
+ gsub(/#{Dx[:url_o]}/,Dx[:url_o_xml]).gsub(/#{Dx[:url_c]}/,Dx[:url_o_xml]).
+ #gsub(/</,'&#60;').gsub(/>/,'&#62;').
+ gsub(/\\\\/,'<br />').
+ gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,';')
+ m=SanitizeXML.xml(m)
end
x=@md.creator.author.dup
- x=x.gsub(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,';')
+ m=SanitizeXML.xml(m)
end
x=@md.creator.editor.dup
- x=x.gsub(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,';')
+ m=SanitizeXML.xml(m)
end
x=@md.creator.translator.dup
- x=x.gsub(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,';')
+ m=SanitizeXML.xml(m)
end
x=@md.creator.illustrator.dup
- x=x.gsub(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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(/</,'&lt;').gsub(/>/,'&gt;').
- gsub(/&lt;br(?: \/)?&gt;/,'<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>&copy;</sup>&nbsp;')
- %{<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">
- &nbsp;&nbsp;&nbsp;
+ #{$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">&nbsp;</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}
- &nbsp;&nbsp;&nbsp;
+ #{$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}
- &nbsp;&nbsp;&nbsp;
+ #{$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+">&nbsp;<sup id="note\d+">\d+<\/sup>&nbsp;/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 4098963..64bea75 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(/&nbsp;<a name="-[\d*+]+" href="#_[\d*+]+">&nbsp;<sup>[\d*+]+<\/sup>&nbsp;<\/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(/&nbsp;<a name="-[\d*+]+" href="#_[\d*+]+">&nbsp;<sup>[\d*+]+<\/sup>&nbsp;<\/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(/&nbsp;<a name="-[\d*+]+" href="#_[\d*+]+">&nbsp;<sup>[\d*+]+<\/sup>&nbsp;<\/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 664f143..c000536 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,'&nbsp;')
+ 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,'●&nbsp;&nbsp;').
- gsub(/#{Mx[:nbsp]}/,'&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/,%{&nbsp;<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&nbsp;{&nbsp;\1&nbsp;}</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 505ba61..9721bf7 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 9ec2986..eb5a9b9 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 b458b8d..ffcb6aa 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 0c5d82e..89a64fe 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>&nbsp;&nbsp;&nbsp;}
end
sv=SiSU_Env::InfoVersion.instance.get_version
+ if @env.output_dir_structure.by? == :language
+ home_pth='../..'
+ output_structure_by='(output organised by language &amp; 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">&nbsp;HOME&nbsp;</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">&nbsp;HOME&nbsp;</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 59ba4c0..7375e19 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>&nbsp;&nbsp;&nbsp;}
end
sv=SiSU_Env::InfoVersion.instance.get_version
+ if @env.output_dir_structure.by? == :language
+ home_pth='../..'
+ output_structure_by='(output organised by language &amp; 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">&nbsp;HOME&nbsp;</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">&nbsp;HOME&nbsp;</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 f31e71d..b73cd13 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 340b81e..d312267 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 da67a29..3c8bc46 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}">&nbsp;</a></label>})
+ if @ocn.to_i==0 \
+ or @ocn.empty?
+ %{<label class="ocn_off">&nbsp;</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}">&nbsp;</label>})
+ %{<label class="ocn_off">&nbsp;</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 --&gt;" /></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%">
&nbsp;
#{@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">
&nbsp;<a href="toc.html" target="_top" alt="-&gt;">
#{png_nav.toc}
</a>&nbsp;
@@ -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="-&gt;">
- #{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="-&gt;">
+ #{png_nav.nxt}</a>}
+ elsif @md.firstseg =~/\S+/
+ firstseg=%{<a href="#{@md.firstseg}#{@md.lang_code_insert}#{Sfx[:html]}" target="_top" alt="-&gt;">
+ #{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">
&nbsp;#{firstseg}&nbsp;
@@ -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 8158c48..bd9835d 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 c2a8462..a76a15f 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 3180586..fa183f4 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 7c90c53..9efa206 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 7713a66..8c9b76d 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 23fa586..9f81e8c 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 2421a50..6f0d0b6 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 9e61fbd..b635af1 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 225c235..75d8233 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 --&gt;" /></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">
&nbsp;&nbsp;<a href="#output">Document, Available Filetypes</a>
</p>
@@ -847,6 +867,7 @@ WOK
<p class="tiny">
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<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 8be6ecd..0873e3f 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(/(^|&nbsp;|#{Mx[:nbsp]}|\s|\*)\\\*/,'\1\\\\\*'). #man page requires
+ dob.obj=dob.obj.gsub(/(^|&nbsp;|#{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(/&#126;/,'~') 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(/&nbsp;|#{Mx[:nbsp]}/,' '). # decide on
+ gsub(/#{Mx[:mk_o]}name#\S+?#{Mx[:mk_c]}/,''). # remove name links
+ gsub(/&nbsp;|#{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 bd07a0b..ce54fdb 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 71cbcca..671cc35 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 9c5f37c..8abff36 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 f44b550..2133a81 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 0d88287..b2ced41 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 6449759..148c73d 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 0000000..24a4dbb
--- /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 ca77074..7cc5473 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 898b355..9980b17 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 0761260..2d7850e 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 6ea61e1..b3bcc81 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 594c62b..042bbaa 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 ee481d1..b35741c 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 a730b83..6d93cd6 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 0981692..39d6bde 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 4eecac5..3a560ae 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 a484984..6d167ab 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 4aedfe2..5a30734 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 dde1d33..ebd954a 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 3f8965c..cb93dee 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 ccd76e1..e91a3cf 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 6e897cf..84c89ec 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 d730221..c01ec08 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 d71710d..1dc4412 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 9bceeb1..e0fec92 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 6fd6629..5c8c225 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,'&amp;')
+ end
+ @s
+ end
def utf8
if @s \
and @s.is_a?(String)
@s=@s.gsub(/<br(?: \/)?>/u,Mx[:br_paragraph]).
- gsub(/</um,'&#60;'). # '&lt;' # &#060;
- gsub(/</um,'&#60;'). # '&lt;' # &#060;
- gsub(/>/um,'&#62;'). # '&gt;' # &#062;
- gsub(/¢/um,'&#162;'). # '&cent;' # &#162;
- gsub(/£/um,'&#163;'). # '&pound;' # &#163;
- gsub(/¥/um,'&#165;'). # '&yen;' # &#165;
- gsub(/§/um,'&#167;'). # '&sect;' # &#167;
- gsub(/©/um,'&#169;'). # '&copy;' # &#169;
- gsub(/ª/um,'&#170;'). # '&ordf;' # &#170;
- gsub(/«/um,'&#171;'). # '&laquo;' # &#171;
- gsub(/®/um,'&#174;'). # '&reg;' # &#174;
- gsub(/°/um,'&#176;'). # '&deg;' # &#176;
- gsub(/±/um,'&#177;'). # '&plusmn;' # &#177;
- gsub(/²/um,'&#178;'). # '&sup2;' # &#178;
- gsub(/³/um,'&#179;'). # '&sup3;' # &#179;
- gsub(/µ/um,'&#181;'). # '&micro;' # &#181;
- gsub(/¶/um,'&#182;'). # '&para;' # &#182;
- gsub(/¹/um,'&#185;'). # '&sup1;' # &#185;
- gsub(/º/um,'&#186;'). # '&ordm;' # &#186;
- gsub(/»/um,'&#187;'). # '&raquo;' # &#187;
- gsub(/¼/um,'&#188;'). # '&frac14;' # &#188;
- gsub(/½/um,'&#189;'). # '&frac12;' # &#189;
- gsub(/¾/um,'&#190;'). # '&frac34;' # &#190;
- gsub(/×/um,'&#215;'). # '&times;' # &#215;
- gsub(/÷/um,'&#247;'). # '&divide;' # &#247;
- gsub(/¿/um,'&#191;'). # '&iquest;' # &#191;
- gsub(/À/um,'&#192;'). # '&Agrave;' # &#192;
- gsub(/Á/um,'&#193;'). # '&Aacute;' # &#193;
- gsub(/Â/um,'&#194;'). # '&Acirc;' # &#194;
- gsub(/Ã/um,'&#195;'). # '&Atilde;' # &#195;
- gsub(/Ä/um,'&#196;'). # '&Auml;' # &#196;
- gsub(/Å/um,'&#197;'). # '&Aring;' # &#197;
- gsub(/Æ/um,'&#198;'). # '&AElig;' # &#198;
- gsub(/Ç/um,'&#199;'). # '&Ccedil;' # &#199;
- gsub(/È/um,'&#200;'). # '&Egrave;' # &#200;
- gsub(/É/um,'&#201;'). # '&Eacute;' # &#201;
- gsub(/Ê/um,'&#202;'). # '&Ecirc;' # &#202;
- gsub(/Ë/um,'&#203;'). # '&Euml;' # &#203;
- gsub(/Ì/um,'&#204;'). # '&Igrave;' # &#204;
- gsub(/Í/um,'&#205;'). # '&Iacute;' # &#205;
- gsub(/Î/um,'&#206;'). # '&Icirc;' # &#206;
- gsub(/Ï/um,'&#207;'). # '&Iuml;' # &#207;
- gsub(/Ð/um,'&#208;'). # '&ETH;' # &#208;
- gsub(/Ñ/um,'&#209;'). # '&Ntilde;' # &#209;
- gsub(/Ò/um,'&#210;'). # '&Ograve;' # &#210;
- gsub(/Ó/um,'&#211;'). # '&Oacute;' # &#211;
- gsub(/Ô/um,'&#212;'). # '&Ocirc;' # &#212;
- gsub(/Õ/um,'&#213;'). # '&Otilde;' # &#213;
- gsub(/Ö/um,'&#214;'). # '&Ouml;' # &#214;
- gsub(/Ø/um,'&#216;'). # '&Oslash;' # &#216;
- gsub(/Ù/um,'&#217;'). # '&Ugrave;' # &#217;
- gsub(/Ú/um,'&#218;'). # '&Uacute;' # &#218;
- gsub(/Û/um,'&#219;'). # '&Ucirc;' # &#219;
- gsub(/Ü/um,'&#220;'). # '&Uuml;' # &#220;
- gsub(/Ý/um,'&#221;'). # '&Yacute;' # &#221;
- gsub(/Þ/um,'&#222;'). # '&THORN;' # &#222;
- gsub(/ß/um,'&#223;'). # '&szlig;' # &#223;
- gsub(/à/um,'&#224;'). # '&agrave;' # &#224;
- gsub(/á/um,'&#225;'). # '&aacute;' # &#225;
- gsub(/â/um,'&#226;'). # '&acirc;' # &#226;
- gsub(/ã/um,'&#227;'). # '&atilde;' # &#227;
- gsub(/ä/um,'&#228;'). # '&auml;' # &#228;
- gsub(/å/um,'&#229;'). # '&aring;' # &#229;
- gsub(/æ/um,'&#230;'). # '&aelig;' # &#230;
- gsub(/ç/um,'&#231;'). # '&ccedil;' # &#231;
- gsub(/è/um,'&#232;'). # '&egrave;' # &#232;
- gsub(/é/um,'&#233;'). # '&acute;' # &#233;
- gsub(/ê/um,'&#234;'). # '&circ;' # &#234;
- gsub(/ë/um,'&#235;'). # '&euml;' # &#235;
- gsub(/ì/um,'&#236;'). # '&igrave;' # &#236;
- gsub(/í/um,'&#237;'). # '&acute;' # &#237;
- gsub(/î/um,'&#238;'). # '&icirc;' # &#238;
- gsub(/ï/um,'&#239;'). # '&iuml;' # &#239;
- gsub(/ð/um,'&#240;'). # '&eth;' # &#240;
- gsub(/ñ/um,'&#241;'). # '&ntilde;' # &#241;
- gsub(/ò/um,'&#242;'). # '&ograve;' # &#242;
- gsub(/ó/um,'&#243;'). # '&oacute;' # &#243;
- gsub(/ô/um,'&#244;'). # '&ocirc;' # &#244;
- gsub(/õ/um,'&#245;'). # '&otilde;' # &#245;
- gsub(/ö/um,'&#246;'). # '&ouml;' # &#246;
- gsub(/ø/um,'&#248;'). # '&oslash;' # &#248;
- gsub(/ù/um,'&#250;'). # '&ugrave;' # &#250;
- gsub(/ú/um,'&#251;'). # '&uacute;' # &#251;
- gsub(/û/um,'&#252;'). # '&ucirc;' # &#252;
- gsub(/ü/um,'&#253;'). # '&uuml;' # &#253;
- gsub(/þ/um,'&#254;'). # '&thorn;' # &#254;
- gsub(/ÿ/um,'&#255;'). # '&yuml;' # &#255;
- gsub(/‘/um,'&#8216;'). # '&lsquo;' # &#8216;
- gsub(/’/um,'&#8217;'). # '&rsquo;' # &#8217;
- gsub(/“/um,'&#8220;'). # &ldquo; # &#8220;
- gsub(/”/um,'&#8221;'). # &rdquo; # &#8221;
- gsub(/–/um,'&#8211;'). # &ndash; # &#8211;
- gsub(/—/um,'&#8212;'). # &mdash; # &#8212;
- gsub(/∝/um,'&#8733;'). # &prop; # &#8733;
- gsub(/∞/um,'&#8734;'). # &infin; # &#8734;
- gsub(/™/um,'&#8482;'). # &trade; # &#8482;
- gsub(/✠/um,'&#10016;'). # &cross; # &#10016;
+ gsub(/</um,'&lt;').gsub(/>/um,'&gt;').
+ #gsub(/</um,'&#60;').gsub(/>/um,'&#62;').
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(/</,'&lt;').gsub(/>/,'&gt;').
gsub(/&lt;br(?: \/)?&gt;/,'<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 041448a..4a30e26 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 f1eb048..f35287d 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 1ebefdd..3401b05 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 bb2de86..c953482 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 00312a6..fe4be74 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 75182ab..d4341ab 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 8eff979..fcdfe88 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 ce88161..8f10e3b 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 7c83fd9..cbf40f2 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 d989c95..08dd9f4 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 8346ce1..9d9f90c 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 6cc1a58..248aa20 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 ccc518d..3276d1f 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 9e03406..2598439 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 d6f1898..e25673b 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 d2a9684..069d916 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 af968ca..e4efdb3 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 1221d81..7a98d9f 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\\codeblockb