- give absolute paths to imgsize() so it chills out on Cwd::getcwd() calls
- rip out App::WRT::MethodSpit's convenience accessors and just access
elements of $self directly
- kill local_path()
- 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()
This gets rendering the whole p1k3 repo back down in the neighborhood of
2.1 seconds, which is a lot more tolerable than 5 or 6.
It also kinda technically breaks the API, maybe, so I guess this'll be a
v5.0.0 after a while.
All replaced with get_recent_entries_by_depth().
Replaces generate_month_lists with more generic generate_date_hashes(),
which now puts year, month, and day level entries in the prev/next hashes.
Strips previous links out of month() - these can live in templates now,
I guess, and work for year, month, and day.
Replaces get_all_day_entries() with get_date_entries_by_depth(). Adds
generate_month_lists() to stash %prev_months and %next_months (this can
probably be generalized a bunch).
Generalizes sortable_date_from_entry() to work with different levels of
date. Assumes that no component of the date is more than 4 digits, which
is not very future proof. (Though if this code is still running in the
year 10000, the future will have gone very differently than I expect it
to.)
month_before() now uses the %prev_months and %next_months hashes.
Removes fulltext(), because you can just call get_date_entries_by_depth(3).
Much slower than it probably needs to be.
Shuffles a bit of stuff out of App::WRT::Renderer into App::WRT, including
the method now called get_all_source_files() and a new one called
get_all_day_entries() that returns a sorted listed of days.
Uses state variables to cache the get_all_source_files() data, as well
as month_before() data (this was previously memoized inside a closure).
App::WRT::feed_print() now takes a list of entries instead of a month to
render the feed for.
App::WRT::feed_print_latest() gets a feed with most recent feed_length
entries.
The default was `$0?`, which I think was probably a holdover from this
being invoked as a CGI script. `$0` would give the name of the current
script, so you'd wind up with `display.cgi?2008` or what-have-you.
Adds a wrt-init kind of on the model of git init for starting a stub
directory with wrt.json, archives/, publish/, and templates/.
Also starts to tweak POD a bit.
I went and read:
https://pause.perl.org/pause/authenquery?ACTION=pause_namingmodules
Realized I should probably not name this something with an inscrutable
top-level namespace. WRT is still inscrutable, I guess, but at least
it's now under App.
- Renames all modules, fixes tests (such as they are)
- Zaps old t/validate/ stuff
- create an index.html with new entries
- create an /all/index.html with a list of all entries
- create a /feed containing an atom feed of the most recent month
- a paragraph on requirements in the installation section
- copyright date through 2017
- adds include_process() in WRT::Markup
- moves eval_perl() into WRT::Markup. The way object instances are
composed (and instance methods called) here still feels pretty janky,
and this does nothing to help the situation.
- changes all existing $root_dir instances to $entry_dir; adds a $root_dir
which represents the root of the archive (top-level folder containing
the wrt.json file)
I'd be worried about the $root_dir change if I thought this module had a
single other user in the wild, but I strongly doubt that it does. If I
am wrong and you are that user, I apologize sincerely in advance.
The include feature still has fairly unsettled semantics, but it gets the
whole thing much closer to a usable site generator.