How to write a simple Manpage - Printable Version +- nixers (https://nixers.net) +-- Forum: General (https://nixers.net/Forum-General) +--- Forum: Psychology, Philosophy, and Licenses (https://nixers.net/Forum-Psychology-Philosophy-and-Licenses) +--- Thread: How to write a simple Manpage (/Thread-How-to-write-a-simple-Manpage) |
How to write a simple Manpage - venam - 15-06-2014 Hello nixers, In this thread you'll learn how to write a very simple man page for your programs. Disclaimer I won't go into the details of what and where are Manpages. If you want more information refer to the followings:
Sections of a manpage A manpage normally contains those sections (taken from the man 7 mdoc)
For example, you might want to ommit the RETURN VALUE but add a COMMANDS section if the program has a shell interface that accepts a set of commands. Groff Manpages follow a format code called Groff (or Troff). As with any markup you'll use some code to change the appearance of the text. The main format macros well use are the followings: Quote:.SH Writing the manpage The empty Manpage should look similar to this: Code: .TH name_of_program 1 "Jun 15, 2014" "" "NIXERS COMMUNITY" Let's fill it up section by section but first let's explain the first line. Code: .TH name_of_program 1 "Jun 15, 2014" "" "NIXERS COMMUNITY" Replace name_of_program with the name of the program. Replace 1 by the section the program belongs to. (1 Executable programs or shell commands) Replace "Jun 15, 2014" by the current date. The last 2 strings are other decorations. The NAME section: This section contains a one-liner with the name of the program and the simplest description. Example: Code: nixers - One line description of the nixers program The SYNOPSIS section: This section contains (for CLI) all the short-hand arguments regrouped together without any explanation. Example: Code: \fBnixers\fR [\fB-hv\fR] [\fB-r\fR \fIrice-max-mode\fR] The DESCRIPTION section: This section contains a big description of what the program purpose is. Code: .B nixers\fR is just a sample manpage. The OPTIONS section: In this section every command line arguments are explained. Code: .TP We've made the shorthands bold using ".B" and the arguments of shorthand italic "\fI \fR" You don't usually have to escape "-" but it's sometimes better to do so. The RETURN VALUE section: Here's the part where you explain what the program will return in multiple cases. (echo $?) Code: Here are the possible return values for nixers: was used just before ".RS". ".IP" is used to indent the bullet "\(bu 2" and ".B" with ".\fR" to format the return value to bold. The ENVIRONMENT section: In this section you mention what environment variable the program follows. Code: nixers doesn't follow any environment variables. The ERRORS section: It regroups well known errors that might happen while using the program. Code: You might get some errors if you run this program along \fBGNOME(1)\fR, \fBKDE(1)\fR, or \fBCINAMON(1)\fR. It's also a good idea to format them to bold. The SEE ALSO section: This section regroups all the manpages that are related or mentioned in the manpage. Code: .B rice(1) The AUTHOR section: It is an example of a custom section. Code: nixers community (http://nixers.net) Whole Sample: Code: .TH nixers 1 "Jun 15, 2014" "" "NIXERS COMMUNITY" Testing the Manpage To see what the Manpage will look like execute: Code: man ./nixers.1 I won't go into the details of putting the manpage in the manpath. Conclusion This is how a simple Manpage is written. Once you get the idea it's really easy. I haven't walked through all the format macros but those are the simpliest ones. More to read from one of our fellow users: http://kaashif.co.uk/2014/01/08/writing-unix-manual-pages/ RE: How to write a simple Manpage - yrmt - 15-06-2014 Great thread, thanks! mandoc is also pretty neat. RE: How to write a simple Manpage - jmbi - 15-06-2014 beautiful, thanks! this will come in handy for all the useful things I make. /s <hr /> also, what are those numbers in the top left corner of the scrot? RE: How to write a simple Manpage - pranomostro - 07-09-2015 I am always fearing my manpages look too ugly or are hard to understand. Nice introduction! RE: How to write a simple Manpage - October - 30-09-2015 (07-09-2015, 03:36 PM)pranomostro Wrote: I am always fearing my manpages look too ugly or are hard to understand. I tend to look at the BSD folks, their documentation is amazing! |