May 17, 2014

Updated the copy of igor and .nanorc files here.


June 11, 2013

Updated the port (textproc/igor) to version 1.376.  The important new
feature is locale support, making it possible to add non-English
misspellings to local lists in /usr/local/etc/igor/spelling.  Thanks to
Giorgos Keramidas for his help with this.

As always, the latest version is available from Glen Barber's repository:

https://docscripts.glenbarber.us/tags/igor/


January 21, 2013

Updated the port (textproc/igor) to version 1.355.  The version in this
directory has been removed.  The latest files are available directly
from Glen Barber's repository:

https://docscripts.glenbarber.us/tags/igor/

Thanks to FOSSLC (http://www.fosslc.org/drupal/), the BSDCan
presentation on igor is here:

http://www.youtube.com/watch?v=-9MLREFzdR0&list=PL4A10C737F224D0DC


May 11, 2012

Added the slides used in the DevSummit presentation at BSDCan (in
PDF form).  The audio was also recorded, and plans are to post it
to YouTube.


February 10, 2012

Added a man page.


January 22, 2012

Added a .nanorc syntax highlight file for nano (editors/nano) which
highlights bad whitespace and long lines.  Combined with igor, this
makes whitespace correction much easier.  There are embedded tabs in
that file, so download it instead of cutting and pasting.


December 21, 2011

The many rules for man pages and DocBook are a bit much to remember when
months can pass between working on the various types.  My mentors Glen
Barber and Benedict Reuschling have been very good at catching this kind
of thing, but repetitive tasks are what computers are supposed to do for
us.

After not finding much to do automated checking, I slapped together a
Perl program called "igor" that does some of this.  At present it checks
all types of files for repeated words ("is is"), common spelling
mistakes collected from FreeBSD documents, FreeBSD obsolete features
(just "cvsup" so far), bad phrases ("the to"), and bad whitespace (blank
lines with whitespace or lines with trailing whitespace).  Oh, and
there's a separate style check that makes some subjective suggestions.

mdoc(7) documents are also tested for document date, sentences starting
on a new line, and document structure (Dd, Dt, Os, Sh NAME, Nm, Nd, Sh
SYNOPSIS, Sh DESCRIPTION occurring in the right order and with
parameters).

DocBook SGML documents are also tested for correct indentation (a
terrible hack even when compared to the surrounding code), indentation
whitespace, title capitalization, matching open and close tags,
straggling tags, and long lines.

Default is to run all tests, but specifying an individual test runs just
that one.

Output is in plain ASCII, or better yet, marked with ANSI color
sequences that help to identify errors visually (usable with 'less -R').

igor handles compressed man pages, and shows filenames when run on
multiple files.  It also accepts input on stdin.

Typical usage:

  igor -h
  igor -R -D ifconfig.8.gz | less -RS
  igor -R -D /usr/share/man/man1/*.gz | less -RS
  igor -R chapter.sgml | less -RS
  igor -R /usr/doc/en_US.ISO8859-1/books/handbook/*/chapter.sgml | less -RS

igor is really more of a proof-of-concept than a finished program. There
are more tests that could be done, and existing tests could be done
better.

Still, it's useful as-is.  Maybe presenting it will spur someone to
point out a smarter, better, or faster way of doing these tests.  Or
rewrite it entirely.

The current version of igor is here:

http://www.wonkity.com/~wblock/igor/

Perl 5.10 minimum, no other dependencies, no port, no warranty.  Please
check here for the latest version, speed and test improvements have been
frequent.