htmlXPress

Version History

Version 4.0

April 2015

  • Now 'hosted on GitHub':https://github.com/rolleric/htmlXPress .
  • Remodelled for more modern usage.
  • Added support for user-specific configuration file: ~/.htmlxpressrc
  • The site-specific package file can now use a different name than "site.pm", but if a "site.pm" file is present, it will be used by default.
  • Renamed file_table keys. Added "non_ascii" key, replacing "press" == 2.
  • Obsoleted CSS name compressions.
  • Moved Harward-style chapter numbering into site-specific processing scripts. This is no longer a part of htmlXPress.

Version 3.0.2

November 2012 (not released)

  • New: @attr_not_zero to tolerate hspace="0".

Version 3.0.1

August 2012 (not released)

  • Removed a "defined()".

Version 3.0

July 2007 (not released)

  • Added support for &pre_fix (we use this for setext-to-html conversion).
  • Added PHP file extension support.
  • Added handling of
  • Added support for extension changes, e.g. "xrc" => "html".
  • Improved TOC link generation
  • Fixed a problem with undefined $outdir when --inplace was used.
  • Fixed a clash between PLIST and ordinary XML files.
  • Changed default text creator BBEdit (R*ch) -> TextWrangler (R!ch).
  • More use of 'unless' instead of 'if !'.

Version 2.7

May 2006 (not released)

  • Added support for inplace-optimization (-inplace).

Version 2.6

September 2005 (not released)

  • Added support for CSS-compliancy test.
  • To disable known syntax issues in the CSS file, use the "item?:value".

Version 2.5.1

May 2005 (not released)

  • Rudimentary support for server-side includes (SSI).

Version 2.5

January 2005 (not released)

  • Now using UTF-8 and works best with UTF-8 encoded input files.
  • Added a Harvard-style numbering system to auto-number FAQ pages.

Version 2.2

January 2004

  • Added compression support for style sheets (CSS).
  • CSS id names can now be replaced by short generic names. For that, all id names must be defined in the configuration file. No replacement is done if the generic id is already in use.
  • Better XML support (various), e.g. a new option --(no)lint to run xmllint (default on).
  • Added option --(no)link to check all hyperlinks (default off).
  • Introduced a &sign_off subroutine that the user can define in much the same way as &html_rules. Whereas &html_rules is called at the beginning of our processing, &sign_off is evoked at the very end. You can use this, for instance, to issue warnings on whatever you do not like about the result.
  • Retired $isdst variable as it was not used.
  • The file naming fall-back routine now checks whether a file rule has been used used before applying default settings.
  • Changed variable $isxml to $type (eq "xml").
  • Added support for € -> €.
  • New <<doctype *>> macro to declare the document type. The inserted DOCTYPES adhere to W3C standards for HTML 4.01 XHTML 1.0 and 1.1 documents. Use e.g. <<doctype strict>>.
  • While not intended as a complete syntax checker, a number of consistency checks have been added.
  • New option --(no)syntax to switch test off (default on).
  • Added a check for lowercase <doctype> which is not allowed.
  • Added a check for undetected <<macros>>.
  • Simplified the code through stronger use of "unless".
  • Processing now stops at "__END__" (in a separate line).
  • Changed the format of the debug messages (to STDERR).
  • New subs "msg", "err" to streamline messages.

Version 2.1

July 2003 (internal build)

  • Added support for command-line options though Getopt::Long.
  • Introduced options to access some internal variables:
    --configuration=name (name of $configuration file [_html_configuration.pl])
    --configuration (no file: skip configuration file)
    --help --usage (show embedded help page via Pod::Usage).
    --verbose ($verbose = 1)
  • New option --pipe be able to use htmlXPress in a pipe such as: cat test.html | htmlXPress.pl --pipe > new.html
  • $verbose messages are now printed to STDERR.

Version 2.0

March 2002

  • Renamed to htmlXPress (was htmlPress).
  • Now Mac OS X compliant.
  • Modified the structure to be able to run under Mac OS X.
  • Whether or not MacPerl is used is determined by $macperl.
  • Added debugging features ($debug).
  • New $sourcedir to track whether we are writing into the same directory.
  • Changed the text wrap flag in the file_rules - it is no longer a boolean; instead it indicates the column width. Sub html_rules is now declared in main; call checked via 'define'.
  • Renamed configuration file to "_html_configuration.pl".
  • Recoded parts after suggestions from the Perl porting guide.
  • Thus now using File::Spec::Function.
  • Improved the code documentation.

Version 1.6

September 2002

  • Fixed a bug with the input separator $/ now correctly using $_.
  • Corrected the date handling - $mday and $isdst was incorrect.
    $wday is adjusted to be in the range 1-7 (Mon-Sun).
  • Now removes unnecessary markup code: </p> </li> </dd> </dt>.
    ... but not if we are processing an XML file (stricter syntax).
  • Exchanged longer HTML codes against smaller ones, e.g. <address> will be exchanged by <i>.
  • New keyword <<file>> which is replaced by the result file name.
  • Fixed handling of a '#' comment in the very first line.

Version 1.5.1

July 2002

  • Renamed it to htmlPress to avoid name conflict with a shareware tool of the same name (HTML Squeezer).
  • Minor fix for removing HTML-style comments.
  • Adjusted all date variables to be useful, e.g. $year += 1900.
  • The variable $year is now an integer again.

Version 1.5

July 2002

  • Adopted the GNU General Public License for the distribution of htmlPress.
  • Fixed a bug handling multi-line HTML comments as well as multiple '#' comments.
  • Introduced more flexible solution to handle different file types. The new array @file_rules now defines how file names are generated, which creator is used for the result file, whether it will be compressed and whether it will be line-wrapped.

Version 1.4

February 2002

  • Source files may now have several possible file name extensions. The default extensions are "src", "html-src", and "txt". The user may customize this via the @source_extensions array.
  • The file name extension for resulting HTML files can now be customized via the $html_extension variable. The default is "html".
  • The browser application that owns the resulting HTML files can now be selected via the variable $html_creator.
  • Added support for more special characters such as ê, ï, etc.
  • New shortcuts for < and >: \< \>.
  • Now using "perl -w" for better syntax checking.
  • In the absence of embedded JavaScripts, the resulting HTML code is now line-wrapped. This feature is "beta" and must be enabled in the configuration file.

Version 1.3

December 2001

  • htmlPress now makes use of a local configuration file named "_html.configuration", which must be placed in the same directory as the HTML source files. In this configuration file, the user may define her own code words (thus eliminating the need to change htmlPress itself). This is also excellent for project-specific settings.
  • Moved the definition of special keywords out of htmlPress into the configuration file. It is easier to edit the definitions there.
  • It is now possible to specify a destination directory in the configuration file. The processed HTML files will then be saved in this directory.
  • Added an example to the configuration file on how users may define their own date format.

Version 1.2

September 2001

  • Added tons of new keywords, including: <<doctype>>, <<body>>, <<font>>, <<copyright>>, <<author>>, <<company>>, <<email>>, and <<madewithmac>>.
  • Added support for umlauts such as ä and ö. This makes writing the source files more convenient.

Version 1.1

August 2001

  • The default source file extension is now ".src". Resulting HTML files will have a ".html" extension.
  • Embedded java scripts are now exempt from compression.
  • Added support for MacPerl::Choose() to allow the user to select a new destination file if required. In this way, the user may also choose to override the previous file. The user may also cancel processing at this point.
  • The source files are now processed as a whole, rather than line-by-line. This improved the code reduction further.

Version 1.0

August 2001 (first version)

  • Introduced HTML code compression techniques.