The Attribute Field in Menus The HttpText and Hname mechanisms described above give a way to display more information to HTTP clients than to gopher clients. Sometimes it is desirable to do the reverse, i.e. show a link to gopher clients but hide it from WWW clients. This can be done by using the _Attribute=_ field for the menu item. Thus the entry Name=A file for gopher clients only Path=0/dir/file Attribute=gopheronly will be displayed only to gopher clients. Similarly there is a way to have a menu item displayed only for HTTP clients. The menu item would be Name=A file on this server for HTTP clients only Path=0/dir/file Attribute=httponly This method will serve _only_ local files. The next section discusses other ways to serve objects, including remote files, to HTTP clients. Finally you may wish for certain items never to be displayed on a menu, but to be accessible to requests, for example an inline graphic file for an html document. To be accessible such a file must be referenced in a menu file (and the .cache file produced from it) so that the server has permission to serve it. In versions of _gn_ earlier than version 2.0 the only way to achieve this was to put such items in a subdirectory (containing a menu file) but not refer to the directory in any other menu, so a client would not find it. Newer versions have an explicit mechanism for this. Simply add the line "Attribute=invisible" to the menu item and it will not be displayed. For example the entry Name=My gif file for an inline image Path=I/dir/file.gif Attribute=invisible will allow file.gif to be served but will never show in any client's menu. Hence what you put in the Name field is only a note to yourself since the server should never allow it to be viewed. Remote links are slightly problematical for _gn_. If a link to a remote server is made in the usual way by specifying Name, Path, Type, Host and Port then the _gn_ server assumes by default that this is a link to a server capable of dealing only with the gopher protocol and will present it as such. The determination of whether or not a link is remote is done at the time that mkcache is run and a link is considered remote unless the the Host and Port fields in the menu are omitted or agree exactly with the default values as specified on the mkcache command line or at compile time in the file config.h. For this reason it is important that whenever you run mkcache you specify the host on the command line, unless you have placed that name in the config.h file as HOSTNAME. Of course, you may know that a remote link is running the _gn_ server and therefore capable of handling HTTP requests as well as gopher requests. In this case, to allow HTTP clients to get the best link, simply use "gnlink" attribute in your menu file entry. For example, a link to the Northwestern University Math server would look like: Name=Northwestern University Mathematics Department Path=1/ Attribute=gnlink Type=1 Host=gopher.math.nwu.edu Port=70 A final attribute value is nosearch. If a menu item contains the line "Attribute=nosearch" then that item will be displayed for clients but its title will not be used when searches of menu items (as described in the next section) are done. The only currently allowable values for the Attribute= field in a menu are, invisible, gopheronly, httponly, nosearch, and gnlink. When entered in a menu attribute line their case is not significant. It is not possible for a single menu item to have two attributes. .