Revision history for Perl extension Plift

0.11 2016-10-04T01:46:39Z

    * implemented special selector '.' to select the current DOM root
    * implemented methods 'hook($step, $callback) and run_hooks($step)'
      - implemented hook 'after_load_template'
      - implemented hook 'before_process_template'
      - implemented hook 'after_process_template'
      - implemented hook 'before_render_directives'
      - implemented hook 'after_render_directives'
    * implemented 'data-remove-if' and 'data-remove-unless'
      - conditionally remove HTML elements based on context data
      - runs via 'after_load_template' hook


0.10 2016-09-02T12:34:10Z

    [ NEW ]
    * new context method selector_for($element)
      - generate deterministic css selector for any html element,
        based on libxml node's unique_key

0.09 2016-09-01T21:52:45Z

    [ INCOMPATIBLE CHANGE ]
    * snippet action methods now receive the context and parameters as arguments
      - The signature is: sub ($self, $element, $c, $params);
    * the parameters hashref is also used as snippet constructor params

0.08 2016-08-15T16:11:18Z

    [ NEW ]
    * Plift::template() now supports the 'data' option
      - so you can set the data before calling render()
      - useful if you need a reference to the metadata hash before calling render()

0.07 2016-08-12T19:32:32Z

    [ NEW ]
    * implemented active_handlers/inactive_handlers options
    * implemented <x-meta/> handler
      - templates can now set simple key/value metadata

    [ BUG FIX ]
    * fixed bug in process_element() where xfind() wouldn't find elements after xfilter()
      - now collecting all xfilter() + xfind() nodes before processing
    * fixed a bug where render directives wouldn't match document-root elements

0.06 2016-07-23T18:13:21Z

    [ PERFORMANCE ]
    * avoid calling Path::Tiny realpath + subsumes
      - only if template name has '../'
    * builtin handlers now calling attribute-related methods directly on libxml node
      - I know.. micro optimization.. just a NYTProf itch.
    * resolving relative path prefix only when template name is relative :)

    [ BUG FIX ]
    * fixed relative path resolution
      - now properly localizing current file/path



0.05 2016-07-23T02:34:37Z

    * added support for inline template
      - pass a scalarref with html source instead of template name
      - needed since not all applications stores the templates as files
    * added URI dep
    * implemented "data-plift-template" feature
      - a body attribute pointing to the actual template element,
      - used by load_template() method


0.04 2016-07-21T04:14:15Z

    * implemented 'wrapper' option
      - a template used for final wrapper, usually the website layout
      - avoids '<x-wrap>' on every template file
    * implemented context 'helper'
      - optional object of which methods get AUTOLOADed from
      - meant as a gateway from Plift to the rest of the system
        - (e.g. the current web request controller instance)

    * implemented snippets: dynamically loaded code blocks
    * renamed option 'path' to 'paths'

0.03 2016-07-20T19:09:47Z

    - implemented Plift::render(), Plift::load_components()
    - added a little more documentation

0.02 2016-07-18T22:12:26Z

    - implemented <x-render> processing instructions
      - creates render directives dynamically
    - implemented match modifiers to append+, +prepend and ^replace the element
      - like Template::Pure

    - added manual pages
      - Plift::Manual::Tutorial
      - Plift::Manual::DesignerFriendly
      - Plift::Manual::Inception
      - Plift::Manual::CustomHandler


0.01 2016-07-12T00:47:33Z

    - first released version, includes all basic features:
      - include and wrap templates
      - render data via pre-defined directives
      - render data via references found in templates
      - load plugins
      - add custom handlers