- Refactored document element nodes.
- Refactored paragraph automatic splitting.
- For python authoring mode, line ending with a single backslash will strip the newline following it plus other whitespaces (Rust style).
- Change non-breaking space to
@%
in python document authoring mode.
- Enabled paragraph automatic splitting within list items.
- Moved paragraph automatic splitting from the document element rendering step to the HTML translation step.
- Changed behavior in document authoring mode so that
None
will not be rendered in output result. - Fixed bug where there were superfluous empty paragraphs occurred during global-level paragraph splitting.
- Removed bug where whitespaces between commands are missing in the Paxter document authoring mode.
- Removed encapsulated outermost
<div>
tag from the HTML rendered result of the Python document authoring mode. - Added
NormalApplyWithEnv
wrapper which will additionally provides environment as the very first argument before the all the positional and keyword arguments of the wrapped function.
- Moved the HTML escape from the visitor into the document element renderers.
- Fixed bug where function
create_unsafe_document_env
breaks when the input argument for outside environment is not supplied. - Made all document element classes dataclasses.
- In both Python string authoring mode and Python document authoring mode,
by default
@!
and@@
will be transformed into empty string and@
respectively.
- The function
paxter.python.create_unsafe_env
was renamed topaxter.python.create_unsafe_bare_env
. - Introduced document python authoring mode
using
paxter.python.create_unsafe_document_env
.
- No longer allows @-expresion text and fragment list within fragment list itself.
- @-switch is no longer needed when embedding texts or fragment lists within the option section of a command.
- Single symbol command (such as
@@
and@,
) are now its own node type.
- Once again, the entire Paxter language grammar was re-designed. No longer compatible with all previous versions.
- The identifier section of function-call @-expressions (called a “command”) and the phrase expression were unified into the same pattern. Now, it is possible to evaluate a phrase expression into a function and use it in the function-call @-expression.
- The entire Paxter language grammar was re-designed from the ground up. No longer compatible with all previous versions.
- Parsed tree transformers are now called renderers.
- Simple Snake flavor of tree transformers (i.e. renderers) were removed and no longer exists.
- ReadTheDocs documentation is now set up.
- Changes in Paxter language Specification
PaxterMacro
now allows options just likePaxterFunc
- For each key-value pair in an option list,
the key part now becomes optional in place of the value part.
Therefore, the option list of the form[1,"2",v3,k4=4,k5="5",k6=v6]
is a valid Paxter language syntax (formerly, the first two key-value pairs were unacceptable).
- New utility decorators in Simple Snake:
with_env
,with_node
, andDefinitionSet
. - Way better unit test coverages and docstrings
- Optimized parser (remove redundant steps, refactor code, etc.)
- Package reorganization (e.g. flavored tree transformers now in
paxter.flavors
) - Simple Snake behavior changes:
- A line ending with backslash will remove the backslash itself along with the newline character next to it
- Introduce
@load!
macro to load pre-defined functions - Introduce
@if
and@for
special functions
- Better unit test coverages and docstrings
- Remove debugging print statement from transformer
- Fixed missing quotation mark rule in JSON string literal lexer
- Introduced simple python-flavored parsed tree transformer
- Added python 3.7 trove in PyPI display
- First release on PyPI.