You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
All notable changes to this project will be documented in this file. This change log follows the conventions of [keepachangelog.com](http://keepachangelog.com/).
3
+
4
+
## [Unreleased]
5
+
### Changed
6
+
- ....
7
+
8
+
## [0.6.1] - 2024-08-03
9
+
### Changed
10
+
- Update GraalVM version for service
11
+
- Fix reflection errors in Docker service
12
+
- Introduce functions provider SPI #166
13
+
- Add Makefile
14
+
15
+
## [0.6.0] - 2024-07-26
16
+
### Changed
17
+
- Refactor stencil.merger` namespace in trampoline style #152
18
+
19
+
## [0.5.9] - 2024-07-14
20
+
### Changed
21
+
- Make `replaceImage()` work with `imagedata` tags.
22
+
- Introduce `deps.edn` for building and kaocha for tests #164
23
+
- Fix: all test namespaces have `-test` suffix
24
+
25
+
## [0.5.8] - 2024-05-21
26
+
### Changed
27
+
- Simplified Java API
28
+
- Fixed some type hints
29
+
- Some internal code reorganization
30
+
- Extract fragment handling into a separate namespace #157
31
+
- Introduce `stencil.fs` namespace with test cases
32
+
- Several fixes in CI: unit test reporting, javadoc generation, etc.
33
+
- Fix PPTX file rendering #161
34
+
35
+
## [0.5.7] - 2023-11-15
36
+
### Changed
37
+
- Allow expression in fragment include directives #154
38
+
39
+
## [0.5.6] - 2023-11-03
40
+
### Changed
41
+
- Fix: backport to work with Java 8
42
+
43
+
## [0.5.5] - 2023-11-03
44
+
### Changed
45
+
- Allow overwrite of temporary directory location with `stencil.tmpdir` environment variable.
46
+
47
+
## [0.5.4] - 2023-10-11
48
+
### Changed
49
+
- Introduce `replaceLink` function #150
50
+
51
+
## [0.5.3] - 2023-07-22
52
+
53
+
## [0.5.2] - 2023-07-13
54
+
### Changed
55
+
- Fix: numbering definitions are copied from fragments #148
56
+
- Introducing visual regression test
57
+
- Refactoring parser code #144 and infix tokenizer #142
58
+
59
+
60
+
## [0.5.1] - 2023-07-12
61
+
### Changed
62
+
- Introducing visual regression test
63
+
- Refactoring parser code #144 and infix tokenizer #142
64
+
65
+
## [0.5.0] - 2022-12-02
66
+
### Changed
67
+
- various small refactors to improve code style and remove unused code
68
+
- added extract-wordml script to help debugging issues
69
+
- fix parsing issue with expressions in form of `x[y] - z`
70
+
- fix issue with nonbreaking spaces not being trimmed [#141]
71
+
- first steps for more meaningful error messages [#140]
72
+
73
+
## [0.4.7] - 2022-08-08
74
+
### Changes
75
+
- Fix: make it possible to call custom functions from fragments
76
+
- Fix several linter warnings in the Clojure code base
77
+
- Introduce Specs for internal data model #83
78
+
79
+
## [0.4.6] - 2022-07-25
80
+
### Changes
81
+
- Fix bug in merger substring expressions #135
82
+
- Fix bug in fragment handling #136
83
+
84
+
## [0.4.5] - 2022-07-21
85
+
### Features
86
+
- Add new `replace()` function #134
87
+
### Changed
88
+
- Add unit tests for `coalesce` function
89
+
- Bump `junit` version to `4.13.2`
90
+
91
+
## [0.4.4] - 2022-06-09
92
+
### Changed
93
+
- Fix precision of `decimal()` and `format()` functions to 8 digits
94
+
95
+
## [0.4.3] - 2022-06-01
96
+
### Features
97
+
- Introduce the `foreach` loop construct #129
98
+
- Introduce the `pageBreak` function #126
99
+
100
+
101
+
## [0.4.2] - 2022-05-04
102
+
### Changed
103
+
- service: fix division error on non-terminating decimal expansion due to BigDecimal usage in service.
104
+
105
+
## [0.4.1] - 2022-04-21
106
+
### Changed
107
+
- service: update dockerfile to use debian:10-slim
108
+
- service: update clojure, slf4j versions
109
+
- chore: some simplifications
110
+
111
+
## [0.4.0] - 2022-02-15
112
+
### Changed
113
+
- service: add js engine [#114]
114
+
- core: introduce more transducers
115
+
- core: `html()` function supports uppercase tags [#113]
116
+
- core: newlines are kept in str substitution [#111]
@@ -20,59 +20,81 @@ them to make your template more readable.
20
20
21
21
## Features
22
22
23
-
- Works with `docx` and `pptx` files
24
-
- Simple value substitution, conditional and repeating blocks
25
-
- Substituting HTML text for dynamic text formatting
26
-
- Dynamically replace images and links in the template
27
-
- Show/hide rows and columns in tables
23
+
- 📄 **Multiple Formats:** Works with `docx` and `pptx` files
24
+
- 💻 **Simple syntax:** For value substitution, conditional and repeating blocks
25
+
- 🔧 **Extendable:** Dozens of [built-in functions](https://stencil.erdos.dev/Functions.html) callable from the template
26
+
- 📰 **Dynamic content:** Substituting HTML text for dynamic text formatting
27
+
- 🌄 **Images and links:** Dynamically replace images and links in the template
28
+
- 👀 **Tables:** Show/hide rows and columns in tables
29
+
- 📐 **Programmable:** Offers API for Java and Clojure. Deployable as a Docker container.
28
30
29
-
## Getting Started with the Library
31
+
## 📖 Getting Started with the Library
30
32
31
33
- See the [Example templates](examples)
32
34
- Read the [Documentation](https://stencil.erdos.dev)
33
-
-Read about the [Java API](docs/GettingStarted.md#java-api) and the [Clojure API](docs/GettingStarted.md#clojure-api).
35
+
-Reference the [Java API](docs/GettingStarted.md#java-api) and the [Clojure API](docs/GettingStarted.md#clojure-api).
34
36
35
-
36
-
## Getting Started with the Service
37
+
## 🐳 Getting Started with the Service
37
38
38
39
The project has a simple [service implementation](https://github.com/erdos/stencil/tree/master/service), which is available on GitHub Packages as a [Container image](https://github.com/users/erdos/packages/container/package/stencil).
39
40
40
41
41
-
## Version
42
+
## 👉 Version
43
+
44
+
**Latest stable** version is `0.6.2`
45
+
46
+
**Latest snapshot** version is `0.6.3-SNAPSHOT`
42
47
43
-
**Latest stable** version is `0.6.1`
48
+
Previous versions are available on the [Stencil Clojars](https://clojars.org/io.github.erdos/stencil-core) page.
44
49
45
-
**Latest snapshot** version is `0.6.2-SNAPSHOT`
50
+
<details>
51
+
<summary><b>For Java with Maven</b></summary>
46
52
47
-
If you are using Maven, add the followings to your `pom.xml`:
53
+
If you are using Maven, add the followings to your `pom.xml`:
48
54
49
-
The dependency:
55
+
1.The dependency:
50
56
51
57
```xml
52
58
<dependency>
53
59
<groupId>io.github.erdos</groupId>
54
60
<artifactId>stencil-core</artifactId>
55
-
<version>0.6.1</version>
61
+
<version>0.6.2</version>
56
62
</dependency>
57
63
```
58
64
59
-
And the [Clojars](https://clojars.org) repository:
65
+
2.And the [Clojars](https://clojars.org) repository:
60
66
61
67
```xml
62
68
<repository>
63
69
<id>clojars.org</id>
64
70
<url>https://repo.clojars.org</url>
65
71
</repository>
66
-
```
72
+
```
73
+
</details>
67
74
68
-
Alternatively, if you are using Leiningen, add the following to
69
-
the `:dependencies` section of your `project.clj`
70
-
file: `[io.github.erdos/stencil-core "0.6.1"]`
75
+
<details>
76
+
<summary><b>For Java with Gradle</b></summary>
77
+
78
+
Add to the `dependencies` section of your `build.gradle` file: `implementation('io.github.erdos/stencil-core:0.6.2')`
79
+
</details>
80
+
81
+
<details>
82
+
<summary><b>For Clojure with Leiningen</b></summary>
83
+
84
+
If you are using Leiningen, add the following to the `:dependencies` section of your `project.clj` file:
85
+
86
+
`[io.github.erdos/stencil-core "0.6.2"]`
87
+
</details>
88
+
89
+
<details>
90
+
<summary><b>For Clojure with deps.edn</b></summary>
0 commit comments