Revision history for App::WRT v8.1.0 2023-05-24 - Add url_rel v8.0.0 2022-09-26 - Add experimental filters feature - Revise license to explicitly GPL 2 or 3 - Update various dependency versions v7.1.2 2020-07-24 - Alphabetically sort sub-entries v7.1.1 2020-07-23 - Add a date_published to JSON Feed output v7.1.0 2020-04-18 - Add some handling for sites with an index file in the root - wrt-render-all now uses the configured default for root of site instead of "new" v7.0.0 2020-04-04 - Add a full tagging system - Cache HTML for every entry in the archive for a speedup in rendering large sites - Extract headers from rendered HTML with Mojo::DOM and cache - Use extracted headers to title pages, navigation links, and feed entries - Handle feed_alias in wrt-display - Remove entry_map from configuration and hardcode the default's assumptions about blog entry layout - Remove embedded_perl from configuration - now always look for embedded Perl, since this is required for templates. This feature may be deprecated in a future release. - Warn on HTML parsing errors (usually character encoding issues) - Rename default template from "basic" to "default" - Add JSON Feed support, improve Atom feed performance - Add wrt-repl for debugging - Add feed links to default template produced by wrt-init - Add wrt-feed for printing feeds v6.3.1 2019-06-23 - Generalize iso_date() test for epoch to include all timezones v6.3.0 2019-06-22 - Move get_date() from App::WRT::Util to App::WRT::Date - Make App::WRT::FileIO and ::Util less redundant - Add App::WRT::Mock::FileIO for faking writes in tests - Make bin/wrt-render-all testable, add t/bin-wrt-render-all.t v6.2.4 2019-05-28 - Replace README.pod with a concise README.md v6.2.3 2019-05-16 - bin/wrt-display: correctly expand new, fulltext, all v6.2.2 2019-05-16 - EntryStore: stash sorted list of all entries as found v6.2.1 2019-05-16 - bin/wrt-help - list more subcommands - fix display of utility name v6.2.0 2019-05-16 - EntryStore: Add methods for further slicing entry list: - Days by month or year - Months by year - Immediate children and parents of entries - basename($entry) v6.1.0 2019-05-16 - Add bin/wrt-help and bin/wrt-version - Includes -h, --help, -v, --version, -v aliases. v6.0.0 2019-05-06 - App::WRT::Date - Move month_name() in here from App::WRT, add tests. - App::WRT::EntryStore: - Hash file types for entries (directory or flatfile) - Use keys of file type hash for complete list of entries. - has_prop($entry, $property) - is_dir($entry), is_file($entry), is_extant($entry) - parent_of($entry) - has_index($entry) - Make EntryStore cache whether a file is a flatfile or a directory, as well as its existence, in a single hash. - Include index flatfiles in @source_files for use by has_index() - Various tests. - App::WRT::FileIO - Still duplicates a bunch of shit from Util, so that needs sorted. - App::WRT::Renderer - Convert to a proper class. - Add experimental FileIO class to use in Renderer (imperfect, tricky, still thinking about this). The idea is to separate out the concerns of reading and writing the filesystem. - App::WRT - Refactor display() and improve tests - Use "@entries" instead of "@options" for clarity - Handle entry names that might evaluate as false - Test running display() without any params - Rename expand_option() -> expand_alias(), refactor - Use EntryStore::has_prop() to detect wrt-noexpand.prop - year(), month(), entry() partially rewritten to use EntryStore - year() should handle months which are a flatfile - Refactor icon_markup() to use is_file() / is_dir() / is_extant(), add tests. - Add subtitle to feeds - bin/wrt-ls is now a "modulino" with tests - bin/display errors on non-existent entries 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 v4.3.0 2018-04-06 - Render feed for last feed_length day entries instead of for latest month - Switch example config from p1k3.com to example.com urls - feed_print() now takes a list of entries instead of a month v4.2.2 2018-02-10 - Fix --config option to wrt-display & wrt-render-all - Remove year list from linkbar v4.2.1 2017-11-18 - Change url_root default to / - Add url_root to topic link generator v4.2.0 2017-11-18 - Improved documentation in shell utilities - Make a copy of %default before blessing - Document MethodSpit - Document the overlay option, add an accessor method for it - Use a logging callback to WRT::Renderer::render() - Miscellaneous test cleanup - Add publish_dir to example wrt.json - Improve documentation - Add $wrt->feed_alias and a .xml copy of same v4.1.0 2017-11-15 - Add wrt-init for creating a skeleton project directory - Die on missing template file v4.0.1 2017-11-14 - Fix App::WRT::Markup require of WRT::Image - Remove an unused dependency on Imager v4.0.0 2017-11-14 - Rename WRT to App::WRT - Add a license info - Strip unused image size code from WRT::Image - Add publish_dir config value, ensure that dir exists when rendering - Add rendering tests v3.5.0 2017-11-13 - wrt-render-all now handles /, /all, and /feed - Migrate wrt wrapper utilities to posix shell v3.4.2 2017-06-21 - Add [0-9] to acceptable sub-entry characters v3.3.1 2017-06-19 - Die on attempting to include a directory - Include datestamps in feed v3.3.0 2017-04-03 - Add topic list to entries - List topics in datestamp - Clean up addprop output - Allow `-` in entry names, use .prop for properties - Simplify datestamps - Add wrt-noexpand property - Remove a sorta-extraneous trailing slash on contents v3.0.0 2016-10-12 - Split wrt utility into git-style subcommands - Support for includes, change root_dir semantics, add entry_dir - addprop and findprop subcommands for dealing with entry properties v2.0.0 2016-08-09 - Now called "wrt" instead of "display" - Extract http_header stuff from WRT module - Switch to wrt.json for configuration - Add XML::Feed and CGI::Fast to dependencies - Make wrt.fcgi work, more or less - Escape braces in variable interpolation regexp - Add --stdin flag