Content-type: text/html Manpage of bk2site


Section: User Commands (1)
Updated: 25 February 2001
Index Return to Main Contents


bk2site - convert a Netscape Navigator bookmark file into a yahoo-like website with slashdot-like news.  


bk2site [-nd] [-f config-file ] [-d dest-dir ] [-t name ] [-f1 basetemplate ] [-f1 othertemplate ] [-o outputfile ] ] [-xbel outputfile ][-ns] [-nc] [-old days ] [--help] [ mainbookmarkfile ] [ bookmarkfile ...]  


Converts a Netscape Navigator bookmark file into a yahoo-like website with slashdot-like news. It is typically run as a cron job so as to keep your website automatically updated. Customization is achieved thru the template files and the .bk2siterc file, as explained below. All the options can also be given in the .bk2siterc file.  


Don't use a subdirectory hierachy. Use ugly long filenames. This option is useful for tree depth limited providers like geocities.
-f config-file
Use the configuration file config-file instead of ~/.bk2siterc and /usr/local/etc/bk2site/dot.bk2siterc.
-d dest-dir
Local directory for generated files. Default is /home/httpd/html/ or as given in /usr/local/etc/bk2site/dot.bk2siterc and ~/.bk2siterc
-t name
Name of top-level bookmark folder to use. If ommited bk2site will convert whole bookmark file.
-f1 basetemplate
Index template file for top index.
-f2 othertemplate
Template for the other pages.
-o outputfile
Output bookmark file. All the bookmarks that form the website are output to this file in Netscape bookmark file format.
-xbel outputfile
Output bookmark file in XML Bookmarks Exchange Language (XBEL). All the bookmarks that form the website are output to this file.
Do NOT generate the website. This is useful if you just want to generate the bookmarkfile or some other files, as specified in ~/.bk2siterc.
Do NOT put HTML comments in the output.
-old days
Number of days (default is 30) after which a bookmark is no longer new.



The system configuration file. It is always read first.
The user configuration file. It is read after the global configuration file and before the one specified in the -f argument. Values set later always override previously set values. That is, the user configuration file overrides values set in the globla configuration file.


Quick Start

The minimum ~/.bk2siterc you will need, if you run your own webserver with files in /home/http/html (as is the default in most distributions) is:

destdir /home/httpd/html
search /home/httpd/cgi-bin/urls.db
extrafilebase /usr/local/etc/bk2site/newbase.html
extrafilename new.html



bk2site simply reads your bookmarks file and generates a bunch of files which form a yahoo-like site, with the option of using one of your folders to generate a set of slashdot-like news.

In order to customize its output, you need to set up (at least) three files. indexbase.html otherbase.html and your own ~/.bk2siterc. Samples of these three files are included with the distribution and should be found under /usr/local/etc/bk2site or /usr/doc/bk2site.

This file forms the template for your top-level index. That is, the page everyone will see first. This file must be a legal html file and contain the comments as described below.

It is the template for all the other files. It also needs to have comments, as described below.

Edit the /usr/local/etc/bk2site/dot.bk2siterc file and copy it to ~/.bk2siterc The sample file has lots of comments, so read it. Also, a sample ~/.bk2siterc is given at the end of this manual page. This file tells bk2site where to find indexbase.html and otherbase.html

There can also be extra configuration files if you wish to generate extra output (for example, you might wish to generate an xml file to be read by, or a plain text file to be used in an automate monthly newsletter). The extra template files are given with the "extrafilebase" and "extrafilename" variables in your ~/.bk2siterc

Basically, bk2site supports 5 different sections in your document. Each section refers to the type of URLS that will be output by bk2site at that point. They are:

folders from your bookmarkfile
urls (leafs) from your bookmarkfile
urls of the most recently, sorted by most-recently-created
urls from the newstopfolder, sorted by most-recently-created.
urls with the most hits, sorted by number of hits (as given by urllog)
combines the urls in news and newadd and sorts them by most-recently-created.

Each section is replaced by bk2site with the appropiate urls. For example, the folder section is replaced with the URLs for the appropiate folders, while the url section is replaced by the leaf urls. Exactly how these URLs will look depends on the values you give to the different variables within each section.

The easiest way to understand how it works is to look at at the sample files. Lets look at the folders (in Yahoo! these are known as the "categories"). In the sample otherbase.html you will find something like:

<!--bk2site:begin folder-->
<!--bk2site:top <table width="100%"><tr><td><ul>-->
<!--bk2site:template <li><A HREF="%URL"><B>%TITLE</B></A> <I>(%LEAFS)</I> %CONDDASH <small>%COMMENT</small>-->
<!--bk2site:separator </ul></td><td><ul>-->
<!--bk2site:bottom </ul></td></tr></table><hr>-->
<!--bk2site:cols 2-->
<!--bk2site:maxnum 0-->

These comments guide how bk2site generates the html for the folders. Each section must always start with the <!--bk2site:begin section-type--> and end with <!--bk2site:end-->. Within each section section-type--> there are a number of variables (e.g. top, template, section-type--> separator), each one of these variables is followed by section-type--> the value we are assigning to it.

The whole section will be replaced, in the output file, by the code generated by bk2site. The section begins with:

<!--bk2site:begin folder-->
Tells bk2site that this is the place where we want to place the folders.

After the begin statemend we see a number of variables, each one is assigned a value. The function of each variable is:

If there are folders to print, print the value of this variable (in this case <tablewidth="100%"><tr><td><ul>) before any folders.

Each folder is printed using the template given by the value of this variable (in this case <li><A HREF="%URL"><B>%TITLE</B></A><I>(%LEAFS)</I> %CONDDASH <small>%COMMENT</small>). You can insert many directives, which are all in capitals and preceded with a %. These directives will be replaced with the appropiate values. All the directives are explained below.

Tells us to print the folders in colums. In this example we are setting this value to 2. This simply inserts the value of "separator" after the appropiate number of elements.

After each column is over, we print this separator in order to start the next colum.

If there are folders to print, print the value of this variable after all folders have been printed.

The maximum number of folders to print. If 0 or ommited, then we print all the folder that exist in the bookmark file.

Do not include any folders or urls that were created more than 15 days ago. If 0 or omitted then we print all folders.

Places the contents of this variable between every two items, but not at the beginning or at the end; and not when the separator is being printed. This is sometimes useful.

This would tell bk2site to start printing on the 15th element.

There are other special comments that can appear anywhere in a template file and do not need to be within a section. They will be replaced. In their place bk2site will put some appropiate HTML code.

Gets replaced by the navigation bar. This is only useful in otherbase.html. This is not a variable and should not be set to any value.

Gets replaced by the title (current folder name), prepended by the "title" defined in .bk2siterc.

<!--bk2site:include /home/me/myfile.html-->
Includes myfile.html at the place where the comment is placed. myfile.html can itself include any of the tags. It eliminates any occurances of %QUERY, %ESCQUERY and %NUMBER in the included file. Its a great way to include headers and %footers that are common to all your pages. Also, instead of a file you can also specify a URL.

<!--bk2site:include:search /home/me/myfile.html-->
As above, but leaves %QUERY, %ESCQUERY and %NUMBER. Also, instead of a file you can also specify a URL.

Gets replaced by the current date and time.

Gets replaced by the path to the current file being written. This is only useful in otherbase base pages since the path we are talking about is just the path that bk2site creates to mirror your folder structure. That is, it is NOT the absolute path on your filesystem, it is only the set of directories that must be traversed from the top of the tree in order to get to the current page. This comment is useful when you need to reference the page you are on. (e.g. asking google to find other pages related to that one.)

You can get sample copies of base files, showing how all these ugly comment can be used, at the bk2site homepage



These are replaced for their appropiate values when they appear in a template. They get instantiated for each url or folder.

the URL
the URL where all accented, and other strange characters, have been replaced by equivalent values.
the title
the title where all accented, and other strange characters, have been replaced by equivalent values.
the comment,
the comment, its justified for 80 columns, to make it look nice.
the comment where all accented, and other strange characters, have been replaced by equivalent values.
the first x characters of the comment, where x is an integer.
the comment in one long line with any carriage-returns or newlines removed.
the comment but with everything between < and > stripped out that is, all the HTML stripped out (No HTML Comment). Also on 80 columns.
the first sentence of the comment, that is, everything up to the first period. A single letter with a period will be skipped. If there is no period then the whole comment.
the comment but with the appropiate characters escaped so that it can be used as a JavaScript string.
the first sentence of the comment, that is, everything up to the first period. A single letter with a period will be skipped. If there is no period then the whole comment. Special characters are escaped so that the comment can be used as a JavaScript string.
the day created
the day last visited
the day last Modified
the month created, in number
the month created, in English
the month visited, in number
the month visited, in English
the month modified, in number
the month modified, in English
last two digits of the year created
the year created, including all digits (the full number).
last two digits of the year visited
the year visited, including all digits (the full number).
last two digits of the year modified
the year modified, including all digits (the full number).
the total number of leafs under it (for folders only)
the new.gif, if the time is right.
the time created in full Wed Jun 30 21:49:03 1993
the time modified in full Wed Jun 30 21:49:03 1993
the time visited in full Wed Jun 30 21:49:03 1993
prints a dash "-" if the comment is not null
if the comment has "string" then insert "html" at point. also eliminate "string" from comment. e.g. %IFCOMHAS(*coolsite*)(<img src="/images/cool.gif">) or %IFCOMHAS(-neat-)(<font color="red">Neat Site</font>) If you use it, you must use it for ALL templates
the number of hits this url has receives, as gathered from urllogfile

There are also functions you can use. Right now, these functions are NOT available for so you should not use them in your searchurltemplate variable in your .bk2siterc.

Each function takes one or more arguments and gets replaced by the results of applying that function to the given arguments. The function are:

where arg is a string and cols is an integer. This function auto-fills the given argument to cols columns. e.g. &FILL[%COMMENT].
where arg is a string. Gets rid of all the HTML in the argument. That is, everything between < and >.
where arg, from, and to are strings. It replaces all instances of "from" with "to" in "arg".
where arg is a string and chars is an integer. It returns the first "chars" characters in "arg".
where arg is a string. It replaces all newlines, returns and tabs with spaces, in arg.
where arg is a string. It replaces all accented characters with their non-accented counterparts. It also gets rid of other troublesome characters.
where arg is a string. It returns the first sentence in arg.
where arg is a string. It creates a 5-digit number by hashing arg.

These functions can be nested, as in &CUT[&NOHTML[%COMMENT]|500]. The strings used as arguments to these functions cannot include the characters [, ], or | since that will confuse the parser.


Netscape Navigator Comments

As you know, navigator allows you to give comments to bookmars and folders. We use these to guide the behavior of bk2site (see below and read dot.bk2siterc, esp %IFCOMHAS) and we also print them.

You can also use HTML in the comment and it will work, but:


DO NOT PUT "HREF=" IN YOUR COMMENT. There is a bug in Navigator that will make it mungle your bookmarks if you do that. The bug has been reported.

If you must, use "HREF =". The space is VERY important. I actually like to use "href =". The use of lowercase and a space makes me feel doubly safe.



Using Aliases

bk2site supports url aliases, as used by navigator.

It also implements directory aliases. Since Navigator does not allow us to create an alias for a folder/directory, we must do it with a little trick.

If you want to alias a folder called "people" to another called "faculty", then simply create an empty folder called "people" and, in the comment field write: "<alias>faculty</alias>"

*********WARNING 2********************WARNING 2***********

Do not end any comment with ">". If you do, Netscape will swallow the last 4 or so characters of your comment. If you must end a comment with ">" use ">." instead. bk2site will get rid of that trailing ".".

*********WARNING 2********************WARNING 2***********


Setting Private Folders

If there is a particular entry or folder that you want bk2site to ignore simply give it the comment <private>. The comment must be all in capital letters and must be the only text on the comment field.


Sorting Bookmarks

You can also have bk2site automatically sort the bookmarks in a folder. This is done by adding the appropiate comments to the folder. The valid values are:

<sort order=normal>title</sort>
sorts based on title, alphabetically.
<sort order=inverse>title</sort>
in inverse alphabetical on title.
<sort order=normal>creation</sort>
Sort based on the time when the bookmark was created. The more recent ones come first.
<sort order=inverse>creation</sort>
more recent come last.
<sort order=normal>modified</sort>
Sort based on the time when the bookmark was last modified. The more recent ones come first.
<sort order=inverse>modified</sort>
more recent come last.
<sort order=normal>visit</sort>
Sort based on the time when the bookmark was last visited. The more recent ones come first.
<sort order=inverse>visit</sort>
more recent come last.
<sort order=normal>hits</sort>
Sort based on the number of hits, as determined by reading the urllog file. The ones with more hits come first
<sort order=inverse>hits</sort>
Less hits come first.

These comments are case-insensitive.

Remember that the folders only have a title and a creation date, so sorting them on visit or modified will not do anything to them.


Output of Bookmark file

You can use the -o switch, or the "outputbookmarkfile" variable in only the bookmarks that are shown on the website. That is, it excludes those that were not under the main folder and those that where under PRIVATE folders. For example

bk2site -o /tmp/published-bookmarks.html

will write out to /tmp/published-bookmarks.html. This is useful if you want to give someone else a bookmark file containing only your public bookmarks. Netscape can read these bookmark files.

The -ns switch prevents bk2site from actually generating a website. It is useful when you just want to generate the output bookmarkfile without creating a website:

bk2site -ns -o /tmp/published-bookmarks.html 
  bookmarkfile1.html file2.html file3.html

There are a couple of problems with this output. bk2site will (1) Ignore any <HR> in the original. (2) Replace all <BR> with a space (they are there, trust me). (3) Get rid of "sort" comments, instead the bookmarks will be sorted with the appropiate order.


Merging Bookmark Files

bk2site can merge several bookmark files, which can be in either Netscape-bookmark-file-1 format, XBEL format, or RSS format. For example:

bk2siste -o /tmp/merged-bookmarks.html 
  ~/.netscape/bookmarks.html /home/joe/.netscape/bookmarks.html

will merge your bookmarks (~/.netscape/bookmarks.html) with Joe's (/home/joe/.netscape/bookmarks.html)

In order for this to happen, Joe's bookmarks must have some folders with the comment PUBLISH on them. Each one of these folders will be matched (using its name) with a folder on your bookmark file. The two folders, along with any subfolders, will be merged. If Joe has extra subfolders, they will be created and added.

If a new bookmark has the same (identical) URL as one already in that folder, it will be ignored.

The new bookmarks are added at the end of the folder. If you want to change the order, use the sort commands above.

This technique works fine if you and Joe are coordinating---Joe must place the PUBLISH comments in the appropiate folders. But, what if you downloaded a bookmarks.html file from the web and want to add it, as is, to your site. This can be accomplished with the <include> keyword.

You simply create a folder where you want to include the new bookmarfile, and give it the comment:


or you can use a url like


The file will be read and merged under that folder. Since they are merged, you can also add your own bookmarks under the folder.

To summarize: Merging can be done either by:

1- Specifying many files on the command line. The first one is the root bookmark file, the rest of them must have folders marked "PUBLISH", which will be merged with the folders on the root bookmark file with the same name.

2- Including the comment "<include>url</include>" in some of your folders, where url is the name of some other bookmark file to include under that folder. You can also add your own bookmarks under this folder.


Using a HTTP proxy.

If you are not connected to the Internet directly, but use a HTTP proxy, you'll have to add at least the following entries to your configuration file:

The hostname or IP address of the HTTP proxy to be used.
The port number your HTTP proxy listens to.

In case you need a password on your HTTP proxy, add the following ones in addition to the lines listed above:

Your account on the HTTP proxy to be used.
The password for your account on the HTTP proxy to be used.

ATTENTION: You will have to configure your proxy before you define the channels to be displayed.


Generating extra files.

If you want to generate more files, for example, a file just the tophits or just the new additions, this can be done using the "extrafilebase" and "extrafilename" variables in your .bk2siterc.

The base file for an extra file you wish to generate.
The name of the output file.

These two variables need to appear in pairs and in order, for example:

extrafilebase  /usr/local/etc/bk2site/newbase.html
extrafilename  new.html

This means that the base file is newbase.html and the output file generated by processing this base file will be written to new.html. Note that the files you create need not be html. In fact, this feature can be used to generate any kind of text file (e.g. my.netscape channels, email newsletters, etc.).


Displaying channels

[For the uninitated, channels are simply xml files that summarize a site's contents. Many popular news sites like slashdot and freshmeat make these available for anyone to download and use, as long as you give them proper credit. Please read and obey each individual site's use restrictions for their content.]

Another fun feature is to read and display other people's my.netscape channels in your pages. This can be done by first setting three variables in your .bk2siterc for each channel that you whish to show. The variables are.

The name you will use to refer to this channel. Pick something you can remember.
The url where we can download this channel. bk2site only supports http: and file: methods. ftp will have to wait.
A file to which we write the channel we just read. Also, if the channel cannot be downloaded from the url, bk2site will read this file instead. This way you avoid having empty channels in your pages.

For example, to set up a slashdot channel you would do:

channelname slashdot
channelfile /tmp/slashdot-channel

Now, this sets up the channel but it does not display it. In order to display the channel you must define a section like the ones we used before but using the channel name instead of a section name. For example, to display the slashdot channel you would place the following in one (or more) of your base files:

<!--bk2site:begin slashdot-->
<!--bk2site:top <a href="">Slashdot News</a><ul>-->
<!--bk2site:bottom </ul>-->
<!--bk2site:template <li><A HREF="%URL">%TITLE</A> %CONDDASH %COMMENT-->
<!--bk2site:cols 1-->
<!--bk2site:maxnum 10-->

Notice that since the channel files contain less information than bookmark files, the only tags you can use in your channel template are %TITLE, %URL, %COMMENT, %CONDDASH, and %HITS. Using the others will %have unpredictable results.


Dealing with other character sets

If you do not use the ASCII character set, or use some of those accented characters, you might find that you need to use %NOACCENTURL instead of %URL. You might also want to place the comment DIRNAME followed by a folder name, e.g. DIRNAME myasciifoldername, when the title of your folder contains characters that do not make for good folder names. The folder will instead be given the name you gave it.

If you do not use DIRNAME, bk2site will transform any non-ascii characters into their hex equivalents and use that as the folder name (not very pretty but works well as a URL). program

After you compile the sources you will also find a program called "". This program is a cgi-script which reads a urls.db file automatically created by bk2site and returns the number of matches to any given query. It takes several arguments:

The query we want to match. It can be a word or a series of words separated with spaces.
The total number of results to display per page.
The number of the first result to display. This is use for displaying the "next 10 results".
The name of the urls.db file.

The program needs to be moved to your cgi-bin directory. The cgi-bin dir must have:

You must also edit the program The line (near the top):

$searchprog = "/cgi-bin/"; 

must be changed to point to where you put, if different from the default value.

is created automatically by bk2site, see the comments in dot.bk2siterc for how to generate it and other info. Notice that the default is for this file to NOT be generated.

could be a copy of the previous otherbase.html, or you could make some other cosmetic changes to it. A sample searchbase.html file is included with the distribution. will use this file as a template for its output.

The program will also replace all occurences of %QUERY and %NUMBER in searchbase.html, with their appropiate values. %ESCQUERY can also be used---it is the same as %QUERY but the spaces and other special characters are escaped. See the sample searchbase.html for an example of how to use this.

If you use %IFCOMHAS(*cool*)(<img ....), with *cool* or whatever name(s) you use (e.g. *lame*, -biz-, etc). You can now do searches on this. For example, to have a "Whats cool" link, you do:

<a href="/cgi-bin/*cool*&num=20">Whats Cool</a>.


Counting the Hits

To do this you must first use (or equivalent) to count the number of hits. To do this you must change the templates so that gets called with the urls you want to count, and the hits are displayed where (and how) you wand them.

A simple exaple of a template is:

<A HREF="/cgi-bin/">%TITLE</A> %NEW 
<font color="red">%HITS</font> %CONDDASH %COMMENT-->

Then set

urllogfile  /home/httpd/cgi-bin/urllog

to point to the urllog file generated by, and

#Hits older than this many SECONDS 
# will be ignored and purged from the
#urlloggile  2592000 = 30days
hitstimecutoff 2592000

Then you are ready to run bk2site.

bk2site will read the urllog file and then WRITE IT BACK but it will NOT WRITE back those hits that are before the hitstimecutoff.  

SAMPLE ~/.bk2siterc

# Sample .bk2siterc by Jose M. Vidal
# Multiuser support by Bradley Bell <>
# This file customizes the behavior of bk2site. bk2site looks 
# for this file in ~/.bk2siterc. Otherwise, the file can be 
# given with the -f parameter. Command-line arguments override
# values set in this file.
# The format is a variable name followed by a value, with some 
# whitespace in between. The value has to be ON THE SAME LINE
# as the variable.
# I show all the variables available, along with some example 
# values. Any line that starts with # is a comment.
# If you use either $HOME or $USER or $LOGNAME they will be 
# replaced with
# their values as given by the shell when bk2site is run.
# For example
# destdir   $HOME/www
# sets the destination directory to be www under the user's home.
# NOTE: if you run bk2site as a cron job, $USER is not defined
#  (on Linux)

# The directory where bk2site places the files.
#destdir    /home/httpd/html/
# When testing you might want to set it to
#destdir         /tmp/
#on a multiuser system you can use:
destdir     $HOME/public_html/bk2site/

# This is the HTML that will be placed in place of any %NEW
#  tags you place in your templates. Typically, this is a gif.
# Notice that you can use directives here.
newgif   <img src="/icons/bk2site/new.gif" alt="Added %MONTHCRE1/%DAYCRE/%YEARCRE">

# You can have bk2site reset the folders' creationtime to
# be either:
# maxdescendants --the max of all the urls that are descendants
#                  of this folder.
# maxchildren --the max of all the urls that are children of this
#               folder
# normal --leave it alone. The creation time is the time you created
#          the folder
#You set it to maxdescendants if you want to see the new.gif next
# to all the folders that contain new urls.
foldercreation maxdescendants

# The bookmark file you want to use
#bookmarkfile  /tmp/bookmark.html
# use the regular netscape bookmarks
#bookmarkfile  /home/jmvidal/.netscape/bookmarks.html
# Leaving it blank tells it to use ~/.netscape/bookmarks.html

# The name of the file we write the published bookmarks to.

# The name of the folder you want to publish
#topfolder  PUBLIC
# leave it blank if you want all your bookmarks published.

#The title you want to give to your pages
title $LOGNAME's bookmarks

#The folder for the news. I needs to be a subfolder of topfolder
#newstopfolder News
#leave empty if you do not want news.

#Do you want bk2site to add HTML comments to its output stating
# where it did the replacements? yes or no
comments yes

# The names of the indexbase.html and otherbase.html:
# use a relative directory (not good if you are using cron)
# In the RPM version, the sample files are located at /usr/local/etc/bk2site/
indexfilename  /usr/local/etc/bk2site/indexbase.html
otherfilename   /usr/local/etc/bk2site/otherbase.html

# The names of any other filenames you want to create, along with the
# name of their index files (relative to destdir).
# For example, if you want an extra file with new additions you say:
extrafilebase  /usr/local/etc/bk2site/newbase.html
extrafilename  new.html

#You can add more pairs, like:
#extrafilebase /usr/local/etc/bk2site/tophitsbase.html
#extrafilename tophits.html

# Add your HTTP proxy here (won't work if moved behind the channel section!)
#http_proxy             <your http proxy>
#http_proxy_port        <the port number your http proxy listens to>
#http_proxy_user        <your account on the proxy>
#http_proxy_password    <your password on the proxy>

# The channels you (might) want to display
# For each channel you must define three variables
# first the name you will use to refer to this channel (in the base files)
#channelname slashdot
# the url for retrieving it (can be either http: or file:)
# a filename where we will write a copy of this channel. Also, if the url
# cannot be read we will try to read the channel from this file.
#channelfile /tmp/slashdot-channel

#channelname freshmeat
#channelfile /tmp/freshmeat-channel

#channelname multiagent
#channelfile /tmp/multiagent-channel

#channelname lwn
#channelfile /tmp/lwn-channel

#You can add as many as you want. Note that extrafilename will pre
#prepended by whatever you specify in destdir.

# The number of days we leave the new.gif next to a url
timecutoff  30

# The string to use for the word "Top" which appears in the navigatebar
top      Top
# or, in another language
# top    Cumbre

#the name of your index.html file
index    index.html
#or in DOS world
#index      index.htm

#The name of the file you will use for the %HITS This file must
#contain a bunch of times and urls (as generated by, for example).  Leave empty if you don't want this
#feature. bk2site will read and WRITE to this file.
#Note that by default writes to a file called "urllog"
# that is in the cgi-bin directory. So, typically, you might want:
#urllogfile /home/httpd/cgi-bin/urllog

#Hits older than this many SECONDS will be ignored and purged from the
#urlloggile, 2592000 = 30 days
hitstimecutoff 2592000

#If you want the tophits section to also include the news items (assuming
# the news folder is under topfolder) then set this variable to "yes".
#The defaults is "no", which means that the top hits only include directory
# entries and not news items.

#STUFF BELOW deals with search program

#if you want to generate "urls.db", which is needed by the search program
# then include here the full path. It needs to reside on the same
# directory you put the "search" program. The file MUST BE NAMED
# urls.db
#search     /home/httpd/cgi-bin/urls.db
# if you do not want search, just leave it blank
#on a multiuser system you can do:
search      $HOME/public_html/bk2site/urls.db

#This is the path that takes us from the cgi-bin directory (i.e. the
#results page) to the root (Top) of your bookmarks.  If your bookmarks
#reside on / and your search in /cgi-bin/bk2site, then:
#searchtorootpath ../../ If your Top is in a subdir then
#searchtorootpath ../subir/ If the search is done on a different
#machine, then 
#on a multiuser system you can do:
searchtorootpath  /~$LOGNAME/bk2site/

#The url template to use for the search results. This should probably
# be the same template you use for the urls in the otherbase.html file.
# BUT: note that automatically prepends every url with an <li>
#searchurltemplate <A HREF="%URL">%TITLE</A> %NEW <font color="red">%HITS</font> <A HREF=""><img src="/icons/bk2site/closeup.gif" border=0 alt="Who points to it?"></A> %IFCOMHAS(*cool*)(<img src="/images/cool.gif">) %CONDDASH %COMMENT
searchurltemplate <A HREF="%URL">%TITLE</A> %NEW %CONDDASH %COMMENT



Too many to mention.  


Jose M. Vidal <>

Contributors include:

August Hoerandl - wrote added "date" tag.

Bradley Bell - patch to support multiuser setups.

Daniel Barrero - patch for handling flat file systems

Reinier Mostert - patch to handle bookmark aliases.

Oliver Obst - provided the autoconf scripts.

Hannes Faestermann - patch for new.html

David Cancel - cool ideas and code for improving

The program homepage is at






Quick Start
Netscape Navigator Comments
Using Aliases
Setting Private Folders
Sorting Bookmarks
Output of Bookmark file
Merging Bookmark Files
Using a HTTP proxy.
Generating extra files.
Displaying channels
Dealing with other character sets program
Counting the Hits
SAMPLE ~/.bk2siterc

This document was created by man2html, using the manual pages.
Time: 20:20:04 GMT, May 11, 2003