From 84957a4260170c3b81a690853ba5b865f59e1217 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 19 Oct 2014 21:05:55 -0400 Subject: v5 v6: html, remove trailing backslash for empty linebreak & paragraph,

--- lib/sisu/v5/ao_syntax.rb | 2 +- lib/sisu/v5/cgi_sql_common.rb | 110 +++++++++++++++++++++--------------------- lib/sisu/v5/db_sqltxt.rb | 10 ++-- lib/sisu/v5/html_segments.rb | 4 +- lib/sisu/v5/html_tune.rb | 2 +- lib/sisu/v6/ao_syntax.rb | 2 +- lib/sisu/v6/cgi_sql_common.rb | 110 +++++++++++++++++++++--------------------- lib/sisu/v6/db_sqltxt.rb | 10 ++-- lib/sisu/v6/html_segments.rb | 4 +- lib/sisu/v6/html_tune.rb | 2 +- 10 files changed, 128 insertions(+), 128 deletions(-) (limited to 'lib') diff --git a/lib/sisu/v5/ao_syntax.rb b/lib/sisu/v5/ao_syntax.rb index be184a5e..f5608d97 100644 --- a/lib/sisu/v5/ao_syntax.rb +++ b/lib/sisu/v5/ao_syntax.rb @@ -518,7 +518,7 @@ module SiSU_AO_Syntax elsif dob.is ==:code dob.obj=dob.obj. gsub(/#{Mx[:meta_o]}(\S+?)#{Mx[:meta_c]}\s*/,'@\1: '). - gsub(/(^|#{Mx[:gl_c]}|\s)<(br(?: \/)?)>([\s,.]|$)/,'\1<\2>\3') #convert

back, clumsy + gsub(/(^|#{Mx[:gl_c]}|\s)<(?:br(?: \/)?)>([\s,.]|$)/,'\1
\2') #convert

back, clumsy if dob.number_ codeline=[] ln=1 diff --git a/lib/sisu/v5/cgi_sql_common.rb b/lib/sisu/v5/cgi_sql_common.rb index d6f99342..eb8ce0ab 100644 --- a/lib/sisu/v5/cgi_sql_common.rb +++ b/lib/sisu/v5/cgi_sql_common.rb @@ -134,7 +134,7 @@ module SiSU_CGI_SQL search_field='' if checked_echo !~/\S/ @base,@search_field,@selected_db,@result_type,@checked_sql_limit,@checked_tip,@checked_stats,@checked_searched,@checked_url,@checked_case,@checked_echo,@checked_sql,@checked_all,@checked_none,@checked_selected,@checked_default,@search_note,@the_can=base,search_field,selected_db,result_type,checked_sql_limit,checked_tip,checked_stats,checked_searched,checked_url,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,search_note,the_can @tip=if checked_tip =~/\S/ - 'text:__; fulltxt:__; keywords:__; title:__; author:__; topic_register:__; subject:__; description:__; publisher:__; editor:__; contributor:__; date:__; type:__; format:__; identifier:__; source:__; language:__; relation:__; coverage:__; rights:__; comment:__; abstract:__; filename:__;
' + 'text:__; fulltxt:__; keywords:__; title:__; author:__; topic_register:__; subject:__; description:__; publisher:__; editor:__; contributor:__; date:__; type:__; format:__; identifier:__; source:__; language:__; relation:__; coverage:__; rights:__; comment:__; abstract:__; filename:__;
' else '' end end @@ -161,10 +161,10 @@ module SiSU_CGI_SQL @@ -193,7 +193,7 @@ module SiSU_CGI_SQL to search: select which database to search (drop-down menu below); enter your search query (in the form above); and click on the search button (below) -
+
1,000 2,500 -
+
echo query result stats search url searched available fields sql statement -
+
checks: default selected @@ -483,14 +483,14 @@ module SiSU_CGI_SQL page=(sql_offset.to_i + sql_match_limit.to_i)/sql_match_limit.to_i if beyond_limit if page.to_s =~ /^1$/ - %{
+ %{
pg. #{page.to_s}  >>
} elsif page.to_s =~ /^2$/ - %{
+ %{
<<  @@ -500,7 +500,7 @@ module SiSU_CGI_SQL
} else - %{
+ %{
|<  @@ -516,14 +516,14 @@ module SiSU_CGI_SQL else if page.to_s =~ /^1$/ then '' elsif page.to_s =~ /^2$/ - %{
+ %{
<<  pg. #{page.to_s}
} else - %{
+ %{
|<  @@ -542,16 +542,16 @@ module SiSU_CGI_SQL <<-WOK_SQL def tail <<-'WOK' -


+


-
+
SiSU -
+
git
@@ -562,14 +562,14 @@ module SiSU_CGI_SQL

Generated by #{v[:project]} #{v[:version]} #{v[:date]} (#{v[:date_stamp]}) -
+
#{v[:project]} © Ralph Amissah 1993, current 2014. All Rights Reserved. -
+
#{v[:project]} is software for document structuring, publishing and search, -
+
www.jus.uio.no/sisu @@ -581,17 +581,17 @@ module SiSU_CGI_SQL git.sisudoc.org -
+
w3 since October 3 1993 ralph@amissah.com -
+
mailing list subscription http://lists.sisudoc.org/listinfo/sisu -
+
sisu@lists.sisudoc.org @@ -599,10 +599,10 @@ module SiSU_CGI_SQL

-
+
SiSU -
+
git

#{v[:project]} using: -
Standard SiSU markup syntax, -
Standard SiSU meta-markup syntax, and the -
Standard SiSU object citation numbering and system, (object/text identifying/locating system) -
+
Standard SiSU markup syntax, +
Standard SiSU meta-markup syntax, and the +
Standard SiSU object citation numbering and system, (object/text identifying/locating system) +
© Ralph Amissah 1997, current 2014. All Rights Reserved.

@@ -767,39 +767,39 @@ module SiSU_CGI_SQL end green=%{} canned_search_url_txt=CGI.escapeHTML(@@canned_search_url) - the_can=%{#{canned_note} #{canned_search_url_txt}
} + the_can=%{#{canned_note} #{canned_search_url_txt}
} p_text=p_fulltext=p_keywords=p_title=p_author=p_topic_register=p_subject=p_description=p_publisher=p_editor=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='' - p_filename=%{filename: #{green}#{@search_for.filename}

} if @search_for.filename =~/\S+/ - p_text=%{text: #{green}#{@search_for.text1}
} if @search_for.text1 =~/\S+/ - p_fulltext=%{fulltxt: #{green}#{@search_for.fulltext}
} if @search_for.fulltext =~/\S+/ - p_title=%{title: #{green}#{@search_for.title}
} if @search_for.title =~/\S+/ - p_author=%{author: #{green}#{@search_for.author}
} if @search_for.author =~/\S+/ - p_editor=%{editor: #{green}#{@search_for.editor}
} if @search_for.editor=~/\S+/ - p_contributor=%{contributor: #{green}#{@search_for.contributor}
} if @search_for.contributor =~/\S+/ - p_date=%{date: #{green}#{@search_for.date}
} if @search_for.date =~/\S+/ - p_rights=%{rights: #{green}#{@search_for.rights}
} if @search_for.rights =~/\S+/ - p_topic_register=%{topic_register: #{green}#{@search_for.topic_register}
} if @search_for.topic_register =~/\S+/ - p_subject=%{subject: #{green}#{@search_for.subject}
} if @search_for.subject =~/\S+/ - p_keywords=%{keywords: #{green}#{@search_for.keywords}
} if @search_for.keywords =~/\S+/ - p_identifier=%{identifier: #{green}#{@search_for.identifier}
} if @search_for.identifier =~/\S+/ - p_type=%{type: #{green}#{@search_for.type}
} if @search_for.type =~/\S+/ - p_format=%{format: #{green}#{@search_for.format}
} if @search_for.format =~/\S+/ - p_relation=%{relation: #{green}#{@search_for.relation}
} if @search_for.relation =~/\S+/ - p_coverage=%{coverage: #{green}#{@search_for.coverage}
} if @search_for.coverage =~/\S+/ - p_description=%{description: #{green}#{@search_for.description}
} if @search_for.description =~/\S+/ - p_abstract=%{abstract: #{green}#{@search_for.abstract}
} if @search_for.abstract =~/\S+/ - p_comment=%{comment: #{green}#{@search_for.comment}
} if @search_for.comment =~/\S+/ - p_publisher=%{publisher: #{green}#{@search_for.publisher}
} if @search_for.publisher =~/\S+/ - p_source=%{source: #{green}#{@search_for.source}
} if @search_for.source =~/\S+/ - p_language=%{language: #{green}#{@search_for.language}
} if @search_for.language =~/\S+/ + p_filename=%{filename: #{green}#{@search_for.filename}
} if @search_for.filename =~/\S+/ + p_text=%{text: #{green}#{@search_for.text1}
} if @search_for.text1 =~/\S+/ + p_fulltext=%{fulltxt: #{green}#{@search_for.fulltext}
} if @search_for.fulltext =~/\S+/ + p_title=%{title: #{green}#{@search_for.title}
} if @search_for.title =~/\S+/ + p_author=%{author: #{green}#{@search_for.author}
} if @search_for.author =~/\S+/ + p_editor=%{editor: #{green}#{@search_for.editor}
} if @search_for.editor=~/\S+/ + p_contributor=%{contributor: #{green}#{@search_for.contributor}
} if @search_for.contributor =~/\S+/ + p_date=%{date: #{green}#{@search_for.date}
} if @search_for.date =~/\S+/ + p_rights=%{rights: #{green}#{@search_for.rights}
} if @search_for.rights =~/\S+/ + p_topic_register=%{topic_register: #{green}#{@search_for.topic_register}
} if @search_for.topic_register =~/\S+/ + p_subject=%{subject: #{green}#{@search_for.subject}
} if @search_for.subject =~/\S+/ + p_keywords=%{keywords: #{green}#{@search_for.keywords}
} if @search_for.keywords =~/\S+/ + p_identifier=%{identifier: #{green}#{@search_for.identifier}
} if @search_for.identifier =~/\S+/ + p_type=%{type: #{green}#{@search_for.type}
} if @search_for.type =~/\S+/ + p_format=%{format: #{green}#{@search_for.format}
} if @search_for.format =~/\S+/ + p_relation=%{relation: #{green}#{@search_for.relation}
} if @search_for.relation =~/\S+/ + p_coverage=%{coverage: #{green}#{@search_for.coverage}
} if @search_for.coverage =~/\S+/ + p_description=%{description: #{green}#{@search_for.description}
} if @search_for.description =~/\S+/ + p_abstract=%{abstract: #{green}#{@search_for.abstract}
} if @search_for.abstract =~/\S+/ + p_comment=%{comment: #{green}#{@search_for.comment}
} if @search_for.comment =~/\S+/ + p_publisher=%{publisher: #{green}#{@search_for.publisher}
} if @search_for.publisher =~/\S+/ + p_source=%{source: #{green}#{@search_for.source}
} if @search_for.source =~/\S+/ + p_language=%{language: #{green}#{@search_for.language}
} if @search_for.language =~/\S+/ search_note=<<-WOK database: #{green}#{@db}; selected view: #{green}#{cgi['view']} - search string: "#{green}#{analyze_format}"
+ search string: "#{green}#{analyze_format}"
#{p_text} #{p_fulltext} #{p_keywords} #{p_title} #{p_author} #{p_topic_register} #{p_subject} #{p_description} #{p_publisher} #{p_editor} #{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} WOK - #eg = %{canned search e.g.:
#{url}
find: #{analyze}
database: #{database}} + #eg = %{canned search e.g.:
#{url}
find: #{analyze}
database: #{database}} #% dbi_canning @header=Form.new(@base,search_field,selected_db,result_type,checked_sql_limit,checked_tip,checked_stats,checked_searched,checked_url,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,search_note,the_can).submission_form #% form unless q['s1'] =~/\S/ or q['au'] =~/\S/ or @search[:text][1] =~/\S/ @@ -928,10 +928,10 @@ module SiSU_CGI_SQL can_txt_srch=(cgi['view']=~/index/) \ ? %{search } : %{search } - title=%{toc html #{ti} [#{c['language_document_char']}] by #{c['creator_author']} manifest #{can_txt_srch}
} if file_suffix=~/s/ #hmm watch file_suffix + title=%{toc html #{ti} [#{c['language_document_char']}] by #{c['creator_author']} manifest #{can_txt_srch}
} if file_suffix=~/s/ #hmm watch file_suffix title=@text_search_flag \ - ? '

'+title - : '
'+title + ? '

'+title + : '
'+title @counter_txt_doc+=1 oldtid=c['tid'].to_i else title='' @@ -996,7 +996,7 @@ module SiSU_CGI_SQL @@lt_t=(@counter_txt_ocn==dbi_statement.sql_match_limit.to_i) ? true : false start=(@@offset.to_i+1).to_s range=(@@offset.to_i+@counter_txt_ocn.to_i).to_s - %{
Found #{@counter_txt_ocn} times in the main body of #{@counter_txt_doc} documents [ matches #{start} to #{range} ]
} + %{
Found #{@counter_txt_ocn} times in the main body of #{@counter_txt_doc} documents [ matches #{start} to #{range} ]
} else '' end else '' diff --git a/lib/sisu/v5/db_sqltxt.rb b/lib/sisu/v5/db_sqltxt.rb index ffb5966b..6585fd66 100644 --- a/lib/sisu/v5/db_sqltxt.rb +++ b/lib/sisu/v5/db_sqltxt.rb @@ -62,11 +62,11 @@ module SiSU_DbText def special_character_escape(str) str=str.gsub(/'/,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") gsub(/(\\)/m,'\1\1'). #ok but with warnings, double backslash on sqlite #str.gsub!(/[\\]/m,'\\x5C') #ok but with warnings, but not for sqlite #str.gsub!(/(\\)/m,'\1') #ok for sqlite not for pgsql - gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"
\n"). - gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,''). #check - gsub(/#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg))(?:\s+\d+x\d+)?(.+?)#{Mx[:lnk_c]}\S+/,'[image: \1] \2'). - gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}(?:file|ftp):\/\/\S+?([.,!?]?(?:\s|$))/,'\1\2'). - gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'\1') + gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/m,"
\n"). + gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/m,''). #check + gsub(/#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg))(?:\s+\d+x\d+)?(.+?)#{Mx[:lnk_c]}\S+/m,'[image: \1] \2'). + gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}(?:file|ftp):\/\/\S+?([.,!?]?(?:\s|$))/m,'\1\2'). + gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m,'\1') end def clean_searchable_text_from_document_objects(arr) txt_arr,en=[],[] diff --git a/lib/sisu/v5/html_segments.rb b/lib/sisu/v5/html_segments.rb index 60cd51f1..4c588bb9 100644 --- a/lib/sisu/v5/html_segments.rb +++ b/lib/sisu/v5/html_segments.rb @@ -689,7 +689,7 @@ module SiSU_HTML_Seg note_match=note.dup note_match_seg=note.dup e_n=note_match_seg[/(?:#{Mx[:en_a_o]}[\d*+]+|#{Mx[:en_b_o]}[*+]\d+)\s+(.+?)(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/m,1] - try=e_n.split(/
/) + try=e_n.split(//) try.each do |e| txt_obj={ txt: e } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) @@ -699,7 +699,7 @@ module SiSU_HTML_Seg end @@seg_endnotes_array << note_match end - try.join('
') + try.join('
') #% creation of separate end segment/page of all endnotes referenced back to reference segment m=/(?:#{Mx[:en_a_o]}[\d*+]+|#{Mx[:en_b_o]}[*+]\d+)\s+(.+?href=")(##{Mx[:note_ref]}[\d*+]+".+)(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/mi endnote_part_a=note_match_seg[m,1] diff --git a/lib/sisu/v5/html_tune.rb b/lib/sisu/v5/html_tune.rb index 7cd2a920..526faa82 100644 --- a/lib/sisu/v5/html_tune.rb +++ b/lib/sisu/v5/html_tune.rb @@ -290,7 +290,7 @@ module SiSU_HTML_Tune gsub(/#{Mx[:mk_o]}:name#(\S+?)#{Mx[:mk_c]}/,''). gsub(/#{Mx[:gl_bullet]}/m,'●  '). gsub(/#{Mx[:nbsp]}/,' '). - gsub(/<(p|br)>/,'<\1 />') + gsub(/<(p|br) \/>/,'<\1>') dob=SiSU_HTML_Tune::CleanHTML.new(dob).clean dob end diff --git a/lib/sisu/v6/ao_syntax.rb b/lib/sisu/v6/ao_syntax.rb index 2e771185..da1daddf 100644 --- a/lib/sisu/v6/ao_syntax.rb +++ b/lib/sisu/v6/ao_syntax.rb @@ -518,7 +518,7 @@ module SiSU_AO_Syntax elsif dob.is ==:code dob.obj=dob.obj. gsub(/#{Mx[:meta_o]}(\S+?)#{Mx[:meta_c]}\s*/,'@\1: '). - gsub(/(^|#{Mx[:gl_c]}|\s)<(br(?: \/)?)>([\s,.]|$)/,'\1<\2>\3') #convert

back, clumsy + gsub(/(^|#{Mx[:gl_c]}|\s)<(?:br(?: \/)?)>([\s,.]|$)/,'\1
\2') #convert

back, clumsy if dob.number_ codeline=[] ln=1 diff --git a/lib/sisu/v6/cgi_sql_common.rb b/lib/sisu/v6/cgi_sql_common.rb index a05f8f53..0bc663d0 100644 --- a/lib/sisu/v6/cgi_sql_common.rb +++ b/lib/sisu/v6/cgi_sql_common.rb @@ -134,7 +134,7 @@ module SiSU_CGI_SQL search_field='' if checked_echo !~/\S/ @base,@search_field,@selected_db,@result_type,@checked_sql_limit,@checked_tip,@checked_stats,@checked_searched,@checked_url,@checked_case,@checked_echo,@checked_sql,@checked_all,@checked_none,@checked_selected,@checked_default,@search_note,@the_can=base,search_field,selected_db,result_type,checked_sql_limit,checked_tip,checked_stats,checked_searched,checked_url,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,search_note,the_can @tip=if checked_tip =~/\S/ - 'text:__; fulltxt:__; keywords:__; title:__; author:__; topic_register:__; subject:__; description:__; publisher:__; editor:__; contributor:__; date:__; type:__; format:__; identifier:__; source:__; language:__; relation:__; coverage:__; rights:__; comment:__; abstract:__; filename:__;
' + 'text:__; fulltxt:__; keywords:__; title:__; author:__; topic_register:__; subject:__; description:__; publisher:__; editor:__; contributor:__; date:__; type:__; format:__; identifier:__; source:__; language:__; relation:__; coverage:__; rights:__; comment:__; abstract:__; filename:__;
' else '' end end @@ -161,10 +161,10 @@ module SiSU_CGI_SQL
@@ -193,7 +193,7 @@ module SiSU_CGI_SQL to search: select which database to search (drop-down menu below); enter your search query (in the form above); and click on the search button (below) -
+
1,000 2,500 -
+
echo query result stats search url searched available fields sql statement -
+
checks: default selected @@ -483,14 +483,14 @@ module SiSU_CGI_SQL page=(sql_offset.to_i + sql_match_limit.to_i)/sql_match_limit.to_i if beyond_limit if page.to_s =~ /^1$/ - %{
+ %{
pg. #{page.to_s}  >>
} elsif page.to_s =~ /^2$/ - %{
+ %{
<<  @@ -500,7 +500,7 @@ module SiSU_CGI_SQL
} else - %{
+ %{
|<  @@ -516,14 +516,14 @@ module SiSU_CGI_SQL else if page.to_s =~ /^1$/ then '' elsif page.to_s =~ /^2$/ - %{
+ %{
<<  pg. #{page.to_s}
} else - %{
+ %{
|<  @@ -542,16 +542,16 @@ module SiSU_CGI_SQL <<-WOK_SQL def tail <<-'WOK' -


+


-
+
SiSU -
+
git
@@ -562,14 +562,14 @@ module SiSU_CGI_SQL

Generated by #{v[:project]} #{v[:version]} #{v[:date]} (#{v[:date_stamp]}) -
+
#{v[:project]} © Ralph Amissah 1993, current 2014. All Rights Reserved. -
+
#{v[:project]} is software for document structuring, publishing and search, -
+
www.jus.uio.no/sisu @@ -581,17 +581,17 @@ module SiSU_CGI_SQL git.sisudoc.org -
+
w3 since October 3 1993 ralph@amissah.com -
+
mailing list subscription http://lists.sisudoc.org/listinfo/sisu -
+
sisu@lists.sisudoc.org @@ -599,10 +599,10 @@ module SiSU_CGI_SQL

-
+
SiSU -
+
git

#{v[:project]} using: -
Standard SiSU markup syntax, -
Standard SiSU meta-markup syntax, and the -
Standard SiSU object citation numbering and system, (object/text identifying/locating system) -
+
Standard SiSU markup syntax, +
Standard SiSU meta-markup syntax, and the +
Standard SiSU object citation numbering and system, (object/text identifying/locating system) +
© Ralph Amissah 1997, current 2014. All Rights Reserved.

@@ -767,39 +767,39 @@ module SiSU_CGI_SQL end green=%{} canned_search_url_txt=CGI.escapeHTML(@@canned_search_url) - the_can=%{#{canned_note} #{canned_search_url_txt}
} + the_can=%{#{canned_note} #{canned_search_url_txt}
} p_text=p_fulltext=p_keywords=p_title=p_author=p_topic_register=p_subject=p_description=p_publisher=p_editor=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='' - p_filename=%{filename: #{green}#{@search_for.filename}

} if @search_for.filename =~/\S+/ - p_text=%{text: #{green}#{@search_for.text1}
} if @search_for.text1 =~/\S+/ - p_fulltext=%{fulltxt: #{green}#{@search_for.fulltext}
} if @search_for.fulltext =~/\S+/ - p_title=%{title: #{green}#{@search_for.title}
} if @search_for.title =~/\S+/ - p_author=%{author: #{green}#{@search_for.author}
} if @search_for.author =~/\S+/ - p_editor=%{editor: #{green}#{@search_for.editor}
} if @search_for.editor=~/\S+/ - p_contributor=%{contributor: #{green}#{@search_for.contributor}
} if @search_for.contributor =~/\S+/ - p_date=%{date: #{green}#{@search_for.date}
} if @search_for.date =~/\S+/ - p_rights=%{rights: #{green}#{@search_for.rights}
} if @search_for.rights =~/\S+/ - p_topic_register=%{topic_register: #{green}#{@search_for.topic_register}
} if @search_for.topic_register =~/\S+/ - p_subject=%{subject: #{green}#{@search_for.subject}
} if @search_for.subject =~/\S+/ - p_keywords=%{keywords: #{green}#{@search_for.keywords}
} if @search_for.keywords =~/\S+/ - p_identifier=%{identifier: #{green}#{@search_for.identifier}
} if @search_for.identifier =~/\S+/ - p_type=%{type: #{green}#{@search_for.type}
} if @search_for.type =~/\S+/ - p_format=%{format: #{green}#{@search_for.format}
} if @search_for.format =~/\S+/ - p_relation=%{relation: #{green}#{@search_for.relation}
} if @search_for.relation =~/\S+/ - p_coverage=%{coverage: #{green}#{@search_for.coverage}
} if @search_for.coverage =~/\S+/ - p_description=%{description: #{green}#{@search_for.description}
} if @search_for.description =~/\S+/ - p_abstract=%{abstract: #{green}#{@search_for.abstract}
} if @search_for.abstract =~/\S+/ - p_comment=%{comment: #{green}#{@search_for.comment}
} if @search_for.comment =~/\S+/ - p_publisher=%{publisher: #{green}#{@search_for.publisher}
} if @search_for.publisher =~/\S+/ - p_source=%{source: #{green}#{@search_for.source}
} if @search_for.source =~/\S+/ - p_language=%{language: #{green}#{@search_for.language}
} if @search_for.language =~/\S+/ + p_filename=%{filename: #{green}#{@search_for.filename}
} if @search_for.filename =~/\S+/ + p_text=%{text: #{green}#{@search_for.text1}
} if @search_for.text1 =~/\S+/ + p_fulltext=%{fulltxt: #{green}#{@search_for.fulltext}
} if @search_for.fulltext =~/\S+/ + p_title=%{title: #{green}#{@search_for.title}
} if @search_for.title =~/\S+/ + p_author=%{author: #{green}#{@search_for.author}
} if @search_for.author =~/\S+/ + p_editor=%{editor: #{green}#{@search_for.editor}
} if @search_for.editor=~/\S+/ + p_contributor=%{contributor: #{green}#{@search_for.contributor}
} if @search_for.contributor =~/\S+/ + p_date=%{date: #{green}#{@search_for.date}
} if @search_for.date =~/\S+/ + p_rights=%{rights: #{green}#{@search_for.rights}
} if @search_for.rights =~/\S+/ + p_topic_register=%{topic_register: #{green}#{@search_for.topic_register}
} if @search_for.topic_register =~/\S+/ + p_subject=%{subject: #{green}#{@search_for.subject}
} if @search_for.subject =~/\S+/ + p_keywords=%{keywords: #{green}#{@search_for.keywords}
} if @search_for.keywords =~/\S+/ + p_identifier=%{identifier: #{green}#{@search_for.identifier}
} if @search_for.identifier =~/\S+/ + p_type=%{type: #{green}#{@search_for.type}
} if @search_for.type =~/\S+/ + p_format=%{format: #{green}#{@search_for.format}
} if @search_for.format =~/\S+/ + p_relation=%{relation: #{green}#{@search_for.relation}
} if @search_for.relation =~/\S+/ + p_coverage=%{coverage: #{green}#{@search_for.coverage}
} if @search_for.coverage =~/\S+/ + p_description=%{description: #{green}#{@search_for.description}
} if @search_for.description =~/\S+/ + p_abstract=%{abstract: #{green}#{@search_for.abstract}
} if @search_for.abstract =~/\S+/ + p_comment=%{comment: #{green}#{@search_for.comment}
} if @search_for.comment =~/\S+/ + p_publisher=%{publisher: #{green}#{@search_for.publisher}
} if @search_for.publisher =~/\S+/ + p_source=%{source: #{green}#{@search_for.source}
} if @search_for.source =~/\S+/ + p_language=%{language: #{green}#{@search_for.language}
} if @search_for.language =~/\S+/ search_note=<<-WOK database: #{green}#{@db}; selected view: #{green}#{cgi['view']} - search string: "#{green}#{analyze_format}"
+ search string: "#{green}#{analyze_format}"
#{p_text} #{p_fulltext} #{p_keywords} #{p_title} #{p_author} #{p_topic_register} #{p_subject} #{p_description} #{p_publisher} #{p_editor} #{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} WOK - #eg = %{canned search e.g.:
#{url}
find: #{analyze}
database: #{database}} + #eg = %{canned search e.g.:
#{url}
find: #{analyze}
database: #{database}} #% dbi_canning @header=Form.new(@base,search_field,selected_db,result_type,checked_sql_limit,checked_tip,checked_stats,checked_searched,checked_url,checked_case,checked_echo,checked_sql,checked_all,checked_none,checked_selected,checked_default,search_note,the_can).submission_form #% form unless q['s1'] =~/\S/ or q['au'] =~/\S/ or @search[:text][1] =~/\S/ @@ -928,10 +928,10 @@ module SiSU_CGI_SQL can_txt_srch=(cgi['view']=~/index/) \ ? %{search } : %{search } - title=%{toc html #{ti} [#{c['language_document_char']}] by #{c['creator_author']} manifest #{can_txt_srch}
} if file_suffix=~/s/ #hmm watch file_suffix + title=%{toc html #{ti} [#{c['language_document_char']}] by #{c['creator_author']} manifest #{can_txt_srch}
} if file_suffix=~/s/ #hmm watch file_suffix title=@text_search_flag \ - ? '

'+title - : '
'+title + ? '

'+title + : '
'+title @counter_txt_doc+=1 oldtid=c['tid'].to_i else title='' @@ -996,7 +996,7 @@ module SiSU_CGI_SQL @@lt_t=(@counter_txt_ocn==dbi_statement.sql_match_limit.to_i) ? true : false start=(@@offset.to_i+1).to_s range=(@@offset.to_i+@counter_txt_ocn.to_i).to_s - %{
Found #{@counter_txt_ocn} times in the main body of #{@counter_txt_doc} documents [ matches #{start} to #{range} ]
} + %{
Found #{@counter_txt_ocn} times in the main body of #{@counter_txt_doc} documents [ matches #{start} to #{range} ]
} else '' end else '' diff --git a/lib/sisu/v6/db_sqltxt.rb b/lib/sisu/v6/db_sqltxt.rb index 7016c931..2fd39fb7 100644 --- a/lib/sisu/v6/db_sqltxt.rb +++ b/lib/sisu/v6/db_sqltxt.rb @@ -62,11 +62,11 @@ module SiSU_DbText def special_character_escape(str) str=str.gsub(/'/,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") gsub(/(\\)/m,'\1\1'). #ok but with warnings, double backslash on sqlite #str.gsub!(/[\\]/m,'\\x5C') #ok but with warnings, but not for sqlite #str.gsub!(/(\\)/m,'\1') #ok for sqlite not for pgsql - gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/,"
\n"). - gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,''). #check - gsub(/#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg))(?:\s+\d+x\d+)?(.+?)#{Mx[:lnk_c]}\S+/,'[image: \1] \2'). - gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}(?:file|ftp):\/\/\S+?([.,!?]?(?:\s|$))/,'\1\2'). - gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/,'\1') + gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/m,"
\n"). + gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/m,''). #check + gsub(/#{Mx[:lnk_o]}\s*(\S+?\.(?:png|jpg))(?:\s+\d+x\d+)?(.+?)#{Mx[:lnk_c]}\S+/m,'[image: \1] \2'). + gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}(?:file|ftp):\/\/\S+?([.,!?]?(?:\s|$))/m,'\1\2'). + gsub(/#{Mx[:lnk_o]}\s*(.+?)\s*#{Mx[:lnk_c]}#{Mx[:url_o]}\S+?#{Mx[:url_c]}/m,'\1') end def clean_searchable_text_from_document_objects(arr) txt_arr,en=[],[] diff --git a/lib/sisu/v6/html_segments.rb b/lib/sisu/v6/html_segments.rb index 907e79a5..09c25359 100644 --- a/lib/sisu/v6/html_segments.rb +++ b/lib/sisu/v6/html_segments.rb @@ -689,7 +689,7 @@ module SiSU_HTML_Seg note_match=note.dup note_match_seg=note.dup e_n=note_match_seg[/(?:#{Mx[:en_a_o]}[\d*+]+|#{Mx[:en_b_o]}[*+]\d+)\s+(.+?)(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/m,1] - try=e_n.split(/
/) + try=e_n.split(//) try.each do |e| txt_obj={ txt: e } format_seg=SiSU_HTML_Format::FormatSeg.new(@md,txt_obj) @@ -699,7 +699,7 @@ module SiSU_HTML_Seg end @@seg_endnotes_array << note_match end - try.join('
') + try.join('
') #% creation of separate end segment/page of all endnotes referenced back to reference segment m=/(?:#{Mx[:en_a_o]}[\d*+]+|#{Mx[:en_b_o]}[*+]\d+)\s+(.+?href=")(##{Mx[:note_ref]}[\d*+]+".+)(?:#{Mx[:en_a_c]}|#{Mx[:en_b_c]})/mi endnote_part_a=note_match_seg[m,1] diff --git a/lib/sisu/v6/html_tune.rb b/lib/sisu/v6/html_tune.rb index 48bce66e..8ba389e6 100644 --- a/lib/sisu/v6/html_tune.rb +++ b/lib/sisu/v6/html_tune.rb @@ -290,7 +290,7 @@ module SiSU_HTML_Tune gsub(/#{Mx[:mk_o]}:name#(\S+?)#{Mx[:mk_c]}/,''). gsub(/#{Mx[:gl_bullet]}/m,'●  '). gsub(/#{Mx[:nbsp]}/,' '). - gsub(/<(p|br)>/,'<\1 />') + gsub(/<(p|br) \/>/,'<\1>') dob=SiSU_HTML_Tune::CleanHTML.new(dob).clean dob end -- cgit v1.2.3 From 41ad83d4cdb6c27054bd69977f9640b56c220520 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 19 Oct 2014 21:10:14 -0400 Subject: v5 v6: html_format, "id"s for objects & footnotes --- lib/sisu/v5/html_format.rb | 4 +--- lib/sisu/v5/html_segments.rb | 2 +- lib/sisu/v5/html_tune.rb | 12 ++++++------ lib/sisu/v6/html_format.rb | 5 +---- lib/sisu/v6/html_segments.rb | 2 +- lib/sisu/v6/html_tune.rb | 12 ++++++------ 6 files changed, 16 insertions(+), 21 deletions(-) (limited to 'lib') diff --git a/lib/sisu/v5/html_format.rb b/lib/sisu/v5/html_format.rb index b0611508..78080878 100644 --- a/lib/sisu/v5/html_format.rb +++ b/lib/sisu/v5/html_format.rb @@ -71,10 +71,8 @@ module SiSU_HTML_Format if @ocn.to_i==0 \ or @ocn.empty? '' - elsif @make.build.html_strict? - %{} else - %{} + %{} end else '' diff --git a/lib/sisu/v5/html_segments.rb b/lib/sisu/v5/html_segments.rb index 4c588bb9..06aac4e1 100644 --- a/lib/sisu/v5/html_segments.rb +++ b/lib/sisu/v5/html_segments.rb @@ -672,7 +672,7 @@ module SiSU_HTML_Seg @@seg_subtoc_array << subtoc end if @md.flag_auto_endnotes - if (dob.obj =~/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+  \\2  } + - %{\\1\\2  \\2. \\3 \\4}). + %{  \\2  } + + %{\\1\\2  \\2. \\3 \\4}). gsub(/(#{Mx[:en_b_o]})([*+]\d+)\s+(.+?)(#{Mx[:en_b_c]})/, - %{  \\2  } + - %{\\1\\2  \\2. \\3 \\4}). + %{  \\2  } + + %{\\1\\2  \\2. \\3 \\4}). gsub(/(#{Mx[:en_a_o]})([*+]+)\s+(.+?)(#{Mx[:en_a_c]})/, - %{  \\2  } + - %{\\1\\2  \\2 \\3 \\4}) + %{  \\2  } + + %{\\1\\2  \\2 \\3 \\4}) end dob end diff --git a/lib/sisu/v6/html_format.rb b/lib/sisu/v6/html_format.rb index f02a51e1..a84d079d 100644 --- a/lib/sisu/v6/html_format.rb +++ b/lib/sisu/v6/html_format.rb @@ -71,11 +71,8 @@ module SiSU_HTML_Format if @ocn.to_i==0 \ or @ocn.empty? '' - elsif @make.build.html_strict? - %{} else - %{} - #%{} + %{} end else '' diff --git a/lib/sisu/v6/html_segments.rb b/lib/sisu/v6/html_segments.rb index 09c25359..060258d9 100644 --- a/lib/sisu/v6/html_segments.rb +++ b/lib/sisu/v6/html_segments.rb @@ -672,7 +672,7 @@ module SiSU_HTML_Seg @@seg_subtoc_array << subtoc end if @md.flag_auto_endnotes - if (dob.obj =~/(?:#{Mx[:en_a_o]}|#{Mx[:en_b_o]})[\d*+]+  \\2  } + - %{\\1\\2  \\2. \\3 \\4}). + %{  \\2  } + + %{\\1\\2  \\2. \\3 \\4}). gsub(/(#{Mx[:en_b_o]})([*+]\d+)\s+(.+?)(#{Mx[:en_b_c]})/, - %{  \\2  } + - %{\\1\\2  \\2. \\3 \\4}). + %{  \\2  } + + %{\\1\\2  \\2. \\3 \\4}). gsub(/(#{Mx[:en_a_o]})([*+]+)\s+(.+?)(#{Mx[:en_a_c]})/, - %{  \\2  } + - %{\\1\\2  \\2 \\3 \\4}) + %{  \\2  } + + %{\\1\\2  \\2 \\3 \\4}) end dob end -- cgit v1.2.3 From 2c73f3060f9678f751c236fe17863d443f6a650f Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 19 Oct 2014 21:13:52 -0400 Subject: v5 v6: db, text search & display field, footnotes moved to end of text object * cleaner, more useful search results * cleaner text search field * separate footnote fields redundant for search purposes --- lib/sisu/v5/db_import.rb | 34 +++++++++++++++++----------------- lib/sisu/v5/db_sqltxt.rb | 28 ++++++++++++++++++++++------ lib/sisu/v6/db_import.rb | 34 +++++++++++++++++----------------- lib/sisu/v6/db_sqltxt.rb | 28 ++++++++++++++++++++++------ 4 files changed, 78 insertions(+), 46 deletions(-) (limited to 'lib') diff --git a/lib/sisu/v5/db_import.rb b/lib/sisu/v5/db_import.rb index 59cff28a..72fb3753 100644 --- a/lib/sisu/v5/db_import.rb +++ b/lib/sisu/v5/db_import.rb @@ -334,17 +334,17 @@ module SiSU_DbImport @en,@en_ast,@en_pls,@tuple_array=[],[],[],[] @col[:en_a],@col[:en_z]=nil,nil ao_array.each do |data| - data.obj.gsub!(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/,'\1') - data.obj.gsub!(/#{Mx[:gl_o]}(●)#{Mx[:gl_c]}\s*/,'\1 ') - data.obj.gsub!(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'') #check + data.obj=data.obj.gsub(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,'\1'). + gsub(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/,'\1'). + gsub(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/,'\1'). + gsub(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,'\1'). + gsub(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,'\1'). + gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'\1'). + gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'\1'). + gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'\1'). + gsub(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/,'\1'). + gsub(/#{Mx[:gl_o]}(●)#{Mx[:gl_c]}\s*/,'\1 '). + gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'') #check @col[:seg]=@@seg if data.of ==:para \ || data.of ==:heading \ @@ -374,7 +374,7 @@ module SiSU_DbImport @col[:lid]+=1 txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_minus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -425,7 +425,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -470,7 +470,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -501,7 +501,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -532,7 +532,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -603,7 +603,7 @@ module SiSU_DbImport else SiSU_FormatShared::CSS_Format.new(@md,data).norm end - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) diff --git a/lib/sisu/v5/db_sqltxt.rb b/lib/sisu/v5/db_sqltxt.rb index 6585fd66..3f6cf951 100644 --- a/lib/sisu/v5/db_sqltxt.rb +++ b/lib/sisu/v5/db_sqltxt.rb @@ -60,7 +60,7 @@ module SiSU_DbText class Prepare def special_character_escape(str) - str=str.gsub(/'/,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") + str=str.gsub(/'/m,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") gsub(/(\\)/m,'\1\1'). #ok but with warnings, double backslash on sqlite #str.gsub!(/[\\]/m,'\\x5C') #ok but with warnings, but not for sqlite #str.gsub!(/(\\)/m,'\1') #ok for sqlite not for pgsql gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/m,"
\n"). gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/m,''). #check @@ -80,13 +80,29 @@ module SiSU_DbText gsub(/#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/m,''). gsub(/ \s+/m,' ') #p s if s =~/[^ \nA-Za-z0-9'"`?!#@$%^&*=+,.;:\[\]()<>{}‹›|\\\/~_-]/ - s + txt_arr << s end - txt_arr << arr << en - #txt_arr=txt_arr.flatten + txt_arr=txt_arr << en txt=txt_arr.flatten.join("\n") - txt=special_character_escape(txt) - txt + special_character_escape(txt) + end + def clean_document_objects_body(arr) + txt_arr,en,en_arr=[],[],[] + arr=(arr.is_a?(String)) ? [ arr ] : arr + arr.each do |s| + en << s.scan(/#{Mx[:en_a_o]}\s*(.+?)\s*#{Mx[:en_a_c]}/m) + s=s.gsub(/#{Mx[:en_a_o]}\s*(\d+).+?#{Mx[:en_a_c]}/m,'\1'). + gsub(/#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/m,''). + gsub(/ \s+/m,' ') + txt_arr << s + end + en.flatten.each do |e| + e=e.sub(/^(\d+)\s*/,'\1 ') + en_arr << e + end + txt_arr=txt_arr << en_arr + txt=txt_arr.flatten.join("\n
") + special_character_escape(txt) end def clean_searchable_text_from_document_source(arr) txt_arr,en=[],[] diff --git a/lib/sisu/v6/db_import.rb b/lib/sisu/v6/db_import.rb index 9473863d..5e159451 100644 --- a/lib/sisu/v6/db_import.rb +++ b/lib/sisu/v6/db_import.rb @@ -334,17 +334,17 @@ module SiSU_DbImport @en,@en_ast,@en_pls,@tuple_array=[],[],[],[] @col[:en_a],@col[:en_z]=nil,nil ao_array.each do |data| - data.obj.gsub!(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'\1') - data.obj.gsub!(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/,'\1') - data.obj.gsub!(/#{Mx[:gl_o]}(●)#{Mx[:gl_c]}\s*/,'\1 ') - data.obj.gsub!(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'') #check + data.obj=data.obj.gsub(/#{Mx[:fa_bold_o]}(.+?)#{Mx[:fa_bold_c]}/,'\1'). + gsub(/#{Mx[:fa_italics_o]}(.+?)#{Mx[:fa_italics_c]}/,'\1'). + gsub(/#{Mx[:fa_underscore_o]}(.+?)#{Mx[:fa_underscore_c]}/,'\1'). + gsub(/#{Mx[:fa_superscript_o]}(.+?)#{Mx[:fa_superscript_c]}/,'\1'). + gsub(/#{Mx[:fa_subscript_o]}(.+?)#{Mx[:fa_subscript_c]}/,'\1'). + gsub(/#{Mx[:fa_insert_o]}(.+?)#{Mx[:fa_insert_c]}/,'\1'). + gsub(/#{Mx[:fa_cite_o]}(.+?)#{Mx[:fa_cite_c]}/,'\1'). + gsub(/#{Mx[:fa_strike_o]}(.+?)#{Mx[:fa_strike_c]}/,'\1'). + gsub(/#{Mx[:fa_monospace_o]}(.+?)#{Mx[:fa_monospace_c]}/,'\1'). + gsub(/#{Mx[:gl_o]}(●)#{Mx[:gl_c]}\s*/,'\1 '). + gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/,'') #check @col[:seg]=@@seg if data.of ==:para \ || data.of ==:heading \ @@ -374,7 +374,7 @@ module SiSU_DbImport @col[:lid]+=1 txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_minus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -425,7 +425,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -470,7 +470,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -501,7 +501,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -532,7 +532,7 @@ module SiSU_DbImport @base_url="#{@env.url.root}/#{@md.fnb}/#{@hname}.html" txt=endnotes(txt).extract_any body=SiSU_FormatShared::CSS_Format.new(@md,data).lev4_plus - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) @@ -603,7 +603,7 @@ module SiSU_DbImport else SiSU_FormatShared::CSS_Format.new(@md,data).norm end - @col[:body]=special_character_escape(body) + @col[:body]=clean_document_objects_body(body) plaintext=@col[:body].dup plaintext=strip_markup(plaintext) @col[:plaintext]=clean_searchable_text_from_document_objects(plaintext) diff --git a/lib/sisu/v6/db_sqltxt.rb b/lib/sisu/v6/db_sqltxt.rb index 2fd39fb7..2375d5ca 100644 --- a/lib/sisu/v6/db_sqltxt.rb +++ b/lib/sisu/v6/db_sqltxt.rb @@ -60,7 +60,7 @@ module SiSU_DbText class Prepare def special_character_escape(str) - str=str.gsub(/'/,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") + str=str.gsub(/'/m,"''"). #string.gsub!(/'/,"\047") #string.gsub!(/'/,"\\'") gsub(/(\\)/m,'\1\1'). #ok but with warnings, double backslash on sqlite #str.gsub!(/[\\]/m,'\\x5C') #ok but with warnings, but not for sqlite #str.gsub!(/(\\)/m,'\1') #ok for sqlite not for pgsql gsub(/#{Mx[:br_line]}|#{Mx[:br_nl]}/m,"
\n"). gsub(/#{Mx[:tag_o]}\S+?#{Mx[:tag_c]}/m,''). #check @@ -80,13 +80,29 @@ module SiSU_DbText gsub(/#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/m,''). gsub(/ \s+/m,' ') #p s if s =~/[^ \nA-Za-z0-9'"`?!#@$%^&*=+,.;:\[\]()<>{}‹›|\\\/~_-]/ - s + txt_arr << s end - txt_arr << arr << en - #txt_arr=txt_arr.flatten + txt_arr=txt_arr << en txt=txt_arr.flatten.join("\n") - txt=special_character_escape(txt) - txt + special_character_escape(txt) + end + def clean_document_objects_body(arr) + txt_arr,en,en_arr=[],[],[] + arr=(arr.is_a?(String)) ? [ arr ] : arr + arr.each do |s| + en << s.scan(/#{Mx[:en_a_o]}\s*(.+?)\s*#{Mx[:en_a_c]}/m) + s=s.gsub(/#{Mx[:en_a_o]}\s*(\d+).+?#{Mx[:en_a_c]}/m,'\1'). + gsub(/#{Mx[:en_b_o]}.+?#{Mx[:en_b_c]}/m,''). + gsub(/ \s+/m,' ') + txt_arr << s + end + en.flatten.each do |e| + e=e.sub(/^(\d+)\s*/,'\1 ') + en_arr << e + end + txt_arr=txt_arr << en_arr + txt=txt_arr.flatten.join("\n
") + special_character_escape(txt) end def clean_searchable_text_from_document_source(arr) txt_arr,en=[],[] -- cgit v1.2.3 From 18ee3095eb3c7119c6d10a4b9e107d907c7aac19 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 19 Oct 2014 21:17:49 -0400 Subject: v5 v6: cgi, sample search form, find & display endnotes from parent text object * remove dedicated endnote search section (as endnotes found & listed from reference text field) * cleaner search results --- lib/sisu/v5/cgi_pgsql.rb | 18 +------- lib/sisu/v5/cgi_sql_common.rb | 99 +++---------------------------------------- lib/sisu/v5/cgi_sqlite.rb | 18 +------- lib/sisu/v6/cgi_pgsql.rb | 18 +------- lib/sisu/v6/cgi_sql_common.rb | 99 +++---------------------------------------- lib/sisu/v6/cgi_sqlite.rb | 18 +------- 6 files changed, 16 insertions(+), 254 deletions(-) (limited to 'lib') diff --git a/lib/sisu/v5/cgi_pgsql.rb b/lib/sisu/v5/cgi_pgsql.rb index 8b4210e0..3ae98ffe 100644 --- a/lib/sisu/v5/cgi_pgsql.rb +++ b/lib/sisu/v5/cgi_pgsql.rb @@ -233,11 +233,9 @@ module SiSU_CGI_PgSQL #% database building doc end def search_query1 <<-'WOK_SQL' - @search_text,@search_endnotes='','' + @search_text='' @search_text=search[:text].flatten.join(' AND ') @search_text=@search_text.gsub(/(doc_objects\.clean~[*]?\(\s*'[^']+'\s*\)\s+(?:(?:AND|OR)\s+doc_objects\.clean~[*]?\(\s*'[^']+'\s*\))+)/,'(\1)') - @search_endnotes=search[:endnotes].flatten.join(' AND ') - @search_endnotes=@search_endnotes.gsub(/(endnotes\.clean~\(\s*'[^']+'\s*\)\s+(?:(?:AND|OR)\s+endnotes\.clean~\(\s*'[^']+'\s*\))+)/,'(\1)') end WOK_SQL end @@ -251,26 +249,12 @@ module SiSU_CGI_PgSQL #% database building doc select=@sql_statement[:body] + ' ' + @sql_statement[:range] select end - def sql_select_endnotes - limit ||=@@limit - offset ||=@@offset - @sql_statement[:endnotes]=%{SELECT metadata_and_text.title, metadata_and_text.creator_author, metadata_and_text.src_filename, metadata_and_text.language_document_char, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata_and_text, endnotes WHERE (#{@search_endnotes}) AND metadata_and_text.tid = endnotes.metadata_tid ORDER BY metadata_and_text.language_document_char, metadata_and_text.title, metadata_and_text.src_filename, endnotes.nr} - @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;} - select=@sql_statement[:endnotes] + ' ' + @sql_statement[:range] - select - end def sql_select_body_format %{#{sql_select_body}} end - def sql_select_endnotes_format - %{#{sql_select_endnotes}} - end def contents @conn.exec(sql_select_body) end - def endnotes - @conn.exec(sql_select_endnotes) - end end WOK_SQL end diff --git a/lib/sisu/v5/cgi_sql_common.rb b/lib/sisu/v5/cgi_sql_common.rb index eb8ce0ab..4d2304ba 100644 --- a/lib/sisu/v5/cgi_sql_common.rb +++ b/lib/sisu/v5/cgi_sql_common.rb @@ -331,7 +331,7 @@ module SiSU_CGI_SQL def search_statement_common <<-'WOK_SQL' class DBI_SearchStatement - attr_reader :text_search_flag,:sql_select_body_format,:sql_select_endnotes_format,:sql_offset,:sql_limit + attr_reader :text_search_flag,:sql_select_body_format,:sql_offset,:sql_limit def initialize(conn,search_for,q,c) @conn=conn @text_search_flag=false @@ -345,107 +345,86 @@ module SiSU_CGI_SQL @text_search_flag=st[:flag] if st[:flag] search[:text] << st[:search] - search[:endnotes] << se[:search] end st=DBI_SearchString.new('metadata_and_text.fulltext',search_for.fulltext,q['ft'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.title',search_for.title,q['ti'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.creator_author',search_for.author,q['au'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.classify_topic_register',search_for.topic_register,q['tr'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.classify_subject',search_for.subject,q['sj'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.classify_keywords',search_for.keywords,q['key'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_description',search_for.description,q['dsc'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.publisher',search_for.publisher,q['pb'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.creator_editor',search_for.editor,q['cntr'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.creator_contributor',search_for.contributor,q['cntr'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.date_published',search_for.date,q['dt'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_type',search_for.type,q['ty'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.original_source',search_for.source,q['src'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.language_document_char',search_for.language,q['lang'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_relation',search_for.relation,q['rel'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_coverage',search_for.coverage,q['cov'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.rights_all',search_for.rights,q['cr'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_comment',search_for.comment,q['co'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.notes_abstract',search_for.abstract,q['ab'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end st=DBI_SearchString.new('metadata_and_text.src_filename',search_for.filename,q['fns'],cse).string if st[:flag] search[:text] << st[:search] - search[:endnotes] << st[:search] end @@limit=q['ltd'] if q['ltd']=~/\d+/ # 1000 @@offset=q['off'] if q['off']=~/\d+/ # 0 @@ -648,7 +627,7 @@ module SiSU_CGI_SQL <<-'WOK_SQL' @tail=tail @counter_txt_doc,@counter_txt_ocn,@counter_endn_doc,@counter_endn_ocn=0,0,0,0 - @counters_txt,@counters_endn,@sql_select_body,@sql_select_endnotes='','','','' + @counters_txt,@counters_endn,@sql_select_body='','','' FCGI.each_cgi do |cgi| begin # all code goes in begin section @search={ text: [], endnotes: [] } @@ -739,10 +718,8 @@ module SiSU_CGI_SQL @canned_base_url="#{@base}?#{mod}&db=#{cgi['db']}" if checked_case=~/\S/ @search[:text][1]=%{doc_objects.clean~'#{@search_for.text1}'} #s1 - @search[:endnotes][1]=%{endnotes.clean~'#{@search_for.text1}'} #s1 else @search[:text][1]=%{doc_objects.clean~*'#{@search_for.text1}'} #s1 - @search[:endnotes][1]=%{endnotes.clean~*'#{@search_for.text1}'} #s1 end canned_note='search url:' else @@ -811,28 +788,23 @@ module SiSU_CGI_SQL : 'Unavailable' if checked_case=~/\S/ @search[:text]<<%{doc_objects.clean~'#{CGI.unescape(s1)}'} - @search[:endnotes]<<%{endnotes.clean~'#{CGI.unescape(s1)}'} else @search[:text]<<%{doc_objects.clean~*'#{CGI.unescape(s1)}'} - @search[:endnotes]<<%{endnotes.clean~*'#{CGI.unescape(s1)}'} end #% dbi_request dbi_statement=DBI_SearchStatement.new(@conn,@search_for,q,checked_case) @text_search_flag=false @text_search_flag=dbi_statement.text_search_flag s_contents=dbi_statement.contents - s_endnotes=dbi_statement.endnotes - @body_main,@endnotes='','' + @body_main='' @search_regx=nil oldtid=0 if @text_search_flag if checked_sql =~/\S/ sql_select_body=dbi_statement.sql_select_body_format - sql_select_endnotes=dbi_statement.sql_select_endnotes_format - else sql_select_body,sql_select_endnotes='','' + else sql_select_body='' end - @body_main << '



Main Text:
' << sql_select_body - @endnotes << '



Endnotes:
' << sql_select_endnotes + @body_main << sql_select_body else end @hostpath="#{@hosturl_files}/#{@stub}" @@ -884,16 +856,6 @@ module SiSU_CGI_SQL "#{path_html_seg(fn,ln)}/#{seg}.html" end end - def path_endnotes(fn,ln=nil) - if @output_dir_structure_by =='filename' \ - or @output_dir_structure_by =='filetype' - @lingual =='mono' \ - ? "#{path_html_seg(fn,ln)}/endnotes.html" - : "#{path_html_seg(fn,ln)}/endnotes.#{ln}.html" - else - "#{path_html_seg(fn,ln)}/endnotes.html" - end - end def path_html_doc(fn,ln=nil) case @output_dir_structure_by when 'filename' @@ -1003,56 +965,7 @@ module SiSU_CGI_SQL end @body_main << output #+ details end - #text_objects_endnote oldtid = 0 - s_endnotes.each do |e| #% endnotes - location=e['src_filename'][/(.+?)\.(?:ssm\.sst|sst)$/,1] - file_suffix=e['src_filename'][/.+?\.(ssm\.sst|sst)$/,1] - lang=if location =~ /\S+?~(\S\S\S?)$/ - l=location[/\S+?~(\S\S\S?)$/,1] - location=location.gsub(/(\S+?)~\S\S\S?/,'\1') - l=".#{l}" - else '' - end - #metadata_found_endnotes - if @text_search_flag - if e['metadata_tid'].to_i != oldtid.to_i - ti=e['title'] - can_txt_srch=(cgi['view']=~/index/) \ - ? %{search } - : %{search } - title=%{

toc html #{ti} [#{e['language_document_char']}] by #{e['creator_author']} #{can_txt_srch}toc html manifest
} if file_suffix=~/s/ - @counter_endn_doc+=1 - oldtid=e['metadata_tid'].to_i - else title = '' - end - if cgi['view']=~/text/ \ - or (cgi['view']!~/index/ and cgi['search'] !~/search db/) #% txt endnotes - @counter_endn_ocn+=1 - matched_endnote=(@search_regx.to_s.is_a?(String) \ - && @search_regx.to_s=~/\S\S+/) \ - ? (matched=e['body'].gsub(/(<\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{\\1})) - : e['body'] - output=%{#{title}
note #{e['nr']} referred to from ocn #{e['ocn']}: #{matched_endnote}} - else #elsif cgi['view']=~/index/ #doc #FIX #% idx endnotes - @counter_endn_ocn+=1 - output=%{#{title}#{e['nr']}#{e['ocn']}], } - end - @counters_endn=if @counter_endn_doc > 0 - if checked_stats =~/\S/ - @@lt_e=@counter_endn_ocn==dbi_statement.sql_match_limit.to_i \ - ? true - : false - start=(@@offset.to_i+1).to_s - range=(@@offset.to_i+@counter_endn_ocn.to_i).to_s - %{Found #{@counter_endn_ocn} times in the endnotes of #{@counter_endn_doc} documents [ matches #{start} to #{range} ]
} - else '' - end - end - @endnotes << output #+ details - else @endnotes='' #does not take out yet - end - end offset=dbi_statement.sql_offset.to_s limit=dbi_statement.sql_match_limit.to_s @@lt_t ||=false; @@lt_e ||=false @@ -1060,7 +973,7 @@ module SiSU_CGI_SQL ? dbi_statement.pre_next(true,@image_src).to_s : dbi_statement.pre_next(false,@image_src).to_s limit=dbi_statement.sql_match_limit.to_s - cgi.out{@header.force_encoding("UTF-8") + @counters_txt.force_encoding("UTF-8") + @counters_endn.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @body_main.force_encoding("UTF-8") + @endnotes.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @tail.force_encoding("UTF-8")} #% print cgi_output_header+counters+body+endnotes + cgi.out{@header.force_encoding("UTF-8") + @counters_txt.force_encoding("UTF-8") + @counters_endn.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @body_main.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @tail.force_encoding("UTF-8")} #% print cgi_output_header+counters+body end rescue Exception => e s='
' + CGI::escapeHTML(e.backtrace.reverse.join("\n"))
diff --git a/lib/sisu/v5/cgi_sqlite.rb b/lib/sisu/v5/cgi_sqlite.rb
index 2b4e668f..8f3f58eb 100644
--- a/lib/sisu/v5/cgi_sqlite.rb
+++ b/lib/sisu/v5/cgi_sqlite.rb
@@ -211,11 +211,9 @@ module  SiSU_CGI_SQLite                                 #% database building doc
     end
     def search_query1
       <<-'WOK_SQL'
-          @search_text,@search_endnotes='',''
+          @search_text=''
           @search_text=search[:text].flatten.join(' AND ')
           @search_text=@search_text.gsub(/(doc_objects\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\)\s+(?:(?:AND|OR)\s+doc_objects\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\))+)/,'(\1)')
-          @search_endnotes=search[:endnotes].flatten.join(' AND ')
-          @search_endnotes=@search_endnotes.gsub(/(endnotes\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\)\s+(?:(?:AND|OR)\s+endnotes\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\))+)/,'(\1)')
         end
       WOK_SQL
     end
@@ -229,26 +227,12 @@ module  SiSU_CGI_SQLite                                 #% database building doc
           select=@sql_statement[:body] + ' ' + @sql_statement[:range]
           select
         end
-        def sql_select_endnotes
-          limit ||=@@limit
-          offset ||=@@offset
-          @sql_statement[:endnotes]=%{SELECT metadata_and_text.title, metadata_and_text.creator_author, metadata_and_text.src_filename, metadata_and_text.language_document_char, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata_and_text, endnotes WHERE #{@search_endnotes} AND metadata_and_text.tid = endnotes.metadata_tid ORDER BY metadata_and_text.language_document_char, metadata_and_text.title, metadata_and_text.src_filename, endnotes.nr}
-          @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;}
-          select=@sql_statement[:endnotes] + ' ' + @sql_statement[:range]
-          select
-        end
         def sql_select_body_format
           %{#{sql_select_body}}
         end
-        def sql_select_endnotes_format
-          %{#{sql_select_endnotes}}
-        end
         def contents
           @conn.execute(sql_select_body)
         end
-        def endnotes
-          @conn.execute(sql_select_endnotes)
-        end
       end
       WOK_SQL
     end
diff --git a/lib/sisu/v6/cgi_pgsql.rb b/lib/sisu/v6/cgi_pgsql.rb
index 9feffd40..49ab0e50 100644
--- a/lib/sisu/v6/cgi_pgsql.rb
+++ b/lib/sisu/v6/cgi_pgsql.rb
@@ -233,11 +233,9 @@ module  SiSU_CGI_PgSQL                                  #% database building doc
     end
     def search_query1
       <<-'WOK_SQL'
-          @search_text,@search_endnotes='',''
+          @search_text=''
           @search_text=search[:text].flatten.join(' AND ')
           @search_text=@search_text.gsub(/(doc_objects\.clean~[*]?\(\s*'[^']+'\s*\)\s+(?:(?:AND|OR)\s+doc_objects\.clean~[*]?\(\s*'[^']+'\s*\))+)/,'(\1)')
-          @search_endnotes=search[:endnotes].flatten.join(' AND ')
-          @search_endnotes=@search_endnotes.gsub(/(endnotes\.clean~\(\s*'[^']+'\s*\)\s+(?:(?:AND|OR)\s+endnotes\.clean~\(\s*'[^']+'\s*\))+)/,'(\1)')
         end
       WOK_SQL
     end
@@ -251,26 +249,12 @@ module  SiSU_CGI_PgSQL                                  #% database building doc
           select=@sql_statement[:body] + ' ' + @sql_statement[:range]
           select
         end
-        def sql_select_endnotes
-          limit ||=@@limit
-          offset ||=@@offset
-          @sql_statement[:endnotes]=%{SELECT metadata_and_text.title, metadata_and_text.creator_author, metadata_and_text.src_filename, metadata_and_text.language_document_char, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata_and_text, endnotes WHERE (#{@search_endnotes}) AND metadata_and_text.tid = endnotes.metadata_tid ORDER BY metadata_and_text.language_document_char, metadata_and_text.title, metadata_and_text.src_filename, endnotes.nr}
-          @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;}
-          select=@sql_statement[:endnotes] + ' ' + @sql_statement[:range]
-          select
-        end
         def sql_select_body_format
           %{#{sql_select_body}}
         end
-        def sql_select_endnotes_format
-          %{#{sql_select_endnotes}}
-        end
         def contents
           @conn.exec(sql_select_body)
         end
-        def endnotes
-          @conn.exec(sql_select_endnotes)
-        end
       end
       WOK_SQL
     end
diff --git a/lib/sisu/v6/cgi_sql_common.rb b/lib/sisu/v6/cgi_sql_common.rb
index 0bc663d0..6976e042 100644
--- a/lib/sisu/v6/cgi_sql_common.rb
+++ b/lib/sisu/v6/cgi_sql_common.rb
@@ -331,7 +331,7 @@ module SiSU_CGI_SQL
     def search_statement_common
       <<-'WOK_SQL'
       class DBI_SearchStatement
-        attr_reader :text_search_flag,:sql_select_body_format,:sql_select_endnotes_format,:sql_offset,:sql_limit
+        attr_reader :text_search_flag,:sql_select_body_format,:sql_offset,:sql_limit
         def initialize(conn,search_for,q,c)
           @conn=conn
           @text_search_flag=false
@@ -345,107 +345,86 @@ module SiSU_CGI_SQL
           @text_search_flag=st[:flag]
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << se[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.fulltext',search_for.fulltext,q['ft'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.title',search_for.title,q['ti'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.creator_author',search_for.author,q['au'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.classify_topic_register',search_for.topic_register,q['tr'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.classify_subject',search_for.subject,q['sj'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.classify_keywords',search_for.keywords,q['key'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_description',search_for.description,q['dsc'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.publisher',search_for.publisher,q['pb'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.creator_editor',search_for.editor,q['cntr'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.creator_contributor',search_for.contributor,q['cntr'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.date_published',search_for.date,q['dt'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_type',search_for.type,q['ty'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.original_source',search_for.source,q['src'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.language_document_char',search_for.language,q['lang'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_relation',search_for.relation,q['rel'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_coverage',search_for.coverage,q['cov'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.rights_all',search_for.rights,q['cr'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_comment',search_for.comment,q['co'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.notes_abstract',search_for.abstract,q['ab'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           st=DBI_SearchString.new('metadata_and_text.src_filename',search_for.filename,q['fns'],cse).string
           if st[:flag]
             search[:text]                    << st[:search]
-            search[:endnotes]                << st[:search]
           end
           @@limit=q['ltd'] if q['ltd']=~/\d+/  # 1000
           @@offset=q['off'] if q['off']=~/\d+/ # 0
@@ -648,7 +627,7 @@ module SiSU_CGI_SQL
       <<-'WOK_SQL'
       @tail=tail
       @counter_txt_doc,@counter_txt_ocn,@counter_endn_doc,@counter_endn_ocn=0,0,0,0
-      @counters_txt,@counters_endn,@sql_select_body,@sql_select_endnotes='','','',''
+      @counters_txt,@counters_endn,@sql_select_body='','',''
       FCGI.each_cgi do |cgi|
         begin # all code goes in begin section
           @search={ text: [], endnotes: [] }
@@ -739,10 +718,8 @@ module SiSU_CGI_SQL
             @canned_base_url="#{@base}?#{mod}&db=#{cgi['db']}"
             if checked_case=~/\S/
               @search[:text][1]=%{doc_objects.clean~'#{@search_for.text1}'} #s1
-              @search[:endnotes][1]=%{endnotes.clean~'#{@search_for.text1}'} #s1
             else
               @search[:text][1]=%{doc_objects.clean~*'#{@search_for.text1}'} #s1
-              @search[:endnotes][1]=%{endnotes.clean~*'#{@search_for.text1}'} #s1
             end
             canned_note='search url:'
           else
@@ -811,28 +788,23 @@ module SiSU_CGI_SQL
           : 'Unavailable'
           if checked_case=~/\S/
             @search[:text]<<%{doc_objects.clean~'#{CGI.unescape(s1)}'}
-            @search[:endnotes]<<%{endnotes.clean~'#{CGI.unescape(s1)}'}
           else
             @search[:text]<<%{doc_objects.clean~*'#{CGI.unescape(s1)}'}
-            @search[:endnotes]<<%{endnotes.clean~*'#{CGI.unescape(s1)}'}
           end
           #% dbi_request
           dbi_statement=DBI_SearchStatement.new(@conn,@search_for,q,checked_case)
           @text_search_flag=false
           @text_search_flag=dbi_statement.text_search_flag
           s_contents=dbi_statement.contents
-          s_endnotes=dbi_statement.endnotes
-          @body_main,@endnotes='',''
+          @body_main=''
           @search_regx=nil
           oldtid=0
           if @text_search_flag
             if checked_sql =~/\S/
               sql_select_body=dbi_statement.sql_select_body_format
-              sql_select_endnotes=dbi_statement.sql_select_endnotes_format
-            else sql_select_body,sql_select_endnotes='',''
+            else sql_select_body=''
             end
-            @body_main << '



Main Text:
' << sql_select_body - @endnotes << '



Endnotes:
' << sql_select_endnotes + @body_main << sql_select_body else end @hostpath="#{@hosturl_files}/#{@stub}" @@ -884,16 +856,6 @@ module SiSU_CGI_SQL "#{path_html_seg(fn,ln)}/#{seg}.html" end end - def path_endnotes(fn,ln=nil) - if @output_dir_structure_by =='filename' \ - or @output_dir_structure_by =='filetype' - @lingual =='mono' \ - ? "#{path_html_seg(fn,ln)}/endnotes.html" - : "#{path_html_seg(fn,ln)}/endnotes.#{ln}.html" - else - "#{path_html_seg(fn,ln)}/endnotes.html" - end - end def path_html_doc(fn,ln=nil) case @output_dir_structure_by when 'filename' @@ -1003,56 +965,7 @@ module SiSU_CGI_SQL end @body_main << output #+ details end - #text_objects_endnote oldtid = 0 - s_endnotes.each do |e| #% endnotes - location=e['src_filename'][/(.+?)\.(?:ssm\.sst|sst)$/,1] - file_suffix=e['src_filename'][/.+?\.(ssm\.sst|sst)$/,1] - lang=if location =~ /\S+?~(\S\S\S?)$/ - l=location[/\S+?~(\S\S\S?)$/,1] - location=location.gsub(/(\S+?)~\S\S\S?/,'\1') - l=".#{l}" - else '' - end - #metadata_found_endnotes - if @text_search_flag - if e['metadata_tid'].to_i != oldtid.to_i - ti=e['title'] - can_txt_srch=(cgi['view']=~/index/) \ - ? %{search } - : %{search } - title=%{

toc html #{ti} [#{e['language_document_char']}] by #{e['creator_author']} #{can_txt_srch}toc html manifest
} if file_suffix=~/s/ - @counter_endn_doc+=1 - oldtid=e['metadata_tid'].to_i - else title = '' - end - if cgi['view']=~/text/ \ - or (cgi['view']!~/index/ and cgi['search'] !~/search db/) #% txt endnotes - @counter_endn_ocn+=1 - matched_endnote=(@search_regx.to_s.is_a?(String) \ - && @search_regx.to_s=~/\S\S+/) \ - ? (matched=e['body'].gsub(/(<\s]+#{@search_regx}[^>]+?>|#{@search_regx})/mi,%{\\1})) - : e['body'] - output=%{#{title}
note #{e['nr']} referred to from ocn #{e['ocn']}: #{matched_endnote}} - else #elsif cgi['view']=~/index/ #doc #FIX #% idx endnotes - @counter_endn_ocn+=1 - output=%{#{title}#{e['nr']}#{e['ocn']}], } - end - @counters_endn=if @counter_endn_doc > 0 - if checked_stats =~/\S/ - @@lt_e=@counter_endn_ocn==dbi_statement.sql_match_limit.to_i \ - ? true - : false - start=(@@offset.to_i+1).to_s - range=(@@offset.to_i+@counter_endn_ocn.to_i).to_s - %{Found #{@counter_endn_ocn} times in the endnotes of #{@counter_endn_doc} documents [ matches #{start} to #{range} ]
} - else '' - end - end - @endnotes << output #+ details - else @endnotes='' #does not take out yet - end - end offset=dbi_statement.sql_offset.to_s limit=dbi_statement.sql_match_limit.to_s @@lt_t ||=false; @@lt_e ||=false @@ -1060,7 +973,7 @@ module SiSU_CGI_SQL ? dbi_statement.pre_next(true,@image_src).to_s : dbi_statement.pre_next(false,@image_src).to_s limit=dbi_statement.sql_match_limit.to_s - cgi.out{@header.force_encoding("UTF-8") + @counters_txt.force_encoding("UTF-8") + @counters_endn.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @body_main.force_encoding("UTF-8") + @endnotes.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @tail.force_encoding("UTF-8")} #% print cgi_output_header+counters+body+endnotes + cgi.out{@header.force_encoding("UTF-8") + @counters_txt.force_encoding("UTF-8") + @counters_endn.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @body_main.force_encoding("UTF-8") + canned.force_encoding("UTF-8") + @tail.force_encoding("UTF-8")} #% print cgi_output_header+counters+body end rescue Exception => e s='
' + CGI::escapeHTML(e.backtrace.reverse.join("\n"))
diff --git a/lib/sisu/v6/cgi_sqlite.rb b/lib/sisu/v6/cgi_sqlite.rb
index d9b1559d..d11d4c30 100644
--- a/lib/sisu/v6/cgi_sqlite.rb
+++ b/lib/sisu/v6/cgi_sqlite.rb
@@ -211,11 +211,9 @@ module  SiSU_CGI_SQLite                                 #% database building doc
     end
     def search_query1
       <<-'WOK_SQL'
-          @search_text,@search_endnotes='',''
+          @search_text=''
           @search_text=search[:text].flatten.join(' AND ')
           @search_text=@search_text.gsub(/(doc_objects\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\)\s+(?:(?:AND|OR)\s+doc_objects\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\))+)/,'(\1)')
-          @search_endnotes=search[:endnotes].flatten.join(' AND ')
-          @search_endnotes=@search_endnotes.gsub(/(endnotes\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\)\s+(?:(?:AND|OR)\s+endnotes\.clean\s+LIKE\s+\(\s*'%[^']+%'\s*\))+)/,'(\1)')
         end
       WOK_SQL
     end
@@ -229,26 +227,12 @@ module  SiSU_CGI_SQLite                                 #% database building doc
           select=@sql_statement[:body] + ' ' + @sql_statement[:range]
           select
         end
-        def sql_select_endnotes
-          limit ||=@@limit
-          offset ||=@@offset
-          @sql_statement[:endnotes]=%{SELECT metadata_and_text.title, metadata_and_text.creator_author, metadata_and_text.src_filename, metadata_and_text.language_document_char, endnotes.body, endnotes.nr, endnotes.ocn, endnotes.metadata_tid FROM metadata_and_text, endnotes WHERE #{@search_endnotes} AND metadata_and_text.tid = endnotes.metadata_tid ORDER BY metadata_and_text.language_document_char, metadata_and_text.title, metadata_and_text.src_filename, endnotes.nr}
-          @sql_statement[:range]=%{LIMIT #{limit} OFFSET #{offset} ;}
-          select=@sql_statement[:endnotes] + ' ' + @sql_statement[:range]
-          select
-        end
         def sql_select_body_format
           %{#{sql_select_body}}
         end
-        def sql_select_endnotes_format
-          %{#{sql_select_endnotes}}
-        end
         def contents
           @conn.execute(sql_select_body)
         end
-        def endnotes
-          @conn.execute(sql_select_endnotes)
-        end
       end
       WOK_SQL
     end
-- 
cgit v1.2.3