@c This file is generated automatically by convert.pl from htags/manual.in.
@unnumberedsubsec NAME
htags - generate hypertext from source code.
@unnumberedsubsec SYNOPSIS
@noindent
@quotation
htags [-acDfFghInosTvwx][-d dbpath][-m name][-S cgidir][-t title][dir]@*
@end quotation
@unnumberedsubsec DESCRIPTION
Htags makes hypertext of C, C++, Yacc, Java, PHP and Assembly source code.

In advance of using this command, you must execute
gtags(1) from the root directory of the source tree.
Then you can execute htags from the same place.
Htags makes an directory named @file{HTML} and generates
hypertext in it.
You can start browsing from @file{HTML/index.html}.

Since htags generates static hypertext as long as
the @samp{-D} or @samp{-f} option is not specified,
you can move it anywhere and browse it by any browser without
web server.

You must use same parser for both gtags(1) and htags.
If you use the default parser, it is not necessary to consider for it.

@unnumberedsubsec OPTIONS
If you are new on htags, it is recommended to invoke with the @samp{--suggest} option.
With the option, htags use popular options instead of you.@*
The following options are available:
@table @asis
@item @samp{-a}, @samp{--alphabet}
Make an alphabetical function index which is suitable
for a large project.
@item @samp{--caution}
Include caution message to prohibit downloading.
@item @samp{-c}, @samp{--compact}
Compress html files  by gzip(1).
You need to set up a web server so that gzip(1)
is invoked for each compressed file.
See @file{HTML/.htaccess} that is generated by htags.
@item @samp{--cvsweb} url
Include cvsweb URL. url is used as base of URL.
When directory @file{CVS} exists in the root directory of source project,
the content of @file{CVS/Repository} is used as the relative path from the base.
@item @samp{--cvsweb-cvsroot} cvsroot
Specifies cvsroot in cvsweb URL.
@item @samp{-D}, @samp{--dynamic}
Generate object lists dynamically using CGI program.
By default, object lists are generated statically.
Though this option decrease both the size and the generation
time of the hypertext, you need to set up a web server, and 
you cannot move the hypertext from the source directory.
@item @samp{-d}, @samp{--dbpath} dbpath
Specifies the directory in which @file{GTAGS} and @file{GRTAGS}
exist. The default is the current directory.
@item @samp{--disable-grep}
Disable grep in the search form(-f,--form).
@item @samp{-F}, @samp{--frame}
Use frame for each part of the contents.
@item @samp{-f}, @samp{--form}
Support search form using CGI program.
You need to set up a web server, and you cannot move
the hypertext from the source directory.
@item @samp{--full-path}
List file names with full path in the file index.
By default, list just the last component of a path.
@item @samp{-g}, @samp{--gtags}
Execute gtags(1) before creating hypertext.
The @samp{-v}, @samp{-w} and dbpath are passed to gtags.
@item @samp{--gtagsconf} file
Load user's configuration from file.
@item @samp{--gtagslabel} label
label is used for the label of configuration file.
The default is @code{default}.
@item @samp{-h}, @samp{--func-header}[=position]
Insert function header for each function.
By default, htags doesn't generates it.
You can specify the position using position argument,
which allows one of @code{before}, @code{right} and @code{after}.
The default position is @code{after}.
@item @samp{-I}, @samp{--icon}
Use icons instead of text for some links.
@item @samp{--insert-footer} file
Insert custom footer derived from file before </body> tag.
@item @samp{--insert-header} file
Insert custom header derived from file after <body> tag.
@item @samp{--item-order} spec
Specify order of items in the top page.
The spec is a string consists of item signs in order.
Each sign means as follows:
c: caution, s: search form,
m: mains, d: definition, f: files.
The default is csmdf.
@item @samp{-m}, @samp{--main-func} name
Specify the main function name. The default is @code{main}.
@item @samp{-n}, @samp{--line-number}[=columns]
Print line numbers. By default, doesn't print line numbers.
The default value of columns is 4.
@item @samp{--no-map-file}
Doesn't generate @file{MAP} and @file{FILEMAP} file.
By default, htags generates them.
@item @samp{-o}, @samp{--other}
Pick up not only source files but also other files except for
binary files.
@item @samp{-S}, @samp{--secure-cgi} cgidir
Write CGI programs into the cgidir to realize
a centralised CGI program.
Script alias is @file{/cgi-bin} by default.
You can overwrite this value using config variable
@code{script_alias} in @file{gtags.conf}.
@item @samp{-s}, @samp{--symbol}
Make anchors not only for object definitions and references but also other symbols.
@item @samp{--statistics}
Print statistics information.
@item @samp{--suggest}
Htags selects popular options instead of beginners.
It is equivalent to '-afghInosTxv --show-position' now.
@item @samp{-T}, @samp{--table-flist}[=fields]
Generate file list using <table> tag.
The fields is used for field number in a line. The default is 5.
@item @samp{-t}, @samp{--title} title
The title of this hypertext. The default is the last
component of the current directory.
@item @samp{--table-list}
List tags using <table> tag.
@item @samp{--tabs number}
Tab stop. The default is 8.
@item @samp{-v}, @samp{--verbose}
Verbose mode.
@item @samp{-w}, @samp{--warning}
Print warning messages.
@item @samp{-x}, @samp{--xhtml}[=version]
Generate XHTML hypertext instead of HTML.
If the @samp{--frame} option is specified then
generate XHTML-1.0 Frameset for index.html
and generate XHTML-1.0 Transitional for other files,
else if version is @code{1.1} or config variable
@code{xhtml_version} is set to @code{1.1} then generate
XHTML-1.1 else XHTML 1.0 Transitional.
@item dir
The directory in which hypertext is generated.
The default is the current directory.
@end table
@unnumberedsubsec EXAMPLES
@example
	$ gtags -v
	$ htags -sanohITvt 'Welcome to XXX source tour!'
	$ firefox HTML/index.html

	$ htags --suggest

@end example
@unnumberedsubsec FILES
@table @asis
@item @file{GTAGS}
Tag file for object definitions.
@item @file{GRTAGS}
Tag file for object references.
@item @file{GSYMS}
Tag file for other symbols.
@item @file{GPATH}
Tag file for path of source files.
@item @file{/etc/gtags.conf}, @file{$HOME/.globalrc}
Configuration file.
@item @file{HTML/index.html}
Index file for hypertext.
@item @file{HTML/MAP}
Mapping file for converting tag into path of hypertext.
External systems can utilize this file.
@item @file{HTML/FILEMAP}
Mapping file for converting file name into path of hypertext.
External systems can utilize this file.
@item @file{HTML/style.css}
Style sheet file. This file is generated when the @samp{--xhtml}
option is specified.
@end table
@unnumberedsubsec ENVIRONMENT
The following environment variables affect the execution of htags:
@table @asis
@item @var{TMPDIR}
If this variable is set, its value is used as the directory
to make temporary files. The default is @file{/tmp}.
@item @var{GTAGSCONF}
If this variable is set, its value is used as the
configuration file. The default is @file{$HOME/.globalrc}.
@item @var{GTAGSLABEL}
If this variable is set, its value is used as the label
of configuration file. The default is @code{default}.
@item @var{GTAGSCACHE}
If this variable is set, its value is used as the size of
B-tree cache. The default is 5000000 (bytes).
@item @var{GTAGSFORCECPP}
If this variable is set, each file whose suffix is 'h' is treated
as a C++ source file.
@end table
@unnumberedsubsec CONFIGURATION
The following configuration variables affect the execution of htags:
If the @samp{--xhtml} option is specified then all definitions of
HTML tag are ignored.
Instead, you can customize the appearance using style sheet file
(@file{style.css}).
@table @asis
@item @code{body_begin}(string)
Begin tag for body. The default is '<body text=#191970 bgcolor=#f5f5dc vlink=gray>'.
@item @code{body_end}(string)
End tag for body. The default is '</body>'.
@item @code{brace_begin}(string)
Begin tag for brace. The default is '<font color=red>'.
@item @code{brace_end}(string)
End tag for brace. The default is '</font>'.
@item @code{colorize_warned_line}(boolean)
Colorize warned line using @code{warned_line_begin} and @code{warned_line_end}.
The default is false.
@item @code{comment_begin}(string)
Begin tag for comments. The default is '<i><font color=green>'.
@item @code{comment_end}(string)
End tag for comments. The default is '</font></i>'.
@item @code{copy_files}(boolean)
Copy files instead of linking.
When the @samp{-f} option is used, htags make links
of tag files in @file{cgi-bin} directory by default.
@item @code{datadir}(string)
Shared data directory. The default is '/usr/local/share' but
you can change the value using configure script.
Htags look up template files in the 'gtags' directory
in this data directory.
@item @code{definition_header}(no|before|right|after)
Position of function header. The default is 'no'.
@item @code{disable_grep}(boolean)
Disable grep in search form(-f,--form). The default is false.
@item @code{dynamic}(boolean)
Generate object list dynamically.
@item @code{enable_idutils}(boolean)
Enable idutils in search form(-f,--form). The default is false.
@item @code{flist_fields}(number)
Field number of file index. The default is 5.
@item @code{full_path}(boolean)
List file names with full path in file index.
By default, list just the last component of a path.
@item @code{gzipped_suffix}(string)
Suffix for compressed html file. The default is 'ghtml'.
@item @code{hr}(string)
Horizontal rules. The default is '<hr>'.
@item @code{htags_options}(string)
Default options for htags. This value is inserted into
the head of arguments.
@item @code{include_file_suffixes}(comma separated list)
Suffixes of include file. The default is 'h,hxx,hpp,H,inc.php'.
@item @code{langmap}(comma separated list)
Language mapping. Each comma-separated map consists of
the language name, a colon, and a list of file extensions.
Default mapping is 'c:.c.h,yacc:.y,asm:.s.S,java:.java,cpp:.c++.cc.cpp.cxx.hxx.hpp.C.H,php:.php.php3.phtml'.
@item @code{ncol}(number)
Columns of line number. The default is 4.
@item @code{normal_suffix}(string)
Suffix for normal html file. The default is 'html'.
@item @code{no_map_file}(boolean)
Doesn't generate @file{MAP} and @file{FILEMAP} file. The default is false.
@item @code{other_files}(boolean)
File index includes not only source files but also other files. The default is false.
@item @code{position_begin}(string)
Begin tag for position mark. The default is '<font color=gray>'.
@item @code{position_end}(string)
End tag for position mark. The default is '</font>'.
@item @code{reserved_begin}(string)
Begin tag for reserved word. The default is '<b>'.
@item @code{reserved_end}(string)
End tag for reserved word. The default is '</b>'.
@item @code{script_alias}(string)
Script alias for safe cgi script (@samp{-S}).
@item @code{sharp_begin}(string)
Begin tag for 'define'. The default is '<font color=darkred>'.
@item @code{sharp_end}(string)
End tag for 'define'. The default is '</font>'.
@item @code{show_position}(boolean)
Show position per function definition. The default is false.
@item @code{table_begin}(string)
Begin tag for table. The default is '<table>'.
@item @code{table_end}(string)
End tag for table. The default is '</table>'.
@item @code{table_flist}(boolean)
Use <table> tag for file index. The default is false.
@item @code{table_list}(boolean)
List tags using <table> tag. The default is false.
@item @code{tabs}(number)
Tab stop. The default is 8.
@item @code{title_begin}(string)
Begin tag for Title. The default is '<h1><font color=#cc0000>'.
@item @code{title_end}(string)
End tag for Title. The default is '</font></h1>'.
@item @code{warned_line_begin}(string)
Begin tag for line which htags warned. The default is '<span style="background-color:yellow">'.
@item @code{warned_line_end}(string)
End tag for line which htags warned. The default is '</span>'.
@item @code{xhtml_version}(1.0|1.1)
XHTML version. 1.0 and 1.1 are acceptable. The default is 1.0.
@end table
@unnumberedsubsec DIAGNOSTICS
Htags exits with a non 0 value if an error occurred, 0 otherwise.
@unnumberedsubsec MESSAGE FORMAT
Verbose message has important level. The most important level is 0,
the second it 1 and so on. All the message has level numbers leading
blanks.
@unnumberedsubsec SEE ALSO
gtags-parser(1),
global(1),
gtags(1).

GNU GLOBAL source code tag system@*
(http://www.gnu.org/software/global/).
@unnumberedsubsec BUG
Generated hypertext is VERY LARGE.
In advance, check the space of your disk.

PHP support is far from complete.
@unnumberedsubsec AUTHOR
Tama Communications Corporation.
@unnumberedsubsec HISTORY
The htags command appeared in FreeBSD 2.2.2.
