Revision history for Perl extension Template::Plex.
v0.7.1 2024-04-23
  [fixes]
    -  { and } characters are now replaced with Perl escape equivalents \{ and
       \} for better code generation support (ie C, Perl, Javascript etc that
       use  {} as block delimieters)
    -  Extra test for reference types in slot rendering
    -  use file_name_is_absolute for path testing instead of regex

    [new features]
    - Add parent shortcut in templates
    - If a template is not inherited, slot references are to the template, not
      the parent

v0.7.0 2024-01-10
  [improvements]
    - immediate load and render will use the supplied vars also as fields to
      render call and actually make them usable in immediate templates.
    - template relative paths can now be specified with reference to scalar
    - absolute template paths no longer use prepend 'root' dir option


  [depricated]
    - 'including' templates will be removed from future versions in favour of
      sub templates  for better diagnostics.
    - 'comment' support will be removed from future versions in favour of
      using the standard multiline form or @{[ # comment ]}

v0.6.3 2023-12-12
  [improvements]
    - Added DEBUG flag in addition to Log::OK levels to prevent logging noise

v0.6.2 2023-08-28
  [fixes]
    - Added missing dependencies Export::These and constant::more
    - Removed unused dependency enum
  
v0.6.1  2023-08-27
  [improvements]
    - RAM usage reduction on loading the module. (5.8MB down to 3.7MB)

v0.6.0 2023-05-09
  [new features]
    - cache and immediate subroutines now also supports a single argument call.
      Makes using cached and immediate templates much nicer in loops with
      implicit linking to current template variables.
    - added fill_var, append_var and prepend_var to set, append and prepend
      package variables. All return empty strings

  [improvements]
    - Error::Show is now only required when an error is to be shown, saving on
      memory otherwise
    - Removed unused imported modules, reducing wasted memory
    - Fixed spelling mistakes in changes file

  [bug fixes]
    - a slot in a parent template with no default value doesn't die now

  [pod]
    - Documented changes to immediate and cache routines
    - Documented *_var routines

v0.5.0
  [new features]
  - added append_slot
  - added prepend_slot
  - "cheat comments", which allows line starting with a Perl comment to be
    ignored. "use_comments" must be specified in options hash to enable

  [changes]
  - Now using Error::Show for error context instead of internal code
  - Improved diagnostics with unmatched "{" or "[" in template. 

  [pod]
  - Improved Error and Logging section with a new example
  - Documented new features
  - Added information about line error numbers in regards to block_fix and include

  [other]
  - Reformatted Changes file


v0.4.3   2022-06-28
	- Fixed failing tests... again..
	- Improved error reporting context on template syntax error (reduced line count)
	- Added 'inject' option when loading a template
	- Briefly documented 'use' and 'inject' options when loading templates


0.4.2	2022-06-23
	- Removed usage of perl-5.36 features isa  and multi-element for loops
	- Reverted min perl version back to 5.24 for better compatibility
	- Checked dependencies also work with perl 5.24
	- Removed other non used features

0.4.1	2022-06-22
	- Fix bad tests

0.4.0	2022-06-22
	- Template inheritance and slotting
	- Requires Perl 5.36 (for isa)
	- User subclassing is now possible
	- Removed redundant code in in preparing templates
	- Sub classes can access metadata (options) and arguments( variables) via
   	  accessor methods meta and args
	- The current template is stored in a lexical variable $self
	- Template is of type Template::Plex or user subclass
	- Added %meta to store filename and load/processing options
	- Added 'use' key in options hash to allow using of packages in lexical scope
	- Added 'base' key in options hash to specify base class for template
	- Much easier to implement new templating systems on top of this module now
	- Removed automatic using of String::Util. Templates can use on demand manually
	- Fixed bug in recursive template loading that would not update the dynamic 
	  package name
	- Added logging support with Log::ger and Log::OK
	- jmap now requires at least two arguments and works with array/list
	  instead of a reference
	- Block fix no longer kills multiple newlines after a directive close
	- die is  called on template compilation error. (=> try/catch)
	- Error message include a summary of the error location and template name
	- plx and plex function depreciated
	- Class methods load/cache/immediate for loading templates



0.3.0  2022-04-25

	- Subtemplates now can modify top level arguments hash (ie add keys not
	  previously available)
	- Added 'skip' sub which cancels the current templates rendering, but
	  allows variable manipulation
	- Added tests for skip and sub template argument manipulation
	- Updated pod 

0.2.0  2022-03-31
	- Cleanup generated code a little
	- Added plx subroutine for automatic loading/caching/rendering
	- Added block_fix feature
	- Added jmap subroutine
	- Added plex_clear basic cache clearing
	- Added block and pl subroutine
	- Added importing of String::Util subroutines into template
	- Updated documentaion

0.1.1  2022-02-18
	- Fixed examples in example directory
	- Fixed Changes (wrong package name)

0.1.0  2021-08-4
	- Inital version