HTML PLAIN reference V1.1
Next: 9. Acknowledgements Up: HTML PLAIN reference V1.1 Previous: 7. Test results
The two most important ``Changelogs'' are included in the HTML PLAIN distribution. They document the changes in the main programs. Some of the modules have their own changelog. If the version number is not yet at 1.0, this means that there were no or only minor changes since the last version. It means that the modules worked indeed, and required no more debugging for the jump the version 1.0 :-)
v0.1 Variable values are correctly replaced by variable names; and, more importantly, relative links are correctly converted back to the symbolic names.
v0.1: Parses directories and searches the appropriate files for their title. No check for duplicate titles yet, and no automatic generation of "Title missing" (or similar) titles or something alike when no title could be found.
v0.2: Using now the module File::Find for platform independence. Module usage like in "The Perl Cookbook", Chapter 9.7.
v0.3: Can now parse image files for width and height. Only gifs are actually parsed, otherwise the system utility 'identify' is used.
v0.4: Duplicate titles are now handled properly. For each duplicate, a number is appended after searching the namespace for a free number. Alas, a similar convention was once used by some software company trying to emulate longer filenames with much shorter ones, where this lead to much confusion. Therefore a warning message is printed, advising the user to change the title of one of both files.
v0.5: The file table is now sorted before it is saved, in order to allow documents being processed in ascending level order - this will allow the implementation of multiple levels of templates later.
v1.0: <!- foreach -> files are properly handled in the file table.
v1.0.2: Fixed a minor bug with the titles from <!- foreach -> files.
v1.1: The sorting can now be overridden with the sortingFile option, which contains regular expressions: the left part is replaced by the right part (separated by tabs) of each line.
Non-trivial changes to auxiliary modules which do not have their own changelog are also found here.
v0.1: First working version. Parses an HTML file from STDIN and prints the parsed output in colors (for debugging) to STDOUT. Handles HTML tags, entities and strings in quotes.
v0.2: Now imports template.pl and variables.pl, which parse the template and variable dictionary, given the right arguments (filename, pointer(s) to storage).
v0.3: Files are actually parsed now. Variables and tag/entity redefinitions are handled correctly, even tags with options.
v0.4: First major restructuring. The replacement of text is now handled by an external module, which offers this functionality also to the template and variable parser, allowing definitions that refer back to previous definitions. A few other details have also been improved.
v0.5: Parser now replaces HTML tags first, while ignoring all the options, and then the values of the options in double quotes. It is therefore not possible to redefine the name of an option (but this would not be needed anyway). E. g. <font face="myfont"> font and myfont can be changed but not 'face' (why should anyone change this?)
v0.5.1: The options for HTML tags are internally no longer separated by space, but by the 0x80 character for easier parsing. However, this change cannot cope with several requirements; eventually, the replaced tags will have to be stored in a more complex data structure:
The format will be <definition> => <reference to redefinition>
<redefinition> = (index, <list of references to tag redefinitions>) (length 1 unless several tags are specified); the index is the number of the list element with the same tag name as the definition. It does not always have to exist (and is 0 in that case). This helps to speed up option overriding.
<tag redefinition> = list: tagname, [option, value]
v0.6: Implementation with that data structure. Unfortunately, the access over this data structure is rather awkward and annihilates any performance gain by less frequent parsing.
v0.7: Back to the simple line based data storage, with improved parsing routines.
v0.8: Filenames etc. work now (if the file table is up to date), but there are no substitutions being made yet for "blank" names (without the surrounding tags). Also, the path has to be adjusted, otherwise the links will be broken.
v0.8.1: Links using symbolic names are now correct relative links. A bug in the option replacement has been fixed, so all redundant options should be erased.
v0.8.2: Strings between quotes that represent either links or images are now correctly replaced by the HTML code for a link or images.
v0.8.3: Options from config.pl are now used for getting the list of all files (via the filetable) and the output path. Redirection of input and output is no longer required, usage is now simply 'parser.pl'.
v0.8.4: Start of implementation of the header and footer. The problem of interweaving lines of the header/footer with the document (in case the options of the template header are overwritten in the document) are not yet solved.
v0.8.5: URLs and e-mail addresses in plain text are now "URLified", i. e. linked to with proper HTML.
v0.8.6: Overriding options is now properly done in the case of multiple HTML tags. Basic macro support is done, so far only for built-in Perl commands and bits of Perl code.
v0.9: Finally, the header and footer merging with the document is implemented. All that is left is now to write access functions for macros and also write the most important macros, too.
v0.9.1: Lots of small bug fixes, one major bug being the inability to cope with subdirectories (fixed). The header and footer insertion is still a bit buggy.
v0.9.2: A macro for header or footer links is implemented, along with a first incarnation of the IMP (Interface for Macro Programming).
v1.0beta1: The IMP has been enhanced, and the insertion of header and footer links is now much more reliable. Also lots of small changes and bug fixes. A notable change is that the program now runs from /usr/bin/local, using the configuration under $HOME/.htmlplain/.
v1.0beta2: A few minor bug fixes. Dependency checking has been added among a few minor tweaks. Another important new feature is that local configuration files are used, if they exist, instead of the ones in $HOME/.htmlplain/. The documentation has also been improved and is nearly complete.
v1.0: Command line arguments are parsed. The option to skip document parsing has been added, and also the 'foreach' operator that allows html documents to be used with a set of different variable files.
v1.0.1: It is now possible to include a pattern for input files in the command line. Also fixed a couple of bugs.
v1.0.2: A small new macro has been added: DataLinks. It is for use within <!- foreach -> documents to link to all other documents using the same data files.
v1.0.3: A couple of minor bugfixes, and hopefully better Windows compatibility.
v1.0.4: Some minor bugfixes. An 'if/else/endif' preprocessor directive has been added.
v1.0.5: An 'include' statement has been added - this may be preferable compared to redefining tags, if the redefinition is very large. Also, the header/footer merging part has been thoroughly revised, and less faults should occur now in that area - ideally, none :)
v1.0.6: A bugfix in the header/footer inclusion. Another bugfix for macros.
v1.0.7: Another minor bugfix in the header/footer inclusion. Empty variable names (two double quotes, "") are no longer replaced by one double quote; use a backslash instead, \", or "
v1.0.8: A few minor bugfixes, particularly in the template parsing part.
v1.1: Some internal data structures have been reorganized. Links with # signs should work correctly now. Two new features have been added: 1) Overriding the default sorting; 2) the possibility to have templates always override the document. Two new macros have been added (Prev and Next).
v0.1: First working version. Parses templates from STDIN, prints parsed template to STDOUT (for debugging) and stores parsed content in a hash.
v0.2: Storing parsed lines was moved to an extra module.
v0.3: Recursive definitions are now possible. The implementation of that feature is still a bit clumsy and will need a rework for the final version.
v0.4: Recursive definitions are now better implemented.
v1.0: Many smaller changes.
v1.1: Support to have template take precedence over the document (if the comment starts with !).
v0.1: Parses variable template, stores content in storage (filename and pointer given from args).
v0.2: Recursive definitions are now possible.
There is only one changelog for all programs, because they have been developed in parallel, due to their highly similar functions.
v0.9: Everything important is implemented. There is still a minor bug with scrolling with the first mouse button.
v0.9.1: User is now asked whether to save changes, and a simple session management is implemented.
v0.9.2: Some keyboard bindings are be defined.
v0.9.3: All keyboard bindings are defined, and input line automatically takes the focus once an element is selected.
v0.9.4: Some minor changes and tweaks in the user interface.
v0.9.5: Improved scrolling behavior when having the mouse button 1 pressed and scrolling. The behavior is still buggy, but partly due to tk itself.
v0.9.6: An OK button has been added, allowing from recovery if the user deletes the current setting in the entry buffer accidentally.
v0.9.7: Many small improvements and bug fixes (mainly with the two lists) or addition of missing implementations of event handling code. The variable editor has now all features implemented (adding/removing lines etc.)
v0.9.8: Only changes in the variable editor, which focused on focus. Also added a simple "about" dialog.
v0.9.9: Added a help menu entry which will launch Netscape, hopefully finding the help page then...
v0.9.10: Added "Insert color", "Insert filename" options.
v0.9.11: Restructured the above two options, allowing to use the selected text as input and replacing it with the result.
v0.9.12: Undo for line deletion/change implemented.
v0.9.13: Major restructuring of the code of the variable editor in order to allow to reuse as much as possible for the template editor.
v0.9.14: Many minor bug fixes, namely the undo operation for inserting a value.
v0.9.15: Lots of bug fixes after some minor changes introduced lots and lots of bugs...
v0.9.16: Unfortunately config.tcl (the oldest configuration tool) was no longer compatible with the modified version of the module that handled the two lists. A slightly modified version had to be forked off. Some time, config.tcl should be rewritten to use the newer module. - In the other modules, a few final bugs were fixed.
v0.9.17: Some final tweaks in the variable and template editors. Also changed "Close" to "New" and "Reload" to "Revert", which IMHO fits their function better.
v0.9.18: Some minor changes and bug fixes.
v0.9.19: More bug fixes.
v1.0beta1: A few tweaks, mainly with the right click menu. Also, external programs like the directory selector (newly added) or color picker are now sourced in instead of called via "wish", which saves forking another process.
v1.0: A few bug fixes and minor changes in the code (no new functionality added).
v1.0.1: Fixed a bug in the template editor with the closing angular brackets (">"). The help files are now also included and appear correctly (but only under Unix or Linux).
v1.0.2: D. Roche's directory picker changed the pwd, and a subsequent "Save File" fails. Fixed. An install program has also been added, making the installation to directories other than the default one very easy.
v1.0.3: Some improvements in the install.tcl program.
v1.0.4: Some bugfixes, although the install.tcl program still causes problems under Windows.