NAME

text-vimcolor - syntax color a file in HTML, XML or PDF

SYNOPSIS

$ text-vimcolor --format html --full-page FILENAME > OUTPUT.html
$ text-vimcolor --format xml FILENAME > OUTPUT.xml
$ text-vimcolor --format pdf FILENAME --output OUTPUT.pdf

DESCRIPTION

This program uses the Vim text editor to highlight text according to its syntax, and turn the highlighting into HTML, XML or PDF output. It works with any file type which Vim itself can highlight. Usually Vim will be able to autodetect the file format based on the filename (and sometimes the contents of the file).

Exactly one filename should be given on the command line to name the input file. If none is given input will instead be read from stdin (the standard input).

If Vim can't guess the file type automatically, it can be specified explicitly using the --filetype option. For example:

$ text-vimcolor --format html --filetype prolog foo.pl > foo.html

This program is a command line interface to the Perl module Text::VimColor.

OPTIONS

The following options are understood:

--debug

Turns on debugging in the underlying Perl module. This makes it print the command used to run Vim.

--filetype file-type

Set the type of the file explicitly. The file-type argument should be something which Vim will recognise when set with its filetype option. Examples are perl, cpp (for C++) and sh (for Unix shell scripts). These names are case sensitive, and should usually be all-lowercase.

--format output-format

The output format to generate. Must be one of the following:

html

Generate XHTML output, with text marked with <span> elements with class attributes. A CSS stylesheet should be used to define the coloring, etc., for the output. See the --full-page option below.

xml

Output is in a simple XML vocabulary. This can then be used by other software to do further transformations (e.g., using XSLT).

pdf

XML output is generated and fed to the FOP XSL-FO processor, with an appropriate XSL style sheet. The stylesheet uses XSLT to transform the normal XML output into XSL-FO, which is then rendered to PDF. For this to work, the command fop must be available. An output file must be specified with --output with this format.

Full details of the HTML and XML output formats can be found in the documentation for Text::VimColor.

--output output-filename

Specifies the name of the output file (which will end up containing either HTML, XML or PDF). If this option is omitted, the output will be sent to stdout (the standard output). This option is required when the output format is PDF (because of limitations in FOP).

--full-page

When the output format is HTML, this option will make the output a complete HTML page, rather than just a fragment of HTML. A CSS stylesheet will be inserted inline into the output, so the output will be useable as it is.

--no-inline-stylesheet

When the output format is HTML and --fullpage is given, a stylesheet is normally inserted in-line in the output file. If this option is given it will instead be referenced with a <link> element.

BUGS

  • The PDF output option often doesn't work, because it is dependent on FOP, which often doesn't work. This is also why it is mind numbingly slow.

  • FOP (0.20.3) seems to ignore the background-color property on <fo:inline>. If that's what it's meant to do, how do you set the background color on part of a line?

AUTHOR

Geoff Richards <qef@laxan.com>

COPYRIGHT

Copyright 2002-2003, Geoff Richards.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl.