Hi, all.  This is a variation on a patch posted to htdig3-dev on Wednesday.
It will also be available on http://www.htdig.org/files/contrib/other/ .

This patch adds start_highlight, end_highlight, and page_number_separator
attributes to htsearch, to improve configurability of output formats.  It's
an adaptation of a similar patch by Sergey Yu. Abdurashitov, posted to the
htdig3-dev mailing list, with improvements and documentation added.

--- htdig-3.1.3/htcommon/defaults.cc.orig       Wed Sep 22 11:18:39 1999
+++ htdig-3.1.3/htcommon/defaults.cc    Fri Oct 29 15:54:40 1999
@@ -48,6 +48,7 @@ ConfigDefaults        defaults[] =
     {"doc_index",                      "${database_base}.docs.index"},
     {"doc_list",                       "${database_base}.docs"},
     {"end_ellipses",                   "<b><tt> ...</tt></b>"},
+    {"end_highlight",                  "</strong>"},
     {"endings_affix_file",             "${common_dir}/english.aff"},
     {"endings_dictionary",             "${common_dir}/english.0"},
     {"endings_root2word_db",           "${common_dir}/root2word.db"},
@@ -107,6 +108,7 @@ ConfigDefaults      defaults[] =
     {"no_title_text",                   "filename"},
     {"nothing_found_file",             "${common_dir}/nomatch.html"},
     {"page_list_header",               "<hr noshade size=2>Pages:<br>"},
+    {"page_number_separator",          "\" \""},
     {"prefix_match_character",         "*"},
     {"prev_page_text",                 "[prev]"},
     {"remove_bad_urls",                        "true"},
@@ -126,6 +128,7 @@ ConfigDefaults      defaults[] =
     {"star_image",                     "${image_url_prefix}/star.gif"},
     {"star_patterns",                  ""},
     {"start_ellipses",                 "<b><tt>... </tt></b>"},
+    {"start_highlight",                        "<strong>"},
     {"start_url",                      "http://www.htdig.org/"},
     {"substring_max_words",            "25"},
     {"synonym_db",                     "${common_dir}/synonyms.db"},
--- htdig-3.1.3/htdoc/attrs.html.orig   Wed Oct 20 11:37:52 1999
+++ htdig-3.1.3/htdoc/attrs.html        Fri Oct 29 15:51:06 1999
@@ -1232,6 +1232,53 @@
        <hr>
        <dl>
          <dt>
+               <strong><a name="end_highlight">
+               end_highlight</a></strong>
+         </dt>
+         <dd>
+               <dl>
+                 <dt>
+                       <em>type:</em>
+                 </dt>
+                 <dd>
+                       string
+                 </dd>
+                 <dt>
+                       <em>used by:</em>
+                 </dt>
+                 <dd>
+                       <a href="htsearch.html" target="_top">htsearch</a>
+                 </dd>
+                 <dt>
+                       <em>default:</em>
+                 </dt>
+                 <dd>
+                       &lt;/strong&gt;
+                 </dd>
+                 <dt>
+                       <em>description:</em>
+                 </dt>
+                 <dd>
+                       When excerpts are displayed in the search output,
+                       matched words will be highlighted using
+                       <a href="#start_highlight">start_highlight</a>
+                       and this string. You should ensure that
+                       highlighting tags are balanced, that is, this
+                       string should close any formatting tag opened
+                       by start_highlight.
+                 </dd>
+                 <dt>
+                       <em>example:</em>
+                 </dt>
+                 <dd>
+                       end_highlight: &lt;/font&gt;
+                 </dd>
+               </dl>
+         </dd>
+       </dl>
+       <hr>
+       <dl>
+         <dt>
                <strong><a name="endings_affix_file">
                endings_affix_file</a></strong>
          </dt>
@@ -1479,13 +1526,17 @@
                  <dd>
                        This is the maximum number of characters the displayed
                        excerpt will be limited to. The first matched word will
-                       be bolded in the middle of the excerpt so that there is
+                       be highlighted in the middle of the excerpt so that there is
                        some surrounding context.<br>
                         The <em><a href="#start_ellipses">
                        start_ellipses</a></em> and
                        <em><a href="#end_ellipses">end_ellipses</a></em> are used to
                        indicate that the document contains text before and
                        after the displayed excerpt respectively.
+                       The <em><a href="#start_highlight">start_highlight</a></em>
+                       and <em><a href="#end_highlight">end_highlight</a></em>
+                       are used to specify what formatting tags are used to
+                       highlight matched words.
                  </dd>
                  <dt>
                        <em>example:</em>
@@ -4206,6 +4257,65 @@
        <hr>
        <dl>
          <dt>
+               <strong><a name="page_number_separator">
+               page_number_separator</a></strong>
+         </dt>
+         <dd>
+               <dl>
+                 <dt>
+                       <em>type:</em>
+                 </dt>
+                 <dd>
+                       quoted string list
+                 </dd>
+                 <dt>
+                       <em>used by:</em>
+                 </dt>
+                 <dd>
+                       <a href="htsearch.html" target="_top">htsearch</a>
+                 </dd>
+                 <dt>
+                       <em>default:</em>
+                 </dt>
+                 <dd>
+                       " "
+                 </dd>
+                 <dt>
+                       <em>description:</em>
+                 </dt>
+                 <dd>
+                       The text strings in this list will be
+                       used when putting together the PAGELIST
+                       variable, for use in templates or the
+                       <a href="#search_results_footer">
+                       search_results_footer</a> file, when search
+                       results fit on more than page. The PAGELIST
+                       is the list of links at the bottom of the
+                       search results page. The strings in the
+                       list will be used in rotation, and will
+                       separate individual entries taken from
+                       <a href="#page_number_text">page_number_text</a> and
+                       <a href="#no_page_number_text">no_page_number_text</a>.
+                       There can be as many or as few strings in the
+                       list as you like.  If there are not enough for
+                       the number of pages listed, it goes back to
+                       the start of the list. If the list is empty,
+                       a space is used. The text strings can contain
+                       HTML tags. The strings need to be quoted if they
+                       contain spaces, or to specify an empty string.
+                 </dd>
+                 <dt>
+                       <em>example:</em>
+                 </dt>
+                 <dd>
+                       page_number_separator: "&lt;/td&gt; &lt;td&gt;"
+                 </dd>
+               </dl>
+         </dd>
+       </dl>
+       <hr>
+       <dl>
+         <dt>
                <strong><a name="page_number_text">
                page_number_text</a></strong>
          </dt>
@@ -5559,6 +5669,53 @@
        <hr>
        <dl>
          <dt>
+               <strong><a name="start_highlight">
+               start_highlight</a></strong>
+         </dt>
+         <dd>
+               <dl>
+                 <dt>
+                       <em>type:</em>
+                 </dt>
+                 <dd>
+                       string
+                 </dd>
+                 <dt>
+                       <em>used by:</em>
+                 </dt>
+                 <dd>
+                       <a href="htsearch.html" target="_top">htsearch</a>
+                 </dd>
+                 <dt>
+                       <em>default:</em>
+                 </dt>
+                 <dd>
+                       &lt;strong&gt;
+                 </dd>
+                 <dt>
+                       <em>description:</em>
+                 </dt>
+                 <dd>
+                       When excerpts are displayed in the search
+                       output, matched words will be highlighted using
+                       this string and <a href="#end_highlight">
+                       end_highlight</a>. You should ensure that
+                       highlighting tags are balanced, that is, any
+                       formatting tags that this string opens should
+                       be closed by end_highlight.
+                 </dd>
+                 <dt>
+                       <em>example:</em>
+                 </dt>
+                 <dd>
+                       start_highlight: &lt;font color="#FF0000"&gt;
+                 </dd>
+               </dl>
+         </dd>
+       </dl>
+       <hr>
+       <dl>
+         <dt>
                <strong><a name="start_url">start_url</a></strong>
          </dt>
          <dd>
@@ -6732,7 +6889,7 @@
          <a href="author.html">Andrew Scherpbier &lt;[EMAIL PROTECTED]&gt;</a>
        </address>
 <!-- hhmts start -->
-Last modified: Fri Aug  6 15:00:15 EDT 1999
+Last modified: Fri Oct 29 16:50:59 EDT 1999
 <!-- hhmts end -->
   </body>
 </html>
--- htdig-3.1.3/htdoc/cf_byname.html.orig       Wed Sep 22 11:18:41 1999
+++ htdig-3.1.3/htdoc/cf_byname.html    Fri Oct 29 15:57:42 1999
@@ -47,6 +47,7 @@
        </font> <br>
        <b>E</b> <font face="helvetica,arial" size="2"><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#end_ellipses">end_ellipses</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#end_highlight">end_highlight</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#endings_affix_file">endings_affix_file</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#endings_dictionary">endings_dictionary</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#endings_root2word_db">endings_root2word_db</a><br>
@@ -123,6 +124,7 @@
        </font> <br>
        <b>P</b> <font face="helvetica,arial" size="2"><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#page_list_header">page_list_header</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#page_number_separator">page_number_separator</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#page_number_text">page_number_text</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#pdf_parser">pdf_parser</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#prefix_match_character">prefix_match_character</a><br>
@@ -148,6 +150,7 @@
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#star_image">star_image</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#star_patterns">star_patterns</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#start_ellipses">start_ellipses</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#start_highlight">start_highlight</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#start_url">start_url</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#substring_max_words">substring_max_words</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#synonym_db">synonym_db</a><br>
--- htdig-3.1.3/htdoc/cf_byprog.html.orig       Wed Sep 22 11:18:41 1999
+++ htdig-3.1.3/htdoc/cf_byprog.html    Fri Oct 29 15:58:35 1999
@@ -122,6 +122,7 @@
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#doc_db">doc_db</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#doc_index">doc_index</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#end_ellipses">end_ellipses</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#end_highlight">end_highlight</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#endings_root2word_db">endings_root2word_db</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#endings_word2root_db">endings_word2root_db</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#excerpt_length">excerpt_length</a><br>
@@ -147,6 +148,7 @@
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#nothing_found_file">nothing_found_file</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#no_title_text">no_title_text</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#page_list_header">page_list_header</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#page_number_separator">page_number_separator</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#page_number_text">page_number_text</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#prefix_match_character">prefix_match_character</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#prev_page_text">prev_page_text</a><br>
@@ -160,6 +162,7 @@
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#star_image">star_image</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#star_patterns">star_patterns</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#start_ellipses">start_ellipses</a><br>
+         <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
+href="attrs.html#start_highlight">start_highlight</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#substring_max_words">substring_max_words</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#synonym_db">synonym_db</a><br>
          <img src="dot.gif" alt="*" width=9 height=9> <a target="body" 
href="attrs.html#template_map">template_map</a><br>
--- htdig-3.1.3/htsearch/Display.cc.orig        Wed Sep 22 11:18:44 1999
+++ htdig-3.1.3/htsearch/Display.cc     Fri Oct 29 15:38:08 1999
@@ -498,6 +498,7 @@ Display::setVariables(int pageNumber, Li
        char    *p;
        QuotedStringList        pnt(config["page_number_text"], " \t\r\n");
        QuotedStringList        npnt(config["no_page_number_text"], " \t\r\n");
+       QuotedStringList        sep(config["page_number_separator"], " \t\r\n");
        if (nPages > config.Value("maximum_pages", 10))
            nPages = config.Value("maximum_pages");
        for (i = 1; i <= nPages; i++)
@@ -507,7 +508,7 @@ Display::setVariables(int pageNumber, Li
                p = npnt[i - 1];
                if (!p)
                    p = form("%d", i);
-               *str << p << ' ';
+               *str << p;
            }
            else
            {
@@ -517,8 +518,10 @@ Display::setVariables(int pageNumber, Li
                *str << "<a href=\"";
                tmp = 0;
                createURL(tmp, i);
-               *str << tmp << "\">" << p << "</a> ";
+               *str << tmp << "\">" << p << "</a>";
            }
+           if (i != nPages)
+               *str << (sep.Count() > 0) ? sep[(i-1)%sep.Count()] : " ";
        }
        vars.Add("PAGELIST", str);
     }
@@ -1058,6 +1061,8 @@ Display::excerpt(DocumentRef *ref, Strin
 char *
 Display::hilight(char *str, String urlanchor, int fanchor)
 {
+    static char                *start_highlight = config["start_highlight"];
+    static char                *end_highlight = config["end_highlight"];
     static String      result;
     int                        pos;
     int                        which, length;
@@ -1069,13 +1074,13 @@ Display::hilight(char *str, String urlan
     {
        result.append(str, pos);
        ww = (WeightWord *) (*searchWords)[which];
-       result << "<strong>";
+       result << start_highlight;
        if (first && fanchor)
            result << "<a href=\"" << urlanchor << "\">";
        result.append(str + pos, length);
        if (first && fanchor)
            result << "</a>";
-       result << "</strong>";
+       result << end_highlight;
        str += pos + length;
        first = 0;
     }



-- 
Gilles R. Detillieux              E-mail: <[EMAIL PROTECTED]>
Spinal Cord Research Centre       WWW:    http://www.scrc.umanitoba.ca/~grdetil
Dept. Physiology, U. of Manitoba  Phone:  (204)789-3766
Winnipeg, MB  R3E 3J7  (Canada)   Fax:    (204)789-3930

------------------------------------
To unsubscribe from the htdig mailing list, send a message to
[EMAIL PROTECTED] containing the single word unsubscribe in
the SUBJECT of the message.

Reply via email to