====== man2html ======
===== Introduction =====
//man2html// can generate //on the fly// HTML pages from //man// documentation. This makes it a useful addition to [[howtos:software:asciidoc_mini_howto|asciidoc]] based notes.
((The HTML from //man2html// is formatted differently from that of //asciidoc//, and a possible, but heavy-handed, solution might be the use of [[http://slackbuilds.org/office/pandoc/|pandoc]], available from Slackbuilds.org.))
One of the advantages it offers is that when //man// pages are converted to HTML they become navigable through hyperlinks. A similar script exists for //info//, [[http://www.w3.org/Tools/info2www.html|info2www]].
//man2html// can be used from the command line, for example, to read in //lynx// the html-formatted //man// page of //grep//:
$ zcat $(man --path 1 grep) | man2html -l | lynx -stdin
It is more useful, however, to setup a //cgi-bin// infrastructure which will allow the //on the fly// operation, see man2html(1).
===== http =====
This is the most versatile mode, as it works from any browser.
**''# mkdir /var/www/cgi-bin/man''**
**''# $EDITOR /etc/lynx.cfg''**
# NB: must be a real tab.
TRUSTED_LYNXCGI:/var/www/cgi-bin/man/
**''# $EDITOR /var/www/cgi-bin/man/man2html''**
#!/bin/bash
# $1 is the man section
# $2 is the command name
zcat "$(man --path $1 $2)" | /usr/bin/man2html
**''# chmod 0755 /var/www/cgi-bin/man/man2html''**
**''# /etc/rc.d/rc.httpd start''**
See [[[[howtos:software:asciidoc_mini_howto#man|asciidoc Mini HOWTO]] for how to use in an //asciidoc// file.
The steps are intended for //localhost//, or at most a LAN. //cgi-bin// may need some hardening for a public web server.
===== lynxcgi =====
This works only from //lynx//. Make sure //lynx// is compiled with enabled ''cgi-bin'', the default for Slackware.
**''$ mkdir -p /home/httpd/cgi-bin/man''**
**''$ $EDITOR /etc/lynx.cfg''**
# NB: must be a real tab.
TRUSTED_LYNXCGI:/home/httpd/cgi-bin/man/
**''$ $EDITOR /home/httpd/cgi-bin/man/man2html''**
#!/bin/bash
# $1 is the man section
# $2 is the command name
zcat "$(man --path $1 $2)" | /usr/bin/man2html -l
**''$ chmod 0755 /home/httpd/cgi-bin/man/man2html''**
A link in an //asciidoc// file for //grep// will be:
lynxcgi:/home/httpd/cgi-bin/man/man2html?1+grep[grep(1)]
====== Sources ======
* Originally written by [[wiki:user:pdi | pdi]]
* Contributions by [[wiki:user:markand | markand]]
{{tag>howtos man2html}}