.\"
.\"  a simple set of macros to provide HTML documents with basic www functionality
.\"
.\"  please can someone with more skill at creating macros improve on this
.\"  many thanks - Gaius
.\"
.\"  suggestion: maybe when run with non -Thtml all the urls should appear as
.\"  references.
.\"
.\" some simple html additions to any macro set
.\"
.de HTML
.if '\*(.T'html' \X^html:\\$*^
..
.de HTMLINDEX
.if '\*(.T'html' \X^index:\\$*^
..
.\"
.\"  BODYCOLOR - $1 is foreground color
.\"              $2 is background color
.\"              $3 is the color of an active hypertext link
.\"              $4 is the color of a hypertext link not yet visited
.\"              $5 is the color of a visited hypertext link
.\"
.de BODYCOLOR
.   HTML <body text=\\$1 bgcolor=\\$2 link=\\$3 alink=\\$4 vlink=\\$5>
..
.\"
.\" BACKGROUND - $1 is the background image file
.\"
.de BACKGROUND
.   HTML <body background=\\$1>
..
.\"
.\"  URL - $1 is the classical underlined blue text
.\"        $2 is the url
.\"
.de URL
.   ie '\*(.T'html' \{\
.        HTML <a href="\\$2">\\$1</a>
.   \}
.   el \{\
\\$1 (<url: \\$2>)
.   \}
..
.\"
.\"  LINK - $1 is the classical underlined blue text
.\"         $2 is the URL *with* the textual reference within a document
.\"
.\"         example:  .LINK "a nice heading" "#heading123"
.\"
.\"                    provides a link from "a nice heading" to the
.\"                    textual name reference "heading123"
.\"
.\"                   .LINK "The GNU FSF" "" "www.gnu.org"
.\"
.\"                    deprecated - use the URL macro instead
.\"         
.\"
.de LINK
.   ie !'\\$3'' \{\
.      @error the LINK macro has changed, use the URL (or FTP if appropriate) macro here
.      @error you are advised to replace with URL or FTP macro "\\$1" "\\$3#\\$2"
.      URL  "\\$1" "\\$3#\\$2"
.   \}
.   el \{\
.      ie '\*(.T'html' \{\
.          HTML <a href=\\$2>\\$1</a>
.      \}
.      el \{\
.          URL "\\$1" "\\$2"
.      \}          
.   \}
..
.\"
.\"  FTP - $1 is the classical underlined blue text
.\"        $2 is the ftp url
.de FTP
.   ie '\*(.T'html' \{\
.        HTML <a href=\\$2>\\$1</a>
.   \}
.   el \{\
$1 (<ftp:\\$2>)
.   \}
..
.\"
.\" MAILTO - generate html email reference
.\"          $1 is the email address
.\"          $2 is the optional name
.\"
.\"          example .MAILTO fred@foo.bar "Fredrick Bloggs"
.\"
.de MAILTO
.\"
.\" force reset after a potential heading by performing some motion..
.\" how do we do this --fixme--
.\"  \h'\w' ''\h'-\w' '' doesn't work..
.   ie '\*(.T'html' \{\
.        ie '\\$2'' \{\
.            HTML "<a href=mailto:\\$1>\\$1</a>"
.        \}
.        el \{\
.            HTML "<a href=mailto:\\$1>\\$2</a>"
.        \}
.   \}
.   el \{\
\s-2\fB<email:\\$1>\fP\s+2
.   \}
..
.\"
.\"
.\" TAG - generate an html name $1
.\"
.de TAG
.HTML <a name="\\$1"></a>
..
.\"
.\" IMAGE - reference an image
.\"         $1 is the image file
.\"         $2 is the x width (default if absent 400 pixels)
.\"         $3 is the y width (default if absent is the x value)
.\"
.de IMAGE
.   ie '\*(.T'html' \{\
.      nr HTMLWIDTH 400
.      if '\\$2'' \{\
.         nr HTMLWIDTH \\$2
.      \}
.      nr HTMLHEIGHT \\n[HTMLWIDTH]
.      if '\\$3'' \{\
.         nr HTMLHEIGHT \\$3
.      \}
.      HTML <img src="\\$1" width=\\n[HTMLWIDTH height=\\n[HTMLHEIGHT]>
.   \}
.   el \{\
.      B1
\fB\s-2<img src=\\$1>\fP\s+2
.      B2
.   \}
..
.\"
.\" CDFTP - if we are processing this on machine \\$1 then we create a
.\"         FTP reference using \\$2 --> \\$3
.\"
.\"         otherwise we create a URL from \\$2 --> \\$4
.\"
.\"         example:
.\"
.\"         .CDFTP "foobar" "somegnusoftware.tar.gz" \
.\"                "ftp://ftp.gnu.org/gnu/somegnusoftware.tar.gz" \
.\"                "../../../TARGZ/somegnusoftware.tar.gz"
.\"
.\"         meaning if we are on machine foobar then generate an ftp url
.\"         to the GNU anonymous ftp server otherwise generate a file url
.\"         to a local copy (cdrom maybe)
.\"
.\"         Useful when one machine is designated as a cdrom burner and another
.\"         designated as an appache server.
.\"         The same source for web pages can be burnt onto a CD and also
.\"         served across the network. It doesn't solve the problem of one
.\"         machine doing both though :-(
.\"         
.\"
.de CDFTP 
.   sy /bin/rm -f /tmp/tmac.n
.   sy /bin/echo ".ds HOSTNAME `hostname --short`" > /tmp/tmac.n
.   so /tmp/tmac.n
.   sy /bin/rm -f /tmp/tmac.n
.   ie '\\*[HOSTNAME]'\\$1' \{\
.      FTP "\\$2"  "\\$3"
.   \}
.   el \{\
.      URL  "\\$2" "\\$4"
.   \}
..
.\" it doesn't make sense to use hyphenation with html, so we turn it off.
.hy 0
.nr HY 0
