Skip to content
Apr 6, 2020
Add 'help' command implementation
It's been so long, and no one ever raised an issue that `verse help`
exited with no useful output.  Frankly, I'm disappointed in you
Verse user community, all 0 of you.

@jhunt jhunt released this Feb 20, 2020 · 13 commits to master since this release


  • strftime() now parses its time argument as a string, if it detects that it is not a UNIX epoch timestamp. Turns out, most people don't think of time as a single tally of seconds since Jan 1 1970, and would rather specify dates and things in Y/m/d, YYYY mmm dd, and other human-friendly formats. strftime() now obliges.

Bug Fixes

  • Fix uninitialized value warnings for [% filter markdown %] blocks that don't have undef / null bodies.
  • Treat undefined values as the empty string in conditional eq comparisons.
Assets 3
Feb 20, 2020
strftime() now parses its date argument
If it doesn't look like a timestamp (i.e. it isn't all digits), we now
run the "time" argument to strftime() through strptime(), from an
embedded copy of Date::Parse, to get deconstruct it into components for
formatting via strftime.

This makes it possible to format arbitrary dates, given as page
attributes, site properties, etc.

@jhunt jhunt released this May 24, 2019 · 18 commits to master since this release


  • New readf and writef primitives for dealing with unusual rendering requirements (like wrapping upstream HTML) in themes.

  • The [render] $template :: $path output is now skipped if render is called without an at argument (and should therefore return its output to the caller as a string).

Assets 3

@jhunt jhunt released this Sep 14, 2018 · 23 commits to master since this release

New Features

  • New markdown filter for converting Markdown into HTML, inside the template.
  • New uriencode and uridecode filter, for those times when you need to embed URLs in other URLs (i.e. for social media links).
Assets 3

@jhunt jhunt released this Jul 9, 2018 · 28 commits to master since this release


  • We have a Docker image now!
    To use it, just reference huntprod/verse:latest, or huntprod/verse:0.10.0.

  • New Template language that doesn't depend on Template Toolkit, and is
    more redistributable as a result. Don't worry, though, it looks like the same
    templates you're used to, with some new hotness.

  • verse run now takes a port number for adjusting the listening bind.
    Try it out: verse run 8080

  • A minimalist, yet beautiful default theme replaces the existing variadic
    theme. The new default theme is more lightweight (no images) and
    highly customizable.

  • Removed dependencies on File::Slurp, which is going to have some problems
    when Perl 5.30 comes around (at least, according to Perl 5.26).

Bug Fixes

  • verse new no longer tries to execute the site.yml if you have no $EDITOR
    environment variable defined.
Assets 3

@jhunt jhunt released this Feb 18, 2017 · 66 commits to master since this release

Let's start releasing Verse via Github's Releases feature!

This marks the first public release of Verse, at version 0.9.0. The attached verse script should be portable across mot systems, as long as they have a new enough vintage of Perl itself. We're using the excellent App::FatPacker module to pack up all of our Perl libdeps into a single script, and we've moved away from XS modules like YAML::XS that require a compiler to build.

Also, you can now verse -v or verse version to find the version of Verse you are running.

Assets 4