Hari's Software

A small collection of my apps and scripts




BiaWeb is an interactive command-line application to manage a static weblog/website. It uses SQLite 3 to store data and can generate a static HTML website with a full text or keyword search database. Files generated are pure HTML and the app relies on a CGI script (also written in Python) for the search engine facility.

Main features


Download & Usage

Usage notes

Uncompress the ZIP file in a directory and run the biaweb executable script from the command line (after chdir to that directory) as

./biaweb <path_to_database_file>

To start off with a new project/website you can specify a path which doesn't exist. To manage an existing website simply type the path of the existing database file.

If you are creating a new website, you will be asked to enter the basic configuration for the website (you can edit the configuration later.) Path to destination folder is relative while the site URL is a http URL. So you will need a local server with CGI enabled to test the website locally.

If you want to use a specified editor for editing templates/themes then set the environment variable EDITOR before you run biaweb. Otherwise the script defaults to vi which is commonly available in most UNIX like environments.

Steps to create a website

  1. Create your categories in the order which you want them to appear in the sidebar.
  2. Create your articles and make sure you file them in an existing category. Category IDs can be viewed by listing the categories in the category management section.
  3. Edit templates and stylesheet if necessary. Do not change the variable names in the templates (variables start with a $ sign and enclosed in curly brackets like ${site_var}
  4. Generate the website.
  5. Generate the search database. If your site is very large, generate keyword database instead of full-text database to avoid large size. Keyword db is generated from the article's keywords.
  6. Upload the contents of the generated directory to your website (to the location which is accessible as the URL you specified in the configuration).
  7. Test in your web browser

To update an existing website, simply edit as needed in the above application. Uploading the entire site is necessary to update article links/category list etc. but you can avoid bandwidth issues by using a tool like rsync which will upload only the changed files incrementally.