This is a simple program that, given a source C/C++ file, produces an html source with syntax highlighting.
cpp2html is free software. Please
see the file COPYING for details. For documentation,
please read this file. As it is a GPL program, I provide sources (~70k),
but if you don't fell like compiling it, you can download Win32 executable
(~100k) ().
This program is based on java2html (whose main site is http://www.gnu.org/software/java2html/java2html.html, but locally should be here); as I received many requests for a similar program for C++ I decided to make a syntax highlighter for C++ as well. This very page is also based on the one of Java2html. |
Cpp2html is a GNU program, so you can
download it also fro GNU's ftp site:
ftp://ftp.gnu.org/gnu/cpp2html/
or from here:
Cpp2html main home page is at GNU site:
http://www.gnu.org/software/cpp2html/cpp2html.html
you can also get the pacthes (see below for patching from a previous version).
cd <source code main directory> ./configure make make installNote: unless you specify a different install directory by --prefix option of configure (e.g. ./configure --prefix=<your home>), you must be root to 'make install'.
Files will be installed in the following directories:
cpp2html has been developed under Linux, using gcc (C++), and bison (yacc) and flex (lex), and ported under Win32 with Cygnus C/C++ compiler, available at http://www.cygnus.com/ (a .DLL is also distributed togheter with the .exe: you may simply copy it in the same place of the .exe). I used the excellent GNU Autoconf and Automake. I also used Autotools (ftp://ftp.ugcs.caltech.edu/pub/elef/autotools) which creates a starting source tree (according to GNU standards) with autoconf, automake starting files. Finally I used GNU gengetopt (http://www.gnu.org/software/gengetopt), for command line parsing.
Actually, unless you want to develop cpp2html, you don't need all these tools to build cpp2html because I provide generated sources; you don't need neither bison (yacc) nor flex (lex), for the same reason. Actually programs that use lex generated files need to link with library libfl (or libl for lex); anyway configuration phase can discover if this library is missing and in that case it sets the program to link with a source file I provide. This hack works for flex: I don't know about lex generated scanners. But, again, this is a problem only if you develop cpp2html and you use lex.
gunzip -cd ../cpp2html-1.3-1.3.1.patch.gz | patch -p1and restart the compilation process (if you had already run configure a simple make will do).
here's how to run it:
cpp2html --input <file (a C++ prog)> --output <file (an html)>If you do not specify the name of the output file, the name will be the one of the source file with a .html appended.
Here are some links to some of the sources of cpp2html colored with cpp2html itself:
These files have been generated with the following commands:cpp2html --doc main.cc cpp2html --doc generators.cc cpp2html --doc tags.cc cpp2html --doc messages.ccObviosly it works with C files as well: Created with the command:
cpp2html -i cmdline.c -o cmdline.c.html --css="cpp2html.css" --header="./header.html" --footer="./footer.html"And obviously it works with header files as well (which we colored in black and white :-) created with the command:
cpp2html *.h --css="mono.css"And here's the output of `cpp2html -help`
Usage: cpp2html [OPTION]... [INPUT-FILE]... cpp2html < INPUT-FILE > OUTPUT-FILE [OPTION]... given a source C/C++ file, produces an html source with syntax highlighting. -v, --verbose verbose mode on -d, --doc creates html with title, header... -c, --css=URL use a css for formatting (implies --doc) -T, --title=TITLE give title to the html (implies --doc) -i, --input=FILE input file (default standard input) -o, --output=FILE output file (default standard output) -t, --tab=TABLEN specify tab length (default 8) -V, --version print versionAs it handles standard output and input you may also run it like
cat MyFile.cpp | cpp2html | lprYou may want to specify your options for syntax highlighting in the file tags.j2h. If this file is not present in the current directory, some default colors will be used. Here's the tags.j2h file that comes with this distribution:
keyword blue b ; type green ; string red ; comment brown i ; number purple ;as you might see the syntax of this file is quite straightforward:
you may see all possible colors in the file colors.html
if something goes wrong with your options try to run cpp2html with --verbose option enabled.
Actually I want to extend it, so if you have some ideas...
The most import one will be to make cpp2html more customizable :-)
Please send all bug reports by electronic mail to:
bug-cpp2html@gnu.org
My home page is
http://w3.newnet.it/bettini
or
http://infostud.dsi.unifi.it/~bettini
(very fast if you're in University)
cpp2html is free software. See the file COPYING for copying conditions. Anyway I won't get offended if you send me a postcard :-)
Return to GNU's home page.
Please send FSF & GNU inquiries & questions to gnu@gnu.org. There are also other ways to contact the FSF.
Please send comments on these web pages to webmasters@www.gnu.org, send other questions to gnu@gnu.org.
Copyright (C) 1999 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved.
Updated: 27 Mar 1999 jonas