### Category "IDLdoc"

The IDL Developer Network [RSS feed](http://www.ittvis.com/feeds/devnet.xml) came alive this morning after being dormant since early January. The three new items are:

[IDLdoc 3.0 release](http://www.ittvis.com/portals/0/repository/idldoc-3.1266.0.zip)

: This is an old release (we're on [IDLdoc 3.1.1](http://idldoc.idldev.com/attachment/wiki/Downloads/idldoc-3.1.1.zip?format=raw) now), but it's nice to get some press!

[New tutorials](http://www.ittvis.com/ProductServices/IDL/IDLTutorials.aspx)

: A few new iTools tutorials.

I have been critical of the ITT VIS website (it has been having some extra problems lately), but this is a step in the right direction.

IDL Workbench 7.0.3 arrived today via the automatic software update mechanism in the Workbench. It provides HDF and netCDF library udpates, better path support, IDLdoc support (rst format only), and even faster code analysis when the Workbench starts. Everything seems to be working well for me during use this afternoon.

Since I'm most excited about the IDLdoc features, I will describe them in a bit more detail after the jump. [IDLdoc 3.1](http://michaelgalloy.com/2008/06/18/idldoc-31.html) ([download](http://idldoc.idldev.com/wiki/Downloads)) is required to integrate with the Workbench.

I have the framework in place to have IDLdoc produce output besides HTML. This has been a long process beginning in IDLdoc 2.0 when I switched to using templates instead of embedding the HTML code in the IDL code. I have started by writing a set of templates for [DocBook](http://docbook.sourceforge.net/) output, but intend to write a LaTeX set as well.

Here's an example [PDF](http://michaelgalloy.com/wp-content/uploads/2008/06/vis.pdf) of IDLdoc output for a library of routines for visualization I've been thinking about.

I just released IDLdoc 3.1 (see full release notes are below). As per [this short blog post](http://michaelgalloy.com/2008/05/29/idldoc-in-the-idl-workbench.html), IDLdoc is getting integrated into the IDL Workbench. This release adds some rst markup features that the IDL Workbench will use -- my favorite is to be able to link to images with:

.. image:: filename

IDLdoc will link to the image and also copy the image file into the output directory (if OUTPUT keyword to IDLDOC routine is used).

1. Added ability to reference images in rst markup. IDLdoc will automatically copy referenced images into the output.
2. In rst markup, illegal characters like < and > are automatically converted to character entities.
3. Added :Description: tag for compatibility with IDL Workbench update.
4. Changed default markup parser to rst when format parser is rst.
5. Miscellaneous small bug fixes.

IDLdoc support will be added to the IDL Workbench in an update planned for June. This will add some really cool features for those who use IDLdoc and the Workbench:

1. enhanced hover help on routines with an IDLdoc header
2. content assistant on tag names when writing IDLdoc comments
3. menu item and keyboard shortcut to insert an IDLdoc routine or file header (and preferences to define what tags you want inserted)

The Workbench will recognize comments in the rst format.

There will be an IDLdoc 3.1 release any day now to add some features necessary to support this and fix a couple bugs.

The svn trunk of IDLdoc has a new feature that I'm excited about: the ability to insert images without having to stick ugly HTML in your code header or copying an image manually into the output. This is part of the rst markup style (so it won't work unless you set markup_style='rst' in your IDLdoc call or specify it via the "docformat" comment). My goal for the rst markup style is to eliminate any need to put HTML in the code header. I don't think you should have to make the code header look ugly in order to make the documentation look good.

In the theme river [code](http://michaelgalloy.com/lib/lineplots/mg_themeriver.pro) in the previous article, the header for the routine contains:

; This will produce a result like .. image:: themeriver.png

IDLdoc grabs themeriver.png (relative to the location of the source code file), copies it to the output, and replaces .. image:: themeriver.png with a link to the copy of the image (see [output](http://michaelgalloy.com/lib/lineplots/mg_themeriver.html)).

If you want to try this, you have to checkout the IDLdoc source code using Subversion:

svn co http://svn.idldev.com/idldoc/trunk

Put the "src" directory of the checkout in your IDL path.

It's now possible (thanks to some help from engineers at ITT VIS) to get IDLdoc updates via the update mechanism built into the IDL Workbench. This means that you can add a new "Remote update site" that is queried for new updates when you start the Workbench. I think this is a really interesting way to distribute software; I hope I can "subscribe" to other IDL libraries in the future.

For those experienced in getting Eclipse plugins, the URL is

For more detailed instructions, see the [Workench Updates](http://idldoc.idldev.com/wiki/WorkbenchUpdates) page on the [IDLdoc project site](http://idldoc.idldev.com).

One note: if you already have IDLdoc in your !path, you might have to remove it from your path to see the new version.

I added some more documentation to the ["Getting Started"](http://idldoc.idldev.com/wiki/GettingStarted) page on the IDLdoc project site. Included is a two minute [screencast](http://idldoc.idldev.com/attachment/wiki/GettingStarted/idldoc30-getting-started.mov?format=raw) introducing IDLdoc.

By the way, two minutes of screencast took about two hours of production time. I got a lot of valuable experience doing this though, so I'm hoping to do some more of these (for those things that it makes sense for -- maybe some IDL Workbench topics).

1. IDLdoc 3.0 was rewritten from scratch to allow it to be released under an open source license. Source code is available from the [project website](http://idldoc.idldev.com).
2. There are multiple formats for entering comments: the normal IDLdoc style, the traditional IDL comment header, and new style based on restructured text.
3. Ability to do some simple formatting of comments without resorted to putting ugly HTML into your comments.

I've given up waiting for ITT VIS to release the source code of IDLdoc 2.0 and rewriting a new version from scratch. I intend to release the source code under a BSD-style license.

I'm using this as an opportunity to make IDLdoc 3.0 much cleaner than the old piecemeal code base of IDLdoc 2.0. I had already been writing many of the underlying libraries used such as array list, hash table, and template classes since I use them for other tasks, so I've got a good foundation to build upon.

I'm not sure of how long this will take since I'm doing it in my spare time, but [check out](http://michaelgalloy.com/lib-docs) a sneak peak of IDLdoc 3.0 output. There will be new features as well in this release: the biggest being several options on the format for comments (i.e. you won't have to use the "@"-style tags).

If you are interested in keeping up with news about IDLdoc, reporting bugs, asking for features, and general discussion, [signup](http://lists.idldev.com/listinfo.cgi/idldoc-idldev.com) for the mailing list.

• #### GPULib

GPULib enables IDL developers to access the high-performance capabilities of modern NVIDIA graphics cards without knowledge of CUDA programming.

TaskDL is a task-farming solution for IDL designed for problems with loosely-coupled, parallel applications where no communication between nodes of a cluster is required.

#### mpiDL

mpiDL is a library of IDL bindings for Message Passing Interface (MPI) used for tightly-coupled parallel applications.

#### Remote Data Toolkit

The Remote Data Toolkit is a library of IDL routines allowing for easy access to various scientific data in formats such as OPeNDAP, HDF 5, and netCDF.

• #### Modern IDL

Modern IDL offers IDL programmers one place to look, for beginners and advanced users alike. This book also contains: a thorough tutorial on the core topics of IDL; a comprehensive introduction to the object graphics system; common problems and gotchas with many examples; advanced topics not normally found are discussed throughout the book: regular expressions, object graphics, advanced widget programming, performance, object-oriented programming, etc.

• #### IDLdoc

IDLdoc is an open source utility for generating documentation from IDL source code and specially formatted comments.

#### mgunit

mgunit is an open source unit testing framework for IDL.

#### rIDL

rIDL is an open source IDL command line replacement.

#### mglib

mglib is an open source library of IDL routines in areas of visualization, application development, command line utilities, analysis, data access, etc.