NAME

webrowse - browse the given input in a local web browser, with markup

SYNOPSIS

webrowse [ -C | -Z | -N | -M ] [ -O ] [ -s | -x | -mq | -u | -c ] [ -k minutes ] [ -p | -a ] [ -i id ] [ -w | -t ] [ -rnvo ] [ -h ] [ file ]

DESCRIPTION

Webrowse can be used for convenient file or URL loading remote control of Chrome, Mozilla (eg Firefox), Netscape or Mosaic browsers (though the latter two are essentially obsolete), for textual reference HTML markup, and, for example, for interfacing a browser to news and mail readers as a hypertextual external viewer for mail messages or news articles containing HTML or containing text with embedded URLs, mail addresses and other references. See the EXAMPLES section below. Statements below about Mozilla generally apply to Netscape as well.

Simply given a file argument, webrowse will direct a browser already running on the user's display to load the given file. With Chrome and newer Mozilla, a new browser will be started if one is not already running. With Mozilla, the browser may be automatically deiconified and raised as well. The browser must be running on the same host/filesystem. If the -m option is supplied, webrowse will interpret the file as text and create and load a temporary copy of the file containing HTML markup to hyperlink the URLs, shortened URLs, FTP locations, mail addresses, header newsgroups, news article IDs, and filesystem pathnames in the text to their references. A temporary file is used to hold and load the standard input if no file argument is given. By default, the temporary files are deleted 10 minutes after they've been first loaded by the browser. This delay can be set or disabled with the -k option or WB_KEEP environment variable. If a -u or -c option is supplied, webrowse will interpret the command line argument, or the standard input if there isn't one, as a URL to browse or as an (older) Mozilla remote control command to run, respectively.

OPTIONS

-C
Use a Chrome browser. This is the default only if the WB_BROWSER environment variable contains chrom. The WB_CHROME environment variable can be set to select which browser command to use.
-Z or -N
Use a Mozilla or Netscape browser. This is the default unless the WB_BROWSER environment variable contains chrom or mosaic. The WB_MOZILLA or WB_NETSCAPE environment variable can be set to select which browser command to use.
-M
Use a Mosaic browser. This is the default only if the WB_BROWSER environment variable contains mosaic.
-O
Use the old interface of Mozilla, eg applicable for Firefox versions before 36.0. This is the default only if the WB_MOZOLD environment variable is non-empty.
-s
Tag and treat the standard input as HTML instead of text.
-x
Tag and treat the standard input as XML instead of text.
-m
Markup and load a text copy of the input (whether a file or the standard input) with heuristically identified hyperlinks to Web, FTP, mail, news and file references.
-q
Markup and load a text copy of the input (whether a file or the standard input) with quoted mail/news message lines in italic or bold, alternating by depth of nesting.
-u
Take the command line argument, or the standard input if there isn't one, as a URL to browse, instead of as a file.
-c
Take the command line argument, or the standard input if there isn't one, as a remote control command to run, instead of as a file. This works with the old interface of Mozilla only.
-k minutes
Keep (ie, don't delete) any temporary files for the given integer number of minutes. If the minutes is the string forever, then the temporary files aren't ever deleted by webrowse, under the assumption they will be cleaned up later by some other means. Once temporary files are deleted, the browser will not be able to reload or re-enter them. The default is the value of the WB_KEEP environment variable, or 10 minutes if it isn't set.
-p
Use a sleeping background shell process to delete any kept temporary files. This will fail to complete should the process be killed while sleeping, and is only recommended for short temporary file lifetimes. This method is the default unless the WB_SLEEP environment variable is set to at.
-a
Use an at(1) job to delete any kept temporary files. This method is the default only if the WB_SLEEP environment variable is set to at.
-i id
The window ID (with older Mozilla) or process ID (with Mosaic) of an existing browser to use for loading. The default is any value of the WB_ID environment variable (see for more details).
-w
Open a new browser window, off of an already running browser, for loading the input. This is the default with Chrome and newer Mozilla, and for other browsers, by default, any running browser window may be used.
-t
Open a new browser tab, inside an already running browser window, for loading the input. This doesn't work with Mosaic or very old versions of Mozilla.
-r
Don't deiconify/raise the browser window. The default for older Mozilla is to raise the window, while newer Mozilla will always raise the window and Chrome and Mosaic will never raise the window.
-n
Don't actually use the browser at all. This is useful if only what is printed is of interest.
-v
Prints the shell command to run for remote control of the browser. This doesn't work with Mosaic.
-o
Prints the input (whether a file or the standard input, or whether marked up or not), perhaps in addition to loading it into the browser. This can be used to capture the marked up version of the input for other uses.
-h
Prints a helpful usage message.

ENVIRONMENT VARIABLES

WB_BROWSER
The default browser to use, Mozilla by default, unless containing chrom or mosaic. This may be overridden by the -C, -Z, -N or -M options.
WB_CHROME
The Chrome browser command name to use, chromium-browser by default.
WB_MOZILLA or WB_NETSCAPE
The Mozilla or Netscape browser command name to use, firefox by default.
WB_MOZOLD
If non-empty, the default is to use the older interface of Mozilla or Netscape, eg applicable for Firefox versions before 36.0.
WB_TMP
The directory in which to create any temporary files for use with any browser. The default depends on the browser in use. This may be overridden by the WB_CHTMP, WB_MZTMP, WB_NSTMP or WB_MSTMP environment variables.
WB_CHTMP
The directory in which to create any temporary files for use with Chrome, $HOME/snap/chromium/common/.cache, $HOME/.cache/chromium, $HOME/tmp or /tmp (the first which exists) by default. This overrides WB_TMP.
WB_MZTMP or WB_NSTMP
The directory in which to create any temporary files for use with Mozilla, $HOME/.mozilla, $HOME/.netscape, $HOME/tmp or /tmp (the first which exists) by default. This overrides WB_TMP.
WB_MSTMP
The directory in which to create any temporary files for use with Mosaic, $HOME/tmp or /tmp (the first which exists) by default. This overrides WB_TMP.
WB_UMASK
webrowse uses a umask of 077 when creating temporary files, unless overriden with this.
WB_KEEP
The number of minutes to wait before deleting any temporary files, or the string forever if they're not ever to be deleted. 10 minutes is the default. This may be overridden by the -k option.
WB_SLEEP
The default method to use to delete kept temporary files, sleep by default, unless set to at. This may be overridden by the -p or -a options.
WB_ID
With older Mozilla, this can be set to the window ID of an existing browser window to specify the use of that window for loading, instead of just the first one found on the display. For example, under X Windows, xwininfo(1) or xlswins(1) can identify window IDs. xwinid(1) is a supplementary script to webrowse to conveniently interface these programs, so one can simply use the output of, eg, xwinid -i $WB_MOZILLA to set this value. With Mosaic, this can be set to the process ID of a running browser to specify the use of that browser for loading, instead of the one associated with the process ID listed in the file $HOME/.mosaicpid. This variable may be overridden by the -i option. Chrome and newer Mozilla cannot make use of this.
WB_RUNURL
If present, a Bourne-shell command to run in the background just before webrowsing a URL.
WB_PWD
The command to run to determine the current working directory, instead of the configured default command (usually pwd(1)).

EXAMPLES

Besides its usage directly from the command line, webrowse can be useful as a tool within other scripts and, creatively, as an interface between a web browser and other applications. Most usages fall into two categories. One, based on webrowse -s, is useful for sending HTML that is found outside a web context into a browser so it may be viewed properly. The other, based on webrowse -m, is useful for sending text that contains URLs, mail addresses, filesystem pathnames, etc into a browser with these items conveniently hyperlinked.

The following vi(1) macros, for your .exrc file, may be used to view the currently editted text in a browser with markup (and perhaps in a new window), or to (re)load the currently editted file into a browser from vi. The latter can facilitate HTML development with vi using a browser for WYSIWYG-like viewing of the developing HTML source. (Control characters are shown in carat-notation.)

     map _wb :w !webrowse -m
     map _wm :w !webrowse -mw^M^M
     map _ws :w !webrowse -sw^M^M
     map _wn :!webrowse -w %^M^M
     map _wl :!webrowse %^M^M
     map _ww :!webrowse -c reload^M^M

The following vim(1) one-line macro, for your .vimrc file, may be used to (re)set the editor's WB_ID environment variable to a selected Mozilla browsing window. It requires xwinid(1) to be installed and WB_MOZILLA to be defined.

     noremap _wi mp:r!xwinid -i $WB_MOZILLA<CR>0"iy$u`p
     :let $WB_ID=@i<Bar>ec $WB_ID<CR>

If you receive a mail message in HTML with mailx(1), the following configuration in your .mailrc file will allow you to view the message in your browser via mailx's pipe command.

     set cmd='webrowse -sw'

If you receive a news article containing URLs with nn(1), the following configuration in your .nn/init file will allow you to view the article with markup in your browser via nn's I command.

     map both I (
             save-full "|webrowse -mqw"
     )

FILES

$HOME/{snap/chromium/common/.cache,.cache/chromium,tmp}/webrowse*, /tmp/webrowse*
Possible temporary files for markup and loading. The defaults with Chrome unless the directory is changed via WB_CHTMP, or WB_TMP.
$HOME/{.mozilla,.netscape,tmp}/webrowse*, /tmp/webrowse*
Possible temporary files for markup and loading. The defaults with Mozilla unless the directory is changed via WB_MZTMP, WB_NSTMP or WB_TMP.
$HOME/tmp/webrowse*, /tmp/webrowse*
Possible temporary files for markup and loading. The defaults with Mosaic unless the directory is changed via WB_MSTMP or WB_TMP.
$HOME/.mosaicpid
Used to determine the process ID of a Mosaic browser. Created by Mosaic.
/tmp/Mosaic.*
Created, used and kept to communicate loading information to Mosaic.

CAVEATS

The textual pattern matching used to identify URLs, shortened URLs, FTP locations, mail addresses, header newsgroups, news article IDs, and filesystem pathnames is completely heuristic and can easily misidentify items. In practice, it's quite accurate, but occasionally text is identified as an FTP location (eg, hostname:path) or a filesystem pathname when it really isn't. Webrowse is designed to err on the side of overidentifying such references, to make it most useful when browsing temporary markup. Also, if the input text is exceptionally large, the pattern matching can become prohibitively expensive to compute. In such cases as these, a different program may be used to perform the markup, with its output piped into webrowse.

Not all Netscape remote control features may work with Mozilla, too, since Mozilla's support for Netscape-style remote control wasn't fully implemented. Support ended entirely with Firefox version 36.0. See the URLs in the SEE ALSO section below for current details.

VERSION

2.0.5

AUTHOR

Steve Kinzler, steve@kinzler.com, May 96/Jan 98/Feb 15

URL

https://kinzler.com/me/webrowse/
http://www.cs.duke.edu/~des/webrowse.html

SEE ALSO

chromium-browser(1), firefox(1), mozilla(1), netscape(1), Mosaic(1), umask(1), sleep(1), at(1), xwinid(1), xwininfo(1), xlswins(1), pwd(1), kill(1), vi(1), mailx(1), nn(1), http://peter.sh/experiments/chromium-command-line-switches/, http://www.mozilla.org/unix/remote.html, http://home.netscape.com/newsref/std/x-remote.html, xdg-open(1)