Plim 1.0.0
Plim is a Python port of Ruby's Slim template language built on top of Mako Templates
License: MIT
Keywords: mako templates ruby slim jade pyjade pyramid flask haml pyhaml

Plim
==============

.. image:: https://img.shields.io/pypi/v/Plim.svg
        :target: https://crate.io/packages/Plim

.. image:: https://requires.io/github/avanov/Plim/requirements.svg?branch=master
    :target: https://requires.io/github/avanov/Plim/requirements/?branch=master
    :alt: Requirements Status

.. image:: https://img.shields.io/pypi/dm/Plim.svg
        :target: https://crate.io/packages/Plim

.. image:: https://github.com/avanov/Plim/workflows/CI/badge.svg?branch=develop
    :target: https://github.com/avanov/Plim/actions?query=branch%3Adevelop

.. image:: https://coveralls.io/repos/github/avanov/Plim/badge.svg?branch=develop
    :target: https://coveralls.io/github/avanov/Plim?branch=develop


Plim is a Python port of `Ruby's Slim template language <http://slim-lang.com/>`_
built on top of `Mako Templates <http://www.makotemplates.org/>`_.
It uses `Mako's preprocessor feature <http://docs.makotemplates.org/en/latest/usage.html?highlight=preprocessor#api-reference>`_
to translate its syntax into a valid HTML/Mako markup.

For more information visit the `Documentation Page`_.


.. _Documentation Page: http://plim.readthedocs.org/en/latest/

Changelog
================

1.0.0
-----

- Dropped support for Python 2.x
- Test suite switched from Nose to Pytest
- CI switched from Travis CI to Github Actions

Version 0.9
-------------

- 0.9.12

  - Feature: dashes are now allowed in html tag names.

- 0.9.11

  - Hotfix: Fix incorrect parsing of templates with windows-style newlines (CR+LF).

- 0.9.10

  - Hotfix: Fix ``plimc``'s inability to find a custom preprocessors module in the current working dir.

- 0.9.9

  - Hotfix: Fix UnicodeEncodeError in ``-def`` blocks with unicode strings as default argument values.

- 0.9.8

  - Change: Stylus extension no longer depends on the ``nib`` package.

- 0.9.7

  - Hotfix: Include requirements.txt into the distribution.

- 0.9.6

  - Hotfix: Conditional statements parser now can handle strings containing inline tag separator sequences (#27).

- 0.9.5

  - Hotfix: Fix ``plimc`` unicode decoding regression introduced by the previous hotfix.


- 0.9.4

  - Hotfix: ``plimc`` no longer crashes with TypeError in Python3 environments
            when it writes bytes to sys.stdout.

- 0.9.3

  - Hotfix: Fix UnicodeEncodeError in ``plimc`` when it writes to STDOUT.

- 0.9.2

  - Feature: added support for `Custom Parsers <http://plim.readthedocs.org/en/latest/en/extensions.html#extending-plim-with-custom-parsers>`_.

- 0.9.1

  - New Syntax: `New-style Python Blocks <http://plim.readthedocs.org/en/latest/en/syntax.html#new-style-blocks>`_.
  - New Syntax: `New-style Module-level Blocks <http://plim.readthedocs.org/en/latest/en/syntax.html#module-level-blocks>`_.


- 0.9.0

  - Change: Pyramid adapter now relies on Pyramid>=1.5a2 and pyramid_mako>=0.3.1.
  - Change: The package now depends on Mako>=0.9.0.
  - Change: Sass/Scss extension now requires PyScss>=1.2.0.post3.
  - Change: Pyramid adapter's ``plim.file_extension`` configuration option is deprecated.
            The ``config.add_plim_renderer()`` `directive is provided instead <http://plim.readthedocs.org/en/latest/en/frameworks.html#pyramid>`_.

Version 0.8
------------

- 0.8.9

  - Bugfix: Use sys.maxsize instead of unavailable sys.maxint on Python 3.

- 0.8.8

  - Hotfix: Make Plim working with a development version of pyScss for Python-3.x setups.

- 0.8.7

  - Bugfix: Pyramid adapter is now compatible with the 1.5a2+ version of the framework.
  - Change: `default template file extension <http://plim.readthedocs.org/en/latest/en/frameworks.html#pyramid>`_
            used in pyramid bindings is changed from ".plm" to ".plim".

- 0.8.6

  - Hotfix: fixed assertion error in handlebars parser.

- 0.8.5

  - Feature: added support for `Handlebars blocks <http://plim.readthedocs.org/en/latest/en/extensions.html#handlebars>`_.

- 0.8.4

  - Hotfix: updated links to github.

- 0.8.3

  - Hotfix: prevent lexer from parsing embedded markup inside ``style`` and ``script`` blocks.

- 0.8.2

  - Feature: added support for `Embedded Markup <http://plim.readthedocs.org/en/latest/en/syntax.html#embedded-markup>`_.
  - Feature: plimc utility is now able to output plain HTML.

- 0.8.1

  - Feature: added support for `Inline Statements <http://plim.readthedocs.org/en/latest/en/syntax.html#inline-statements>`_.

- 0.8.0

  - Feature: added support for dynamic attributes unpacker (an equivalent to Slim's splat attributes).


Version 0.7
------------

- 0.7.14

  - Hotfix: fixed bug with unicode handling.

- 0.7.13

  - Hotfix: fixed bug with static unicode attributes.

- 0.7.12

  - Unnecessary newline characters at the end of literal blocks have been removed.
  - Added the command-line tool ``plimc``.

- 0.7.11

  - Fixed bug that had to do with incorrect parsing of multi-line dynamic class attributes.
  - Fixed bug that had to do with passing incorrect data to plim parser in babel adapter.

- 0.7.10
  Fixed bug with unicode error in python block. Thanks to sqrabs@github!

- 0.7.9
  Added babel message extraction plugin.

- 0.7.8
  Expanded range of possible numeric values that don't require double-quoting.

- 0.7.7

  -  Fixed bug with linebreaks without trailing newline character.
  -  Fixed bug with missing explicit whitespace after ``=,`` and ``==,`` line indicators.

- 0.7.6
  Fixed bug with incorrect parsing of static boolean attributes.

- 0.7.5
  Fixed bug with comment and content blocks separated by empty lines.

- 0.7.4
  Added -stylus extension.
  
- 0.7.3
  Fix bug with literal one-liners.

- 0.7.1
  Fixed installation error caused by missing README.rst.

- 0.7.0
  Initial public release.