xref: /freebsd-src/contrib/mandoc/man.cgi.8 (revision c1c95add8c80843ba15d784f95c361d795b1f593)
1*c1c95addSBrooks Davis.\"	$Id: man.cgi.8,v 1.24 2022/07/06 15:47:28 schwarze Exp $
261d06d6bSBaptiste Daroussin.\"
361d06d6bSBaptiste Daroussin.\" Copyright (c) 2014, 2015, 2016 Ingo Schwarze <schwarze@openbsd.org>
461d06d6bSBaptiste Daroussin.\"
561d06d6bSBaptiste Daroussin.\" Permission to use, copy, modify, and distribute this software for any
661d06d6bSBaptiste Daroussin.\" purpose with or without fee is hereby granted, provided that the above
761d06d6bSBaptiste Daroussin.\" copyright notice and this permission notice appear in all copies.
861d06d6bSBaptiste Daroussin.\"
961d06d6bSBaptiste Daroussin.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
1061d06d6bSBaptiste Daroussin.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
1161d06d6bSBaptiste Daroussin.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
1261d06d6bSBaptiste Daroussin.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
1361d06d6bSBaptiste Daroussin.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
1461d06d6bSBaptiste Daroussin.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
1561d06d6bSBaptiste Daroussin.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
1661d06d6bSBaptiste Daroussin.\"
17*c1c95addSBrooks Davis.Dd $Mdocdate: July 6 2022 $
1861d06d6bSBaptiste Daroussin.Dt MAN.CGI 8
1961d06d6bSBaptiste Daroussin.Os
2061d06d6bSBaptiste Daroussin.Sh NAME
2161d06d6bSBaptiste Daroussin.Nm man.cgi
2261d06d6bSBaptiste Daroussin.Nd CGI program to search and display manual pages
2361d06d6bSBaptiste Daroussin.Sh DESCRIPTION
2461d06d6bSBaptiste DaroussinThe
2561d06d6bSBaptiste Daroussin.Nm
2661d06d6bSBaptiste DaroussinCGI program searches for manual pages on a WWW server
2761d06d6bSBaptiste Daroussinand displays them to HTTP clients,
2861d06d6bSBaptiste Daroussinproviding functionality equivalent to the
2961d06d6bSBaptiste Daroussin.Xr man 1
3061d06d6bSBaptiste Daroussinand
3161d06d6bSBaptiste Daroussin.Xr apropos 1
3261d06d6bSBaptiste Daroussinutilities.
3361d06d6bSBaptiste DaroussinIt can use multiple manual trees in parallel.
3461d06d6bSBaptiste Daroussin.Ss HTML search interface
3561d06d6bSBaptiste DaroussinAt the top of each generated HTML page,
3661d06d6bSBaptiste Daroussin.Nm
3761d06d6bSBaptiste Daroussindisplays a search form containing these elements:
3861d06d6bSBaptiste Daroussin.Bl -enum
3961d06d6bSBaptiste Daroussin.It
4061d06d6bSBaptiste DaroussinAn input box for search queries, expecting
4161d06d6bSBaptiste Daroussineither a name of a manual page or an
4261d06d6bSBaptiste Daroussin.Ar expression
4361d06d6bSBaptiste Daroussinusing the syntax described in the
4461d06d6bSBaptiste Daroussin.Xr apropos 1
4561d06d6bSBaptiste Daroussinmanual; filling this in is required for each search.
4661d06d6bSBaptiste Daroussin.Pp
4761d06d6bSBaptiste DaroussinThe expression is broken into words at whitespace.
4861d06d6bSBaptiste DaroussinWhitespace characters and backslashes can be escaped
4961d06d6bSBaptiste Daroussinby prepending a backslash.
5061d06d6bSBaptiste DaroussinThe effect of prepending a backslash to another character is undefined;
5161d06d6bSBaptiste Daroussinin the current implementation, it has no effect.
5261d06d6bSBaptiste Daroussin.It
5361d06d6bSBaptiste DaroussinA
5461d06d6bSBaptiste Daroussin.Xr man 1
5561d06d6bSBaptiste Daroussinsubmit button.
5661d06d6bSBaptiste DaroussinThe string in the input box is interpreted as the name of a manual page.
5761d06d6bSBaptiste Daroussin.It
5861d06d6bSBaptiste DaroussinAn
5961d06d6bSBaptiste Daroussin.Xr apropos 1
6061d06d6bSBaptiste Daroussinsubmit button.
6161d06d6bSBaptiste DaroussinThe string in the input box is interpreted as a search
6261d06d6bSBaptiste Daroussin.Ar expression .
6361d06d6bSBaptiste Daroussin.It
6461d06d6bSBaptiste DaroussinA dropdown menu to optionally select a manual section.
6561d06d6bSBaptiste DaroussinIf one is provided, it has the same effect as the
6661d06d6bSBaptiste Daroussin.Xr man 1
6761d06d6bSBaptiste Daroussinand
6861d06d6bSBaptiste Daroussin.Xr apropos 1
6961d06d6bSBaptiste Daroussin.Fl s
7061d06d6bSBaptiste Daroussinoption.
7161d06d6bSBaptiste DaroussinOtherwise, pages from all sections are shown.
7261d06d6bSBaptiste Daroussin.It
7361d06d6bSBaptiste DaroussinA dropdown menu to optionally select an architecture.
7461d06d6bSBaptiste DaroussinIf one is provided, it has the same effect as the
7561d06d6bSBaptiste Daroussin.Xr man 1
7661d06d6bSBaptiste Daroussinand
7761d06d6bSBaptiste Daroussin.Xr apropos 1
7861d06d6bSBaptiste Daroussin.Fl S
7961d06d6bSBaptiste Daroussinoption.
8061d06d6bSBaptiste DaroussinBy default, pages for all architectures are shown.
8161d06d6bSBaptiste Daroussin.It
8261d06d6bSBaptiste DaroussinA dropdown menu to select a manual tree.
8361d06d6bSBaptiste DaroussinIf the configuration file
8461d06d6bSBaptiste Daroussin.Pa /var/www/man/manpath.conf
8561d06d6bSBaptiste Daroussincontains only one manpath, the dropdown menu is not shown.
8661d06d6bSBaptiste DaroussinBy default, the first manpath given in the file is used.
8761d06d6bSBaptiste Daroussin.El
8861d06d6bSBaptiste Daroussin.Ss Program output
8961d06d6bSBaptiste DaroussinThe
9061d06d6bSBaptiste Daroussin.Nm
9161d06d6bSBaptiste Daroussinprogram generates five kinds of output pages:
9261d06d6bSBaptiste Daroussin.Bl -tag -width Ds
9361d06d6bSBaptiste Daroussin.It The index page.
9461d06d6bSBaptiste DaroussinThis is returned when calling
9561d06d6bSBaptiste Daroussin.Nm
9661d06d6bSBaptiste Daroussinwithout
9761d06d6bSBaptiste Daroussin.Ev PATH_INFO
9861d06d6bSBaptiste Daroussinand without a
9961d06d6bSBaptiste Daroussin.Ev QUERY_STRING .
10061d06d6bSBaptiste DaroussinIt serves as a starting point for using the program
10161d06d6bSBaptiste Daroussinand shows the search form only.
10261d06d6bSBaptiste Daroussin.It A list page.
10361d06d6bSBaptiste DaroussinLists are returned when searches match more than one manual page.
10461d06d6bSBaptiste DaroussinThe first column shows the names and section numbers of manuals
10561d06d6bSBaptiste Daroussinas clickable links.
10661d06d6bSBaptiste DaroussinThe second column shows the one-line descriptions of the manuals.
10761d06d6bSBaptiste DaroussinFor
10861d06d6bSBaptiste Daroussin.Xr man 1
10961d06d6bSBaptiste Daroussinstyle searches, the content of the first manual page follows the list.
11061d06d6bSBaptiste Daroussin.It A manual page.
11161d06d6bSBaptiste DaroussinThis output format is used when a search matches exactly one
11261d06d6bSBaptiste Daroussinmanual page, or when a link on a list page or an
11361d06d6bSBaptiste Daroussin.Ic \&Xr
11461d06d6bSBaptiste Daroussinlink on another manual page is followed.
11561d06d6bSBaptiste Daroussin.It A no-result page.
11661d06d6bSBaptiste DaroussinThis is shown when a search request returns no results -
11761d06d6bSBaptiste Daroussineither because it violates the query syntax, or because
11861d06d6bSBaptiste Daroussinthe search does not match any manual pages.
11961d06d6bSBaptiste Daroussin.It \&An error page.
12061d06d6bSBaptiste DaroussinThis cannot happen by merely clicking the
12161d06d6bSBaptiste Daroussin.Dq Search
12261d06d6bSBaptiste Daroussinbutton, but only by manually entering an invalid URI.
12361d06d6bSBaptiste DaroussinIt does not show the search form, but only an error message
12461d06d6bSBaptiste Daroussinand a link back to the index page.
12561d06d6bSBaptiste Daroussin.El
12661d06d6bSBaptiste Daroussin.Ss Setup
12761d06d6bSBaptiste DaroussinFor each manual tree, create one first-level subdirectory below
12861d06d6bSBaptiste Daroussin.Pa /var/www/man .
12961d06d6bSBaptiste DaroussinThe name of one of these directories is called a
13061d06d6bSBaptiste Daroussin.Dq manpath
13161d06d6bSBaptiste Daroussinin the context of
13261d06d6bSBaptiste Daroussin.Nm .
13361d06d6bSBaptiste DaroussinCreate a single ASCII text file
13461d06d6bSBaptiste Daroussin.Pa /var/www/man/manpath.conf
13561d06d6bSBaptiste Daroussincontaining the names of these directories, one per line.
13661d06d6bSBaptiste DaroussinThe directory given first is used as the default manpath.
13761d06d6bSBaptiste Daroussin.Pp
13861d06d6bSBaptiste DaroussinInside each of these directories, use the same directory and file
13961d06d6bSBaptiste Daroussinstructure as found below
14061d06d6bSBaptiste Daroussin.Pa /usr/share/man ,
14161d06d6bSBaptiste Daroussinthat is, second-level subdirectories
14261d06d6bSBaptiste Daroussin.Pa /var/www/man/*/man1 , /var/www/man/*/man2
14361d06d6bSBaptiste Daroussinetc. containing source
14461d06d6bSBaptiste Daroussin.Xr mdoc 7
14561d06d6bSBaptiste Daroussinand
14661d06d6bSBaptiste Daroussin.Xr man 7
14761d06d6bSBaptiste Daroussinmanuals with file name extensions matching the section numbers,
14861d06d6bSBaptiste Daroussinsecond-level subdirectories
14961d06d6bSBaptiste Daroussin.Pa /var/www/man/*/cat1 , /var/www/man/*/cat2
15061d06d6bSBaptiste Daroussinetc. containing preformatted manuals with the file name extension
15161d06d6bSBaptiste Daroussin.Sq 0 ,
15261d06d6bSBaptiste Daroussinand optional third-level subdirectories for architectures.
15361d06d6bSBaptiste DaroussinUse
15461d06d6bSBaptiste Daroussin.Xr makewhatis 8
15561d06d6bSBaptiste Daroussinto create a
15661d06d6bSBaptiste Daroussin.Xr mandoc.db 5
15761d06d6bSBaptiste Daroussindatabase inside each manpath.
15861d06d6bSBaptiste Daroussin.Pp
15961d06d6bSBaptiste DaroussinConfigure your web server to execute CGI programs located in
16061d06d6bSBaptiste Daroussin.Pa /cgi-bin .
16161d06d6bSBaptiste DaroussinWhen using
16261d06d6bSBaptiste Daroussin.Ox
16361d06d6bSBaptiste Daroussin.Xr httpd 8 ,
16461d06d6bSBaptiste Daroussinthe
16561d06d6bSBaptiste Daroussin.Xr slowcgi 8
16661d06d6bSBaptiste Daroussinproxy daemon is needed to translate FastCGI requests to plain old CGI.
16761d06d6bSBaptiste Daroussin.Pp
16861d06d6bSBaptiste DaroussinTo compile
16961d06d6bSBaptiste Daroussin.Nm ,
17061d06d6bSBaptiste Daroussinfirst copy
17161d06d6bSBaptiste Daroussin.Pa cgi.h.example
17261d06d6bSBaptiste Daroussinto
17361d06d6bSBaptiste Daroussin.Pa cgi.h
17461d06d6bSBaptiste Daroussinand edit it according to your needs.
17561d06d6bSBaptiste DaroussinIt contains the following compile-time definitions:
17661d06d6bSBaptiste Daroussin.Bl -tag -width Ds
17761d06d6bSBaptiste Daroussin.It Ev COMPAT_OLDURI
17861d06d6bSBaptiste DaroussinOnly useful for running on www.openbsd.org to deal with old URIs containing
17961d06d6bSBaptiste Daroussin.Qq "manpath=OpenBSD "
18061d06d6bSBaptiste Daroussinwhere the blank character has to be translated to a hyphen.
18161d06d6bSBaptiste DaroussinWhen compiling for other sites, this definition can be deleted.
18261d06d6bSBaptiste Daroussin.It Dv CSS_DIR
18361d06d6bSBaptiste DaroussinAn optional file system path to the directory containing the file
18461d06d6bSBaptiste Daroussin.Pa mandoc.css ,
18561d06d6bSBaptiste Daroussinto be specified relative to the server's document root,
18661d06d6bSBaptiste Daroussinand to be specified without a trailing slash.
18761d06d6bSBaptiste DaroussinWhen empty, the CSS file is assumed to be in the document root.
18861d06d6bSBaptiste DaroussinOtherwise, a leading slash is needed.
18961d06d6bSBaptiste DaroussinThis is used in generated HTML code.
19061d06d6bSBaptiste Daroussin.It Dv CUSTOMIZE_TITLE
19161d06d6bSBaptiste DaroussinAn ASCII string to be used for the HTML <TITLE> element.
19261d06d6bSBaptiste Daroussin.It Dv MAN_DIR
19361d06d6bSBaptiste DaroussinA file system path to the
19461d06d6bSBaptiste Daroussin.Nm
19561d06d6bSBaptiste Daroussindata directory relative to the web server
19661d06d6bSBaptiste Daroussin.Xr chroot 2
19761d06d6bSBaptiste Daroussindirectory, to be specified with a leading slash and without a trailing slash.
19861d06d6bSBaptiste DaroussinIt needs to have at least one component; the root directory cannot be used
19961d06d6bSBaptiste Daroussinfor this purpose.
20061d06d6bSBaptiste DaroussinThe files
20161d06d6bSBaptiste Daroussin.Pa manpath.conf ,
20261d06d6bSBaptiste Daroussin.Pa header.html ,
20361d06d6bSBaptiste Daroussinand
20461d06d6bSBaptiste Daroussin.Pa footer.html
20561d06d6bSBaptiste Daroussinare looked up in this directory.
20661d06d6bSBaptiste DaroussinIt is also prepended to the manpath when opening
20761d06d6bSBaptiste Daroussin.Xr mandoc.db 5
20861d06d6bSBaptiste Daroussinand manual page files.
20961d06d6bSBaptiste Daroussin.It Dv SCRIPT_NAME
21061d06d6bSBaptiste DaroussinThe initial component of URIs, to be specified without leading
21161d06d6bSBaptiste Daroussinand trailing slashes.
21261d06d6bSBaptiste DaroussinIt can be empty.
21361d06d6bSBaptiste Daroussin.El
21461d06d6bSBaptiste Daroussin.Pp
21561d06d6bSBaptiste DaroussinAfter editing
21661d06d6bSBaptiste Daroussin.Pa cgi.h ,
21761d06d6bSBaptiste Daroussinrun
21861d06d6bSBaptiste Daroussin.Pp
21961d06d6bSBaptiste Daroussin.Dl make man.cgi
22061d06d6bSBaptiste Daroussin.Pp
22161d06d6bSBaptiste Daroussinand copy the resulting binary to the proper location,
22261d06d6bSBaptiste Daroussinfor example using the command:
22361d06d6bSBaptiste Daroussin.Pp
22461d06d6bSBaptiste Daroussin.Dl make installcgi
22561d06d6bSBaptiste Daroussin.Pp
22661d06d6bSBaptiste DaroussinIn addition to that, make sure the default manpath contains the files
22761d06d6bSBaptiste Daroussin.Pa man1/apropos.1
22861d06d6bSBaptiste Daroussinand
22961d06d6bSBaptiste Daroussin.Pa man8/man.cgi.8 ,
23061d06d6bSBaptiste Daroussinor the documentation links at the bottom of the index page will not work.
23161d06d6bSBaptiste Daroussin.Ss URI interface
23261d06d6bSBaptiste Daroussin.Nm
23361d06d6bSBaptiste Daroussinuniform resource identifiers are not needed for interactive use,
23461d06d6bSBaptiste Daroussinbut can be useful for deep linking.
23561d06d6bSBaptiste DaroussinThey consist of:
23661d06d6bSBaptiste Daroussin.Bl -enum
23761d06d6bSBaptiste Daroussin.It
23861d06d6bSBaptiste DaroussinThe
23961d06d6bSBaptiste Daroussin.Cm http://
24061d06d6bSBaptiste Daroussinor
24161d06d6bSBaptiste Daroussin.Cm https://
24261d06d6bSBaptiste Daroussinprotocol specifier.
24361d06d6bSBaptiste Daroussin.It
24461d06d6bSBaptiste DaroussinThe host name.
24561d06d6bSBaptiste Daroussin.It
24661d06d6bSBaptiste DaroussinThe
24761d06d6bSBaptiste Daroussin.Dv SCRIPT_NAME ,
24861d06d6bSBaptiste Daroussinpreceded by a slash unless empty.
24961d06d6bSBaptiste Daroussin.It
25061d06d6bSBaptiste DaroussinTo show a single page, a slash, the manpath, another slash,
25161d06d6bSBaptiste Daroussinand the name of the requested file, for example
25261d06d6bSBaptiste Daroussin.Pa /OpenBSD-current/man1/mandoc.1 .
25361d06d6bSBaptiste DaroussinThis can be abbreviated according to the following syntax:
25461d06d6bSBaptiste Daroussin.Sm off
25561d06d6bSBaptiste Daroussin.Op / Ar manpath
25661d06d6bSBaptiste Daroussin.Op / Cm man Ar sec
25761d06d6bSBaptiste Daroussin.Op / Ar arch
25861d06d6bSBaptiste Daroussin.Pf / Ar name Op \&. Ar sec
25961d06d6bSBaptiste Daroussin.Sm on
26061d06d6bSBaptiste Daroussin.It
26161d06d6bSBaptiste DaroussinFor searches, a query string starting with a question mark
26261d06d6bSBaptiste Daroussinand consisting of
26361d06d6bSBaptiste Daroussin.Ar key Ns = Ns Ar value
26461d06d6bSBaptiste Daroussinpairs, separated by ampersands, for example
26561d06d6bSBaptiste Daroussin.Pa ?manpath=OpenBSD-current&query=mandoc .
26661d06d6bSBaptiste DaroussinSupported keys are
26761d06d6bSBaptiste Daroussin.Cm manpath ,
26861d06d6bSBaptiste Daroussin.Cm query ,
26961d06d6bSBaptiste Daroussin.Cm sec ,
27061d06d6bSBaptiste Daroussin.Cm arch ,
27161d06d6bSBaptiste Daroussincorresponding to
27261d06d6bSBaptiste Daroussin.Xr apropos 1
27361d06d6bSBaptiste Daroussin.Fl M ,
27461d06d6bSBaptiste Daroussin.Ar expression ,
27561d06d6bSBaptiste Daroussin.Fl s ,
27661d06d6bSBaptiste Daroussin.Fl S ,
27761d06d6bSBaptiste Daroussinrespectively, and
27861d06d6bSBaptiste Daroussin.Cm apropos ,
27961d06d6bSBaptiste Daroussinwhich is a boolean parameter to select or deselect the
28061d06d6bSBaptiste Daroussin.Xr apropos 1
28161d06d6bSBaptiste Daroussinquery mode.
28261d06d6bSBaptiste DaroussinFor backward compatibility with the traditional
28361d06d6bSBaptiste Daroussin.Nm ,
28461d06d6bSBaptiste Daroussin.Cm sektion
28561d06d6bSBaptiste Daroussinis supported as an alias for
28661d06d6bSBaptiste Daroussin.Cm sec .
28761d06d6bSBaptiste Daroussin.El
28861d06d6bSBaptiste Daroussin.Ss Restricted character set
28961d06d6bSBaptiste DaroussinFor security reasons, in particular to prevent cross site scripting
29061d06d6bSBaptiste Daroussinattacks, some strings used by
29161d06d6bSBaptiste Daroussin.Nm
29261d06d6bSBaptiste Daroussincan only contain the following characters:
29361d06d6bSBaptiste Daroussin.Pp
29461d06d6bSBaptiste Daroussin.Bl -dash -compact -offset indent
29561d06d6bSBaptiste Daroussin.It
29661d06d6bSBaptiste Daroussinlower case and upper case ASCII letters
29761d06d6bSBaptiste Daroussin.It
29861d06d6bSBaptiste Daroussinthe ten decimal digits
29961d06d6bSBaptiste Daroussin.It
30061d06d6bSBaptiste Daroussinthe dash
30161d06d6bSBaptiste Daroussin.Pq Sq -
30261d06d6bSBaptiste Daroussin.It
30361d06d6bSBaptiste Daroussinthe dot
30461d06d6bSBaptiste Daroussin.Pq Sq \&.
30561d06d6bSBaptiste Daroussin.It
30661d06d6bSBaptiste Daroussinthe slash
30761d06d6bSBaptiste Daroussin.Pq Sq /
30861d06d6bSBaptiste Daroussin.It
30961d06d6bSBaptiste Daroussinthe underscore
31061d06d6bSBaptiste Daroussin.Pq Sq _
31161d06d6bSBaptiste Daroussin.El
31261d06d6bSBaptiste Daroussin.Pp
31361d06d6bSBaptiste DaroussinIn particular, this applies to all manpaths and architecture names.
31461d06d6bSBaptiste Daroussin.Sh ENVIRONMENT
31561d06d6bSBaptiste DaroussinThe web server may pass the following CGI variables to
31661d06d6bSBaptiste Daroussin.Nm :
31761d06d6bSBaptiste Daroussin.Bl -tag -width Ds
31861d06d6bSBaptiste Daroussin.It Ev SCRIPT_NAME
31961d06d6bSBaptiste DaroussinThe initial part of the URI passed from the client to the server,
32061d06d6bSBaptiste Daroussinstarting after the server's host name and ending before
32161d06d6bSBaptiste Daroussin.Ev PATH_INFO .
32261d06d6bSBaptiste DaroussinThis is ignored by
32361d06d6bSBaptiste Daroussin.Nm .
32461d06d6bSBaptiste DaroussinWhen constructing URIs for links and redirections, the
32561d06d6bSBaptiste Daroussin.Dv SCRIPT_NAME
32661d06d6bSBaptiste Daroussinpreprocessor constant is used instead.
32761d06d6bSBaptiste Daroussin.It Ev PATH_INFO
32861d06d6bSBaptiste DaroussinThe final part of the URI path passed from the client to the server,
32961d06d6bSBaptiste Daroussinstarting after the
33061d06d6bSBaptiste Daroussin.Ev SCRIPT_NAME
33161d06d6bSBaptiste Daroussinand ending before the
33261d06d6bSBaptiste Daroussin.Ev QUERY_STRING .
33361d06d6bSBaptiste DaroussinIt is used by the
33461d06d6bSBaptiste Daroussin.Cm show
33561d06d6bSBaptiste Daroussinpage to acquire the manpath and filename it needs.
33661d06d6bSBaptiste Daroussin.It Ev QUERY_STRING
33761d06d6bSBaptiste DaroussinThe HTTP query string passed from the client to the server.
33861d06d6bSBaptiste DaroussinIt is the final part of the URI, after the question mark.
33961d06d6bSBaptiste DaroussinIt is used by the
34061d06d6bSBaptiste Daroussin.Cm search
34161d06d6bSBaptiste Daroussinpage to acquire the named parameters it needs.
34261d06d6bSBaptiste Daroussin.El
34361d06d6bSBaptiste Daroussin.Sh FILES
34461d06d6bSBaptiste Daroussin.Bl -tag -width Ds
34561d06d6bSBaptiste Daroussin.It Pa /var/www
34661d06d6bSBaptiste DaroussinDefault web server
34761d06d6bSBaptiste Daroussin.Xr chroot 2
34861d06d6bSBaptiste Daroussindirectory.
34961d06d6bSBaptiste DaroussinAll the following paths are specified relative to this directory.
35061d06d6bSBaptiste Daroussin.It Pa /cgi-bin/man.cgi
35161d06d6bSBaptiste DaroussinThe usual file system path to the
35261d06d6bSBaptiste Daroussin.Nm
35361d06d6bSBaptiste Daroussinprogram inside the web server
35461d06d6bSBaptiste Daroussin.Xr chroot 2
35561d06d6bSBaptiste Daroussindirectory.
35661d06d6bSBaptiste DaroussinA different name can be chosen, but in any case, it needs to be configured in
35761d06d6bSBaptiste Daroussin.Xr httpd.conf 5 .
35861d06d6bSBaptiste Daroussin.It Pa /htdocs
35961d06d6bSBaptiste DaroussinThe file system path to the server document root directory
36061d06d6bSBaptiste Daroussinrelative to the server
36161d06d6bSBaptiste Daroussin.Xr chroot 2
36261d06d6bSBaptiste Daroussindirectory.
36361d06d6bSBaptiste DaroussinThis is part of the web server configuration and not specific to
36461d06d6bSBaptiste Daroussin.Nm .
36561d06d6bSBaptiste Daroussin.It Pa /htdocs/mandoc.css
36661d06d6bSBaptiste DaroussinA style sheet for
36761d06d6bSBaptiste Daroussin.Xr mandoc 1
36861d06d6bSBaptiste DaroussinHTML styling, referenced from each generated HTML page.
36961d06d6bSBaptiste Daroussin.It Pa /man
37061d06d6bSBaptiste DaroussinDefault
37161d06d6bSBaptiste Daroussin.Nm
37261d06d6bSBaptiste Daroussindata directory containing all the manual trees.
37361d06d6bSBaptiste DaroussinCan be overridden by
37461d06d6bSBaptiste Daroussin.Dv MAN_DIR .
37561d06d6bSBaptiste Daroussin.It Pa /man/manpath.conf
37661d06d6bSBaptiste DaroussinThe list of available manpaths, one per line.
37761d06d6bSBaptiste DaroussinIf any of the lines in this file contains a slash
37861d06d6bSBaptiste Daroussin.Pq Sq /
37961d06d6bSBaptiste Daroussinor any character not contained in the
38061d06d6bSBaptiste Daroussin.Sx Restricted character set ,
38161d06d6bSBaptiste Daroussin.Nm
38261d06d6bSBaptiste Daroussinreports an internal server error and exits without doing anything.
38361d06d6bSBaptiste Daroussin.It Pa /man/header.html
384*c1c95addSBrooks DavisAn optional file containing static HTML code to be wrapped in
385*c1c95addSBrooks Davisa <HEADER> element and inserted right after opening the <BODY> element.
386*c1c95addSBrooks DavisFor example, it can contain an <H1> element
387*c1c95addSBrooks Davisspecifying the name of the website.
38861d06d6bSBaptiste Daroussin.It Pa /man/footer.html
389*c1c95addSBrooks DavisAn optional file containing static HTML code to be wrapped in
390*c1c95addSBrooks Davisa <FOOTER> element and inserted right before closing the <BODY> element.
39161d06d6bSBaptiste Daroussin.It Pa /man/OpenBSD-current/man1/mandoc.1
39261d06d6bSBaptiste DaroussinAn example
39361d06d6bSBaptiste Daroussin.Xr mdoc 7
39461d06d6bSBaptiste Daroussinsource file located below the
39561d06d6bSBaptiste Daroussin.Dq OpenBSD-current
39661d06d6bSBaptiste Daroussinmanpath.
39761d06d6bSBaptiste Daroussin.El
39861d06d6bSBaptiste Daroussin.Sh COMPATIBILITY
39961d06d6bSBaptiste DaroussinThe
40061d06d6bSBaptiste Daroussin.Nm
40161d06d6bSBaptiste DaroussinCGI program is call-compatible with queries from the traditional
40261d06d6bSBaptiste Daroussin.Pa man.cgi
40361d06d6bSBaptiste Daroussinscript by Wolfram Schneider.
40461d06d6bSBaptiste DaroussinHowever, the output looks quite different.
40561d06d6bSBaptiste Daroussin.Sh SEE ALSO
40661d06d6bSBaptiste Daroussin.Xr apropos 1 ,
40761d06d6bSBaptiste Daroussin.Xr mandoc.db 5 ,
40861d06d6bSBaptiste Daroussin.Xr makewhatis 8 ,
40961d06d6bSBaptiste Daroussin.Xr slowcgi 8
41061d06d6bSBaptiste Daroussin.Sh HISTORY
41161d06d6bSBaptiste DaroussinA version of
41261d06d6bSBaptiste Daroussin.Nm
41361d06d6bSBaptiste Daroussinbased on
41461d06d6bSBaptiste Daroussin.Xr mandoc 1
41561d06d6bSBaptiste Daroussinfirst appeared in mdocml-1.12.1 (March 2012).
41661d06d6bSBaptiste DaroussinThe current
41761d06d6bSBaptiste Daroussin.Xr mandoc.db 5
41861d06d6bSBaptiste Daroussindatabase format first appeared in
41961d06d6bSBaptiste Daroussin.Ox 6.1 .
42061d06d6bSBaptiste Daroussin.Sh AUTHORS
42161d06d6bSBaptiste Daroussin.An -nosplit
42261d06d6bSBaptiste DaroussinThe
42361d06d6bSBaptiste Daroussin.Nm
42461d06d6bSBaptiste Daroussinprogram was written by
42561d06d6bSBaptiste Daroussin.An Kristaps Dzonsons Aq Mt kristaps@bsd.lv
42661d06d6bSBaptiste Daroussinand is maintained by
42761d06d6bSBaptiste Daroussin.An Ingo Schwarze Aq Mt schwarze@openbsd.org ,
42861d06d6bSBaptiste Daroussinwho also designed and implemented the database format.
429