Skip to content

Commit 11e968a

Browse files
committed
feat: new built-in function stringToBase64
1 parent fd7d9e6 commit 11e968a

File tree

4 files changed

+38
-0
lines changed

4 files changed

+38
-0
lines changed

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Added
11+
12+
- new built-in function stringToBase64
13+
1014
### Changed
1115

1216
- fj-doc-maven-plugin, init, flavour : quarkus-version set to 3.29.2 across all the modules

fj-doc-freemarker/src/main/java/org/fugerit/java/doc/freemarker/config/FreeMarkerConfigStep.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,7 @@ public int process(DocProcessContext context, DocProcessData data) throws Except
153153
map.put(CleanTextFun.DEFAULT_NAME, new CleanTextFun());
154154
map.put(FormatLocalDateTimeFun.DEFAULT_NAME, new FormatLocalDateTimeFun());
155155
map.put(Base64ToStringFun.DEFAULT_NAME, new Base64ToStringFun());
156+
map.put(StringToBase64Fun.DEFAULT_NAME, new StringToBase64Fun());
156157
}
157158
return res;
158159
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package org.fugerit.java.doc.freemarker.fun;
2+
3+
import freemarker.template.SimpleScalar;
4+
import freemarker.template.TemplateMethodModelEx;
5+
import freemarker.template.TemplateModelException;
6+
import freemarker.template.TemplateScalarModel;
7+
8+
import java.nio.charset.StandardCharsets;
9+
import java.util.Base64;
10+
import java.util.List;
11+
12+
public class StringToBase64Fun implements TemplateMethodModelEx {
13+
14+
public static final String DEFAULT_NAME = "stringToBase64";
15+
16+
@Override
17+
public Object exec(@SuppressWarnings("rawtypes") List arguments) throws TemplateModelException {
18+
FMFunHelper.checkParameterNumber( arguments, 1 );
19+
String content = ((TemplateScalarModel)arguments.get( 0 )).getAsString();
20+
return new SimpleScalar( Base64.getEncoder().encodeToString( content.getBytes( StandardCharsets.UTF_8 ) ) );
21+
}
22+
23+
}

fj-doc-guide/src/main/docs/asciidoc/chapters/04_1_doc_freemarker_config.adoc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -209,6 +209,16 @@ NOTE: When using *skipfm* no FreeMarker template syntax should be used in the te
209209
| formats a LocalDate, LocalTime or LocalDateTime
210210
| (1) - the date/time to format, (2) - the format pattern
211211

212+
| base64ToString
213+
| org.fugerit.java.doc.freemarker.fun.​Base64ToStringFun
214+
| converts a base64 to string
215+
| (1) - base64 to convert to string
216+
217+
| stringToBase64
218+
| org.fugerit.java.doc.freemarker.fun.​StringToBase64Fun
219+
| converts a string to base64
220+
| (1) - the string to convert
221+
212222
|========================================================================================================================================
213223

214224
NOTE: These functions can all be loaded at once with the config step attribute _load-bundled-functions="true"_.

0 commit comments

Comments
 (0)