Releases: verhas/jamal
2.8.1.
Release 2.8.0
The prog module implements floating-point calculations.
2.7.0
2.6.0
2.5.0
- Macro
options
can also be used asoption
singular - Macro
options
has the paropspush
andpop
- Macro
define
paropnoRedefine
can also be used as an option not only as a parop. - Macro
repeat
was developed in the snippet library. - Macro
import
has a new parop,isolate
that makes the import isolated. - Generated files are set to be read only, so that they are not accidentally edited.
output:writable
can override this behavior.- Command line option
-jamalize
can install the Jamal Asciidoc extension into the current project. - experimental parser was developed to support editor plugins and LSE implementations in the future.
output:charset
can be used to specify the output charset.units.jim
define the unicode metric units characters- There is support to run Jamal from docker in the
jamal-docker
module. - The core macro
for
with the paropevalist
allows you to miss the macro opening and closing strings when the list is nothing but an argument-less macro invocation. - The
jamal-prog
package contains a macrodecimal
to supportBigDecimal
calculation in BASIC code. - The
replace
andreplaceLines
macros in the snippet package result in error not only if the input was not changed, but also when some of the search/replace string-string or regular expression-string pairs made no effect on the input when the optiondetectNoChange
is used.
This helps to avoid situations when a snippet is heavily transformed to create documentation lines from source code and the source changes structurally and the transformation gets outdated.
It is recommended to set thedetectNoChange
option to true globally at the start of the input file. - The argument splitting many built-in macro uses now looks at the macro
$REGEX
and uses it to split the arguments if defined. snip:eval
can evaluate snippets using the location of the snippet for relative files referenced inside the snippetimport
andinclude
macros have paropin
.- The macros
file
anddirectory
in the snippet package has a new paroprelativeTo
that controls the formatting placeholder calculationrelativePath
. - The new macro
file:locate
can locate files - Exceptions insert the macro locations at the top of the stack trace
- Macro
variation
was developed.
2.4.0
- Kotlin support to make Macro creation in Kotlin a breeze.
- Scan interface usage to parse parotps was eliminated
- Word decorator macro was developed
- counter macro was extended to support hierarchical counters and also other than Latin characters
- User-defined macro can have default parameters for better readability
- New
$time
,$atime
, and$ctime
placeholders for thefile
macro
2.3.0
- Core macro
block
supports the optionflat
(alias asexport
) to evaluate the content in the same scope as the surrounding macro. references
macro runs an idempotency check at the end of the execution- Macro parameters that do not need
(
and)
can be specified with optional parentheses.
You do not need to remember not to use the parentheses. - Asciidoctor's extension supports both 2.5.10 and 3.0.0-alpha.1 versions of Asciidoctor.
It is not integration tested for the 3.X.X versions because IntelliJ plugin currently supports 2.X.X versions only. - Asciidoctor integration defines
asciidoctorj:version
macro. - Upon start and macro load Jamal executes the
.jim
resource files. - Macro
define
can create a user-defined macro being an instance of a given class. - Macro
urlEncode
can encode a string to be used in a URL. - More Kroki support with
kroki
macro. - Built-in BASIC can call user-defined and built-in macros.
2.2.0
- Support for JSR223 scripting API. Now you can use Jamal in any application that can be scripted.
- New macro in the file module to test file existence, type (dir or plain file), readability, writable, executable, or hidden.
- New macro in the file module to copy binary files.
Useful to fetch ephemeral resources via HTTP to have them attached to the document. - New macro in the snippet library to memoize certain operations.
snip_list
does not list erroneous snippets anymore.java:insert
can fail with error if it updates the file.- new environment variable
asciidocfx.asciidoctor.plugin
is usable, the same asintellij.asciidoctor.plugin
- Jamal works in AsciidocFX as well.
This is not a feature of this release, but it was tested and documented in this release first.
It requires AsciidocFX 1.8.5 or later.
2.1.0
- Java:insert macro can insert a macro result into a Java source file between
<editor-fold id="">
</editor-fold>
lines.
-
Macro
java:sources
can load the sources and compile as well, as from the compiled classes so that other macros can reference.
Macrosjava:classes
,java:methods
,java:fields
can be used to list the classes, methods, and the fields of a class. -
Jamal Maven plugin was rewritten and has new functionality.
-
Jamalize can be used to install asciidoctor library files for IntelliJ.
-
shell:var
can replace$xxx
and${xxx}
references. -
io:exec
was extended to support multi-line command and arguments.
2.0.2
Bug fix release that makes maven extension find the macros after. In release 2.0.0, class loading and service discovery were changed, affecting the maven extension "badly". You do not need to upgrade to this release in any application other than the maven extension. Upgrading there simply means editing the .mvn/extensions.xml
file to contain the
<version>2.0.2</version>
line.