diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/sisu/v1/cgi_pgsql.rb | 14 | ||||
-rw-r--r-- | lib/sisu/v1/cgi_sql_common.rb | 93 | ||||
-rw-r--r-- | lib/sisu/v1/cgi_sqlite.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v1/constants.rb | 2 | ||||
-rw-r--r-- | lib/sisu/v1/css.rb | 17 | ||||
-rw-r--r-- | lib/sisu/v1/dal_doc_str.rb | 1 | ||||
-rw-r--r-- | lib/sisu/v1/dal_images.rb | 2 | ||||
-rw-r--r-- | lib/sisu/v1/dal_substitutions_and_insertions.rb | 73 | ||||
-rw-r--r-- | lib/sisu/v1/dal_syntax.rb | 16 | ||||
-rw-r--r-- | lib/sisu/v1/db_import.rb | 2 | ||||
-rw-r--r-- | lib/sisu/v1/harvest_authors.rb | 39 | ||||
-rw-r--r-- | lib/sisu/v1/harvest_topics.rb | 72 | ||||
-rw-r--r-- | lib/sisu/v1/help.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v1/manpage.rb | 5 | ||||
-rw-r--r-- | lib/sisu/v1/param.rb | 199 | ||||
-rw-r--r-- | lib/sisu/v1/sst_from_kdissert.rb | 4 | ||||
-rw-r--r-- | lib/sisu/v1/sst_to_s_xml_dom.rb | 27 | ||||
-rw-r--r-- | lib/sisu/v1/sst_to_s_xml_node.rb | 33 | ||||
-rw-r--r-- | lib/sisu/v1/sysenv.rb | 15 |
19 files changed, 335 insertions, 287 deletions
diff --git a/lib/sisu/v1/cgi_pgsql.rb b/lib/sisu/v1/cgi_pgsql.rb index 4f201dfa..f6f62bfb 100644 --- a/lib/sisu/v1/cgi_pgsql.rb +++ b/lib/sisu/v1/cgi_pgsql.rb @@ -153,11 +153,11 @@ module SiSU_CGI_pgsql end search_construct=[] if @c - unescaped_search.gsub!(/\s*(AND|OR)\s*/,"' \) \\1 #@l~\( '") - unescaped_search.gsub!(/(.+)/,"#@l~\( '\\1' \)") + unescaped_search.gsub!(/\s*(AND|OR)\s*/,"' \) \\1 #{@l}~\( '") + unescaped_search.gsub!(/(.+)/,"#{@l}~\( '\\1' \)") else - unescaped_search.gsub!(/\s*(AND|OR)\s*/,"' \) \\1 #@l~*\( '") - unescaped_search.gsub!(/(.+)/,"#@l~*\( '\\1' \)") + unescaped_search.gsub!(/\s*(AND|OR)\s*/,"' \) \\1 #{@l}~*\( '") + unescaped_search.gsub!(/(.+)/,"#{@l}~*\( '\\1' \)") end search_construct << unescaped_search search_construct=search_construct.join(' ') @@ -188,7 +188,7 @@ module SiSU_CGI_pgsql def sql_select_body limit ||=@@limit offset ||=@@offset - @sql_statement[:body]=%{SELECT metadata.title, metadata.subtitle, metadata.creator, metadata.filename, metadata.suffix, documents.body, documents.seg, documents.ocn, metadata.tid FROM documents, metadata WHERE (#@search_text) AND documents.metadata_tid = metadata.tid ORDER BY metadata.title, metadata.filename, documents.ocn} + @sql_statement[:body]=%{SELECT metadata.title, metadata.subtitle, metadata.creator, metadata.filename, metadata.suffix, documents.body, documents.seg, documents.ocn, metadata.tid FROM documents, metadata WHERE (#{@search_text}) AND documents.metadata_tid = metadata.tid ORDER BY metadata.title, metadata.filename, documents.ocn} @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;} select=@sql_statement[:body] + ' ' + @sql_statement[:range] select @@ -196,7 +196,7 @@ module SiSU_CGI_pgsql def sql_select_endnotes limit ||=@@limit offset ||=@@offset - @sql_statement[:endnotes]=%{SELECT metadata.title, metadata.subtitle, metadata.creator, metadata.filename, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata, endnotes WHERE (#@search_endnotes) AND metadata.tid = endnotes.metadata_tid ORDER BY metadata.title, metadata.filename, endnotes.nr} + @sql_statement[:endnotes]=%{SELECT metadata.title, metadata.subtitle, metadata.creator, metadata.filename, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata, endnotes WHERE (#{@search_endnotes}) AND metadata.tid = endnotes.metadata_tid ORDER BY metadata.title, metadata.filename, endnotes.nr} @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;} select=@sql_statement[:endnotes] + ' ' + @sql_statement[:range] select @@ -218,7 +218,7 @@ module SiSU_CGI_pgsql end def buttons1_pgsql <<-'WOK_SQL' - <input type="checkbox" name="casesense" #@checked_case> case sensitive + <input type="checkbox" name="casesense" #{@checked_case}> case sensitive WOK_SQL end def dbi_connect diff --git a/lib/sisu/v1/cgi_sql_common.rb b/lib/sisu/v1/cgi_sql_common.rb index bd0b38a5..5138e311 100644 --- a/lib/sisu/v1/cgi_sql_common.rb +++ b/lib/sisu/v1/cgi_sql_common.rb @@ -129,7 +129,7 @@ module SiSU_CGI_sql <<-'WOK_SQL' #Common TOP @@limit,@@offset=1000,0 - @base="#@hosturl_db/cgi-bin/#@version.cgi" + @base="#{@hosturl_db}/cgi-bin/#{@version}.cgi" @@canned_search_url=@base @color_heading='#DDFFAA' @color_match='#ffff48' @@ -160,12 +160,12 @@ module SiSU_CGI_sql <meta http-equiv="Content-Type" content="text/html;charset=utf-8" /> <meta name="sourcefile" content="SiSU._sst" /> <link rel="generator" href="http://www.jus.uio.no/sisu" /> - <link rel="shortcut icon" href="#@image_src/rb7.ico" /> + <link rel="shortcut icon" href="#{@image_src}/rb7.ico" /> <link rel="stylesheet" href="../_sisu/css/html.css" type="text/css" /> </head> <body bgcolor="#ffffff" text="#000000" link="#003090" lang="en" xml:lang="en"> <table summary="band" border="0" cellpadding="3" cellspacing="0"> - <tr><td align="left" bgcolor="#ffffff"><a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" src="#@image_src/sisu.png" alt="SiSU -->" /></a></td><td> + <tr><td align="left" bgcolor="#ffffff"><a href="http://www.jus.uio.no/sisu/" target="_top"><img border="0" src="#{@image_src}/sisu.png" alt="SiSU -->" /></a></td><td> <!-- <p class="tiny"><a href="http://www.jus.uio.no/sisu/SiSU/"> http://www.jus.uio.no/sisu/SiSU/</a></p> --> <label for="find"><b>#{@env.sample_search_form_title}</b></label> </td></tr> @@ -174,49 +174,49 @@ module SiSU_CGI_sql end def header2 <<-'WOK_SQL' - <form action="#@base" id="Test Form" method="post"> + <form action="#{@base}" id="Test Form" method="post"> <table cellpadding="2"> <tr><td valign=\"top\"> - <textarea id="find" name="find" type="text" rows="6" cols="40" maxlength="256">#@search_field</textarea> + <textarea id="find" name="find" type="text" rows="6" cols="40" maxlength="256">#{@search_field}</textarea> </td> <td valign=\"top\"> - #@tip - #@search_note - #@the_can + #{@tip} + #{@search_note} + #{@the_can} </td></tr></table> <td valign=\"top\"><tr><td> - <!input type="text" id="find" name="find" value="#@search_field" /> + <!input type="text" id="find" name="find" value="#{@search_field}" /> <!input type="text" id="find" name="find" value="" /> <font size="2" color="#222222"> <b>to search:</b> select which database to search (drop-down menu below); enter your search query (in the form above); and <b>click on the search button</b> (below) <br /> <select name="db" size="1"> - #@selected_db + #{@selected_db} WOK_SQL end def buttons1 <<-'WOK_SQL' </select> <input type="submit" value="SiSU search" /> - <input type="radio" name="view" value="index" #@checked_index> index - <input type="radio" name="view" value="text" #@checked_text> text / grep + <input type="radio" name="view" value="index" #{@checked_index}> index + <input type="radio" name="view" value="text" #{@checked_text}> text / grep WOK_SQL end def buttons2 <<-'WOK_SQL' <br /> - <input type="checkbox" name="echo" #@checked_echo> echo query - <input type="checkbox" name="stats" #@checked_stats> result stats - <input type="checkbox" name="url" #@checked_url> search url - <input type="checkbox" name="searched" #@checked_searched> searched - <input type="checkbox" name="tip" #@checked_tip> available fields - <input type="checkbox" name="sql" #@checked_sql> sql statement + <input type="checkbox" name="echo" #{@checked_echo}> echo query + <input type="checkbox" name="stats" #{@checked_stats}> result stats + <input type="checkbox" name="url" #{@checked_url}> search url + <input type="checkbox" name="searched" #{@checked_searched}> searched + <input type="checkbox" name="tip" #{@checked_tip}> available fields + <input type="checkbox" name="sql" #{@checked_sql}> sql statement <br /> checks: - <input type="radio" name="checks" value="check_default" #@checked_default> default - <input type="radio" name="checks" value="check_selected" #@checked_selected> selected - <input type="radio" name="checks" value="check_all" #@checked_all> all - <input type="radio" name="checks" value="check_none" #@checked_none> none + <input type="radio" name="checks" value="check_default" #{@checked_default}> default + <input type="radio" name="checks" value="check_selected" #{@checked_selected}> selected + <input type="radio" name="checks" value="check_all" #{@checked_all}> all + <input type="radio" name="checks" value="check_none" #{@checked_none}> none </font> </td></tr> </table> @@ -285,8 +285,9 @@ module SiSU_CGI_sql @date_modified=q['dtm'] if q['dtm']=~/\S/ @date_available=q['dta'] if q['dta']=~/\S/ @date_valid=q['dtv'] if q['dtv']=~/\S/ - @filename=q['fns'] if q['fns']=~/\S/ - @filename=q['doc'] if q['search'] !~/search db/ + @filename=if q['doc'] and q['search'] !~/search db/; q['doc'] + elsif q['fns']=~/\S/; q['fns']· + end @@limit=q['ltd'] if q['ltd']=~/\d+/ # 1000 @@offset=q['off'] if q['off']=~/\d+/ # 0 end @@ -525,7 +526,7 @@ module SiSU_CGI_sql <tr><td valign="top" width="10%"> <p class="tiny_left"><font color="#666666" size="2"> <a href="http://www.jus.uio.no/sisu" > - <img border="0" src="#@image_src/sisu.png" alt="SiSU" width="120" height="39" /> + <img border="0" src="#{@image_src}/sisu.png" alt="SiSU" width="120" height="39" /> </a> </font></p> </td><td valign="top" width="45%"> @@ -572,7 +573,7 @@ module SiSU_CGI_sql <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="#@image_src/gplv3_free_software.png" alt="GPLv3" width="127" height="51" /> + <img border="0" src="#{@image_src}/gplv3_free_software.png" alt="GPLv3" width="127" height="51" /> </a> </font></p> </td><td valign="top" width="45%"> @@ -692,10 +693,10 @@ module SiSU_CGI_sql dtv='&dtv=' + CGI.escape(@search_for.date_valid) if @search_for.date_valid=~/\S/ fns='&fns=' + CGI.escape(@search_for.filename) if @search_for.filename=~/\S/ @@canned_search_url=if checked_all =~/checked/ - "#@base?#{s1}#{key}#{ti}#{au}#{sj}#{dsc}#{pb}#{cntr}#{dt}#{ty}#{id}#{src}#{lang}#{rel}#{cov}#{cr}#{co}#{ab}#{dtc}#{dti}#{dtm}#{dta}#{dtv}#{fns}&db=#{cgi['db']}&view=#{cgi['view']}&a=1" - else "#@base?#{s1}#{key}#{ti}#{au}#{sj}#{dsc}#{pb}#{cntr}#{dt}#{ty}#{id}#{src}#{lang}#{rel}#{cov}#{cr}#{co}#{ab}#{dtc}#{dti}#{dtm}#{dta}#{dtv}#{fns}&db=#{cgi['db']}&view=#{cgi['view']}" + "#{@base}?#{s1}#{key}#{ti}#{au}#{sj}#{dsc}#{pb}#{cntr}#{dt}#{ty}#{id}#{src}#{lang}#{rel}#{cov}#{cr}#{co}#{ab}#{dtc}#{dti}#{dtm}#{dta}#{dtv}#{fns}&db=#{cgi['db']}&view=#{cgi['view']}&a=1" + else "#{@base}?#{s1}#{key}#{ti}#{au}#{sj}#{dsc}#{pb}#{cntr}#{dt}#{ty}#{id}#{src}#{lang}#{rel}#{cov}#{cr}#{co}#{ab}#{dtc}#{dti}#{dtm}#{dta}#{dtv}#{fns}&db=#{cgi['db']}&view=#{cgi['view']}" end - @canned_base_url="#@base?#{s1}&db=#{cgi['db']}" + @canned_base_url="#{@base}?#{s1}&db=#{cgi['db']}" if checked_case=~/\S/ @search[:text][1]=%{documents.clean~'#{@search_for.text1}'} #s1 @search[:endnotes][1]=%{endnotes.clean~'#{@search_for.text1}'} #s1 @@ -705,7 +706,7 @@ module SiSU_CGI_sql end canned_note='search url:' else - @@canned_search_url="#@base?db=#{@db}&view=index" + @@canned_search_url="#{@base}?db=#{@db}&view=index" canned_note='search url example:' end if search_field =~/\S+/ @@ -748,7 +749,7 @@ module SiSU_CGI_sql p_filename=%{filename: #{green}#{@search_for.filename}</font><br />} if @search_for.filename =~/\S+/ search_note=<<-WOK <font size="2" color="#666666"> - <b>database:</b> #{green}#@db</font>; <b>selected view:</b> #{green}#{cgi['view']}</font> + <b>database:</b> #{green}#{@db}</font>; <b>selected view:</b> #{green}#{cgi['view']}</font> <b>search string:</b> "#{green}#{analyze_format}</font>"<br /> #{p_text} #{p_keywords} #{p_title} #{p_author} #{p_subject} #{p_description} #{p_publisher} #{p_contributor} #{p_date} #{p_type} #{p_format} #{p_identifier} #{p_source} #{p_language} #{p_relation} #{p_coverage} #{p_rights} #{p_comment} #{p_abstract} #{p_filename} </font> @@ -805,10 +806,10 @@ module SiSU_CGI_sql ti=if c['subtitle'] =~/\S+/; "#{c['title']} - #{c['subtitle']}" else c['title'] end - can_txt_srch=if cgi['view']=~/index/; %{<a href="#{@canned_base_url}&fns=#{c['filename']}&view=text"><img border="0" width="12" height="12" src="#@image_src/bullet_red.png" alt="red bullet"></a> } - else %{<a href="#{@canned_base_url}&fns=#{c['filename']}&view=index"><img border="0" width="12" height="12" src="#@image_src/bullet_red.png" alt="red bullet"></a> } + can_txt_srch=if cgi['view']=~/index/; %{<a href="#{@canned_base_url}&fns=#{c['filename']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } + else %{<a href="#{@canned_base_url}&fns=#{c['filename']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } end - title=%{<span style="background-color: #@color_heading"><a href="#@hosturl_files/#@stub/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#@image_src/b_toc.png" alt="toc html"> #{ti}</a></span> by #{c['creator']} #{can_txt_srch}<a href="#@hosturl_files/#@stub/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#@image_src/b_toc.png" alt="toc html"></a> <a href="#@hosturl_files/#@stub/#{location}/portrait#{lang}.pdf"><img border="0" width="15" height="18" src="#@image_src/b_pdf.png" alt="pdf portrait"></a> <a href="#@hosturl_files/#@stub/#{location}/landscape#{lang}.pdf"><img border="0" width="18" height="15" src="#@image_src/b_pdf.png" alt="pdf landscape"></a> <a href="#@hosturl_files/#@stub/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#@image_src/b_odf.png" alt="odf"></a> <a href="#@hosturl_files/#@stub/#{location}/sisu_manifest#{lang}.html"><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="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{c['creator']} #{can_txt_srch}<a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/portrait#{lang}.pdf"><img border="0" width="15" height="18" src="#{@image_src}/b_pdf.png" alt="pdf portrait"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/landscape#{lang}.pdf"><img border="0" width="18" height="15" src="#{@image_src}/b_pdf.png" alt="pdf landscape"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#{@image_src}/b_odf.png" alt="odf"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/sisu_manifest#{lang}.html"><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 if @text_search_flag; title='<br /><hr>'+title else title='<br />'+title end @@ -844,10 +845,10 @@ module SiSU_CGI_sql else nil end matched_para=if (@search_regx.to_s.class==String && @search_regx.to_s=~/\S\S+/) - matched=c['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#@search_regx)/mi,%{<span style="background-color: #@color_match">\\1</span>}) + matched=c['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>}) else c['body'] end - %{<hr><p><font size="2">ocn <b><a href="#@hosturl_files/#@stub/#{location}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a></b>:</font></p>#{matched_para}} + %{<hr><p><font size="2">ocn <b><a href="#{@hosturl_files}/#{@stub}/#{location}/#{c['seg']}#{lang}.html##{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 @@ -857,9 +858,9 @@ module SiSU_CGI_sql end else #elsif cgi['view']=~/index/ #% idx body if c['suffix'] !~/1/ #seg - index=%{<a href="#@hosturl_files/#@stub/#{location}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag + index=%{<a href="#{@hosturl_files}/#{@stub}/#{location}/#{c['seg']}#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } if @text_search_flag elsif c['suffix'] =~/1/ #doc - index=%{<a href="#@hosturl_files/#@stub/#{location}/doc#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } + index=%{<a href="#{@hosturl_files}/#{@stub}/#{location}/doc#{lang}.html##{c['ocn']}">#{c['ocn']}</a>, } end if c['seg'] =~/\S+/ if @text_search_flag @@ -884,7 +885,7 @@ module SiSU_CGI_sql over='' false end - %{<hr /><font size="2" color="#666666">Found in the main body of #@counter_txt_doc documents, and at #{over} #@counter_txt_ocn locations within.</font><br />} + %{<hr /><font size="2" color="#666666">Found in the main body of #{@counter_txt_doc} documents, and at #{over} #{@counter_txt_ocn} locations within.</font><br />} else '' end else '' @@ -908,10 +909,10 @@ module SiSU_CGI_sql ti=if e['subtitle'] =~/\S+/; "#{e['title']} - #{e['subtitle']}" else e['title'] end - can_txt_srch=if cgi['view']=~/index/; %{<a href="#{@canned_base_url}&fns=#{e['filename']}&view=text"><img border="0" width="12" height="12" src="#@image_src/bullet_red.png" alt="red bullet"></a> } - else %{<a href="#{@canned_base_url}&fns=#{e['filename']}&view=index"><img border="0" width="12" height="12" src="#@image_src/bullet_red.png" alt="red bullet"></a> } + can_txt_srch=if cgi['view']=~/index/; %{<a href="#{@canned_base_url}&fns=#{e['filename']}&view=text"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } + else %{<a href="#{@canned_base_url}&fns=#{e['filename']}&view=index"><img border="0" width="24" height="16" src="#{@image_src}/b_search.png" alt="search"></a> } end - title=%{<br /><hr><span style="background-color: #@color_heading"><a href="#@hosturl_files/#@stub/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#@image_src/b_toc.png" alt="toc html"> #{ti}</a></span> by #{e['creator']} #{can_txt_srch}<a href="#@hosturl_files/#@stub/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#@image_src/b_toc.png" alt="toc html"></a> <a href="#@hosturl_files/#@stub/#{location}/portrait.pdf"><img border="0" width="15" height="18" src="#@image_src/b_pdf.png" alt="pdf portrait"></a> <a href="#@hosturl_files/#@stub/#{location}/landscape.pdf"><img border="0" width="18" height="15" src="#@image_src/b_pdf.png" alt="pdf landscape"></a> <a href="#@hosturl_files/#@stub/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#@image_src/b_odf.png" alt="odf"></a> <a href="#@hosturl_files/#@stub/#{location}/sisu_manifest#{lang}.html"><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="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"> #{ti}</a></span> by #{e['creator']} #{can_txt_srch}<a href="#{@hosturl_files}/#{@stub}/#{location}/toc#{lang}.html"><img border="0" width="15" height="18" src="#{@image_src}/b_toc.png" alt="toc html"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/portrait.pdf"><img border="0" width="15" height="18" src="#{@image_src}/b_pdf.png" alt="pdf portrait"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/landscape.pdf"><img border="0" width="18" height="15" src="#{@image_src}/b_pdf.png" alt="pdf landscape"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/opendocument#{lang}.odt"><img border="0" width="15" height="15" src="#{@image_src}/b_odf.png" alt="odf"></a> <a href="#{@hosturl_files}/#{@stub}/#{location}/sisu_manifest#{lang}.html"><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 = '' @@ -920,13 +921,13 @@ module SiSU_CGI_sql or (cgi['view']!~/index/ and cgi['search'] !~/search db/) #% txt endnotes @counter_endn_ocn+=1 matched_endnote=if (@search_regx.to_s.class==String && @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>}) + matched=e['body'].gsub(/(<a\s+href="https?:\/\/[^><\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{<span style="background-color: #{@color_match}">\\1</span>}) else e['body'] end - output=%{#{title}<hr><font size="2">note <b><a href="#@hosturl_files/#@stub/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#@hosturl_files/#@stub/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}} + output=%{#{title}<hr><font size="2">note <b><a href="#{@hosturl_files}/#{@stub}/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a></b> referred to from ocn <a href="#{@hosturl_files}/#{@stub}/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>:</font> #{matched_endnote}} else #elsif cgi['view']=~/index/ #% idx endnotes @counter_endn_ocn+=1 - output=%{#{title}<a href="#@hosturl_files/#@stub/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#@hosturl_files/#@stub/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>], } + output=%{#{title}<a href="#{@hosturl_files}/#{@stub}/#{location}/endnotes.html#_#{e['nr']}">#{e['nr']}</a> [§ <a href="#{@hosturl_files}/#{@stub}/#{location}/doc.html##{e['ocn']}">#{e['ocn']}</a>], } end @counters_endn=if @counter_endn_doc > 0 if checked_stats =~/\S/ @@ -937,7 +938,7 @@ module SiSU_CGI_sql over='' false end - %{<font size="2" color="#666666">Found in the endnotes of #@counter_endn_doc documents, and at #{over} #@counter_endn_ocn locations within.</font><br />} + %{<font size="2" color="#666666">Found in the endnotes of #{@counter_endn_doc} documents, and at #{over} #{@counter_endn_ocn} locations within.</font><br />} else '' end end diff --git a/lib/sisu/v1/cgi_sqlite.rb b/lib/sisu/v1/cgi_sqlite.rb index 34cb67dc..9a2be6dd 100644 --- a/lib/sisu/v1/cgi_sqlite.rb +++ b/lib/sisu/v1/cgi_sqlite.rb @@ -148,8 +148,8 @@ module SiSU_CGI_sqlite elsif @q =~/\S+/; unescaped_search=CGI.unescape(@q) end search_construct=[] - unescaped_search.gsub!(/\s*(AND|OR)\s*/,"%' \) \\1 #@l LIKE \( '%") - unescaped_search.gsub!(/(.+)/,"#@l LIKE \( '%\\1%' \)") + unescaped_search.gsub!(/\s*(AND|OR)\s*/,"%' \) \\1 #{@l} LIKE \( '%") + unescaped_search.gsub!(/(.+)/,"#{@l} LIKE \( '%\\1%' \)") search_construct << unescaped_search search_construct=search_construct.join(' ') search[:search] << search_construct diff --git a/lib/sisu/v1/constants.rb b/lib/sisu/v1/constants.rb index 5c93d543..b2fdf5a1 100644 --- a/lib/sisu/v1/constants.rb +++ b/lib/sisu/v1/constants.rb @@ -167,6 +167,6 @@ check: ‹ › ∗ '〔lv1〕','〔lv2〕','〔lv3〕','〔lv4〕','〔lv5〕','〔lv6〕','〔lv7〕','〔lv8〕','〔lv9〕' '〔 Ѳ1〕','〔 Ѳ2〕','〔 Ѳ3〕','〔 Ѳ4〕','〔 Ѳ5〕','〔Ѳ6〕','〔Ѳ7〕','〔Ѳ8〕','〔Ѳ9〕' -◁▷ +◁▷ ◀this is text or an image▶ http:// diff --git a/lib/sisu/v1/css.rb b/lib/sisu/v1/css.rb index ced72d17..60ebf35c 100644 --- a/lib/sisu/v1/css.rb +++ b/lib/sisu/v1/css.rb @@ -104,8 +104,8 @@ WOK /* SiSU harvest css default stylesheet */ body { color: black; - background: "#ffffff"; - background-color: "#ffffff"; + background: #ffffff; + background-color: #ffffff; } a:link { color: #003399; @@ -120,7 +120,7 @@ WOK background-color: #f9f9aa; } a:hover img { - background-color: "#ffffff"; + background-color: #ffffff; } a:active { color: #003399; @@ -229,13 +229,13 @@ WOK } WOK end - def html #stylesheet for css html pages == html.css + def html #stylesheet for css html pages== html.css <<WOK /* SiSU css default stylesheet */ body { color: black; - background: "#ffffff"; - background-color: "#ffffff"; + background: #ffffff; + background-color: #ffffff; } /* table { @@ -245,7 +245,7 @@ WOK tr { display: block; } - th, td { + th,td { display: inline; vertical-align: top; } @@ -269,7 +269,7 @@ WOK } */ a:hover img { - background-color: "#ffffff"; + background-color: #ffffff; } a:active { color: #003399; @@ -429,6 +429,7 @@ WOK font-family: inconsolata, andale mono, courier new, courier, monospace; font-size: 90%; text-align: left; + background-color: #eeeeee; } p.caption { diff --git a/lib/sisu/v1/dal_doc_str.rb b/lib/sisu/v1/dal_doc_str.rb index 2e135243..bed3115c 100644 --- a/lib/sisu/v1/dal_doc_str.rb +++ b/lib/sisu/v1/dal_doc_str.rb @@ -101,6 +101,7 @@ module SiSU_document_structure @para.gsub!(/^:?B~\s+/,"#{Mx[:lv_o]}2:#{Mx[:lv_c]}") @para.gsub!(/^:?A~(\S+)/,"#{Mx[:lv_o]}1:\\1#{Mx[:lv_c]}") @para.gsub!(/^:?A~\s+/,"#{Mx[:lv_o]}1:#{Mx[:lv_c]}") + @para.gsub!(/^:?A~\s*$/,"#{Mx[:lv_o]}1:#{Mx[:lv_c]} @title @author") @para=if @para =~/^@(?:level|markup):\s/ @para.gsub!(/3/,'6') @para.gsub!(/2/,'5') diff --git a/lib/sisu/v1/dal_images.rb b/lib/sisu/v1/dal_images.rb index 1882aea5..2e3e3fdd 100644 --- a/lib/sisu/v1/dal_images.rb +++ b/lib/sisu/v1/dal_images.rb @@ -22,7 +22,7 @@ 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 + 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 diff --git a/lib/sisu/v1/dal_substitutions_and_insertions.rb b/lib/sisu/v1/dal_substitutions_and_insertions.rb index cadae8a7..1ffb22d4 100644 --- a/lib/sisu/v1/dal_substitutions_and_insertions.rb +++ b/lib/sisu/v1/dal_substitutions_and_insertions.rb @@ -79,29 +79,55 @@ module SiSU_substitute_and_insert @skin.select ins=SiSU_Viz::Inserts.new case para - when /^\s*<:insert1>\s*$/ - para=[] - ins.insert1.split(/\n\n/).each{|x| para << x } - when /^\s*<:insert2>\s*$/ - para=[] - ins.insert2.split(/\n\n/).each{|x| para << x } - when /^\s*<:insert3>\s*$/ - para=[] - ins.insert3.split(/\n\n/).each{|x| para << x << "\n"} - para=ins.insert3 - when /^\s*<:insert4>\s*$/ - para=[] - ins.insert4.split(/\n\n/).each{|x| para << x << "\n"} - para=ins.insert4 - when /^\s*<:insert5>\s*$/ - para=[] - ins.insert5.split(/\n\n/).each{|x| para << x << "\n"} - when /^\s*<:insert6>\s*$/ - para=[] - ins.insert6.split(/\n\n/).each{|x| para << x << "\n"} - when /^\s*<:insert7>\s*$/ - para=[] - ins.insert7.split(/\n\n/).each{|x| para << x << "\n"} + when /^\s*<:(insert1)>\s*$/ + i=$1 + 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 } else data_expand << para @@ -126,4 +152,3 @@ module SiSU_substitute_and_insert end end __END__ - diff --git a/lib/sisu/v1/dal_syntax.rb b/lib/sisu/v1/dal_syntax.rb index e917621a..c6bab08f 100644 --- a/lib/sisu/v1/dal_syntax.rb +++ b/lib/sisu/v1/dal_syntax.rb @@ -252,18 +252,12 @@ module SiSU_Syntax line.gsub!(/~\{(.+?)\}~/m,Mx[:en_a_o] + '\1' + Mx[:en_a_c]) line.gsub!(/~\[([^*+].+?)\]~/m,Mx[:en_b_o] + '* \1' + Mx[:en_b_c]) #default if markup does not specify line.gsub!(/~\[(.+?)\]~/m,Mx[:en_b_o] + '\1' + Mx[:en_b_c]) - if @md.subtitle and not @md.subtitle.empty? - if line =~/(?:by\s+)?(?:@creator|@author)/ - line.gsub!(/^(#{Mx[:lv_o]}1:\??#{Mx[:lv_c]})\s*@title\s+(?:(by\s+)?(?:@creator|@author))\s*$/,"\\1#{@md.title} - #{@md.subtitle},<br />\\2#{@md.author}") - else - line.gsub!(/^(#{Mx[:lv_o]}1:\??#{Mx[:lv_c]})\s*@title\s*$/,"\\1 #{@md.title} - #{@md.subtitle}") - end - else - if line =~/(?:by\s+)?(?:@creator|@author)/ - line.gsub!(/^(#{Mx[:lv_o]}1:\??#{Mx[:lv_c]})\s*@title\s+(?:(by\s+)?(?:@creator|@author))\s*$/,"\\1#{@md.title},<br />\\2#{@md.author}") - else - line.gsub!(/^(#{Mx[:lv_o]}1:\??#{Mx[:lv_c]})\s*@title\s*$/,"\\1 #{@md.title}") + if line =~/^#{Mx[:lv_o]}1:\S*?#{Mx[:lv_c]}/ + if @md.subtitle and not @md.subtitle.empty? + line.gsub!(/\s*@title\b/," #{@md.title} - #{@md.subtitle}") + else line.gsub!(/\s*@title\b/," #{@md.title}") end + line.gsub!(/\s+(?:@creator|@author)/,",<br />#{@md.author}") end line.gsub!(/^(1~\??) @title\s*$/,"\\1 #{@md.title} - #{@md.subtitle}") # line.gsub!(/^(#{Mx[:lv_o]}[23]:\??#{Mx[:lv_c]}) (?:(by\s+)?(?:@creator|@author))\s*$/,"\\1 \\2#{@md.author}") # diff --git a/lib/sisu/v1/db_import.rb b/lib/sisu/v1/db_import.rb index 7268616b..3ead75f6 100644 --- a/lib/sisu/v1/db_import.rb +++ b/lib/sisu/v1/db_import.rb @@ -1,4 +1,4 @@ -#j coding: utf-8 +# coding: utf-8 =begin * Name: SiSU diff --git a/lib/sisu/v1/harvest_authors.rb b/lib/sisu/v1/harvest_authors.rb index a75c9ce8..e413b1d2 100644 --- a/lib/sisu/v1/harvest_authors.rb +++ b/lib/sisu/v1/harvest_authors.rb @@ -79,9 +79,10 @@ module HARVEST_authors file_array=[] File.open(filename,'r') do |file| file.each_line("\n\n") do |line| - if line =~/^@\S+?: / + if line =~/^@(?:title|subtitle|author|creator|date|original_publication):(?:\s|$)/m file_array << line - elsif line =~/^(?:\s*\n|%+ )/ + elsif line =~/^@\S+?:(?:\s|$)/m \ + or line =~/^(?:\s*\n|%+ )/ else break end end @@ -104,10 +105,10 @@ module HARVEST_authors @orig_pub,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil @authors=[] rgx={} - rgx[:author]=/^@(?:author|creator):\s+(.+)/ + rgx[:author]=/^@(?:author|creator):(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m rgx[:title]=/^@title:\s+(.+)/ - rgx[:subtitle]=/^@subtitle:\s+(.+)/ - rgx[:date]=/^@date:\s+(\d{4})/ + rgx[:subtitle]=/^(?:@subtitle:\s+|@title:.+?:subtitle:[ ]+)(.+)/m + rgx[:date]=/^@date:(?:[ ]+|.+?:published:[ ]+)(\d{4})/m rgx[:orig_pub]=/^@original_publication:\s+(.+)/ data.each do |para| if para=~ rgx[:orig_pub] @@ -127,10 +128,7 @@ module HARVEST_authors end break if @title and @subtitle and @author and @date and @orig_pub end - @fulltitle=if @subtitle - @title + ' - ' + @subtitle - else @title - end + @fulltitle=@subtitle ? (@title + ' - ' + @subtitle) : @title if @title and @author_format #and @orig_pub (publication details) creator=FORMAT::Author.new(@author_format.strip).author_details @authors,@authorship=creator[:authors],creator[:authorship] @@ -144,7 +142,7 @@ module HARVEST_authors page="sisu_manifest#{lang}.html" idx_array <<= { :filename => filename, :file => file, :orig_pub => @orig_pub, :date => @date, :title => @fulltitle, :author => creator, :page => page } else - #p "missing author field: #@filename title: #@title; author: #@author_format; idx: #@orig_pub" + #p "missing author field: #{@filename} title: #{@title}; author: #{@author_format}; idx: #{@orig_pub}" end idx_array.flatten! idx_array @@ -191,7 +189,7 @@ module HARVEST_authors end def html_file_close @output[:html].close - @output[:html_mnt].close if @output[:html_mnt].class == File + @output[:html_mnt].close if @output[:html_mnt].class==File end def html_print def html_songsheet @@ -239,12 +237,9 @@ WOK a=[] a << '<p>' @alph.each do |x| - a << if x =~/[0-9]/; '' - else - %{<a href="##{x}">#{x}</a>, } - end + a << (x =~/[0-9]/) ? '' : %{<a href="##{x}">#{x}</a>, } end - @output[:html_mnt] << a.join if @output[:html_mnt].class == File + @output[:html_mnt] << a.join if @output[:html_mnt].class==File @output[:html] << a.join end def html_tail @@ -261,11 +256,11 @@ WOK </body> </html> WOK - @output[:html_mnt] << a if @output[:html_mnt].class == File + @output[:html_mnt] << a if @output[:html_mnt].class==File @output[:html] << a end def do_html(html) - @output[:html_mnt] << html if @output[:html_mnt].class == File + @output[:html_mnt] << html if @output[:html_mnt].class==File @output[:html] << html end def do_string(attrib,string) @@ -278,7 +273,7 @@ WOK while @letter < f if @alph.length > 0 @letter=@alph.shift - if @output[:html_mnt].class == File + if @output[:html_mnt].class==File @output[:html_mnt] << %{\n<p class="letter"><a name="#{@letter}"></p>#{@letter}</a><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} end @output[:html] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} @@ -293,21 +288,21 @@ WOK do_string_name('',a) name=a[0].sub(/(.+?)(?:,.+|$)/,'\1').gsub(/\s+/,'_') x = %{<p class="author"><a name="#{name}">#{a[0]}</a></p>} - if @output[:html_mnt].class == File + if @output[:html_mnt].class==File @output[:html_mnt] << x end @output[:html] << x works=[] a[1][:md].each do |x| work=[ "#{x[:date]} #{x[:title]}", %{<p class="publication">#{x[:date]} <a href="../#{x[:file]}/#{x[:page]}">#{x[:title]}</a>, #{x[:author][:authors_s]}</p>} ] - works<<=if @output[:html_mnt].class == File + works<<=if @output[:html_mnt].class==File work.concat([%{<p class="publication">[<a href="#{x[:file]}.sst">src</a>] #{x[:date]} <a href="file://#{@env.path.output}/#{x[:file]}/#{x[:page]}">#{x[:title]}</a>, #{x[:author][:authors_s]} -- [<a href="#{x[:file]}.sst">#{x[:file]}.sst</a>]</p>}]) else work end end works.sort_by {|x| x[0]}.each do |x| @output[:html] << x[1] - @output[:html_mnt] << x[2] if @output[:html_mnt].class == File + @output[:html_mnt] << x[2] if @output[:html_mnt].class==File end end end diff --git a/lib/sisu/v1/harvest_topics.rb b/lib/sisu/v1/harvest_topics.rb index 1ab62a95..f1274b40 100644 --- a/lib/sisu/v1/harvest_topics.rb +++ b/lib/sisu/v1/harvest_topics.rb @@ -79,10 +79,10 @@ module HARVEST_topics file_array=[] File.open(filename,'r') do |file| file.each_line("\n\n") do |line| - if line =~/^@\S+?: / - #line=line.gsub(/\n/,' ') + if line =~/^@(?:title|subtitle|author|creator|classify|topic_register|date):(?:\s|$)/m file_array << line - elsif line =~/^(?:\s*\n|%+ )/ + elsif line =~/^@\S+?:(?:\s|$)/m \ + or line =~/^(?:\s*\n|%+ )/ else break end end @@ -105,10 +105,10 @@ module HARVEST_topics data,filename,idx_array=@data,@filename,@idx_array @idx_lst,@title,@subtitle,@fulltitle,@author,@author_format=nil,nil,nil,nil,nil,nil rgx={} - rgx[:author]=/^@(?:author|creator):\s+(.+)/ + rgx[:author]=/^@(?:author|creator):(?:[ ]+|.+?:author:[ ]+)(.+?)(?:\||\n)/m rgx[:title]=/^@title:\s+(.+)/ - rgx[:subtitle]=/^@subtitle:\s+(.+)/ - rgx[:idx]=/^@topic_register:\s+(.+)/ + rgx[:subtitle]=/^(?:@subtitle:\s+|@title:.+?:subtitle:[ ]+)(.+)/m + rgx[:idx]=/^(?:@topic_register:[ ]+|@classify:.+?:topic_register:[ ]+)(.+?)\n/m data.each do |para| if para=~ rgx[:idx] @idx_list=rgx[:idx].match(para)[1] @@ -124,10 +124,7 @@ module HARVEST_topics end break if @title and @subtitle and @author and @idx_lst end - @fulltitle=if @subtitle - @title + ' - ' + @subtitle - else @title - end + @fulltitle=@subtitle ? (@title + ' - ' + @subtitle) : @title if @title and @author_format and @idx_list creator=FORMAT::Author.new(@author_format.strip).author_details @authors,@authorship=creator[:authors],creator[:authorship] @@ -196,7 +193,7 @@ module HARVEST_topics if @@the_idx_topics[lv0].class==NilClass @@the_idx_topics[lv0]={:md => []} end - @lv0=lv0 if lev0.length == 1 + @lv0=lv0 if lev0.length==1 j=@@the_idx_topics[lv0][:md] contents(j,idx) if idx_lst_alt.length - 1 == t end @@ -207,7 +204,7 @@ module HARVEST_topics if @@the_idx_topics[@lv0][lv1].class==NilClass @@the_idx_topics[@lv0][lv1]={:md => []} end - @lv1=lv1 if lev1.length == 1 + @lv1=lv1 if lev1.length==1 j=@@the_idx_topics[@lv0][lv1][:md] contents(j,idx) if idx_lst_alt.length - 1 == t end @@ -218,7 +215,7 @@ module HARVEST_topics if @@the_idx_topics[@lv0][@lv1][lv2].class==NilClass @@the_idx_topics[@lv0][@lv1][lv2]={:md => []} end - @lv2=lv2 if lev2.length == 1 + @lv2=lv2 if lev2.length==1 j=@@the_idx_topics[@lv0][@lv1][lv2][:md] contents(j,idx) if idx_lst_alt.length - 1 == t end @@ -229,7 +226,7 @@ module HARVEST_topics if @@the_idx_topics[@lv0][@lv1][@lv2][lv3].class==NilClass @@the_idx_topics[@lv0][@lv1][@lv2][lv3]={:md => []} end - @lv3=lv3 if lev3.length == 1 + @lv3=lv3 if lev3.length==1 j=@@the_idx_topics[@lv0][@lv1][@lv2][lv3][:md] contents(j,idx) if idx_lst_alt.length - 1 == t end @@ -240,7 +237,7 @@ module HARVEST_topics if @@the_idx_topics[@lv0][@lv1][@lv2][@lv3][lv4].class==NilClass @@the_idx_topics[@lv0][@lv1][@lv2][@lv3][lv4]={:md => []} end - @lv4=lv4 if lev4.length == 1 + @lv4=lv4 if lev4.length==1 j=@@the_idx_topics[@lv0][@lv1][@lv2][@lv3][lv4][:md] contents(j,idx) if idx_lst_alt.length - 1 == t end @@ -269,7 +266,7 @@ module HARVEST_topics end def html_file_close @output[:html].close - @output[:html_mnt].close if @output[:html_mnt].class == File + @output[:html_mnt].close if @output[:html_mnt].class==File end def html_print def html_songsheet @@ -339,19 +336,19 @@ WOK </body> </html> WOK - @output[:html_mnt] << a if @output[:html_mnt].class == File + @output[:html_mnt] << a if @output[:html_mnt].class==File @output[:html] << a end def do_html(html) @output[:html] << html end def do_html_maintenance(html) - @output[:html_mnt] << html if @output[:html_mnt].class == File + @output[:html_mnt] << html if @output[:html_mnt].class==File end def do_string(attrib,string) html=%{<p class="#{attrib}">#{string}</p>} do_html(html) - do_html_maintenance(html) if @output[:html_mnt].class == File + do_html_maintenance(html) if @output[:html_mnt].class==File end def do_string_default(attrib,string) html=%{<p class="#{attrib}">#{string}</p>} @@ -359,7 +356,7 @@ WOK end def do_string_maintenance(attrib,string) html=%{<p class="#{attrib}">#{string}</p>} - do_html_maintenance(html) if @output[:html_mnt].class == File + do_html_maintenance(html) if @output[:html_mnt].class==File end def do_string_name(attrib,string) f=/^(\S)/.match(string)[1] @@ -367,7 +364,7 @@ WOK while @letter < f if @alph.length > 0 @letter=@alph.shift - if @output[:html_mnt].class == File + if @output[:html_mnt].class==File @output[:html_mnt] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} end @output[:html] << %{\n<p class="letter"><a name="#{@letter}">#{@letter}</a></p><p class="book_index_lev1"><a name="#{@letter.downcase}"></a></p>} @@ -378,7 +375,7 @@ WOK name=string.strip.gsub(/\s+/,'_') html=%{<p class="#{attrib}"><a name="#{name}">#{string}</a></p>} do_html(html) - do_html_maintenance(html) if @output[:html_mnt].class == File + do_html_maintenance(html) if @output[:html_mnt].class==File end def do_array(lv,array) lv+=1 @@ -391,7 +388,7 @@ WOK do_string_default(attrib,html) end def do_hash_md_maintenance(attrib,hash) - if @output[:html_mnt].class == File #should not be run for presentation output + if @output[:html_mnt].class==File #should not be run for presentation output html=%{[<a href="#{hash[:file]}.sst">src</a>] <a href="file://#{@env.path.output}/#{hash[:file]}/#{hash[:page]}">#{hash[:title]}</a> - #{hash[:author]}} do_string_maintenance(attrib,html) end @@ -412,10 +409,7 @@ WOK if key.length > 0 key.sort.each do |m| attrib="lev#{lv}" - if lv == 0 - do_string_name(attrib,m) - else do_string(attrib,m) - end + lv==0 ? do_string_name(attrib,m) : do_string(attrib,m) do_case(lv,hash[m]) end end @@ -423,16 +417,12 @@ WOK def do_case(lv,a) y = a.class case - when y == String + when y==String attrib="lev#{lv}" - if lv == 0 - do_string_name(attrib,a) - else do_string(attrib,a) - end - #do_string_name(attrib,a) - when y == Array + lv==0 ? do_string_name(attrib,a) : do_string(attrib,a) + when y==Array do_array(lv,a) - when y == Hash + when y==Hash do_hash(lv,a) end end @@ -482,11 +472,11 @@ WOK s=' '*4 y = a.class case - when y == String + when y==String do_string(lv,a) - when y == Array + when y==Array do_array(lv,a) - when y == Hash + when y==Hash do_hash(lv,a) end end @@ -533,11 +523,11 @@ WOK s=' '*4 y = a.class case - when y == String + when y==String do_string(lv,a) - when y == Array + when y==Array do_array(lv,a) - when y == Hash + when y==Hash do_hash(lv,a) end end diff --git a/lib/sisu/v1/help.rb b/lib/sisu/v1/help.rb index cd5eaf25..101f673b 100644 --- a/lib/sisu/v1/help.rb +++ b/lib/sisu/v1/help.rb @@ -269,11 +269,11 @@ WOK #{@cX.ruby}-M#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} maintenance mode, files created for processing are not deleted, and their locations are indicated (also see -V) - #{@cX.ruby}-m#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} create (new)metaVerse (used in all subsequent processing). Produce a meta file, the first step in processing, and the file all subsequent processing utilize. (Should usually be run together with other commands to ensure that the lated version of markup source document is used, i.e. add -m flag to other flags required). + #{@cX.ruby}-m#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} assumed for most other flags, creates new intermediate files for processing (document abstraction) that is used in all subsequent processing of other output. This step is assumed for most processing flags. To skip it see -n #{@cX.ruby}-N#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} document content certificate as md5 digest tree of document produced (as digest.txt), the digest for the document, and digests for each object contained within the document (together with information on software versions that produced it). Try -mNV for verbose digest output to screen - #{@cX.ruby}-n#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} skip meta-markup (building of "metaverse"), this skips the equivalent of -m + #{@cX.ruby}-n#{@cX.off} #{@cX.green}[filename/wildcard/url]#{@cX.off} skip the creation of intermediate processing files (document abstraction) if they already exist, this skips the equivalent of -m which is otherwise assumed by most processing flags. #{@cX.ruby}-p#{@cX.off} #{@cX.green}[filename/wildcard]#{@cX.off} produces LaTeX pdf (portrait & landscape). Default paper size is set in config file, or document header, or provided with additional command line parameter, e.g. --papersize='a4' preset sizes include: 'A4', U.S. 'letter' and 'legal' and book sizes 'A5' and 'B5' (system defaults to A4). diff --git a/lib/sisu/v1/manpage.rb b/lib/sisu/v1/manpage.rb index 7129e45a..d3886fc2 100644 --- a/lib/sisu/v1/manpage.rb +++ b/lib/sisu/v1/manpage.rb @@ -270,6 +270,9 @@ WOK para.gsub!(/#{Mx[:gl_bullet]}\s*/,'* ') # bullet markup, marked down para.gsub!(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,'^\1^') para.gsub!(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,'[\1]') + para.gsub!(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'++\1++') + para.gsub!(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'--\1--') + para.gsub!(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'"\1"') para.gsub!(/\A\s*#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}#{Mx[:br_line]}/m,"#{Mx[:br_line]}.I \\1#{Mx[:br_line]}") para.gsub!(/\s*#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/m,"#{Mx[:br_line]}.I \\1#{Mx[:br_line]}") para.gsub!(/\A\s*#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}#{Mx[:br_line]}/m,"#{Mx[:br_line]}.BI \\1#{Mx[:br_line]}") @@ -330,7 +333,7 @@ WOK para.gsub!(/<a href=".+?">(.+?)<\/a>/m,'\1') para.gsub!(/#{Mx[:mk_o]}name#\S+?#{Mx[:mk_c]}/,'') # remove name links para.gsub!(/ |#{Mx[:nbsp]}/,' ') # decide on - para.gsub!(/(["''])/,"\\\\\\1") # quotation marks need escape + #para.gsub!(/(["''])/,"\\\\\\1") #check note claims that quotation marks need escape, however that appears to result in error para.gsub!(/(?:^|[^_\\])#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg|gif)) .+?#{Mx[:lnk_c]}(?:(?:https?|file|ftp):\/\/\S+|image)/,' [ \1 ]') #"[ #{dir.url.images_local}\/\\1 ]") para.gsub!(/^(?:^|[^_\\])#{Mx[:lnk_o]}\s*\S+?\.(?:png|jpg|gif)\s+.+?"(.*?)"\s*#{Mx[:lnk_c]}\S+/,'[image: "\1"]') wordlist=para.scan(/\S+/) diff --git a/lib/sisu/v1/param.rb b/lib/sisu/v1/param.rb index 4efdebb5..72593207 100644 --- a/lib/sisu/v1/param.rb +++ b/lib/sisu/v1/param.rb @@ -82,7 +82,7 @@ module SiSU_Param @fns=opt.fns.gsub(/\.ssm$/,'.ssm.sst') #revisit CHECK Instantiate.new.param_instantiate @env=SiSU_Env::Info_env.new(@fns) - @pstorefile="#{@env.path.dal}/#@fns.pstore" + @pstorefile="#{@env.path.dal}/#{@fns}.pstore" end def get unless @@fns==@fns @@ -233,13 +233,13 @@ module SiSU_Param @flag_auto_heading_num=false if @fns =~ /(?:-|ssm\.)?sst$/ #watch @env_out_root=@env.path.output - @dir_out="#{@env.path.output}/#@fnb" + @dir_out="#{@env.path.output}/#{@fnb}" @dir_tex=@env.path.tex @dir_lout=@env.path.lout @@publisher='SiSU http://www.jus.uio.no/sisu' end @txt_path=@txt_path ||= @env.path.output - @stmp=%{#@fns}[/^(.+?)\..*/m,1] + @stmp=%{#{@fns}}[/^(.+?)\..*/m,1] @fnstex=@fns.gsub(/_/,'\_') @flag_separate_endnotes=false @flag_separate_endnotes_make=true @@ -260,10 +260,10 @@ module SiSU_Param else '' end s_a,s_b,s_c=@sisu_version[:version].match(/^([0-9]+)?(?:\.([0-9]+))?(?:\.([0-9]+))?(?:\-\S+)?$/)[1..3] - tell=if @markup_version_declared.to_f == @markup_version.to_f - SiSU_Screen::Ansi.new(@cmd,"Markup version (#@markup_version)",sv) + tell=if @markup_version_declared.to_f==@markup_version.to_f + SiSU_Screen::Ansi.new(@cmd,"Markup version (#{@markup_version})",sv) else - SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#@markup_version_declared), determined (#@markup_version)",sv) + SiSU_Screen::Ansi.new(@cmd,"Markup version declared (#{@markup_version_declared}), determined (#{@markup_version})",sv) end ok=if s_a.to_i > sm_a.to_i true @@ -279,7 +279,7 @@ module SiSU_Param if ok tell.txt_green if @cmd =~/[vVM]/ else - tell=SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#@markup_version) or markup version declared (#@markup_version_declared) is newer than SiSU version (#{@sisu_version[:version]})") + tell=SiSU_Screen::Ansi.new(@cmd,"Warning: markup version determined (#{@markup_version}) or markup version declared (#{@markup_version_declared}) is newer than SiSU version (#{@sisu_version[:version]})") tell.warn unless @cmd =~/q/ end else @@ -294,19 +294,19 @@ module SiSU_Param fns_array.each do |para| #% Scan document if para !~/^%+\s/ \ and para =~/<![abcdeghijklmnopqrstuvwxyz]/i # <!f not included - raise "Old markup style in file #@fns, current version #{@sisu_version[:project]} #{@sisu_version[:version]} #{@sisu_version[:date_stamp]} #{@sisu_version[:date]}:\n\t\t#{para}\n\n" + raise "Old markup style in file #{@fns}, current version #{@sisu_version[:project]} #{@sisu_version[:version]} #{@sisu_version[:date_stamp]} #{@sisu_version[:date]}:\n\t\t#{para}\n\n" end @code_flag=case para when /^code\{\s*$/; true when /^\}code\s*$/; false else @code_flag end - regx_header=/^(?:@\S+?:[+-]?\s|0~\S+)/ + regx_header=/^@\S+?:[+-]?\s/ if para =~regx_header \ and not @code_flag #or para=~/^(?:1|:?A)~/ case para - when /^(?:@ocn:|0~ocn)\s+(.+?)$/m; @ocn=$1 #% processing - when /^(?:@title:|0~title)\s+(.+?)$/m #% metainfo DC + when /^@ocn:\s+(.+?)$/m; @ocn=$1 #% processing + when /^@title:\s+(.+?)$/m #% metainfo DC @title=$1.strip @full_title=@title.dup @html_title=@title.gsub(/(<p>|<p \/>|<br>|<br \/>)/,'') @@ -315,41 +315,46 @@ module SiSU_Param @html_title.chomp!(' ') tell=SiSU_Screen::Ansi.new(@cmd,'Parameters',@html_title) tell.txt_grey unless @cmd =~/q/ - when /^(?:@subtitle:|0~subtitle)\s+(.+?)$/m #% metainfo + when /^@subtitle:\s+(.+?)$/m #% metainfo @subtitle=$1.strip @full_title="#{@title} - #{@subtitle}" @subtitle_tex=@subtitle - when /^(?:@(?:creator|author)-?:|0~(?:creator|author)-?)\s+(.+?)$/ #% metainfo DC + when /^@creator:(?:[ ]+|.+?:author:[ ]+)(.+?)(?:[|]|$)/m #when /^@(?:creator|author):(?:[ ]+|.+?:author:[ ]+)(.+?)(?:[|]|$)/m + names=name_format($1) + @authorship=@author=names[:name_str] + @authors=names[:name_a_h] + when /^@author:\s+(.+?)$/ names=name_format($1) @authorship=@author=names[:name_str] @authors=names[:name_a_h] when /^@(?:creator|author)\.title:\s+(.+?)$/; @author_title=$1 # Prof. Dr. etc. when /^@(?:creator|author)\.nationality:\s+(.+?)$/; @author_nationality=$1 - when /^(?:@(?:translator|translated_by):|0~(?:translator|translated_by))\s+(.+?)$/m #% metainfo + when /^@(?:translator|translated_by):\s+(.+?)$/m #% metainfo names=name_format($1) @translator=names[:name_str] - when /^(?:@(?:illustrator|illustrated_by):|0~(?:illustrator|illustrated_by))\s+(.+?)$/m #% metainfo + when /^@(?:illustrator|illustrated_by):\s+(.+?)$/m #% metainfo names=name_format($1) @illustrator=names[:name_str] - when /^(?:@prepared_by:|0~prepared_by)\s+(.+?)$/m #% metainfo + when /^@prepared_by:\s+(.+?)$/m #% metainfo names=name_format($1) @prepared_by=names[:name_str] - when /^(?:@digitized_by:|0~digitized_by)\s+(.+?)$/m #% metainfo DC + when /^@digitized_by:\s+(.+?)$/m #% metainfo DC names=name_format($1) @digitized_by=names[:name_str] - when /^(?:@subject:|0~subject)\s+(.+?)$/m; @subject=$1 #% metainfo DC - when /^(?:@description:|0~description)\s+(.+?)$/m; @description=$1 #% metainfo DC & rss feed - when /^(?:@contributor:|0~contributor)\s+(.+?)$/m #% metainfo DC + when /^@subject:\s+(.+?)$/m; @subject=$1 #% metainfo DC + when /^@description:\s+(.+?)$/m; @description=$1 #% metainfo DC & rss feed + when /^@contributor:\s+(.+?)$/m #% metainfo DC names=name_format($1) @contributor=names[:name_str] - when /^(?:@publisher:|0~publisher)\s+(.+?)$/m; @publisher=$1 #% metainfo DC + when /^@publisher:\s+(.+?)$/m; @publisher=$1 #% metainfo DC when /^@original_publication:\s+(.+?)$/m; @original_publication=$1 when /^@original_publication\.date:\s+(.+?)$/; @original_publication_date=$1 when /^@original_publication\.nationality:\s+(.+?)$/; @original_publication_nationality=$1 when /^@original_publication\.institution:\s+(.+?)$/; @original_publication_institution=$1 when /^@writing_focus\.nationality:\s+(.+?)$/; @writing_focus=$1 # e.g. Finland (where and article on Finnish law) - when /^(?:@|0~)date.+?$/m #% metainfo DC - if para =~/(?:@date:|0~date)\s+(.+?)$/m + when /^@date:(?:[ ]+|.+?:published:[ ]+)(\d{4})/m #% metainfo DC + #when /^@date.+?$/m #% metainfo DC + if para =~/@date:\s+(.+?)$/m @date=$1.strip #% original publication date unless the substantive text is updated/modified, then date of update if @date !~regx_date \ and not @date.empty? @@ -358,7 +363,7 @@ module SiSU_Param end @date_scheme='scheme="ISO-8601"' if @date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/(?:@date\.added_to_site:|0~date\.added_to_site)\s+(.+?)$/m + if para =~/@date\.added_to_site:\s+(.+?)$/m @date_added_to_site=$1.strip if @date_added_to_site !~regx_date \ and not @date_added_to_site.empty? @@ -367,7 +372,7 @@ module SiSU_Param end @date_scheme='scheme="ISO-8601"' if @date_added_to_site =~/\d{4}-\d{2}-\d{2}/ end - if para =~/(?:@date\.created:|0~date\.created)\s*(.+?)$/m + if para =~/@date\.created:\s*(.+?)$/m date=$1.strip if date !~regx_date \ and not date.empty? @@ -377,7 +382,7 @@ module SiSU_Param @date_created=date @date_created_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/(?:@date\.issued:|0~date\.issued)\s*(.+?)$/m + if para =~/@date\.issued:\s*(.+?)$/m date=$1.strip if date !~regx_date \ and not date.empty? @@ -387,7 +392,7 @@ module SiSU_Param @date_issued=date @date_issued_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/(?:@date\.available:|0~date\.available)\s*(.+?)$/m + if para =~/@date\.available:\s*(.+?)$/m date=$1.strip if date !~regx_date \ and not date.empty? @@ -397,7 +402,7 @@ module SiSU_Param @date_available=date @date_available_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/^(?:@date\.valid:|0~date\.valid)\s*(.+?)$/m + if para =~/^@date\.valid:\s*(.+?)$/m date=$1.strip if date !~regx_date \ and not date.empty? @@ -407,7 +412,7 @@ module SiSU_Param @date_valid=date @date_valid_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/^(?:@date\.modified:|0~date\.modified)\s*(.+?)$/m #% of interest rss feed & sitemap + if para =~/^@date\.modified:\s*(.+?)$/m #% of interest rss feed & sitemap date=$1.strip if date !~regx_date \ and not date.empty? @@ -417,7 +422,7 @@ module SiSU_Param @date_modified=date @date_modified_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - if para =~/^(?:@date\.translated:|0~date\.translated)\s*(.+?)$/m + if para =~/^@date\.translated:\s*(.+?)$/m date=$1.strip if date !~regx_date \ and not date.empty? @@ -427,33 +432,33 @@ module SiSU_Param @date_translated=date @date_translated_scheme='scheme="ISO-8601"' if date =~/\d{4}-\d{2}-\d{2}/ end - when /^(?:@type:|0~type)\s+(.+?)$/m; @type=$1 #% metainfo DC - when /^(?:@format:|0~format)\s+(.+?)$/m; @format=$1 #% metainfo DC - #when /^(?:@identifier:|0~identifier)\s+(.+?)$/m; @identifier=$1 #% metainfo DC - when /^(?:@source:|0~source)\s+(.+?)$/m; @source=$1 #% metainfo DC - when /^(?:@language(?:\.document)?:|0~language(?:\.document)?)\s+(.+?)$/m #% metainfo DC + when /^@type:\s+(.+?)$/m; @type=$1 #% metainfo DC + when /^@format:\s+(.+?)$/m; @format=$1 #% metainfo DC + #when /^@identifier:\s+(.+?)$/m; @identifier=$1 #% metainfo DC + when /^@source:\s+(.+?)$/m; @source=$1 #% metainfo DC + when /^@language(?:\.document)?:\s+(.+?)$/m #% metainfo DC x=$1.strip lang=SiSU_Env::Standardise_language.new(x.dup) @language[:code]=lang.code @language[:name]=lang.title - when /^(?:@language\.original:|0~language\.original)\s+(.+?)$/m #% metainfo DC + when /^@language\.original:\s+(.+?)$/m #% metainfo DC x=$1.strip lang=SiSU_Env::Standardise_language.new(x.dup) @language_original[:name]=lang.title - when /^(?:@relation:|0~relation)\s+(.+?)$/m; @relation=$1 #% metainfo DC - when /^(?:@coverage:|0~coverage)\s+(.+?)$/m; @coverage=$1 #% metainfo DC - when /^(?:@rights:|0~rights)\s+(.+?)$/m; @rights=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC copyright, public domain, copyleft, creative commons, etc. - when /^(?:@papersize:|0~papersize)\s+(.+?)$/m #% metainfo DC + when /^@relation:\s+(.+?)$/m; @relation=$1 #% metainfo DC + when /^@coverage:\s+(.+?)$/m; @coverage=$1 #% metainfo DC + when /^@rights:\s+(.+?)$/m; @rights=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC copyright, public domain, copyleft, creative commons, etc. + when /^@papersize:\s+(.+?)$/m #% metainfo DC l=$1 if @mod.inspect !~/--papersize[=-]\S+/ l=determine_papersize(l.dup) @papersize=l end - when /^(?:@keywords?:|0~keywords?)\s+(.+?)$/m; @keywords=$1 #% metainfo DC - when /^(?:@comments?:|0~comments?)\s+(.+?)$/m; @comments=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC - when /^(?:@abstract:|0~abstract)\s+(.+?)$/m; @abstract=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC - when /^(?:@tags?:|0~tags?)\s+\S/m #% metainfo - tags=para.match(/^(?:@tags?:|0~tags?)\s+(.+)\Z/m)[1] + when /^@keywords?:\s+(.+?)$/m; @keywords=$1 #% metainfo DC + when /^@comments?:\s+(.+?)$/m; @comments=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC + when /^@abstract:\s+(.+?)$/m; @abstract=$1.gsub(/<(?:\/\s*)?br(?:\s*\/)?>/,Mx[:br_line]) #% metainfo DC + when /^@tags?:\s+\S/m #% metainfo + tags=para.match(/^@tags?:\s+(.+)\Z/m)[1] tags.split(/,|$/).each do |tag| tag.strip! @tags << tag @@ -462,18 +467,50 @@ module SiSU_Param tag_a=tag_a.split(/:/).join('][') @tag_a << tag_a end - when /^(?:@catalogue:|0~catalogue)\s+(.+)?$/m #% metainfo + when /^@catalogue:\s+(.+)?$/m #% metainfo m=$1 @cls_pg=m.match(/pg=(\S+)/)[1] if m =~/pg=/ @cls_isbn=m.match(/isbn=(\S+)/)[1] if m =~/isbn=/ @cls_dewey=m.match(/dewey=(\S+)/)[1] if m =~/dewey=/ @cls_loc=m.match(/loc=(\S+)/)[1] if m =~/loc=/ - when /^(?:@class(?:ify)?_loc:|0~class(?:ify)?_loc)\s+(.+?)$/m; @cls_loc=$1 #% metainfo - when /^(?:@class(?:ify)?_dewey:|0~class(?:ify)?_dewey)\s+(.+?)$/m; @cls_dewey=$1 #% metainfo - when /^(?:@class(?:ify)?_pg:|0~class(?:ify)?_pg)\s+(.+?)$/m; @cls_pg=$1 #% metainfo - when /^(?:@(?:class(?:ify)?_)?isbn:|0~(?:class(?:ify)?_)?isbn)\s+(\S+?)$/m; @cls_isbn=$1 #% metainfo - when /^(?:@images?:|0~images?)\s+(.+?)$/m; @image=$1 #% processing - when /^(?:@(?:toc|structure):|0~(?:toc|structure))\s+(.+?)\Z/m #% processing + when /^@class(?:ify)?_loc:\s+(.+?)$/m; @cls_loc=$1 #% metainfo + when /^@class(?:ify)?_dewey:\s+(.+?)$/m; @cls_dewey=$1 #% metainfo + when /^@class(?:ify)?_pg:\s+(.+?)$/m; @cls_pg=$1 #% metainfo + when /^@(?:class(?:ify)?_)?isbn:\s+(\S+?)$/m; @cls_isbn=$1 #% metainfo + when /^@images?:\s+(.+?)$/m; @image=$1 #% processing + + when /^@make:/m #% metainfo DC + + if para=~ /^@make:.+?:breaks:[ ]+(.+?)\n/m + #p $1 #FIX + #@pagenew= + #@pagebreak= + end + if para=~ /^@make:.+?:headings:[ ]+(.+?)\n/m + s=$1 + lv=[] + s=(s =~/;/) ? (s.split(/;\s*/)) : [ s ] + @toc=s + lv1=s[0] ||='1~ ' + @lv1=/^#{lv1}/ + lv2=s[1] ||='2~ ' + @lv2=/^#{lv2}/ + lv3=s[2] ||='3~ ' + @lv3=/^#{lv3}/ + lv4=s[3] ||='4~ ' + @lv4=/^#{lv4}/ + lv5=s[4] ||='5~ ' + @lv5=/^#{lv5}/ + lv6=s[5] ||='6~ ' + @lv6=/^#{lv6}/ + end + if para=~ /^@make:.+?:num_top:[ ]+(.+?)\n/m + @num_top=$1 + end + if para=~ /^@make:.+?:skin:[ ]+(.+?)\n/m + @doc_skin=$1 + end + when /^@(?:toc|structure):\s+(.+?)\Z/m #% processing doc_toc_str=$1 @toc=doc_toc_str.split(/;\s*/) @toc=[ @toc ] if @toc == String @@ -490,8 +527,8 @@ module SiSU_Param @lv5=/^#{lv5}/ lv6=@toc[5] ||='6~ ' @lv6=/^#{lv6}/ - when /^(?:@(?:level|page|markup):|0~(?:level|page|markup))\s+(.+?)$/m #% processing revisit..., use syntax 0~level new=1,2,3; break=4 - if para =~/(?:@|0~)(?:markup|level|page):?\s+(.+?)\Z/m + when /^@(?:level|page|markup):\s+(.+?)$/m #% processing revisit..., use syntax 0~level new=1,2,3; break=4 + if para =~/@(?:markup|level|page):?\s+(.+?)\Z/m page_break_str=$1 pagebreaks=page_break_str.split(/;\s*/) #pagebreaks=[ pagebreaks ] if pagebreaks == String @@ -508,11 +545,11 @@ module SiSU_Param @toc_lev_limit=toc_lev_limit if toc_lev_limit @flag_auto_heading_num=true if para =~/num_top/ end - if para =~/^(?:@markup:|0~markup)\s+(.+?)$/m #%use of markup depreciated for num_top + if para =~/^@markup:\s+(.+?)$/m #%use of markup depreciated for num_top @markup=$1 @flag_auto_heading_num=true if para =~/num_top/ end - when /^(?:@bold:|0~bold)\s+(.+?)$/m #% processing + when /^@bold:\s+(.+?)$/m #% processing m=$1.strip x=case m when /\/i$/; 'i' @@ -526,7 +563,7 @@ module SiSU_Param else /#{rgx}/ end @make_bold - when /^(?:@(?:italics?|itali[sz]e):|0~(?:italics?|itali[sz]e))\s+(.+?)$/m #% processing Dublin Core - dublin core within + when /^@(?:italics?|itali[sz]e):\s+(.+?)$/m #% processing Dublin Core - dublin core within m=$1.strip x=case m when /\/i$/; 'i' @@ -540,11 +577,11 @@ module SiSU_Param else /#{rgx}/ end @make_italic - when /^(?:@(?:vocabulary|wordlist):|0~(?:vocabulary|wordlist))\s+(.+?)$/m #% processing + when /^@(?:vocabulary|wordlist):\s+(.+?)$/m #% processing @vocabulary=$1 #not actually used by concordance - when /^(?:@skin:|0~skin)\s+(.+?)$/; @doc_skin=$1.strip #% processing - when /^(?:@(?:css|stylesheet):|0~(?:css|stylesheet))\s+(.+?)$/; @doc_css=$1.strip #% processing - when /^(?:@links:|0~links)\s+(.+?)\Z/m #% processing + when /^@skin:\s+(.+?)$/; @doc_skin=$1.strip #% processing + when /^@(?:css|stylesheet):\s+(.+?)$/; @doc_css=$1.strip #% processing + when /^@links:\s+(.+?)\Z/m #% processing doc_links_str=$1 @lnk=[] if doc_links_str=~/\{.+?\}(?:(?:https?|file|ftp):\/|\.\.)\/\S+(?:\s|$)/ @@ -568,16 +605,18 @@ module SiSU_Param end end end - when /^(?:@prefix(?:_[ab])?:|0~prefix(?:_[ab])?)\s/ #% metainfo + when /^@prefix(?:_[ab])?:\s/ #% metainfo if para =~/prefix_a:?\s+/ - @prefix_a=para[/(?:@prefix_a:|0~prefix_a)\s+(.+?)$/im,1] + @prefix_a=para[/@prefix_a:\s+(.+?)$/im,1] end if para =~/prefix(?:_b)?:?\s+/ - @prefix_b=para[/(?:@prefix(?:_b)?:|0~prefix(?:_b)?)\s+(.+?)$/im,1] + @prefix_b=para[/@prefix(?:_b)?:\s+(.+?)$/im,1] end - when /^(?:@suffix:|0~suffix)\s+(.+?)$/m; @suffix=$1 #% metainfo - when /^(?:@information:|0~information)\s+(.+?)$/m; @information=$1 #% metainfo - when /^(?:@topic_register:|0~topic_register)\s+(.+?)$/m; @topic_register=$1 #% metainfo, similar syntax to book index, leave out the ={} i.e. use equivalent of ={(.+?)} + when /^@suffix:\s+(.+?)$/m; @suffix=$1 #% metainfo + when /^@information:\s+(.+?)$/m; @information=$1 #% metainfo + when /^(?:@topic_register:[ ]+|@classify:.+?:topic_register:[ ]+)(.+?)\n/m #% metainfo, similar syntax to book index, leave out the ={} i.e. use equivalent of ={(.+?)} + #when /^@topic_register:\s+(.+?)$/m; @topic_register=$1 #% metainfo, similar syntax to book index, leave out the ={} i.e. use equivalent of ={(.+?)} + @topic_register=$1 u=@topic_register.scan(/[^;]+/) v=[] u.each do |l| @@ -588,30 +627,30 @@ module SiSU_Param @topic_register_array << m end @topic_register_array.sort! - when /^(?:@contact:|0~contact)\s+(.+?)$/m; @contact=$1 #% metainfo - when /^(?:@original_publication:|0~original_publication)\s+(.+?)$/m; @original_publication=$1 #% details of original publication - when /^(?:@icon:|0~icon)\s+(.+?)$/m; @icon=$1 #% processing - when /^(?:@promo:|0~promo)\s+(.+?)$/m + when /^@contact:\s+(.+?)$/m; @contact=$1 #% metainfo + when /^@original_publication:\s+(.+?)$/m; @original_publication=$1 #% details of original publication + when /^@icon:\s+(.+?)$/m; @icon=$1 #% processing + when /^@promo:\s+(.+?)$/m @flag_promo=true @promo=$1.split(/[,;]\s*/) - when /^(?:@ad:|0~ad)\s+(\S+)?\s+(\S+\.png)?\s+(.+?!)\s+(\d+)\s*$/m #% processing + when /^@ad:\s+(\S+)?\s+(\S+\.png)?\s+(.+?!)\s+(\d+)\s*$/m #% processing @ad_url,@ad_png,@ad_alt,@ad_began=$1,$2,$3,$4 - when /0~ad\.home\s+(.+)?\s*$/m #% processing - ad_home_str=$1 - @ad_home=ad_home_str.split(/\s+!/) - when /^(?:@sta?mp(?:ed)?:|0~sta?mp(?:ed)?)\s+(.+?)$/m; @stmp= $1.downcase! #% processing - when /^(?:@(?:rcs|cvs):|0~(?:rcs|cvs))\+?\s+/ #% processing - m=/(?:@(?:rcs|cvs):|0~(?:rcs|cvs))\+?\s+/ #note the + sign to turn on use of rcs or cvs id +# when /0~ad\.home\s+(.+)?\s*$/m #% processing +# ad_home_str=$1 +# @ad_home=ad_home_str.split(/\s+!/) + when /^@sta?mp(?:ed)?:\s+(.+?)$/m; @stmp= $1.downcase! #% processing + when /^@(?:rcs|cvs):\+?\s+/ #% processing + m=/@(?:rcs|cvs):\+?\s+/ #note the + sign to turn on use of rcs or cvs id ver=para[/#{m}(.+)/,1] #RCS or CVS ID tag # eg. # $Id$ contains=/[\$]Id:\s+(\S+),v\s+(\S+)\s+(\S+)\s+(\S+)\s+(\S+)\s+Exp\s+(?:\S+\s+)?[\$]/ # reason for [$] which is apparently unnecessary is that rcs or cvs will otherwise expand id! if contains.match(ver) filename,vnumber,date,time,operator=contains.match(ver).captures @sc_filename,@sc_number,@sc_date,@sc_time=filename,vnumber,date,time end - @sc_info=true if para[/(?:@(?:rcs|cvs):|0~(?:rcs|cvs))\+/] + @sc_info=true if para[/@(?:rcs|cvs):\+/] when /^@base_program:\s+(.+?)$/; @base_program=$1 #% processing #% break - break, not necessary to process headers further :-) but necessary to extract endnotes etc. ;-( - when /^(?:@man:|0~man)\s+(.+?)\Z/m #% man pages + when /^@man:\s+(.+?)\Z/m #% man pages maninfo_str=$1 maninfo=maninfo_str.split(/;\s*/m) maninfo.each do |x| diff --git a/lib/sisu/v1/sst_from_kdissert.rb b/lib/sisu/v1/sst_from_kdissert.rb index 53840fcd..8f22c5f5 100644 --- a/lib/sisu/v1/sst_from_kdissert.rb +++ b/lib/sisu/v1/sst_from_kdissert.rb @@ -74,7 +74,7 @@ module SiSU_Kdissert sisu_head=<<WOK % SiSU #{@ver[:version]} auto-conversion from Kdissert file [check necessary] -@title: #@title +@title: #{@title} @prefix: Kdissert document map, converted to SiSU markup @@ -128,7 +128,7 @@ WOK txt=root.elements["item[#{idx}]/text"].text.to_s.strip end @el[id]={ :id=>id,:ma=>ma,:ch=>ch,:sum=>sum,:txt=>txt } - if ma == '-1' + if ma=='-1' @el[id][:lev]=':A' @top=id end diff --git a/lib/sisu/v1/sst_to_s_xml_dom.rb b/lib/sisu/v1/sst_to_s_xml_dom.rb index 3db194b2..39ae7bcc 100644 --- a/lib/sisu/v1/sst_to_s_xml_dom.rb +++ b/lib/sisu/v1/sst_to_s_xml_dom.rb @@ -22,7 +22,7 @@ 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 + 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 @@ -214,13 +214,13 @@ WOK #{@tab*n2}</object> #{@tab*n1}</heading>#{xml_content} WOK - if lv == 4 + if lv==4 @copen[1]=true @copen[2]=@copen[3]=false - elsif lv == 5 + elsif lv==5 @copen[2]=true @copen[3]=false - elsif lv == 6 + elsif lv==6 @copen[3]=true end end @@ -264,7 +264,7 @@ WOK when 4..6 6.downto(lv) do |x| y=x - 1 - if @level[x] == true + if @level[x]==true u=x - 3; @xml_contents_close[x]='' end @@ -275,11 +275,11 @@ WOK case lv when 4 @@xml[:body] << "#{@tab*5}</content>\n" if @cont[1] - if @copen[3] == true # 6{ + if @copen[3]==true # 6{ [3,2,1].each { |v| @@xml[:body] << "#{@tab*n}</contents#{v}>\n" } - elsif @copen[2] == true # 5{ + elsif @copen[2]==true # 5{ [2,1].each { |v| @@xml[:body] << "#{@tab*n}</contents#{v}>\n" } - elsif @copen[1] == true # 4{ + elsif @copen[1]==true # 4{ [1].each { |v| @@xml[:body] << "#{@tab*n}</contents#{v}>\n" } end @cont[1]=true @@ -288,9 +288,9 @@ WOK or @cont[1] @@xml[:body] << "#{@tab*5}</content>\n" end - if @copen[3] == true #6{ + if @copen[3]==true #6{ [3,2].each { |v| @@xml[:body] << "#{@tab*n}</contents#{v}>\n" } - elsif @copen[2] == true #5{ + elsif @copen[2]==true #5{ [2].each { |v| @@xml[:body] << "#{@tab*n}</contents#{v}>\n" } end @cont[2]=true @@ -479,7 +479,7 @@ WOK @content_flag=true 6.downto(4) do |x| y=x - 1; v=x - 3 - if @level[x] == true + if @level[x]==true if @content_flag==true @@xml[:body] << "#{@tab*5}</content>\n#{@tab*y}</contents#{v}>\n" @content_flag=false @@ -490,9 +490,8 @@ WOK end 3.downto(1) do |x| y=x - 1 - @@xml[:body] << "#{@tab*y}</heading#{x}>\n" if @level[x] == true + @@xml[:body] << "#{@tab*y}</heading#{x}>\n" if @level[x]==true end - #6.downto(1) { |x| y=x - 1; @@xml[:body] << "#{@tab*y}</level #{x}>\n" if @level[x] == true } end def pre rdf=SiSU_XML_tags::RDF.new(@md) @@ -559,7 +558,7 @@ WOK @sisu=new_file_data.scan(/.+/) SiSU_Env::SiSU_file.new(@md).mkdir filename_sxm=SiSU_Env::SiSU_file.new(@md,@md.fn[:sxd]).mkfile_pwd - if filename_sxm.class == File + if filename_sxm.class==File @sisu.each {|para| filename_sxm.puts para} filename_sxm.close else puts 'file not created, is directory writable?' diff --git a/lib/sisu/v1/sst_to_s_xml_node.rb b/lib/sisu/v1/sst_to_s_xml_node.rb index 09e9f740..3cbd1156 100644 --- a/lib/sisu/v1/sst_to_s_xml_node.rb +++ b/lib/sisu/v1/sst_to_s_xml_node.rb @@ -22,7 +22,7 @@ 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 + 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 @@ -203,10 +203,10 @@ WOK @@parent[:ocn] end def prt_node - parent.node.each_with_index { |a,n| puts "n.#{n} a.#{a}" unless n == 0 } #x == node + parent.node.each_with_index { |a,n| puts "n.#{n} a.#{a}" unless n==0 } #x==node end def prt_ocn - parent.ocn.each_with_index { |a,n| puts "n.#{n} a.#{a}" unless n == 0 } #x == node + parent.ocn.each_with_index { |a,n| puts "n.#{n} a.#{a}" unless n==0 } #x==node end self end @@ -233,10 +233,10 @@ WOK end if lv.inspect =~/^[1-6]/; @@current=lv end - if o.node == 1 \ - or lv == 1 + if o.node==1 \ + or lv==1 @@parent[:node][o.node]=0 - elsif @@current == lv \ + elsif @@current==lv \ and @@current !=nil if @node[:no][lv-1] != nil @@parent[:node][o.node]=@node[:no][lv-1] @@ -246,14 +246,14 @@ WOK @@parent[:node][o.node]=@node[:no][lv-3] else puts 'error' end - elsif lv == nil - if o.ocn.class == Fixnum \ + elsif lv==nil + if o.ocn.class==Fixnum \ and @@current @@parent[:node][o.node]=@node[:no][@@current] end else puts 'error' end - if @@current == lv \ + if @@current==lv \ and @@current !=nil if @node[:ocn][lv-1] != nil @@parent[:ocn][o.ocn]=@node[:ocn][lv-1] @@ -263,8 +263,8 @@ WOK @@parent[:ocn][o.ocn]=@node[:ocn][lv-3] else puts 'error' end - elsif lv == nil - if o.ocn.class == Fixnum \ + elsif lv==nil + if o.ocn.class==Fixnum \ and @@current @@parent[:ocn][o.ocn]=@node[:ocn][@@current] end @@ -274,7 +274,7 @@ WOK #def node_structure(o='',para='',lv='',hname='') #extracted endnotes # if o.ocn # lv=lv.to_i - # lv=nil if lv == 0 + # lv=nil if lv==0 # build_relationships(o,lv) # end #end @@ -284,7 +284,7 @@ WOK lv=lv.to_i n=lv - 1 n3=lv + 2 - lv=nil if lv == 0 + lv=nil if lv==0 embedded_endnotes(para) if para[@regx] paragraph="#{para[@regx,2]}" @@ -533,13 +533,12 @@ WOK end 6.downto(4) do |x| y=x - 1; v=x - 3 - @@xml[:body] << "#{@tab*5}</content>\n#{@tab*y}</contents#{v}>\n" if @level[x] == true + @@xml[:body] << "#{@tab*5}</content>\n#{@tab*y}</contents#{v}>\n" if @level[x]==true end 3.downto(1) do |x| y=x - 1 - @@xml[:body] << "#{@tab*y}</heading#{x}>\n" if @level[x] == true + @@xml[:body] << "#{@tab*y}</heading#{x}>\n" if @level[x]==true end - #6.downto(1) { |x| y=x - 1; @@xml[:body] << "#{@tab*y}</level #{x}>\n" if @level[x] == true } end def pre rdf=SiSU_XML_tags::RDF.new(@md) @@ -591,7 +590,7 @@ WOK @sisu=new_file_data.scan(/.+/) SiSU_Env::SiSU_file.new(@md).mkdir filename_sxm=SiSU_Env::SiSU_file.new(@md,@md.fn[:sxn]).mkfile_pwd - if filename_sxm.class == File + if filename_sxm.class==File @sisu.each {|para| filename_sxm.puts para} filename_sxm.close else puts 'file not created, is directory writable?' diff --git a/lib/sisu/v1/sysenv.rb b/lib/sisu/v1/sysenv.rb index 945cf07c..1adb3509 100644 --- a/lib/sisu/v1/sysenv.rb +++ b/lib/sisu/v1/sysenv.rb @@ -211,11 +211,11 @@ 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","#@@home/.sisu",@@sisu_etc] + @@rc_path=["#@@pwd/_sisu","#@@home/.sisu","#@@sisu_etc/#{SiSU_version_dir}"] @@yamlrc_path=unless stub_pwd =~/^sisupod$/ - ["#@@pwd/_sisu","#@@home/.sisu",@@sisu_etc] + ["#@@pwd/_sisu","#@@home/.sisu","#@@sisu_etc/#{SiSU_version_dir}"] else #security policy: prevent reading of sisurc.yml in sisupod - ["#@@home/.sisu",@@sisu_etc] + ["#@@home/.sisu","#@@sisu_etc/#{SiSU_version_dir}"] end @@ad_path=unless stub_pwd =~/^sisupod$/ ["#@@pwd/_sisu/skin/yml","#@@home/.sisu/skin/yml","#{@@sisu_etc}/skin/yml"] @@ -2019,7 +2019,6 @@ WOK end def i18n def language # language settings -## m=/.+\/\S+?\~(\S+)/ pwd=Dir.pwd conf=if defined? @rc['default']['language']; @rc['default']['language'] @@ -2075,7 +2074,7 @@ WOK end def odf_structure rm_rf("#{path.processing}/odf") - system("unzip -q #{path.share}/odf/odt.zip -d #{path.processing}") + system("unzip -q #{path.share}/#{SiSU_version_dir}/odf/odt.zip -d #{path.processing}") end def sisupod_gen(fns_pod) pwd=Dir.pwd @@ -2642,11 +2641,13 @@ WOK class Info_version <Info_env include Singleton require 'rbconfig' + @@lib_path=nil def get_version @version={} @pwd=ENV['PWD'] - yst_etc="#{defaults[:sisu_etc]}/version1.yml" - lib_path=`echo $RUBYLIB`.split(':') + yst_etc="#{defaults[:sisu_etc]}/#{SiSU_version_dir}/version.yml" + lib_path=@@lib_path ? @@lib_path : `echo $RUBYLIB`.split(':') + @@lib_path ||=lib_path if File.exist?(yst_etc); @version=YAML::load(File::open(yst_etc)) #unless @@noyaml end @version |