aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRalph Amissah <ralph@amissah.com>2010-05-26 15:40:01 -0400
committerRalph Amissah <ralph@amissah.com>2010-05-26 15:40:01 -0400
commitc142eedb1854395c4b31bbb4852ca5e10fbaea70 (patch)
tree05f582c5129f7c82be2ae2b42317a5c68f1f770b
parentdebian/changelog (2.3.5-1) (diff)
parentupdate: changelog, version (2.4.0) (diff)
Merge branch 'upstream' into debian/sid
-rw-r--r--CHANGELOG_v229
-rw-r--r--conf/sisu/v2/sisurc.yml13
-rw-r--r--conf/sisu/v2/version.yml6
-rw-r--r--data/doc/sisu/v2/CHANGELOG29
-rw-r--r--data/doc/sisu/v2/on_sisu_markup/sisu_markup.txt570
-rw-r--r--data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_download.ssi22
-rw-r--r--data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_markup.sst52
-rw-r--r--data/sisu/v2/conf/editor-syntax-etc/vim/syntax/sisu.vim4
-rw-r--r--lib/sisu/v2/concordance.rb2
-rw-r--r--lib/sisu/v2/dal_doc_str.rb5
-rw-r--r--lib/sisu/v2/dal_numbering.rb10
-rw-r--r--lib/sisu/v2/dal_syntax.rb32
-rw-r--r--lib/sisu/v2/epub_segments.rb18
-rw-r--r--lib/sisu/v2/epub_tune.rb16
-rw-r--r--lib/sisu/v2/html_scroll.rb1
-rw-r--r--lib/sisu/v2/html_segments.rb14
-rw-r--r--lib/sisu/v2/html_tune.rb5
-rw-r--r--lib/sisu/v2/odf.rb56
-rw-r--r--lib/sisu/v2/particulars.rb3
-rw-r--r--lib/sisu/v2/plaintext.rb1
-rw-r--r--lib/sisu/v2/shared_html_lite.rb29
-rw-r--r--lib/sisu/v2/shared_xml.rb2
-rw-r--r--lib/sisu/v2/sysenv.rb1
-rw-r--r--lib/sisu/v2/texpdf_format.rb56
-rw-r--r--lib/sisu/v2/webrick.rb4
25 files changed, 866 insertions, 114 deletions
diff --git a/CHANGELOG_v2 b/CHANGELOG_v2
index ba5e1262..6eee0b4f 100644
--- a/CHANGELOG_v2
+++ b/CHANGELOG_v2
@@ -12,11 +12,34 @@ Reverse Chronological:
%% Development branch UNSTABLE
+%% 2.4.0.orig.tar.gz (2010-05-26:21/3)
+http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0.orig.tar.gz
+ sisu_2.4.0.orig.tar.gz
+ sisu_2.4.0-1.dsc
+ sisu_2.4.0-1.diff.gz
+
+ * sisu markup syntax added to, related to internal document links and
+ relative links, see note on additions to vim syntax highlighting (version
+ bump)
+
+ * dal, added internal document link to tagged point, affecting downstream
+ processing
+
+ * output formats internal document (and relative) linking as possible
+
+ * vim syntax highlighting, added tag for internal document link to tagged
+ point { Linked text }#tagname also relative link
+ { linked }:document_name/file.html#23
+ which is the preferred equivalent of
+ { linked }../document_name/file.html#23
+
+ * sisu markup, documentation on_sisu_markup/sisu_markup.txt added much todo
+
%% 2.3.5.orig.tar.gz (2010-05-18:20/2)
http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5.orig.tar.gz
- sisu_2.3.5.orig.tar.gz
- sisu_2.3.5-1.dsc
- sisu_2.3.5-1.diff.gz
+ fb599fc29a6c1f67ae3ed6fe79ed2768045899870717d719d5b91be2a3db56fb 2755625 sisu_2.3.5.orig.tar.gz
+ 04e5430529ffdf77e6fbdd956b0eddaae1c00bd0640bad26c3a25c63bc2aac20 1145 sisu_2.3.5-1.dsc
+ 36cd9012a33837aa1032bf9a9c78444b31f2a397634625e9e15323a17a17a8dd 276135 sisu_2.3.5-1.diff.gz
* dal_syntax, url match fix
diff --git a/conf/sisu/v2/sisurc.yml b/conf/sisu/v2/sisurc.yml
index 0703e0f4..d4b1503d 100644
--- a/conf/sisu/v2/sisurc.yml
+++ b/conf/sisu/v2/sisurc.yml
@@ -3,21 +3,13 @@
# Description: Site wide envionment defaults set here
# system environment info / resource configuration file, for sisu
# License: GPL v3 or later
-# this file should be configured and live in
-# /etc/sisu #per environment settings, overridden by:
-# ~/.sisu #per user settings, overridden by:
-# ./_sisu/config #per local directory settings
-# $Date$
-# $Id$
-# Notes: implemented 2004w03
-# Site environment configuration file
+# site environment configuration file
# this file should be configured and live in
# /etc/sisu #per environment settings, overridden by:
# ~/.sisu #per user settings, overridden by:
# ./_sisu #per local markup directory settings
#% #image source directory, main path and subdirectories
#image:
-## path: 'grotto/theatre/working'
# path: 'sisu_working'
# public: '_sisu/image'
# #all: 'image'
@@ -27,7 +19,6 @@
# path: '/var/www' #either (i) / [full path from root] or (ii) ~/ [home] or (iii) ./ [pwd] or (iv) will be made from home
# images: '_sisu/image'
# man: 'man'
-# php: 'php'
# cgi: '/usr/lib/cgi-bin'
# feed: 'feed'
# sqlite: 'sisu/sqlite'
@@ -117,7 +108,7 @@ program_set:
# pdf_viewer: 'evince'
# web_browser: 'firefox' #'iceweasel' #'epiphany' #'galeon' #'konqueror' #'kazehakase'
# console_www_browser: 'links2' #'elinks'
-# odf_viewer: 'oowriter'
+# odf_viewer: 'oowriter' #'abiword'
# xml_viewer: 'xml-viewer'
# man: 'nroff -man' #'groff -man -Tascii' # 'nroff -man'
#promo: sisu_icon, sisu, sisu_search_libre, open_society, fsf, ruby
diff --git a/conf/sisu/v2/version.yml b/conf/sisu/v2/version.yml
index 5b2fb44f..99085d62 100644
--- a/conf/sisu/v2/version.yml
+++ b/conf/sisu/v2/version.yml
@@ -1,5 +1,5 @@
---
-:version: 2.3.5
-:date_stamp: 2010w20/2
-:date: "2010-05-18"
+:version: 2.4.0
+:date_stamp: 2010w21/3
+:date: "2010-05-26"
:project: SiSU
diff --git a/data/doc/sisu/v2/CHANGELOG b/data/doc/sisu/v2/CHANGELOG
index 378ad2b9..358c3762 100644
--- a/data/doc/sisu/v2/CHANGELOG
+++ b/data/doc/sisu/v2/CHANGELOG
@@ -12,11 +12,34 @@ Reverse Chronological:
%% Development branch UNSTABLE
+%% 2.4.0.orig.tar.gz (2010-05-26:21/3)
+http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0.orig.tar.gz
+ sisu_2.4.0.orig.tar.gz
+ sisu_2.4.0-1.dsc
+ sisu_2.4.0-1.diff.gz
+
+ * sisu markup syntax added to, related to internal document links and
+ relative links, see note on additions to vim syntax highlighting (version
+ bump)
+
+ * dal, added internal document link to tagged point, affecting downstream
+ processing
+
+ * output formats internal document (and relative) linking as possible
+
+ * vim syntax highlighting, added tag for internal document link to tagged
+ point { Linked text }#tagname also relative link
+ { linked }:document_name/file.html#23
+ which is the preferred equivalent of
+ { linked }../document_name/file.html#23
+
+ * sisu markup, documentation on_sisu_markup/sisu_markup.txt added much todo
+
%% 2.3.5.orig.tar.gz (2010-05-18:20/2)
http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5.orig.tar.gz
- sisu_2.3.5.orig.tar.gz
- sisu_2.3.5-1.dsc
- sisu_2.3.5-1.diff.gz
+ fb599fc29a6c1f67ae3ed6fe79ed2768045899870717d719d5b91be2a3db56fb 2755625 sisu_2.3.5.orig.tar.gz
+ 04e5430529ffdf77e6fbdd956b0eddaae1c00bd0640bad26c3a25c63bc2aac20 1145 sisu_2.3.5-1.dsc
+ 36cd9012a33837aa1032bf9a9c78444b31f2a397634625e9e15323a17a17a8dd 276135 sisu_2.3.5-1.diff.gz
* dal_syntax, url match fix
diff --git a/data/doc/sisu/v2/on_sisu_markup/sisu_markup.txt b/data/doc/sisu/v2/on_sisu_markup/sisu_markup.txt
new file mode 100644
index 00000000..0af080c5
--- /dev/null
+++ b/data/doc/sisu/v2/on_sisu_markup/sisu_markup.txt
@@ -0,0 +1,570 @@
+%% Summary ---------------------------------------------------------------------
+
+sisu takes an ASCII (UTF-8) document and abstracts the document into its
+structure and smaller constituent parts, objects. This abstraction is then used
+in subsequent processing to reconstitute the document into disparate document
+representations, many quite different from one another, e.g. HTML, ODF, LaTeX
+and to populate SQL
+
+SiSU identifies the document structure (headings and their levels) and pulls
+the document apart in to its constituent parts, objects (paragraphs, headings,
+tables, images etc.) to which it assigns an object number if substantive
+content.
+
+From the marked up document SiSU need to be able to determine a documents
+structure, and the objects that a document contains
+
+The first line of a SiSU marked up document can identify itself with
+
+%% Identify SiSU Document ------------------------------------------------------
+
+% SiSU
+
+%% The Basic SiSU Markup Document ----------------------------------------------
+
+SiSU documents are divided into two parts:
+
+(i) the document header, which contains (a) metadata and (b) processing
+instructions if any document headers take the form of a tag and the related
+related information
+
+(ii) the substantive content
+
+%% Minimum (SiSU) Markup Requirements ------------------------------------------
+
+minimum requirements for a SiSU document
+
+(i)(a) document header metadata, should contain at least:
+
+@title:
+
+@creator:
+ :author:
+
+(i)(b) processing instructions (grouped under @make:) are not required as there
+are defaults that will be used
+
+(ii) the substantive document structure must be defined, here structure equates
+to the headings and their relative levels, this can be done either by explicit
+markup where each heading occurs, or in the header @make: section of the, or
+both
+
+(iii) the basic document objects are headings and paragraphs. Paragraphs are
+identified automatically, and headings must be defined, so sisu is able to
+determine the basic objects without anything further
+
+sample_1.sst
+
+%% Document Structure ----------------------------------------------------------
+
+Document structure (heading levels) are determined from information provided in
+the markup of the document. There are two ways to identify document structure:
+(i) manual markup of headings with their level; (ii) in the sisu header, under
+@make: :heading: provide a regex, in the manner understood by sisu, that
+identifies what to look for in headings of various levels.
+
+Document structure is the different headings in a document, and their relative
+levels.
+
+There are two sets of docment level markers :A~ and an optional :B~ & :C~ and
+beneath that 1~, 2~, 3~.
+
+For the first set of document level markers the document Title being the top
+level in the hierarchy; beneath that book titles if the document contains more
+than one book followed by sections
+
+%% Document Objects ------------------------------------------------------------
+
+Document objects are units of text that are identified, stored and processed as
+a block. The most usual document objects would be paragraphs and headings. A
+more complete list of objects includes: paragraphs; headings; tables; code
+blocks; verse (the poem is identified, but each verse is an object); grouped
+text...
+
+%% The Gory Details ------------------------------------------------------------
+
+
+%% comments --------------------------------------------------------------------
+
+Comments in sisu are a percentage sign at the start of a line followed by a
+space and then the comment
+
+% this would be a comment
+
+%% headings --------------------------------------------------------------------
+
+There are two sets of docment heading markers :A~ and an optional :B~ & :C~ and
+beneath that 1~, 2~, 3~. These markers are placed at the start of the
+line/paragraph, and followed by the heading
+
+There is usually one :A~ top level heading, which is the document title,
+sometimes including the author. This is such a common occurrence that there is
+a shortcut where metadata headers are provided for @title: and @creator
+:author:, instead of rewriting the title and author's name, you may write :A~
+@title @author
+
+If you have a document/manuscript that has subsections above the level of
+chapter, such as multiple books, parts, section, two additional top level
+headings are available :B~ and :C~
+
+At the main division level, usually chapter heading level 1~ begins, followed
+by 2~ and 3~ if the chapter has subheadings. Because the html and epub
+segmented output breaks level 1~ into separate files it is possible to provide
+the filename, e.g. 1~prologue Prologue
+
+Where names are provided following the heading tilde, these become tagged
+points within the document which can where the output format permits be
+(hyper-)linked to.
+
+%% font effect, modified font including emphasis -------------------------------
+
+Whithin normal text it is possible to modify the font effect of a word or
+phrase using the following markers:
+
+!{ bold }!
+
+/{ italics }/
+
+_{ underscore }_
+
+*{ emphasis }* (how emphasis is represented in output text can be defined in
+the header @make: section of a document or in the sisurc.yml config file, and
+this may be as bold, italics or underscore, the default being bold)
+
+^{ superscript }^
+
+,{ subscript },
+
++{ inserted text }+
+
+_{ strikethrough }_
+
+An exclamation mark followed by an underscore at the start of a line will bold
+that line until the first line-break
+
+!_ this line would be bold
+
+It is also possible to define in the header section under the @make: section
+which words or patterns should automatically be made bold or italics.
+
+@make:
+ :bold: /Gnu|Linux|Debian|Fedora|Ruby|SiSU/
+ :italics: /inter alia/
+
+%% indent ----------------------------------------------------------------------
+
+_1 a paragraph that is indented one level
+
+_2 a paragraph that is indented two steps
+
+%% bullet ----------------------------------------------------------------------
+
+_* bulleted text
+
+_1* bulleted indented text
+
+%% auto-numbering -------------------------------------------------------------
+
+Some auto-numbering occurs in the building of sisu documents, either by default
+or when requested through configuration options
+
+%% auto-numbering document objects ---------------------------------------------
+
+Document objects are automatically given sequential object numbers, object
+citation numbers (ocn). If there is text that for some reason should not be
+regarded as substantive objects, it is possible to prevent a document number
+being given by adding ~# to the end of the object (paragraph/heading, etc.) ~#
+
+A variation used for headings that are added to provide document structure that
+should where possible not be included in output is -# a heading that is marked
+with -# is un-numbered and may be excluded from document outputs.
+
+%% auto-numbering headings -----------------------------------------------------
+
+Note auto-numbering of headings may be specified in the header @make: :num_top:
+by providing the heading level from which numbering is to start, this is
+usually at the chapter level (1~).
+
+@make:
+ :num_top: 1
+
+numbering continues three levels down, level 1 being numbered 1, 2, 3 ...
+level 2: 1.1, 1.2, 1.3 and so on
+level 3: 1.1.1, 1.1.2, 1.1.3
+
+It is also possible to make an auto-numbered list
+
+# numbered list numbered list 1., 2., 3, etc.
+
+_# indented lettered list sub-level of previous list number a., b., c., d., etc.
+
+%% line breaks -----------------------------------------------------------------
+
+<:br> line break
+
+In paper/ page oriented outputs, such as LaTeX/pdf the following are avaiable
+
+<:pb> page or column break
+
+<:pn> new page
+
+in the header section under @make: :breaks: new and break set a page break or
+new page at the levels indicated, e.g.
+
+@make:
+ :breaks: new=C; break=1
+
+%% footnotes / endnotes --------------------------------------------------------
+
+This paragraph contains a footnote~{ a footnote or endnote }~ which would be
+automatically numbered
+
+Footnotes and endnotes are marked up at the location where they would be
+indicated within a text. They are automatically numbered. The output type
+determines whether footnotes or endnotes will be produced
+
+In addition to regular footnotes/endnotes there are astrisk and plus sign
+numbered and unnumbered footnotes.
+
+normal text ~[* editors notes, numbered asterisk footnote/endnote series ]~ continues
+
+normal text ~[+ editors notes, numbered asterisk footnote/endnote series ]~ continues
+
+normal text ~{* unnumbered asterisk footnote/endnote, insert multiple asterisks if required }~ continues
+
+%% tag points ------------------------------------------------------------------
+
+Tag points are markers within the document which may be used within the
+document for (internal document) linking where the output format permits. Tag
+names should use alphanumeric characters and underscores [a-z0-9_]+.
+
+There are different types of tag point, some automatically provided by sisu,
+such as each ocn (object citation number)
+
+Manual tags may be provided either:
+
+(a) with headings where a name is added to the heading level after the tilde:
+
+1~prefix [heading]
+
+(b) a tag marker can be added to a paragraph using an asterisk tilde and the
+name *~tag_marker
+
+%% links and urls --------------------------------------------------------------
+
+Urls found within text are marked up automatically, and where the output type
+permits is autmatically hyperlinked to inself and decorated with angled braces
+(unless contained in a code block, or escaped by a preceeding underscore).
+
+To link text or an image to a url the markup is as follows
+
+{ this is the linked section of text}http://url.org
+
+Where it is wished to include the url for the linked text in a footnote, the
+long form of markup would be:
+{ SiSU }http://www.jus.uio.no/sisu/ ~{ http://www.jus.uio.no/sisu/ }~
+
+A short form is provided for achieving the same:
+ {~^ SiSU }http://www.jus.uio.no/sisu/
+
+%% images ----------------------------------------------------------------------
+
+Images are placed in the directory beneath the location of the document to be
+processed _sisu/image
+
+The following are examples of links to images
+
+{ tux.png 64x80 }image
+
+{tux.png 64x80 "Gnu/Linux - a better way" }http://www.jus.uio.no/sisu/
+
+{GnuDebianLinuxRubyBetterWay.png 100x101 "Way Better - with Gnu/Linux, Debian and Ruby" }http://www.jus.uio.no/sisu/
+
+The 64x80 in the first example is the image dimension, (width x height). This
+may be omitted if imagemagick or graphicsmagick are installed, as they will
+determine the image dimensions
+
+As with other linked text, the following markup
+
+{~^ ruby_logo.png "Ruby" }http://www.ruby-lang.org/en/
+
+maps to
+
+{ ruby_logo.png "Ruby" }http://www.ruby-lang.org/en/ ~{ http://www.ruby-lang.org/en/ }~
+
+%% grouped text ----------------------------------------------------------------
+
+%% group -----------------------------------------------------------------------
+
+The start and end of text that is grouped are tagged. Grouped text retains its
+line breaks, and is treated as a unit, getting a single ocn
+
+group{
+
+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>
+
+}group
+
+%% poem ------------------------------------------------------------------------
+
+The start and end of a poem are tagged. Each verse in a poem is given an object
+number. Verses retain their line breaks.
+
+poem{
+
+verse here
+declare
+
+another verse
+here
+
+}poem
+
+%% table -----------------------------------------------------------------------
+
+{table~h 24; 12; 12; 12; 12; 12; 12;}
+ |Jan. 2001|Jan. 2002|Jan. 2003|Jan. 2004|July 2004|June 2006
+Contributors* | 10| 472| 2,188| 9,653| 25,011| 48,721
+Active contributors** | 9| 212| 846| 3,228| 8,442| 16,945
+Very active contributors*** | 0| 31| 190| 692| 1,639| 3,016
+No. of English language articles| 25| 16,000| 101,000| 190,000| 320,000| 630,000
+No. of articles, all languages | 25| 19,000| 138,000| 490,000| 862,000|1,600,000
+
+
+table{ c3; 40; 30; 30;
+
+This is a table
+this would become column two of row one
+column three of row one is here
+
+And here begins another row
+column two of row two
+column three of row two, and so on
+
+}table
+
+a second form may be easier to work with in cases where there is not much information in each column
+
+%% code ------------------------------------------------------------------------
+
+code{
+
+code lines here
+
+and so on
+
+}code
+
+%% headers ---------------------------------------------------------------------
+
+%% header metadata -------------------------------------------------------------
+
+@title: SiSU
+ :subtitle: Markup
+
+@creator:
+ :author: Amissah, Ralph
+
+@rights:
+ :copyright: Copyright (C) Ralph Amissah 2007, part of SiSU documentation
+ :license: GPL 3 or later
+
+@classify:
+ :type: information
+ :topic_register: electronic documents:SiSU:document:markup;SiSU:document:markup;SiSU:document:markup;SiSU:manual:markup;electronic documents:SiSU:manual:markup
+ :subject: ebook, epublishing, electronic book, electronic publishing, electronic document, electronic citation, data structure, citation systems, search
+
+@date:
+ :created: 2002-08-28
+ :issued: 2002-08-28
+ :available: 2002-08-28
+ :published: 2008-05-22
+ :modified: 2010-05-25
+
+@links:
+ { SiSU Manual }http://www.jus.uio.no/sisu/sisu_manual/
+ { Book Samples and Markup Examples }http://www.jus.uio.no/SiSU/examples.html
+ { SiSU @ Wikipedia }http://en.wikipedia.org/wiki/SiSU
+ { SiSU Download }http://www.jus.uio.no/sisu/SiSU/download.html
+ { SiSU Changelog }http://www.jus.uio.no/sisu/SiSU/changelog.html
+
+%% header processing instructions, @make: --------------------------------------
+
+Some document processing parameters can be set in the @make: section of the header
+
+@make:
+ :num_top: 1
+ :breaks: new=C; break=1
+ :skin: skin_sisu_manual
+ :bold: /Gnu|Debian|Ruby|SiSU/
+
+%% config, sisurc.yml ----------------------------------------------------------
+
+There are default configuration settings within the program many of which can
+be modified in sisurc.yml
+
+sisurc.yml can be located in one of the following locations:
+/etc/sisu/sisurc.yml ~/.sisu/sisurc.yml and ./_sisu/sisurc.yml
+
+if sisu versions 1 and 2 are both in use, the v2 sisurc.yml can be placed a the
+following locations:
+/etc/sisu/v2/sisurc.yml ~/.sisu/v2/sisurc.yml and ./_sisu/v2/sisurc.yml
+
+# Name: SiSU - Simple information Structuring Universe
+# Author: Ralph@Amissah.com
+# Description: Site wide envionment defaults set here
+# system environment info / resource configuration file, for sisu
+# License: GPL v3 or later
+# site environment configuration file
+# this file should be configured and live in
+# /etc/sisu #per environment settings, overridden by:
+# ~/.sisu #per user settings, overridden by:
+# ./_sisu #per local markup directory settings
+#% #image source directory, main path and subdirectories
+#image:
+# path: 'sisu_working'
+# public: '_sisu/image'
+#% presentation/web directory, main path and subdirectories (most subdirectories are created automatically based on markup directory name)
+#webserv:
+# url_root: 'http://www.your.url' #without dir stub
+# path: '/var/www' #either (i) / [full path from root] or (ii) ~/ [home] or (iii) ./ [pwd] or (iv) will be made from home
+# images: '_sisu/image'
+# man: 'man'
+# cgi: '/usr/lib/cgi-bin'
+# feed: 'feed'
+# sqlite: 'sisu/sqlite'
+# webrick_url: true
+#show_output_on: 'filesystem' #for -v and -u url information, alternatives: 'filesystem','webserver','remote_webserver','local:8111','localhost','localhost:8080','webrick','path'
+#show_output_on: 'local:8111'
+#webserv_cgi:
+# host: localhost
+# base_path: ~
+# port: '8081'
+# user: ~
+show_output_on: 'filesystem_url'
+#texinfo display output
+#texinfo:
+# stub: 'texinfo'
+##% processing directories, main path and subdirectories (appended to $HOME), using defaults set in sysenv
+#processing:
+# path: '~'
+# dir: '.sisu_processing~'
+# metaverse: 'metaverse'
+# tune: 'tune'
+# latex: 'tex'
+# texinfo: 'texinfo'
+# concord_max: 400000
+#% flag - set (non-default) processing flag shortcuts -1, -2 etc. (here adding colour and verbosity as default)
+flag:
+ color: true # making colour default -c is toggle, and will now toggle colour off
+ default: '-NhwepoabxXyYv' # -m run by default; includes verbose
+ i: '-hwpoay' # -m run by default
+ ii: '-NhwepoabxXy' # -m run by default
+ iii: '-NhwepoabxXyY' # -m run by default
+ iv: '-NhwepoabxXYDy --update' # -m run by default
+ v: '-NhwepoabxXYDyv --update' # -m run by default; includes verbose
+#% papersize, (LaTeX/pdf) available values: A4, US_letter, book_b5, book_a5, US_legal
+default:
+ papersize: 'A4,letter'
+ #text_wrap: 78
+ #emphasis: 'bold' #make *{emphasis}* 'bold', 'italics' or 'underscore', default if not configured is 'bold'
+ #digest: 'sha' #sha is sha256, default is md5
+ #multilingual: false
+ #language_file: 2
+ #language: 'English'
+#% markup, make *{emphasis}* 'bold' or 'italics', default if not configured is 'bold'
+#% settings used by ssh scp
+#remote:
+# -
+# user: '[usrname]'
+# host: '[remote.hostname]'
+# path: '.' #no trailing slash eg 'sisu/www'
+# -
+# user: '[usrname]'
+# host: '[remote.hostname]'
+# path: '.' #no trailing slash eg 'sisu/www'
+#% webrick information
+#webrick:
+# port: '8081'
+#% sql database info, postgresql and sqlite
+#db:
+# share_source: false # boolean, default is false
+# postgresql:
+# port: # '[port (default is 5432)]'
+# host: # '[if not localhost, provide host tcp/ip address or domain name]''
+# user: # '[(if different from user) provide username]'
+# password: # '[password if required]'
+# sqlite:
+# path: ~ # './sisu_sqlite.db'
+# port: "**"
+#% possible values ~, true, false, or command instruction e.g. editor: 'gvim -c :R -c :S'.
+#will only ignore if value set to false, absence or nil will not remove program as should operate without rc file
+#ie in case of ~ will ignore and use hard coded defaults within program), true, false, or command instruction e.g. editor: 'gvim -c :R -c :S'
+#on value true system defaults used, to change, e.g. editor specify
+permission_set:
+ zap: false
+ css_modify: false
+# remote_base_site: true
+program_set:
+ rmagick: false
+# wc: true
+# editor: true
+# postgresql: true
+# sqlite: true
+# tidy: true
+# rexml: true
+# pdflatex: true
+#program_select:
+# editor: 'gvim -c :R -c :S'
+# pdf_viewer: 'evince'
+# web_browser: 'firefox' #'iceweasel' #'epiphany' #'galeon' #'konqueror' #'kazehakase'
+# console_www_browser: 'links2' #'elinks'
+# odf_viewer: 'oowriter' #'abiword'
+# xml_viewer: 'xml-viewer'
+# man: 'nroff -man' #'groff -man -Tascii' # 'nroff -man'
+#promo: sisu_icon, sisu, sisu_search_libre, open_society, fsf, ruby
+#search:
+# sisu:
+# flag: true
+## action: http://localhost:8081/cgi-bin/sisu_pgsql.cgi
+# action: http://search.sisudoc.org
+# db: sisu
+# title: sample search form
+# hyperestraier:
+# flag: true
+# action: http://search.sisudoc.org/cgi-bin/estseek.cgi?
+
+
+%% skin ------------------------------------------------------------------------
+
+skins can be used to modify the appearance of output
+
+[provide information]
+
+%% css ------------------------------------------------------------------------
+
+the default css may be replaced for the site or particular processing
+directories
+
+[provide information]
diff --git a/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_download.ssi b/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_download.ssi
index 9814205d..5eb85969 100644
--- a/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_download.ssi
+++ b/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_download.ssi
@@ -16,7 +16,7 @@
:issued: 2002-11-12
:available: 2002-11-12
:published: 2009-01-18
- :modified: 2010-05-18
+ :modified: 2010-05-26
@make:
:num_top: 1
@@ -55,7 +55,7 @@
3~source- Source (tarball tar.gz)
-_* {~^ sisu_2.3.5.orig.tar.gz (2010-05-18:20/2) }http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5.orig.tar.gz
+_* {~^ sisu_2.4.0.orig.tar.gz (2010-05-26:21/3) }http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0.orig.tar.gz
_* {~^ sisu-markup-samples_2.0.3.orig.tar.gz (of 2010-05-01:17/6 ) }http://www.jus.uio.no/sisu/pkg/src/sisu-markup-samples_2.0.3.orig.tar.gz *~sisu-markup-samples
@@ -102,11 +102,11 @@ group{
*{Source}*
-{~^ sisu_2.3.5.orig.tar.gz }http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5.orig.tar.gz
+{~^ sisu_2.4.0.orig.tar.gz }http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0.orig.tar.gz
-{~^ sisu_2.3.5-1.diff.gz }http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5-1.diff.gz
+{~^ sisu_2.4.0-1.diff.gz }http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0-1.diff.gz
-{~^ sisu_2.3.5-1.dsc }http://www.jus.uio.no/sisu/pkg/src/sisu_2.3.5-1.dsc
+{~^ sisu_2.4.0-1.dsc }http://www.jus.uio.no/sisu/pkg/src/sisu_2.4.0-1.dsc
}group
@@ -114,15 +114,15 @@ group{
*{Debs}*
-{~^ sisu_2.3.5-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu_2.3.5-1_all.deb ~{ <br>sisu, the base code, (the main package on which the others depend), without any dependencies other than ruby (and for convenience the ruby webrick web server), this generates a number of types of output on its own, other packages provide additional functionality, and have their dependencies <br>Depends: ruby (>=1.8.2), libwebrick-ruby<br>Recommends: sisu-pdf, sisu-sqlite, sisu-postgresql, sisu-examples, vim-sisu, librmagick-ruby, trang, tidy, libtidy, librexml-ruby, zip, unzip, openssl }~
+{~^ sisu_2.4.0-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu_2.4.0-1_all.deb ~{ <br>sisu, the base code, (the main package on which the others depend), without any dependencies other than ruby (and for convenience the ruby webrick web server), this generates a number of types of output on its own, other packages provide additional functionality, and have their dependencies <br>Depends: ruby (>=1.8.2), libwebrick-ruby<br>Recommends: sisu-pdf, sisu-sqlite, sisu-postgresql, sisu-examples, vim-sisu, librmagick-ruby, trang, tidy, libtidy, librexml-ruby, zip, unzip, openssl }~
-{~^ sisu-complete_2.3.5-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-complete_2.3.5-1_all.deb ~{ <br>a package that pulls in other packages to build the whole of sisu (excluding sisu-examples) <br>Depends: ruby (>=1.8.2), sisu, sisu-pdf, sisu-postgresql, sisu-remote, sisu-sqlite, vim-sisu<br>Recommends: sisu-examples }~
+{~^ sisu-complete_2.4.0-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-complete_2.4.0-1_all.deb ~{ <br>a package that pulls in other packages to build the whole of sisu (excluding sisu-examples) <br>Depends: ruby (>=1.8.2), sisu, sisu-pdf, sisu-postgresql, sisu-remote, sisu-sqlite, vim-sisu<br>Recommends: sisu-examples }~
-{~^ sisu-pdf_2.3.5-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-pdf_2.3.5-1_all.deb ~{ <br>dependencies used by sisu to produce pdf from LaTeX generated <br>Depends: sisu, tetex-bin, tetex-extra, latex-ucs<br>Suggests: evince, xpdf }~
+{~^ sisu-pdf_2.4.0-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-pdf_2.4.0-1_all.deb ~{ <br>dependencies used by sisu to produce pdf from LaTeX generated <br>Depends: sisu, tetex-bin, tetex-extra, latex-ucs<br>Suggests: evince, xpdf }~
-{~^ sisu-postgresql_2.3.5-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-postgresql_2.3.5-1_all.deb ~{ <br>dependencies used by sisu to populate postgresql database (further configuration is necessary) <br>Depends: sisu, postgresql-8.1, libdbi-ruby, libdbm-ruby, libdbd-pg-ruby<br>Suggests: pgaccess, libdbd-pgsql, postgresql-contrib-8.1 }~
+{~^ sisu-postgresql_2.4.0-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-postgresql_2.4.0-1_all.deb ~{ <br>dependencies used by sisu to populate postgresql database (further configuration is necessary) <br>Depends: sisu, postgresql-8.1, libdbi-ruby, libdbm-ruby, libdbd-pg-ruby<br>Suggests: pgaccess, libdbd-pgsql, postgresql-contrib-8.1 }~
-{~^ sisu-sqlite_2.3.5-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-sqlite_2.3.5-1_all.deb ~{ <br>dependencies used by sisu to populate sqlite database <br>Depends: sisu, sqlite, libdbi-ruby, libdbm-ruby, libdbd-sqlite-ruby<br>Suggests: libdbd-sqlite }~
+{~^ sisu-sqlite_2.4.0-1_all.deb }http://www.jus.uio.no/sisu/archive/pool/main/s/sisu/sisu-sqlite_2.4.0-1_all.deb ~{ <br>dependencies used by sisu to populate sqlite database <br>Depends: sisu, sqlite, libdbi-ruby, libdbm-ruby, libdbd-sqlite-ruby<br>Suggests: libdbd-sqlite }~
}group
@@ -152,7 +152,7 @@ The RPM is generated from the source file using Alien.~{ http://www.kitenet.net/
sudo rpm -i [package name]
-_* {~^ sisu-2.3.5-2.noarch.rpm }http://www.jus.uio.no/sisu/pkg/rpm/sisu-2.3.5-2.noarch.rpm ~{ <br>created using alien }~
+_* {~^ sisu-2.4.0-2.noarch.rpm }http://www.jus.uio.no/sisu/pkg/rpm/sisu-2.4.0-2.noarch.rpm ~{ <br>created using alien }~
_* {~^ sisu-markup-samples_2.0.3.orig-2.noarch.rpm }http://www.jus.uio.no/sisu/pkg/rpm/sisu-markup-samples_2.0.3.orig-2.noarch.rpm ~{ <br> http://www.jus.uio.no/sisu/archive/pool/non-free/s/sisu-markup-samples/sisu-markup-samples_2.0.3-1_all.deb <br> created using: alien -r sisu_0.70.5-1_all.deb }~
diff --git a/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_markup.sst b/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_markup.sst
index f69b2e02..0ab118aa 100644
--- a/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_markup.sst
+++ b/data/doc/sisu/v2/sisu_markup_samples/sisu_manual/sisu_markup.sst
@@ -7,7 +7,8 @@
:author: Amissah, Ralph
@rights:
- :copyright: Copyright (C) Ralph Amissah 2007, part of SiSU documentation, License GPL 3
+ :copyright: Copyright (C) Ralph Amissah 2007, part of SiSU documentation
+ :license: GPL 3 or later
@classify:
:type: information
@@ -21,7 +22,7 @@
:issued: 2002-08-28
:available: 2002-08-28
:published: 2008-05-22
- :modified: 2010-05-14
+ :modified: 2010-05-25
@make:
:num_top: 1
@@ -329,11 +330,11 @@ code{
code{
-normal text *{emphasis}* !{bold text}! /{italics}/ _{underscore}_ "{citation}" ^{superscript}^ ,{subscript}, +{inserted text}+
+normal text, *{emphasis}*, !{bold text}!, /{italics}/, _{underscore}_, "{citation}", ^{superscript}^, ,{subscript},, +{inserted text}+, -{strikethrough}-
normal text
-*{emphasis}*
+*{emphasis}* [note: can be configured to be represented by bold, italics or underscore]
!{bold text}!
@@ -355,12 +356,11 @@ _{underscore}_
!_ resulting output:
-normal text *{emphasis}* !{bold text}! /{italics}/ _{underscore}_ "{citation}" ^{superscript}^ ,{subscript}, +{inserted text}+
--{strikethrough}-
+normal text, *{emphasis}*, !{bold text}!, /{italics}/, _{underscore}_, "{citation}", ^{superscript}^, ,{subscript},, +{inserted text}+, -{strikethrough}-
normal text
-*{emphasis}*
+*{emphasis}* [note: can be configured to be represented by bold, italics or underscore]
!{bold text}!
@@ -438,7 +438,7 @@ _# numbered list numbered list indented a., b., c., d., etc.
2~ Footnotes / Endnotes
-Footnotes and endnotes not distinguished in markup. They are automatically numbered. Depending on the output file format (html, EPUB, odf, pdf etc.), the document output selected will have either footnotes or endnotes.
+Footnotes and endnotes are marked up at the location where they would be indicated within a text. They are automatically numbered. The output type determines whether footnotes or endnotes will be produced
!_ markup example:
@@ -514,7 +514,7 @@ the standard and pair notation cannot be mixed in the same document
3~ Naked URLs within text, dealing with urls
-urls are found within text and marked up automatically. A url within text is automatically hyperlinked to itself and by default decorated with angled braces, unless they are contained within a code block (in which case they are passed as normal text), or escaped by a preceding underscore (in which case the decoration is omitted).
+urls found within text are marked up automatically. A url within text is automatically hyperlinked to itself and by default decorated with angled braces, unless they are contained within a code block (in which case they are passed as normal text), or escaped by a preceding underscore (in which case the decoration is omitted).
!_ markup example:
@@ -557,6 +557,8 @@ deb-src http://www.jus.uio.no/sisu/archive unstable main non-free
}code
+3~link_text Linking Text
+
To link text or an image to a url the markup is as follows
!_ markup example:
@@ -567,8 +569,6 @@ about { SiSU }http://url.org markup
}code
-3~ Linking Text
-
!_ resulting output:
about { SiSU }http://www.jus.uio.no/sisu/ markup
@@ -587,6 +587,34 @@ about {~^ SiSU }http://url.org markup
about {~^ SiSU }http://www.jus.uio.no/sisu/ markup
+Internal document links to a tagged location, including an ocn
+
+!_ markup example:
+
+code{
+
+about { text links }#link_text
+
+}code
+
+!_ resulting output:
+
+about { text links }#link_text
+
+Shared document collection link
+
+!_ markup example:
+
+code{
+
+about { SiSU book markup examples }../SiSU/examples.html
+
+}code
+
+!_ resulting output:
+
+about { SiSU book markup examples }../SiSU/examples.html
+
3~ Linking Images
!_ markup example:
@@ -739,7 +767,7 @@ poem{
}poem
-Each verse in a poem is given a separate object number.
+Each verse in a poem is given an object number.
}code
diff --git a/data/sisu/v2/conf/editor-syntax-etc/vim/syntax/sisu.vim b/data/sisu/v2/conf/editor-syntax-etc/vim/syntax/sisu.vim
index d2f2d94b..40c050ee 100644
--- a/data/sisu/v2/conf/editor-syntax-etc/vim/syntax/sisu.vim
+++ b/data/sisu/v2/conf/editor-syntax-etc/vim/syntax/sisu.vim
@@ -1,6 +1,6 @@
"SiSU Vim syntax file
"SiSU Maintainer: Ralph Amissah <ralph@amissah.com>
-"SiSU Markup: SiSU (sisu-2.3.2, 2010-05-01)
+"SiSU Markup: SiSU (sisu-2.3.6, 2010-05-24)
"(originally looked at Ruby Vim by Mirko Nasato)
if version < 600
@@ -81,7 +81,7 @@ syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline
syn region sisu_content_endnote contains=sisu_link,sisu_strikeout,sisu_underline,sisu_number,sisu_control,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break,sisu_sem_block,sisu_sem_content,sisu_sem_marker matchgroup=sisu_mark_endnote start="\~\[[*+]*" end="\]\~" skip="\n"
syn region sisu_content_endnote contains=sisu_strikeout,sisu_number,sisu_control,sisu_link,sisu_identifier,sisu_error,sisu_error_wspace,sisu_mark,sisu_break matchgroup=sisu_mark_endnote start="\^\~" end="\n$"
"links and images
-syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|\.\./\)\S\+" oneline
+syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="}\(https\?:/\/\|:\|\.\.\/\|#\)\S\+" oneline
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_sem_block,sisu_sem_content,sisu_sem_marker_block,sisu_sem_marker,sisu_sem_ex_marker_block,sisu_sem_ex_marker,sisu_sem_block,sisu_error matchgroup=sisu_link start="{\(\~^\s\)\?" end="\[[1-5][sS]*\]}\S\+\.ss[tm]" oneline
syn region sisu_linked contains=sisu_fontface,sisu_strikeout,sisu_number,sisu_control,sisu_identifier,sisu_error matchgroup=sisu_link start="{" end="}image" oneline
"some line operations
diff --git a/lib/sisu/v2/concordance.rb b/lib/sisu/v2/concordance.rb
index d8da2005..03635cd0 100644
--- a/lib/sisu/v2/concordance.rb
+++ b/lib/sisu/v2/concordance.rb
@@ -191,7 +191,7 @@ WOK
@rxp_t1=Regexp.new('^T1')
@rxp_t2=Regexp.new('^T2')
@rxp_t3=Regexp.new('^T3')
- @rxp_excluded1=/#{Mx[:url_o]}\S+?#{Mx[:url_c]}/
+ @rxp_excluded1=/#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
@rxp_excluded0=/^(?:#{Mx[:fa_bold_o]}|#{Mx[:fa_italics_o]})?(?:to\d+|\d+|&nbsp;|#{Mx[:br_endnotes]}|EOF|#{Mx[:br_eof]}|thumb_\S+|snap_\S+|_+|-+|[(]?(?:ii+|iv|vi+|ix|xi+|xiv|xv|xvi+|xix|xx)[).]?|\S+?_\S+|[\d_]+\w\S+|[\w\d]{1,2}|\d{1,3}\w?|#{@dp}|[0-9a-f]{16,64}|\d{2,3}x\d{2,3}|\S{0,2}sha\d|\S{0,3}\d{4}w\d\d|\b\w\d+|\d_all\b|e\.?g\.?)(?:#{Mx[:fa_bold_c]}|#{Mx[:fa_italics_c]})?$/mi #this regex causes and cures a stack dump in ruby 1.9 !!!
@rgx_splitlist=%r{[—.,;:#{Mx[:nbsp]}-]}mi
@rgx_scanlist=%r{#{Mx[:fa_italics_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_italics_c]}|#{Mx[:fa_bold_o]}[a-zA-Z0-9"\s]{2,12}#{Mx[:fa_bold_c]}|(?:https?|file)://\S+|<\S+?>|\w+|[a-zA-Z]+}mi
diff --git a/lib/sisu/v2/dal_doc_str.rb b/lib/sisu/v2/dal_doc_str.rb
index a250175b..e35baf5a 100644
--- a/lib/sisu/v2/dal_doc_str.rb
+++ b/lib/sisu/v2/dal_doc_str.rb
@@ -98,7 +98,7 @@ module SiSU_document_structure_extract
def endnote_test?(str)
bool=((str=~/~\{.+?\}~|~\[.+?\]~/) ? true : false)
end
- def extract_tags(str)
+ def extract_tags(str,nametag=nil)
tags=[]
if str.nil?
else
@@ -109,6 +109,7 @@ module SiSU_document_structure_extract
tags=str.scan(/#{Mx[:tag_o]}(\S+?)#{Mx[:tag_c]}/).flatten
str.gsub!(/[ ]?#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}[ ]?/,' ') #may be issues with spaces would leave one, but "code" blocks?
end
+ tags=nametag ? (tags << nametag) : tags
end
[str,tags]
end
@@ -164,7 +165,7 @@ module SiSU_document_structure_extract
elsif t_o=~/^:?[A-C1-6]\~(\S+)\s+(.+)/
name,obj=$1,$2
note=endnote_test?(obj)
- obj,tags=extract_tags(obj)
+ obj,tags=extract_tags(obj,name)
h={:lv=>lv,:name=>name,:obj=>obj,:idx=>idx,:tags=>tags}
SiSU_document_structure::Object_heading.new.heading(h)
else nil
diff --git a/lib/sisu/v2/dal_numbering.rb b/lib/sisu/v2/dal_numbering.rb
index c8460ced..c62ff8d9 100644
--- a/lib/sisu/v2/dal_numbering.rb
+++ b/lib/sisu/v2/dal_numbering.rb
@@ -354,6 +354,10 @@ module SiSU_numbering
end
if defined? dob.ocn \
and dob.ocn
+ @segname=((dob.is=='heading'|| dob.is=='heading_insert') && dob.ln==4 && (defined? dob.name)) \
+ ? (dob.name) \
+ : @segname
+ tags["#{dob.ocn}"]={:segname=>@segname}
ocn_html_seg[dob.ocn]=if dob.is =~/heading/
x=if dob.ln =~/[1-3]/
{:seg=>nil,:level=> dob.ln}
@@ -367,9 +371,9 @@ module SiSU_numbering
dob.tags=dob.tags.uniq if defined? dob.tags
if defined? dob.tags \
and dob.tags.length > 0
- @segname=((dob.is=='heading'|| dob.is=='heading_insert') && dob.ln==4 && (defined? dob.name)) \
- ? (dob.name) \
- : @segname
+ #@segname=((dob.is=='heading'|| dob.is=='heading_insert') && dob.ln==4 && (defined? dob.name)) \
+ #? (dob.name) \
+ #: @segname
dob.tags.each do |x|
tags[x]={:ocn=>dob.ocn.to_s,:segname=>@segname} #@tags[x.to_s]=[dob.ocn.to_s,@segname.to_s]
end
diff --git a/lib/sisu/v2/dal_syntax.rb b/lib/sisu/v2/dal_syntax.rb
index 9774f7c1..07186d67 100644
--- a/lib/sisu/v2/dal_syntax.rb
+++ b/lib/sisu/v2/dal_syntax.rb
@@ -325,29 +325,25 @@ module SiSU_Syntax
dob.obj.gsub!(/\\\*/,"#{Mx[:gl_o]}#042#{Mx[:gl_c]}") #escaped special character
dob.obj.gsub!(/\\\!/,"#{Mx[:gl_o]}#033#{Mx[:gl_c]}") #escaped special character
dob.obj.gsub!(/(?:<:?br>|<br \/>)/,"#{Mx[:br_line]}") #indent used in endnotes, not implemented, replace when ready with: line.gsub!(/(?:<br>|<br \/>)\s*_([12])\s+/,'<br><:i\1> ')
- if dob.obj=~/(?:https?:|ftp:|\{([^{}]+?)\}[.]{1,2}\/)\S+/m
- if dob.obj=~/(?:^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (?:.+?)\s*\}(?:(?:https?:|ftp:|[.]{1,2}\/)\S+?)\s*#{Mx[:en_a_o]}(.+?)#{Mx[:en_a_c]}/m
- dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ ([^}]+?)\s*\}((?:https?:|ftp:|[.]{1,2}\/)\S+?)\s*#{Mx[:en_a_o]}(.+?)#{Mx[:en_a_c]}/m,
+ if dob.obj=~/(?:https?:|ftp:|\{([^{}]+?)\}(?:#|:|[.]{1,2}\/))\S+/m
+ if dob.obj=~/(?:^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (?:.+?)\s*\}(?:(?:https?:|ftp:|:|[.]{1,2}\/)\S+?)\s*#{Mx[:en_a_o]}(.+?)#{Mx[:en_a_c]}/m
+ dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ ([^}]+?)\s*\}((?:https?:|ftp:|:|[.]{1,2}\/)\S+?)\s*#{Mx[:en_a_o]}(.+?)#{Mx[:en_a_c]}/m,
"\\1#{Mx[:lnk_o]}\\2#{Mx[:lnk_c]}\\3 #{Mx[:en_a_o]}\\3 \\4#{Mx[:en_a_c]}") # watch
end
- if dob.obj=~/(?:^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (?:.+?)\s*\}(?:(?:https?:|ftp:|[.]{1,2}\/)\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m
- dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (.+?)\s*\}((?:https?:|ftp:|[.]{1,2}\/)\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
+ if dob.obj=~/(?:^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (?:.+?)\s*\}(?:(?:https?:|ftp:|:|[.]{1,2}\/)\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m
+ dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:nbsp]} ])\{~\^ (.+?)\s*\}((?:https?:|ftp:|:|[.]{1,2}\/)\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
"\\1#{Mx[:lnk_o]}\\2#{Mx[:lnk_c]}\\3\\4 #{Mx[:en_a_o]}\\3#{Mx[:en_a_c]} ")
end
- dob.obj.gsub!(/\{\s*([^{}]+?)\s*\}((?:https?:|[.]{2}\/|#)\S+?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}]|$)/,
+ dob.obj.gsub!(/\{\s*([^{}]+?)\s*\}((?:https?:|:|[.]{2}\/|#)\S+?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}]|$)/,
"#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}\\2") #linked (text or image, however text cannot include modified face, e.g. bold, ital, underline)
dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:lnk_c]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}(\s])((?:https?|ftp):\/\/\S+?\.[^>< ]+?)([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
%{\\1#{Mx[:url_o]}\\2#{Mx[:url_c]}\\3})
- if dob.obj=~/#{Mx[:lnk_c]}([.]{2}\/\S+?[^>< ]+?)[,.;'"]?(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m
- lnk=$1
- dob.obj.gsub!(/#{Mx[:lnk_c]}#{lnk}([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
- %{#{Mx[:lnk_c]}#{Mx[:rel_o]}#{lnk}#{Mx[:rel_c]}\\1})
- end
- if dob.obj=~/#{Mx[:lnk_c]}#(\S+?[^>< ]+?)[,.;'"]?(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m
- lnk=$1
- dob.obj.gsub!(/#{Mx[:lnk_c]}##{lnk}([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
- %{#{Mx[:lnk_c]}#{Mx[:rel_o]}#{lnk}#{Mx[:rel_c]}\\1})
- end
+ dob.obj.gsub!(/#{Mx[:lnk_c]}#(\S+?[^>< ]+?)([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
+ %{#{Mx[:lnk_c]}#{Mx[:rel_o]}\\1#{Mx[:rel_c]}\\2})
+ dob.obj.gsub!(/#{Mx[:lnk_c]}:(\S+?[^>< ]+?)([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
+ %{#{Mx[:lnk_c]}#{Mx[:rel_o]}:\\1#{Mx[:rel_c]}\\2})
+ dob.obj.gsub!(/#{Mx[:lnk_c]}[.]{2}\/(\S+?[^>< ]+?)([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
+ %{#{Mx[:lnk_c]}#{Mx[:rel_o]}:\\1#{Mx[:rel_c]}\\2})
end
if dob.obj=~/_(?:https?|ftp):\S+/m # _http://url #CHECK
dob.obj.gsub!(/(^|[#{Mx[:gl_c]}#{Mx[:lnk_c]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}(\s])(_(?:https?|ftp):\/\/\S+?\.[^>< ]+?)([,.;'"]?)(?=[\s#{Mx[:en_a_c]}#{Mx[:en_b_c]}#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}]|$)/m,
@@ -414,8 +410,10 @@ module SiSU_Syntax
"#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}\\2") #any remaining linked text or image
dob.obj.gsub!(/(^|[ ])\{\s*(.+?)\s*\}(\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}]|$)/,
"\\1#{Mx[:lnk_o]}\\2#{Mx[:lnk_c]}\\3\\4") #any remaining linked text or image
+ dob.obj.gsub!(/\{\s*(.+?)\s*\}#(\S+?)([;,.]?)(?=\s|[#{Mx[:br_line]}#{Mx[:br_paragraph]}#{Mx[:br_nl]}#{Mx[:en_a_o]}#{Mx[:en_b_o]}]|$)/,
+ "#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}#{Mx[:rel_o]}\\2#{Mx[:rel_c]}\\3") #any remaining linked text or image, check need
dob.obj.gsub!(/\{\s*(.+?)\s*\}(#{Mx[:rel_o]}\S+?#{Mx[:rel_c]})/,
- "#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}\\2") #any remaining linked text or image
+ "#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}\\2") #any remaining linked text or image, check need
dob.obj.gsub!(/\{\s*(.+?)\s*\}(image)/,
"#{Mx[:lnk_o]}\\1#{Mx[:lnk_c]}\\2") #linked image
elsif dob.is=='table'
diff --git a/lib/sisu/v2/epub_segments.rb b/lib/sisu/v2/epub_segments.rb
index 35edf971..66d73f4f 100644
--- a/lib/sisu/v2/epub_segments.rb
+++ b/lib/sisu/v2/epub_segments.rb
@@ -181,11 +181,19 @@ WOK
SiSU_Screen::Ansi.new(@md.cmd,@@seg_name.length) if @md.cmd =~/[MVv]/
map_nametags=SiSU_Particulars::Combined_singleton.instance.get_map_nametags(@md).nametags_map #p map_nametags
data.each do |dob|
- if defined? dob.obj \
- and dob.obj =~/href="#{Xx[:segment]}#(\S+?)"/
- m=$1
- dob.obj.gsub!(/href="#{Xx[:segment]}#(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{Sfx[:html]}#\\1"})
- end
+ #if defined? dob.obj \
+ #and dob.obj =~/href="#{Xx[:segment]}#+\S+?"/
+ # ##Consider: remove, reinstate earlier?
+ # #while dob.obj =~/href="#{Xx[:segment]}#+(\S+?)"/
+ # # m=$1
+ # # if map_nametags[m][:segname]
+ # # dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{Sfx[:html]}#\\1"})
+ # # else
+ # # p "NOT FOUND name_tags: #{m}"
+ # # dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#\\1"}) # not satisfactory
+ # # end
+ # #end
+ #end
if (dob.is=='heading' or dob.is=='heading_insert') \
and dob.ln==4
if dob.ocn==0
diff --git a/lib/sisu/v2/epub_tune.rb b/lib/sisu/v2/epub_tune.rb
index d49ac3c1..9115a14d 100644
--- a/lib/sisu/v2/epub_tune.rb
+++ b/lib/sisu/v2/epub_tune.rb
@@ -285,7 +285,21 @@ module SiSU_EPUB_Tune
link=m[/(.+)/m]
png=m.scan(/\S+/)[0].strip
link=link.strip
- u.gsub!(/(\S+)/,"#{map_nametags[u][:segname]}#{Sfx[:xhtml]}#\\1") if u !~/\// unless http_
+ u.sub!(/^#*/,'') #make neater
+ if map_nametags[u] \
+ and map_nametags[u][:segname]
+ if u=~/^\d+$/
+ u.gsub!(/^(\d+)$/,"#{map_nametags[u][:segname]}#{Sfx[:xhtml]}#o\\1") if u !~/\// unless http_
+ else
+ u.gsub!(/(\S+)/,"#{map_nametags[u][:segname]}#{Sfx[:xhtml]}#\\1") if u !~/\// unless http_
+ end
+ elsif u =~/^:/
+ u.gsub!(/^:/,"#{@env.url.root}/")
+ elsif u =~/^\.\.\//
+ u.gsub!(/^\.\.\//,"#{@env.url.root}/")
+ elsif u =~/http:\/\//
+ else p "NOT FOUND name_tags: #{u}"
+ end
ins=%{<a href="#{u}">#{link}</a>}
word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,ins)
word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/,ins)
diff --git a/lib/sisu/v2/html_scroll.rb b/lib/sisu/v2/html_scroll.rb
index a5ff9b00..b0581ead 100644
--- a/lib/sisu/v2/html_scroll.rb
+++ b/lib/sisu/v2/html_scroll.rb
@@ -94,6 +94,7 @@ module SiSU_HTML_scroll
and dob.obj =~/Document Information/ #fix no current match
@rcdc=true
end
+ dob.obj.gsub!(/href="[a-z0-9._-]+(#\S+?")/m,'href="\1') # internal document links
dob.obj.gsub!(/href="#{Xx[:segment]}/m,'href="')
dob.obj.gsub!(/(?:\s*#{Mx[:br_page]}\s*|\s*#{Mx[:br_page_new]}\s*)+/m,'<p><hr width=90% /></p>')
if dob.obj !~/(^#{Rx[:meta]}|#{Mx[:br_eof]})/
diff --git a/lib/sisu/v2/html_segments.rb b/lib/sisu/v2/html_segments.rb
index 83f9c5c9..bed30afa 100644
--- a/lib/sisu/v2/html_segments.rb
+++ b/lib/sisu/v2/html_segments.rb
@@ -166,9 +166,17 @@ module SiSU_HTML_seg
map_nametags=SiSU_Particulars::Combined_singleton.instance.get_map_nametags(@md).nametags_map #p map_nametags
data.each do |dob|
if defined? dob.obj \
- and dob.obj =~/href="#{Xx[:segment]}#(\S+?)"/
- m=$1
- dob.obj.gsub!(/href="#{Xx[:segment]}#(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{Sfx[:html]}#\\1"})
+ and dob.obj =~/href="#{Xx[:segment]}#+\S+?"/
+ while dob.obj =~/href="#{Xx[:segment]}#+(\S+?)"/
+ m=$1
+ if map_nametags[m] \
+ and map_nametags[m][:segname]
+ dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#{map_nametags[m][:segname]}#{Sfx[:html]}#\\1"})
+ else
+ p "NOT FOUND name_tags: #{m}"
+ dob.obj.sub!(/href="#{Xx[:segment]}#+(\S+?)"/,%{href="#\\1"}) # not satisfactory
+ end
+ end
end
if (dob.is=='heading' or dob.is=='heading_insert') \
and dob.ln==4
diff --git a/lib/sisu/v2/html_tune.rb b/lib/sisu/v2/html_tune.rb
index c0efb72e..11b1dbde 100644
--- a/lib/sisu/v2/html_tune.rb
+++ b/lib/sisu/v2/html_tune.rb
@@ -255,6 +255,10 @@ module SiSU_HTML_Tune
http_=true
if word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/
m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/.match(word).captures
+ elsif word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}:\S+?#{Mx[:rel_c]}/
+ #http_=false
+ m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}:(\S+?)#{Mx[:rel_c]}/.match(word).captures
+ u='../' + u
elsif word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
http_=false
m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\S+?)#{Mx[:rel_c]}/.match(word).captures
@@ -326,6 +330,7 @@ module SiSU_HTML_Tune
and dob.obj !~/(\"..\/\S+?\"|>\s*..\/\S+<)/
dob.obj.gsub!(/(\.\.\/\S+)/,'<a href="\1">\1</a>')
end
+ dob.obj.gsub!(/<a href=":/,%{<a href="#{@vz.url_site}/})
dob.obj.gsub!(/<a href="\.\.\//,%{<a href="#{@vz.url_site}/})
else
dob.obj.gsub!(/(^|[^}])_</m,'\1&lt;'); dob.obj.gsub!(/(^|[^}])_>/m,'\1&gt;') #code-block: angle brackets special characters
diff --git a/lib/sisu/v2/odf.rb b/lib/sisu/v2/odf.rb
index dc8c90a8..24f45f50 100644
--- a/lib/sisu/v2/odf.rb
+++ b/lib/sisu/v2/odf.rb
@@ -236,7 +236,27 @@ module SiSU_ODF
def text_link_odf(txt,url,trail)
txt.gsub!(/(\\\+)/,'+') #this is convoluted, and risky :-(
url.gsub!(/(\\\+)/,'+') #this is convoluted, and risky :-(
- %{<text:a xlink:type="simple" xlink:href="#{url}">#{txt.strip}</text:a>#{trail}}
+ map_nametags=SiSU_Particulars::Combined_singleton.instance.get_map_nametags(@md).nametags_map
+ t=case url
+ when /^http:/
+ %{<text:a xlink:type="simple" xlink:href="#{url}">#{txt.strip}</text:a>#{trail}}
+ when /^:/ # site same document collection html link
+ url.gsub!(/^:/,"#{@env.url.root}/")
+ %{<text:a xlink:type="simple" xlink:href="#{url}">#{txt.strip}</text:a>#{trail}}
+ when /^\.\.\// # site same document collection html link
+ url.gsub!(/^\.\.\//,"#{@env.url.root}/")
+ %{<text:a xlink:type="simple" xlink:href="#{url}">#{txt.strip}</text:a>#{trail}}
+ else # document internal link
+ if map_nametags[url] \
+ and map_nametags[url][:segname]
+ else p "NOT FOUND name_tags: #{url}"
+ end
+ t=map_nametags[url] \
+ && map_nametags[url][:segname] \
+ ? %{<text:a xlink:type="simple" xlink:href="#{@env.url.root}/#{@md.fnb}/#{map_nametags[url][:segname]}#{Sfx[:html]}##{url}">#{txt.strip}</text:a>#{trail}} \
+ : %{#{txt.strip}#{trail}}
+ end
+ t
end
def text_link(dob)
m=dob.obj.scan(/(#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]})/) #sort
@@ -253,6 +273,21 @@ module SiSU_ODF
end
dob
end
+ def text_link_relative(dob)
+ m=dob.obj.scan(/(#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\S+?)#{Mx[:rel_c]})/) #sort
+ if m
+ m.each do |i|
+ txt,url,trail=i[1],i[2]
+ txt.gsub!(/([)(\]\[])/,"\\\\\\1")
+ txt.gsub!(/([+?*])/,"\\\\\\1") # problems with +
+ url.gsub!(/([+?])/,"\\\\\\1") # problems with +
+ dob.obj.gsub!(/#{Mx[:lnk_o]}[ ]*#{txt}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{url}#{Mx[:rel_c]}/m,text_link_odf(txt,url,trail)) #make sure trailing ']' are not caught in url
+ dob.obj.gsub!(/\\([)(\]\[?])/,'\1') #clumsy fix
+ end
+ m=nil
+ end
+ dob
+ end
def normal(dob) #P1 - P3
dob.obj.gsub!(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,
'<text:a xlink:type="simple" xlink:href="\1">\1</text:a>') #http ftp matches escaped, no decoration
@@ -268,6 +303,13 @@ module SiSU_ODF
end
def fontface(dob)
end
+ def footnote_urls(str)
+ str.gsub!(/#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,
+ %{#{@brace_url.xml_open}<text:a xlink:type="simple" xlink:href="\\1">\\1</text:a>#{@brace_url.xml_close}})
+ str=text_link(str) if str =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/
+ str=text_link_relative(str) if str =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
+ str
+ end
def footnote(t_o)
str=if defined? t_o.obj; t_o.obj
elsif t_o.class==String; t_o
@@ -281,6 +323,8 @@ module SiSU_ODF
asterisk=str.scan(/#{Mx[:en_a_o]}([*+]+)\s+(.+?)#{Mx[:en_a_c]}/)
asterisk.each do |x|
a=x[0].gsub(/([*+])/,"\\\\\\1")
+ str=group_clean(str)
+ str=footnote_urls(str)
str.gsub!(/#{Mx[:en_a_o]}(#{a})\s+(.+?)#{Mx[:en_a_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})
@astx+=1
end
@@ -289,6 +333,8 @@ module SiSU_ODF
asterisk=str.scan(/#{Mx[:en_b_o]}([*+]\d+)\s+(.+?)#{Mx[:en_b_c]}/)
asterisk.each do |x|
a=x[0].gsub(/([*+])/,"\\\\\\1")
+ str=group_clean(str)
+ str=footnote_urls(str)
str.gsub!(/#{Mx[:en_b_o]}(#{a})\s+(.+?)#{Mx[:en_b_c]}/,%{<text:note text:id="ftn#{@astx.to_s}" text:note-class="footnote"><text:note-citation text:label="\\1">\\1</text:note-citation><text:note-body><text:p text:style-name="Footnote"> \\2</text:p><text:p text:style-name="Footnote"/></text:note-body></text:note>})
@astx+=1
end
@@ -362,10 +408,10 @@ module SiSU_ODF
def odf_structure(md,dob)
@md,@dob=md,dob
dob=if dob.is !='code'
- dob=if dob.obj =~/#{Mx[:lnk_o]}[ ]*\S+?\.(?:png|jpg|gif)\s.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/; image(dob)
- elsif dob.obj =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/; text_link(dob)
- else dob
- end
+ dob=image(dob) if dob.obj =~/#{Mx[:lnk_o]}[ ]*\S+?\.(?:png|jpg|gif)\s.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/
+ dob=text_link(dob) if dob.obj =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/
+ dob=text_link_relative(dob) if dob.obj =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
+ dob
else dob
end
dob=footnote(dob)
diff --git a/lib/sisu/v2/particulars.rb b/lib/sisu/v2/particulars.rb
index 96c4fbac..b2f533e1 100644
--- a/lib/sisu/v2/particulars.rb
+++ b/lib/sisu/v2/particulars.rb
@@ -177,7 +177,8 @@ module SiSU_Particulars
attr_accessor :nametags_map
def set_nametags_map
begin
- @nametags_map=SiSU_DAL::Source.new(@md).get_map_nametags
+ opt=@md ? @md : @opt
+ @nametags_map=SiSU_DAL::Source.new(opt).get_map_nametags
self
rescue; SiSU_Errors::Info_error.new($!,$@,@opt.cmd,@opt.fns).error
end
diff --git a/lib/sisu/v2/plaintext.rb b/lib/sisu/v2/plaintext.rb
index a57339f4..4acdec93 100644
--- a/lib/sisu/v2/plaintext.rb
+++ b/lib/sisu/v2/plaintext.rb
@@ -299,6 +299,7 @@ WOK
dob.obj.gsub!(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,
"#{Px[:strike_o]}\\1#{Px[:strike_c]}")
unless dob.is=='code'
+ dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/,'\1')
dob.obj.gsub!(/#{Mx[:url_o]}_(\S+?)#{Mx[:url_c]}/,'\1')
dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,'\1 [link: <\2>]')
dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}image/,'\1 [link: local image]')
diff --git a/lib/sisu/v2/shared_html_lite.rb b/lib/sisu/v2/shared_html_lite.rb
index 6303691b..c1f53e10 100644
--- a/lib/sisu/v2/shared_html_lite.rb
+++ b/lib/sisu/v2/shared_html_lite.rb
@@ -62,6 +62,7 @@ module SiSU_Format_Shared
include SiSU_Viz
class CSS_Format
require "#{SiSU_lib}/defaults" # defaults.rb
+ require "#{SiSU_lib}/particulars" # particulars.rb
@@fns=nil
def initialize(md,t_o)
@md,@t_o=md,t_o
@@ -85,10 +86,13 @@ module SiSU_Format_Shared
end
def urls(data)
@words=[]
+ map_nametags=SiSU_Particulars::Combined_singleton.instance.get_map_nametags(@md).nametags_map
data.each do |word|
- @words << if word=~/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}(#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/
+ @words << if word=~/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}(#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}|image)/
if word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/
m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/.match(word).captures
+ elsif word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/
+ m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\S+?)#{Mx[:rel_c]}/.match(word).captures
elsif word =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}image/
m,u=/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}(image)/.match(word).captures
end
@@ -107,12 +111,27 @@ module SiSU_Format_Shared
end
word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/,ins)
else
+ u=case u
+ when /^http:\/\//
+ u
+ when /^:/
+ u.gsub!(/^:/,'')
+ "#{@env.url.root}/#{u}"
+ when /^\.\.\// # can remove
+ u.gsub!(/^\.\.\//,'')
+ "#{@env.url.root}/#{u}"
+ else
+ "#{@env.url.root}/#{@md.fnb}/#{map_nametags[u][:segname]}#{Sfx[:html]}##{u}"
+ end
link=m[/(.+)/m]
png=m.scan(/\S+/)[0].strip
link=link.strip
ins=%{<a href="#{u}">#{link}</a>}
word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,ins)
+ word.gsub!(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/,ins)
+ word
end
+ word
else word
end
word
@@ -134,8 +153,8 @@ module SiSU_Format_Shared
s=t_o.obj
if t_o.is !='code'
s=markup_generic(s)
- if s =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/
- wm=s.scan(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)|\S+/)
+ if s =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}|image)/
+ wm=s.scan(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}|image)|\S+/)
words=urls(wm)
s.gsub!(/.+/m,words)
end
@@ -152,8 +171,8 @@ module SiSU_Format_Shared
end
def markup_note(s)
s=markup_generic(s)
- if s =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)/
- wm=s.scan(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image)|\S+/)
+ if s =~/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}|image)/
+ wm=s.scan(/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}|image)|\S+/)
words=urls(wm)
s=s.gsub(/.+/m,words)
end
diff --git a/lib/sisu/v2/shared_xml.rb b/lib/sisu/v2/shared_xml.rb
index 8a58909b..4d504882 100644
--- a/lib/sisu/v2/shared_xml.rb
+++ b/lib/sisu/v2/shared_xml.rb
@@ -372,6 +372,8 @@ module SiSU_XML_munge
dob.obj.gsub!(/href="#{Xx[:segment]}/m,'href="')
dob.obj.gsub!(/#{Mx[:lnk_o]}([^#{Mx[:lnk_o]}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{Mx[:rel_c]}]+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\.\.\/\S+?)#{Mx[:rel_c]}/,
'<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="\2">\1</link>')
+ dob.obj.gsub!(/#{Mx[:lnk_o]}([^#{Mx[:lnk_o]}#{Mx[:lnk_c]}#{Mx[:rel_o]}#{Mx[:rel_c]}]+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}:(\S+?)#{Mx[:rel_c]}/,
+ '<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="../\2">\1</link>')
dob.obj.gsub!(/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\S+?)#{Mx[:rel_c]}/,
'<link xmlns:xlink="http://www.w3.org/1999/xlink" xlink:type="simple" xlink:href="#\2">\1</link>')
dob.obj.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}[ ]*(\S+?\.(?:jpg|png|gif))[ ]+(\d+)x(\d+)(\s+[^}]+)?#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/,
diff --git a/lib/sisu/v2/sysenv.rb b/lib/sisu/v2/sysenv.rb
index f11cdcbd..4daccbcd 100644
--- a/lib/sisu/v2/sysenv.rb
+++ b/lib/sisu/v2/sysenv.rb
@@ -59,6 +59,7 @@
@@cX=nil
@@current_document=Dir.pwd #nil #''
module SiSU_Env
+ require "#{SiSU_lib}/constants" # constants.rb
require 'fileutils'
include FileUtils::Verbose
require 'singleton'
diff --git a/lib/sisu/v2/texpdf_format.rb b/lib/sisu/v2/texpdf_format.rb
index 1d2e891f..68190407 100644
--- a/lib/sisu/v2/texpdf_format.rb
+++ b/lib/sisu/v2/texpdf_format.rb
@@ -357,47 +357,53 @@ module SiSU_TeX_Pdf
end
def url_str_internal(str,idx=nil)
map_nametags=SiSU_Particulars::Combined_singleton.instance.get_map_nametags(@md).nametags_map #p map_nametags
- url_generic_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/m
- url_relative_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\.\.\/\S+?#{Mx[:rel_c]}/m
- url_internal_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}#?\S+?#{Mx[:rel_c]}/m
- while str =~/#{Mx[:lnk_o]}([^#{Mx[:lnk_o]}#{Mx[:lnk_c]}]+)#{Mx[:lnk_c]}#{Mx[:rel_o]}(\.\.\/\S+?)#{Mx[:rel_c]}/m
+ rgx_url_generic=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}\S+?#{Mx[:rel_c]}/m
+ rgx_url_relative=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}:\S+?#{Mx[:rel_c]}/m
+ rgx_url_internal=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:rel_o]}#?\S+?#{Mx[:rel_c]}/m
+ while str =~/#{Mx[:lnk_o]}([^#{Mx[:lnk_o]}#{Mx[:lnk_c]}]+)#{Mx[:lnk_c]}#{Mx[:rel_o]}:(\S+?)#{Mx[:rel_c]}/m
link,url=$1,$2
link,url=link.strip,url.strip
link.gsub!(/&/,"#{Xx[:protect]}&")
- url.gsub!(/^(\.\.\/)/,"#{@env.url.root}/")
- str.sub!(/#{Mx[:lnk_o]}[^#{Mx[:lnk_o]}#{Mx[:lnk_c]}]+#{Mx[:lnk_c]}#{Mx[:rel_o]}\.\.\/\S+?#{Mx[:rel_c]}/m,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}")
+ url="#{@env.url.root}/" + url
+ str.sub!(/#{Mx[:lnk_o]}[^#{Mx[:lnk_o]}#{Mx[:lnk_c]}]+#{Mx[:lnk_c]}#{Mx[:rel_o]}:\S+?#{Mx[:rel_c]}/m,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}")
end
while str =~/#{Mx[:lnk_o]}([^#{Mx[:lnk_o]}#{Mx[:lnk_c]}]+)#{Mx[:lnk_c]}#{Mx[:rel_o]}#?(\S+?)#{Mx[:rel_c]}/m
link,url=$1,$2
link,url=link.strip,url.strip
link.gsub!(/&/,"#{Xx[:protect]}&")
+ url.gsub!(/\\_/,'_')
+ ocn_lnk=if map_nametags[url] \
+ and map_nametags[url][:ocn]
+ map_nametags[url][:ocn]
+ else nil
+ end
ocn_lnk=(url=~/^\d+$/ ? url : (map_nametags[url][:ocn]))
- if not ocn_lnk.empty?
+ if ocn_lnk and not ocn_lnk.empty?
idx \
- ? (str.sub!(url_internal_rgx,"\\hyperlink{#{ocn_lnk}}{#{link}}")) \
- : (str.sub!(url_internal_rgx,"#{@brace_rel.tex_open}\\hyperlink{#{ocn_lnk}}{#{link}}#{@brace_rel.tex_close}"))
+ ? (str.sub!(rgx_url_internal,"\\hyperlink{#{ocn_lnk}}{#{link}}")) \
+ : (str.sub!(rgx_url_internal,"#{@brace_rel.tex_open}\\hyperlink{#{ocn_lnk}}{#{link}}#{@brace_rel.tex_close}"))
else
puts %{name tag: "#{url}" not found}
- str.sub!(url_internal_rgx,"#{link}")
+ str.sub!(rgx_url_internal,"#{link}")
end
#[keep] code that follows uses nametags directly, currently nametags converted to their ocn, related code: |texpdf.rb|@|hypertargets|
#idx \
- #? (str.sub!(url_internal_rgx,"\\hyperlink{#{url}}{#{link}}")) \
- #: (str.sub!(url_internal_rgx,"#{@brace_rel.tex_open}\\hyperlink{#{url}}{#{link}}#{@brace_rel.tex_close}"))
+ #? (str.sub!(rgx_url_internal,"\\hyperlink{#{url}}{#{link}}")) \
+ #: (str.sub!(rgx_url_internal,"#{@brace_rel.tex_open}\\hyperlink{#{url}}{#{link}}#{@brace_rel.tex_close}"))
end
str.gsub!(/#{Xx[:protect]}/,'')
str
end
def url_str(str)
- url_generic_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
- while str =~url_generic_rgx
- if str=~url_generic_rgx
+ rgx_url_generic=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
+ while str =~rgx_url_generic
+ if str=~rgx_url_generic
regx_url=%r/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/m
z,url=regx_url.match(str).captures if str =~regx_url
url=url.strip
link=z.strip
link.gsub!(/&/,"#{Xx[:protect]}&")
- str.sub!(url_generic_rgx,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}")
+ str.sub!(rgx_url_generic,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}")
str.gsub!(/#{Xx[:protect]}/,'')
str
else str
@@ -407,9 +413,9 @@ module SiSU_TeX_Pdf
str
end
def url_with_txt(dob)
- url_generic_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
- while dob.tmp =~url_generic_rgx
- if dob.tmp=~url_generic_rgx
+ rgx_url_generic=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
+ while dob.tmp =~rgx_url_generic
+ if dob.tmp=~rgx_url_generic
if dob.tmp =~/#{Mx[:lnk_o]}(?:.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
regx_url=%r/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/m
punctuate=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m.match(dob.tmp).captures.join
@@ -421,7 +427,7 @@ module SiSU_TeX_Pdf
url=url.strip
link=z.strip
link.gsub!(/&/,"#{Xx[:protect]}&")
- dob.tmp.sub!(url_generic_rgx,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}#{punctuate}")
+ dob.tmp.sub!(rgx_url_generic,"#{@brace_rel.tex_open}\\href{#{url}}{#{link}}#{@brace_rel.tex_close}#{punctuate}")
dob.tmp.gsub!(/#{Xx[:protect]}/,'')
dob
else dob
@@ -442,18 +448,18 @@ module SiSU_TeX_Pdf
}
images_hash={ }
generic_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}(?:#{Mx[:url_o]}\S+?#{Mx[:url_c]}|image\b)/m
- url_generic_rgx=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
+ rgx_url_generic=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
url_bare_rgx=/#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
url_image_rgx=/#{Mx[:lnk_o]}[a-zA-Z0-9_\\-]+\.(?:png|jpg|gif).+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
image_rgx=/#{Mx[:lnk_o]}[a-zA-Z0-9_\\-]+\.(?:png|jpg|gif).+?#{Mx[:lnk_c]}image/m
@md.papersize_array.each do |ps|
images_hash[ps] = dob.tmp
while images_hash[ps] =~generic_rgx
- if dob.tmp =~url_generic_rgx \
+ if dob.tmp =~rgx_url_generic \
and dob.tmp !~/\.(?:png|jpg|gif)|#{Mx[:lnk_c]}image\b/m
dob=url_with_txt(dob)
elsif images_hash[ps]=~generic_rgx
- if dob.tmp=~url_generic_rgx
+ if dob.tmp=~rgx_url_generic
if images_hash[ps] =~/#{Mx[:lnk_o]}(?:.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m
regx_url=%r/#{Mx[:lnk_o]}(.+?)#{Mx[:lnk_c]}#{Mx[:url_o]}(\S+?)#{Mx[:url_c]}/m
punctuate=/#{Mx[:lnk_o]}.+?#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m.match(images_hash[ps]).captures.join
@@ -940,6 +946,7 @@ WOK
w.gsub!(/[#{Mx[:br_line]}#{Mx[:br_paragraph]}]/,' \newline ') #watch
w.gsub!(/#{Mx[:gl_o]}#(?:126|152)#{Mx[:gl_c]}/,'<=tilde>') #126 usual
w.gsub!(/\\?\||#{Mx[:gl_o]}#124#{Mx[:gl_c]}/,'<=pipe>') #unless is=='code' #unless w=~/<~\d+;(?:[ohmu]|[0-6]:)\d+;\w\d+>/ # | SiSU not really special sisu character but done, also LaTeX
+ w.gsub!(/\#/,'<=hash>') unless w =~/#{Mx[:rel_o]}/
para_array << w
end
str=para_array.join(' ')
@@ -971,7 +978,6 @@ WOK
str.gsub!(/#{Mx[:gl_o]}#124#{Mx[:gl_c]}/,'|') # | SiSU not really special sisu character but done, also LaTeX
str.gsub!(/#{Mx[:gl_o]}#058#{Mx[:gl_c]}/,':') # : SiSU not really special sisu character but done, also LaTeX
str.gsub!(/#{Mx[:gl_o]}#094#{Mx[:gl_c]}|\^/,'<=caret>') # ^ SiSU not really special sisu character but done, also LaTeX
- str.gsub!(/\#/,'<=hash>')
##watch placement, problem sequence ^
str.gsub!(/<sup><font face=symbol>&atild;<\/font><\/sup>/,' ')
str.gsub!(/\\copy(right|mark)?/,'<=copymark>') # ok problem with superscript
@@ -1101,7 +1107,7 @@ WOK
def special_word_break_points
str=@txt
str.gsub!(/([_,.;:\/|=])/,'\1\-')
- str.gsub!(/(--)(\S{4,)/,'\1\-\2')
+ str.gsub!(/(--)(\S{4,})/,'\1\-\2')
@txt=str
end
def special_number_break_points
diff --git a/lib/sisu/v2/webrick.rb b/lib/sisu/v2/webrick.rb
index 05aac1ee..ff228a65 100644
--- a/lib/sisu/v2/webrick.rb
+++ b/lib/sisu/v2/webrick.rb
@@ -168,7 +168,9 @@ WOK
puts " #{@cX.off}"
get=@argv.shift if @argv[0] =~/pwd/ #% argv
brick(@port,get)
-rescue; SiSU_Errors::Info_error.new($!,$@,'-W',nil).error #fix
+rescue;
+ require "#{SiSU_lib}/sysenv" # sysenv.rb
+ SiSU_Errors::Info_error.new($!,$@,'-W',nil).error #fix
ensure
end
__END__