Up to Main Index Up to Journal for July, 2012 JOURNAL FOR MONDAY 30TH JULY, 2012 ______________________________________________________________________________ SUBJECT: A short break DATE: Mon Jul 30 20:57:15 BST 2012 Oh dear another two weeks without any update, so what's been happening? Well I took a break for a while. I also rewrote my Perl jtconv tool in Go. jtconv takes a text file and wraps it in a little HTML and converts some links to hyperlinks. This utility is used to build this site from plain text files and was initially developed for another of my sites. The plain text files are actually a type of Record-Jar[1] - which is based on RFC822: Standard for ARPA Internet Text Messages. It has headers of the form label:text and can have an unstructured text element. For example the article for the last journal entry started like this: Title: Journal for Monday 9th July, 2012 Abstract: I feel a disturbance in my code... Tags: embedding, structs A blank, empty line then separates the 'headers' from the unstructured text that follows - in this case the article text. This format will be familiar to people who look at HTTP requests or responses: Date: Mon, 30 Jul 2012 12:46:32 GMT Server: Apache Last-Modified: Fri, 19 Sep 2003 22:45:47 GMT ETag: "20a5c9-7baf-3c7b67e4bbcc0" Accept-Ranges: bytes Content-Length: 31663 Content-Type: text/html It will also be familiar to people who look at email headers: Return-path: <alice@example.com> Envelope-to: bob@example.com Delivery-date: Mon, 30 Jul 2012 13:50:32 +0100 Received: from alice by example.com with local (Exim 4.80) (envelope-from <alice@example.com>) id 2SvpQe-0003ft-1D for bob@example.com; Mon, 30 Jul 2012 13:50:32 +0100 To: bob@example.com Subject: Testing Message-Id: <E2SvpQe-0003ft-1D@example.com> From: Alice <alice@example.com> Date: Mon, 30 Jul 2012 13:50:32 +0100 I said based on the Record-Jar format as I've added a few additions. For example comments that start with a leading hash (#) character. Also record separators using a double percent - i.e. '%%'. These additions are recommended on the same page referenced earlier, under the section titled 'Unix Textual File Format Conventions'. Now why am I writing about all this and why did I take a break from WolfMUD to rewrite my jtconv tool in Go? Well... this is one of the formats I'm considering for WolfMUD. It's simple plain text. Works with many, many tools and utilities. Can be generated by a nice world builder. Easily and quickly parsed. It can also be spell checked! A simple example might look like: Ref: L1 Type: PeacefulLocation Title: Fireplace Description: You are in the corner of a common room in the Dragon's Breath tavern. There is a fire burning away merrily in an ornate fireplace giving comfort to weary travellers. Shadows flicker around the room, changing light to darkness and back again. To the south the common room extends and east the common room leads to the tavern entrance. Aliases: Tavern, Fireplace Exits: S:L2, E:L3, SE:L4 %% Ref: L2 Type: PeacefulLocation Title: Common Room Description: You are in a small, cosy common room in the Dragon's Breath tavern. Looking around you see a few chairs and tables for patrons. To the east there is a bar and to the north you can see a merry fireplace burning away. Aliases: Tavern, Common Exits: N:L1, E:L4, NE:L3 Well that's an idea anyway. The file can also be Unicode, handy for languages other than English or for other symbols. For example the exits could be written as: Exits: N→L1, E→L4, NE→L3 Assuming your browser supports Unicode so you can see the right pointing arrows ;) You could also drop the commas: Exits: N→L1 E→L4 NE→L3 -- Diddymus [1] http://www.catb.org/~esr/writings/taoup/html/ch05s02.html Up to Main Index Up to Journal for July, 2012