"Let your ideas germinate." germ n 1: anything that provides inspiration for later work [syn: {source}, {seed}, {germ}] 2: a small apparently simple structure (as a fertilized egg) from which new tissue can develop into a complete organism 3: a dynamic gopherlog script meant to combine useful features with ease of use and small codebase Germ (as in the germ of a seed or an idea) is a dynamic glogging/phlogging script written in perl. It has the capability to display posts individually and together on a page with a customizable header and a customizable divider between posts. It also archives older posts and can accept comments on individual posts. Germ owes its inspiration to the perl weblog engine "blosxom" originally authored by Rael Dornfest. Germ has been tested and works with the Bucktooth gopher server (buckd) and with the Gophernicus gopher server, it seems to work fine with both. It has not been currently tested with other servers, but should hypothetically work with any server that passes QUERY_STRING or ARGV to their executable scripts. This guide will walk you through the installation process for germ and offers some quick pointers for its usage. HOW TO INSTALL: Quick: download from: gopher://sdf.org/5/users/wt/soft/my/germ-0.4.tgz tar zxf germ-0.4.tgz Move germ.cgi and the dat directory to the directory you want them in. chmod 750 germ.cgi chmod 770 dat chmod 640 dat/* Make sure the script's and dat directory group owner is set to whatever your server uses to run cgi scripts. This is often "nobody". Edit germ.cgi to make sure perl is pointed at the right spot. It's currently set up for use at sdf.lonestar.org, which has an unusual location for it's perl executable. Edit the "Configurable Variables" following the instructions alongside them. Link to the germ.cgi using item type 1, so that it gets treated as a directory. ***** (Overly) Long Version: Move or copy germ.cgi and and the dat directory to the directory you want your phlog to be in. Make sure germ.cgi is executable. "chmod 750 germ.cgi" should do the trick. You also need to make sure the program can write to the dat directory, so it can write comments. "chmod 770 dat" should take care of that. To be safe, "chmod 640 dat/*" should make sure your header, divider and post files are all readable. If you'd like, you can change the program's name to something like "phlog.cgi" or "glog.cgi". Depending on your server's set up the ".cgi" may or may not be required. If you don't know, you should probably just leave it on. If you want to change the the program's type something like "mv germ.cgi phlog.cgi", replacing "phlog.cgi"with the name you wish to use. Make sure the script's and dat directory group owner is set to whatever your server uses to run cgi scripts. This is often "nobody". A simple "chown :nobody germ.cgi dat" should do the trick. If you're on sdf, unpacking everything into your gopher directory should do it. If you unpack it in your home directory and move it to your gopher directory it may have the wrong group id. Now it's time to do some light editing of germ.cgi. If you're not running germ on sdf.lonestar.org, you'll need to change the very first line of the the program; this will probably work: "#!/usr/bin/perl". If you've changed the program's name let it know by changing the $name variable to match. Again if you're not on running this at the Super Dimensional Fortress, you'll need to change $server to match your server's internet address. You probably don't need to change $port, unless you know your server is using a different port. If you don't know what that means, leave it be. Next you'll need to edit $base_dir to correspond to path your server will send to clients. If you're on sdf, just replace YOUR_USER_NAME with (you guessed it) your username. On other servers, this will likely be different. Then you can edit $dir to make sure it is a full path to the directory in which you store your posts and your header.txt and div.txt files. If you're on sdf, you shouldn't need to edit this. Finally, you can edit $max_posts do decide how many posts germ will display per directory. Once you're done getting germ set up, just link to it as if it were a directory, item type 1. In a gophermap file that would look something like this: 1Phlog /users/username/germ.cgi HOW TO USE: Basic: Once you've got germ pointed at the right directory, it knows it's own name and you've changed the dat directory's permissions to 770 things are pretty simple. To write a post, create a file in your favorite text editor. The first line should be the entry's title, unless you are using tags, then defer it to the second line and see below. Next hit return twice to leave a gap between your title and your entry and then type away. Limit your lines to 65 columns. This way terminal based clients like lynx and gopher can view your gopherlog. Links can be over 70 columns. One tip to help you when posting indented text or source code, be sure to convert any tabs your text may contain into spaces. Lines starting with characters don't get displayed as inline text by the gopher server. To use tags: The first line can be a list of comma-separated tags, which get parsed and converted to a link that when clicked, will display all posts containing that tag. The format looks like this: #Tags Linux,Sysadmin,Tips this will also work: #tags Sysadmin, Tips and Tricks,linux The space after the '#Tags' and before the list of tags is mandatory. Tags are not case-sensitive, so "Linux" and "linux" link to the same tag. Spaces around the commas get stripped. Spaces within tags are allowed, but punctuation is not. Tags are also currently allowed in the second line of the post to maintain compatability with germ 2.0's tag system. Placing tags on the second line is deprecated and may not be supported in future releases. Whether you place the tag on the first or second line will not affect the appearance of your gopherlog. Tags on any other lines will be treated as normal text. To shorten posts: You can also shorten your post, by adding this text on a line by itself somewhere in your post: --more-- On the index, archive, and tag pages, anything after this line is not displayed. This will cut down on the size of the main index page once you fill it with a lot of posts. To use links: Germ will do its best to detect lines with gophermap-style links, and display them as-is (rather than as inline-text). The server and port are required. Here is an example: 0germ.cgi/users/slugmax/code/germ-0.2.cgisdf.lonestar.org70 9germ-0.2.tgz/users/slugmax/code/germ-0.2.tgzsdf.lonestar.org70 Where "" is the tab character, not spaces. It doesn't work with spaces. To save and publish your post: When you're done, save your entry in your dat directory with a format like this FILENAME.post. If it doesn't end in ".post", germ ignores it and your post languishes. Make sure it's readable. A quick "chmod 644 FILENAME.post" can do that for you (You can change this extension - see the INSTALL document for an explanation, or just change the $post_ext variable). After that, you're done. Germ handles the dating, displaying, and archiving of your posts. It also handles the creation, maitanence, and dating of your comment files, stored in "FILENAME.post.cmt". To customize: To customize your header or divider, simply edit the header.txt or div.txt file in your dat directory. You can also customize the text that goes in the link to your individual posts and the text displayed when you shorten a post by editing the variables $permalink_text and $more_text respectively which are in Configurable Variables in the script's header. These texts are generated dynamically so it will change for all posts, old and new. You can also customize the divider between comments, and the divider between posts and tags by editing the variable $cmt_div. Once you have recieved comments, changing this is inadvisable, as it will ruin comment counts.