Posts for December 2021

2021-12-25: rra-c-util 10.1

This is my collection of utility functions, Autoconf macros, test programs, and other support infrastructure for my other packages. Changes in this release:

I go a few years between battles with perltidy, then dive in again, try to see if anything has gotten better, make a few tweaks, and leave vaguely frustrated. I've been so spoiled by Python's black that, despite knowing how much harder Perl is to parse, I keep hoping for the same thing.

If anyone knows how to get perltidy to format long method calls the way black does, namely:

$spin = App::DocKnot::Spin->new(
    { delete => 1, 'style-url' => '/~eagle/styles/' }
);

and not (as perltidy insists) either:

$spin
  = App::DocKnot::Spin->new({ delete => 1, 'style-url' => '/~eagle/styles/' });

or:

$spin = App::DocKnot::Spin->new(
  { delete => 1, 'style-url' => '/~eagle/styles/' });

or some other weirdness, I'd love to hear it.

Also this time around I discovered that changing the indent for continuation lines also changes the outdent for labels, because those are totally the same thing. A very perltidy sort of problem.

Disabling vertical alignment (which makes code formatting very unstable and fiddly because perltidy is AMAZINGLY aggressive about what it tries to vertically align) means that perltidy instead aggressively breaks all of your vertical alignment. I just want => to line up, but not the arguments to any random function call or the equal signs for every random assignment. Is this too much to ask? (To be fair, black doesn't do this either, but for some reason it feels more important to line up fat commas in Perl than hash constructors in Python.)

I should probably go file bugs against perltidy, and I admit I have not done that and thus there's no reason to expect anyone to know about my wishes. What I want seems different enough from how the program works that I'm not sure that would be appreciated, but I'm probably wrong.

Anyway, you can get the latest version of rra-c-util from its distribution page.

2021-12-25: DocKnot 6.00

DocKnot is my static site generator and software release management toolkit. It's what generates all of what you're reading.

DocKnot has always supported pointing to external files from inside its input tree and converting those files to HTML. This is how I include HTML conversions of POD documentation, CVS logs, text files, and other things in my web pages. This release starts the migration from an ad hoc text format for these pointers to YAML, which will permit a much richer configuration and a consistent format and extension for those external pointers.

As the first supported format, DocKnot now supports Markdown conversion (using pandoc). POD conversion is also now supported via both the new pointer file syntax and the old one, but the latter is deprecated and will be removed in a later release.

This release also includes some internal reorganization, a fix for RSS output on systems where the locale isn't set to English, and support for cutting releases from a main branch instead of a master branch.

You can get the latest version from CPAN or the DocKnot distribution page.

2021-12-26: Pod::Thread 3.01

This Perl module converts POD to thread, the markup language processed by DocKnot. It does the heavy lifting to process POD documents for conversion to HTML for my web site.

This is a minor bug fix release that cleans up a few issues found while working on DocKnot: avoid Perl warnings when trying to generate a navigation bar when there are no headings, always output \heading even when there's no title, and treat an undef title the same as no title. There are also some minor documentation fixes.

You can get the latest release from CPAN or the Pod::Thread distribution page.

Last spun 2022-01-01 from thread modified 2021-12-26