Firedrop is a client side weblog creation and web article collection content management system. It is open source and written in Python by Hans Nowak. It is cross platform and runs on Windows, Linux, Mac OS X and most Unix like systems.

This Mini How-To is meant to take you step by step through the installation and first use of Firedrop. if you have any questions, please don't hesitate to ask them at http://pub38.ezboard.com/bawaretek


Installation and pre-requisistes: You must have installed Python, wxPython, and wax before you install firedrop2. See the links at the bottom of this document for the locations of these files. While firedrop should work with any recent version of Python, be sure you install the latest versions of wxPython and wax. At the time of this writing the latest version of wxPython is wxPythonOSX-2.4.2.4 and the the latest wax is wax-0.1.45.

The wxPython, wax and firedrop2 folders must be placed in the Python site-packages folder. On Windows, this will probably b in C:\Python 23\Lib\site-packages. In Mac OS X, this will be in something like /Library/Frameworks/Python.framework/Versions/2.3/lib/python2.3/site-packages. Do not guess at this stage, these folders must be in the site-packages directory in order to work.

Wax is a Hans Nowak open source project that sits atop the cross platform wxPython and is used to write firedrop2's GUI front end. I have installed and used Firedrop2 on both Windows XP and on Mac OS X 10.3, and I see no reason why anyone should have any problems on any Linux or BSD system. On most systems, the wxPython, wax, and firedrop2 download should be in a zip or otherwise archived file that will be unpacked by your system tools more or less automatically, you just need to tell your machine which directory to put them into (site-packages). One other important point: the wax and firedrop 2 folders that you place in your site-packages directory must be named exactly that, wax and firedrop2. if the folders you unpack include version numbers, or anything else, you must rename them to simply wax and firedrop2, because the firedrop programs look for those folder names and will not work otherwise. Note that the firedrop2 folder will not work if it is called firedrop; it must be named firedrop2.

So, to summarize, install in this order, Python, then wxPython, then wax, then firedrop2; and make sure wxPython, wax, and firedrop2 are all in your site-packages directory.

Opening the firedrop GUI from the firedrop2 folder: Inside the firedrop2 folder that is now in your site-packages directory, you will find a few dozen python programs. The only one you must concern yourself with is the wxfiredrop.py program. Run this program, wxfiredrop.py, either from the command line or by double clicking on it in your file browser. This opens up the firedrop GUI that looks like this on MAC OS X:










Note that on Windows, the title bar that sits atop the whole Mac screen is integrated into the main firedrop2 GUI frame; this title bar includes the drop down menus " File, Edit, Format, Window, and Help". Below this you will find a row of buttons labeled "Open, New, Save, Build, Preview, Upload, and One-Click." Also, on Windows, the buttons will be rectangular instead of oval (pill-shaped) on the Mac.

Create a weblog or article collection folder: Now, using your system tools, create a new folder to hold your weblog or article collection. This folder can be anywhere you want it, just remember where you put it ;-))). let's say you create a new, empty folder called weblog in your desktop directory. Then, manually, create a new empty folder inside your weblog folder and name it weblog_html. This folder will be used to hold your actual weblog html files.

Now, on the firedrop2 title bar, click "File" and a drop down menu appears giving you a choice between "new site" and "open site". Click on "new site" and a dialog box opens. You must choose between creating an ArticleCollection or a Weblog. Let's say you chose "Weblog". Then you must choose a directory, and let's say you choose the new folder (directory) called "weblog" that you just created. Click OK and firedrop2 will fill-in your weblog folder with the files build.ini, build.py, page_template.html and entry_template.html.

Build.ini will look something like this:

output_dir="weblog_html"

archive_method = "d:7"

page_template = 'page_template.html'

entry_template = 'entry_template.html'

num_front_page = 20

frontpage_name = 'index.html'

root_url = 'http://www.awaretek.com/weblog/'

categories = ["philosophy", "general", "firedrop", "python", "poetry"]



title="AwareTek weblog"

description = ""



ftp_server = 'awaretek.com'

ftp_login = 'awaretek%awaretek.com'

ftp_port = 21

ftp_password = 'XXXXX'

ftp_startdir = '/usr/local/apache/htdocs/weblog'



rss_filename = 'index.xml'

macro_filename = 'macros.py'

blogping = 0  

You should open the file build.ini and fill in the root url of the website you will use for your Blog, as well as the categories you will use to order your posts (you can leave this blank for now, if you want), and the ftp information for firedrop's automatic uploader.py program to find your web site and login, including your site password. If you build an ArticleCollection, your build.ini will look very similar and you must add the same kind of information.

Now, if you  look at the file page_template.html you will see the default setup for how your blog page will look. This can and should be customized by you to be whatever you want.

Open weblog Now, using your firedrop GUI, click on the "Open" button. This will open up a file browser and you should navigate to the 'weblog" folder you recently created and that was populated with build.ini etc. by firedrop2. Upon accepting and choosing the "weblog" folder or directory, firedrop will "open" it,  but it is still "empty" of any actual blog posts. The blog post titles, as you create them, will appear in the vertical rectangular window on the left; the actual post you are working on will be typed into the larger window on the right.

Create a  New Post: Now, click on the "New" button. On the top of the blog post window, above the two -- dash lines, will appear two attributes, insert_date and modified_date. These two attributes are self explanatory. You can add any new attributes you want! This is one of the best features of Firedrop. For instance, most folks will want to create a categories attribute, and in fact you may recall that your build.ini already has a Python list called categories. If you add a string "poems' to your build.ini categories list, then you can add an expression categories="poems' above the two -- dashed lines in your blog post window.

Below the two -- dashed lines, you will see one line saying "New". Erase this line and insert instead your own Title of choice for this blog post. Let's say you choose "Hello World".

Now, for entering the main text of the blog post, you have two choices (actually more are available, but I am only going to cover two). First, you can just hit the return key twice and, starting on the second line below "Hello World" you can just type plain text. In this mode, you can also use HTMl tags, such as paragraph tags to set off separate paragraphs, and Some URL to set up web links.

The second alternative is to use Hans Nowak's sextile format. In order to do this, after typing in your blog post title "Hello World", immediately hit the return button and then type % below the "Hello World" title line, and then hit the return key twice (do not even hit the space bar after typing % before you hit the return key twice). Your blog post window should look like this:

insert_date='2004-01-31 15:38:48'
modified_date='2004-01-31 15:38:48'
--
Hello World
%

Main body of blog post text here...


I recommend using sextile, and I almost always do. The first difference you will notice (and appreciate) when using sextile is that you will not need to use the paragraph tags to offset paragraphs. Instead, you can just hit the return key twice to separate two paragraphs with a line of white space, just like you do in a normal text editor. You can still use regular html tags under  sextile. There are many other features for ease of use in sextile and you are encouraged to read Han's docs on sextile on his web site.

Whether you use sextile or not, you also will have available a powerful feature called "macros" to simplify the creation of blog posts. You are encouraged to read Hans' docs on Macros on his web site. Macros essentially allow you to define your own ease-of-use custom features.

Saving and Building and Uploading: Once your new post is as you want it, you click on the "Save" button and then on the "Build" button. You must click on these two buttons in the proper order, first "Save" and then "Build".  "Save" saves a file of the form 00001.fd2 in your weblog folder. if you are saving your 100th post, the file saved will be 00100.fd2. When you click on the "Build" button, the program build.py (in your firedrop2 folder in your site-packages directory) will be run. build.py will use your build.ini file and will use the page_template.html file and the entry_template.html file to use your 00001.fd2 file to create an html file called index.html in your weblog_html folder. Recall that you created an empty folder called weblog_html and placed it in your weblog folder. This index.html file is your weblog. (If we had been creating an ArticleCollection, the process would have been the same but the file created by build.py would be given its own title.html name).

Now, you can click the "preview" button if you like to see what your blog post html (or your new article) will look like. Then you must click the "Upload" button to run the python script uploader.py, which uses the information you supplied to build.ini to log into your web site using ftp and upload the newly revised weblog (or new web article) to your web site.

There is also a button called "One Click" on the firedrop2 GUI, but I do not use it. One click will automatically do the whole sequence in order, save, then build, then upload. i find it safer and more helpful to do them one step at a time.

There is also a "Preview" button, that when clicked automatically opens up the created html file in your browser, in order for you to make sure it is as you want it before you upload it.

Since firedrop is open source and in Python, you can also do most of these things from the command line rather than from the GUI. Doing stuff from the command line is good because it helps you to see more of what goes on behind the scenes, and may give you ideas for future use.

On Windows XP, I have found everything to work perfectly. On Mac OS X 10.3, the only two features I have had trouble with are the "Preview" button, which I don't use any way (one can always click on the index.html file to open manually to preview); and the uploader.py script, which I think is a problem between my Mac and my website. At any rate, I use an ftp program manually from the command line to upload my files to my website.

However you have done it, now you have accomplished something!

Final Comments: There is of course a lot more you can do with Firedrop. Keep in min that tis is written in Python and is pen source, adn you can add features and customize two you hearts content. You can also explore the code and se how everything works. meanwhile, Hans is still coding away and adding features, so thing may change. keep is touch with his web log at http://www.zephyrfalcon.org/weblog/ fro future developments. And, if you have any questions about Firedrop or these docs, please ask them at http://pub38.ezboard.com/bawaretek



Important Links




Hans Nowak's Documentation page for Firedrop, wax, sextile etc.

Hans download page for firedrop, wax etc.

Python 2.3 download page

wxPython download page

downloadable and printable HTML version of this Firedrop2 mini How-To