Andy Wardley 05-Dec-97 -------------------------------------------- I have two Perl modules due for imminent release: App:: General application development tools ::Config bdpO Configuration file mgmt ABW + Text:: ::MetaText bdp0 Text processing/markup meta-language ABW + #------------------------------------------------------------------------ App::Config A generic application module for managing configuration information. Command line parameters and configuration files can be parsed by the module, setting the state of internal variables accordingly. #------------------------------------------------------------------------ Text::MetaText MetaText is a text processing and markup meta-language. This module is a Perl 5 extension implementing an object which processes text files, interpreting and acting on the embedded MetaText directives within. Like a glorified pre-processor, it can; include files, define and then re-interpret variable values, execute conditional actions based on variables, call other perl functions and capture the output back into the document. It can format the resulting output of any of these operations in a number of ways. The objects and inherently, the format and symantics of the MetaText langauge itself, are highly configurable. MetaText was originally designed to aid in the creation of html documents in a large web site. It remains well suited for this and similar tasks, being able to create web pages (dynamically or statically) that are consistent with each other, yet easily customisable: * standard headers, footers and other elements can be defined in separate files and then inserted into web documents with an embedded text tag: %% INCLUDE filename %% * variables can be defined externally or from within a document, then can be substituted back into the text. This is useful for including your %% name %% or %% email %% address or any other variable, and for encoding URL's or file paths that can then be changed en masse. e.g. * conditional actions can be made based on variable definitions, allowing easily and instantly customisable web pages. e.g %% INCLUDE higraphics/header if="higfx && userid != abw" %% * blocks of text can be internally defined simplifying the creation of repetitive documents or text elements. e.g. %% BLOCK table_row %% %% userid %% %% name %% %% ENDBLOCK %% %% INCLUDE table_row userid=lwall name="Larry Wall" %% %% INCLUDE table_row userid=tomc name="Tom Christiansen" %% %% INCLUDE table_row userid=merlyn name="Randal L. Schwartz" %% * in addition, the metapage utility is a script which can automatically traverse document trees, processing updated files to assist in web document management and other similar tasks.