Skip to content

Releases: verhas/jamal

2.0.2

05 May 09:05

Choose a tag to compare

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.

2.0.1

21 Apr 08:12

Choose a tag to compare

A bug caused the prog module to loop infinitely when a command was just a string. This is fixed. Also, the simple BASIC language was extended a bit.

2.0.0

31 Mar 14:26

Choose a tag to compare

This is a new major release with improved security and many new features.

  • The macro packages integrating scripting languages were moved from the classpath of the Jamal implementations. They have to be loaded with the maven:load macro. (new feature)
  • With the new maven:load feature, you can load macros directly from JAR files over the network from Maven repositories.
  • A new scripting module implements a secure and simple procedural "basic" integrated tightly into Jamal.
  • When referring to files, you can use maven: and jar: prefixes to load files directly from the Maven repository or a JAR file.
  • New macro module handling JSON data.
  • Experimental module integrating OpenAI.
  • Macro integrating SourceBuddy functionality directly into your document.
  • You can easily include Kroki pictures in your document.

In addition to this, a lot of new features and bug fixes.

1.12.6

04 Feb 12:42

Choose a tag to compare

There is a new macro library prog that implements a simple BASIC like programming language.

Snippet library macro directory has the same formatting options as file macro.
There are two new macros in the snippet library: unicode and numbers.
The snip:check macro implements the options warning and error.
JShell handling improved. When there is no JShell it causes BadSyntax and thus can be handled using the macro try.

When closing the processor exceptions are cleared not only when there are closers.
This was a bug causing the exceptions reappearing using the macros sample and output.

The handling of external files, like res:, and https: were moved to services found using the service loader mechanism.
Loading files from Maven artifacts was implementing this service.

The prog macro package is implemented giving imperative simple BASIC like programming capabilities.

The Asciidoc preprocessor for the IntelliJ Asciidoctor plugin supports the prefixLog option.

1.12.3

12 Oct 15:03

Choose a tag to compare

  • Various bugfixes and dependency version updates.

  • Sorting macro is available in the snippet library, developed by Michael

  • the macro define has options for all the different "define" types, like pure, verbatim etc.
    Originally these can be reached using special characters, which are less verbose, but cryptic.
    The old syntax is still usable,but not recommended.

  • file macro in snippet package now has formatting placeholders bareNaked and nakedN as well as extensions and extensionN with the possible N values being 1,2,3,4, and 5.

  • the macro counter can save its actual value using -> .
    This is a shortcut to a series of macros.

  • The asciidoctor preprocessor caches the result of the last run and executes Jamal only when the input changes.
    It also takes the included and imported files into account.

  • a bug in the core of the processing engine that caused in some rare cases over indexing exception

  • the environment variable JAMAL_DEV_PATH now can point to a file instead of containing the replacements directly

  • Macros reading and writing a file can go through a hook that the embedding application can provide.
    It is used by the asciidoctor implementation to list all the files read during the processing.

  • Jamal mock library is implemented, that can be used to mock some macro for user defined macro testing

  • A warning is given when a macro is defined in a scope, but it is not used

  • Macro for supports the aliases sep and subsep`

  • In addition to the special characters in the macro define, the behaviour can also be altered using options.

  • the option RestrictedDefineParameters is now available for the define macro, to restrict parameter names to be identifiers

1.12.2

09 May 15:42

Choose a tag to compare

Doclet is fixed. It can use all modules.
snip can transform, there is no need for an extra snip:transform macro around it

1.12.1

16 Apr 19:07

Choose a tag to compare

When the macro for was used with the option evalist the list could not include file using a relative file name because the evaluation was done by the processor on an input that had no file reference.

1.12.0

30 Mar 12:44

Choose a tag to compare

  • It is possible to include a Word doc file into another word doc file using the docx:include macro.

  • You can insert a picture into a Word document using a Jamal macro.
    Since picture insertion is a basic function of Microsoft Word this functionality is to be used for special purposes only.

  • The macro snip can also check if a snippet has changed using the hash parameter.
    There is no need to invoke a separate snip:check macro.

  • There is an Asciidoctor extension, which can be used in IntelliJ to edit Jamal extended Asciidoc in a WYSIWYG way.

  • The Asciidoctor extension emits a sed command at the end of the error report, just in case and to help the lazy.

1.11.2

09 Mar 14:29

Choose a tag to compare

Bugfix release. A bug causing index out-of-range error in DOCX processing was fixed.
Experimental docx: macros were also developed and are included in this release.

1.11.1

01 Mar 14:26

Choose a tag to compare

  • Fully reworked command-line interface

  • Jamal macros can be used in Microsoft Word documents

  • Io module implements io:exec and io:waitFor macros to start external processes

  • extension.xml generation in Maven extension runs in a separate thread, so it does not delay the build

  • ~/.jamal/settings.(properties|xml) can be used to configure Jamal in addition to system properties and environment variables

  • Use of the external library picocli was eliminated

  • File input converts \r\n to \n on Windows.

  • Graphviz example was added to the integration tests, runs only on properly configured systems, it needs Graphviz installed eventually.