Sunday, April 14, 2019

App::WRT v5.0.0

It’s been almost a year, so I’m putting together a release of wrt, the site generator I use for p1k3:

v5.0.0 abandons the idea of running persistently under FastCGI, handles character encoding more gracefully for Atom feeds, adds wrt ls and wrt config commands for listing entries and dumping configuration values, refactors a bunch of the logic for finding and displaying entries, and fixes a slew of minor bugs. It should be substantially more performant, though as a tradeoff it uses more memory.

Here’s (I think) the full changelog since the last time I pushed this thing to CPAN:

v5.0.0 2019-04-14

  - Add bin/wrt-ls for listing entries in current archive
  - Add bin/wrt-config for displaying configuration info
  - Allow header tags with attributes
  - Minor documentation cleanup
  - Bump XML::Atom::SimpleFeed to 0.900; remove wrt-fcgi
  - Concatenation instead of variable interpolation in HTML::tag()
  - Remove hardcoded "public" from renderer directory path copying
  - Remove unused feed_url param from wrt-init and example dir
  - Remove an extraneous JSON->convert_blessed(1) call
  - WRT::entry(): fix glitch with contents list for binfile_expr matches
  - Correctly encode feed output - see https://p1k3.com/2018/5/28/
  - Add App::WRT::Util::file_get_contents();
  - Optionally cache included files in-memory
  - Add EntryStore, a class for wrapping various methods for finding entry lists
  - Refactor display()
  - Use Carp for errors
  - Remove old LaTeX markup stuff
  - Add this Changes file

v5.0.0-alpha 2018-04-19

  - Use 5 most recent entries for home page instead of latest month
  - Remove accessor methods for instance variables / configuration
  - Give absolute paths to imgsize() so it chills out on Cwd::getcwd() calls
  - Remove local_path(), recent_month(), month_before, and feed_print_latest()
  - Stop using a() in entry_markup()
  - Cache get_date_entries_by_depth() results
  - Swap out state vars for stashing things on $self in get_all_source_files()
  - Add get_date_entries_by_depth()
  - Tweak link_bar() behavior to retain link for current page

Actually, looking at some of this, I think my history of version numbers vs. Git tags vs. releases is… Less than accurate. In future I’m going to just increment the semver patch version for every commit and release to CPAN routinely.