From a224733077e1f12363c53725bdf6c5ec02afbd0f Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Mon, 13 Mar 2023 21:59:01 -0700 Subject: [PATCH] Added EncodeHTMl, EncodeJson, EncodeUrl and EncodeXml --- .idea/misc.xml | 4 ++ README.md | 26 ++++++---- lib/build.gradle.kts | 2 +- .../main/java/rife2/render/EncodeHtml.java | 50 +++++++++++++++++++ .../main/java/rife2/render/EncodeJson.java | 50 +++++++++++++++++++ lib/src/main/java/rife2/render/EncodeUrl.java | 50 +++++++++++++++++++ lib/src/main/java/rife2/render/EncodeXml.java | 50 +++++++++++++++++++ 7 files changed, 222 insertions(+), 10 deletions(-) create mode 100644 lib/src/main/java/rife2/render/EncodeHtml.java create mode 100644 lib/src/main/java/rife2/render/EncodeJson.java create mode 100644 lib/src/main/java/rife2/render/EncodeUrl.java create mode 100644 lib/src/main/java/rife2/render/EncodeXml.java diff --git a/.idea/misc.xml b/.idea/misc.xml index f73893f..7f1d1b8 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -7,6 +7,10 @@ + + + + diff --git a/README.md b/README.md index 6d98ced..56bd5d9 100644 --- a/README.md +++ b/README.md @@ -6,15 +6,23 @@ This project provides a set of template renderers. - **rife.render.Capitalize** - - Capitalizes a template value. + - Capitalizes a template value. +- **rife.render.EncodeHtml** + - Encodes a template value to HTML. +- **rife.render.EncodeJson** + - Encodes a template value to JSON. +- **rife.render.EncodeUrl** + - URL-encodes a template value. +- **rife.render.EncodeXml** + - Encodes a template value to XML. - **rife.render.Lowercase** - - Converts a template value to lowercase. + - Converts a template value to lowercase. - **rife.render.SwapCase** - - Swap case of a template value. + - Swap case of a template value. - **rife.render.Trim** - - Removes leading and trailing whitespace from a template value. + - Removes leading and trailing whitespace from a template value. - **rife.render.Uncapitalize** - - Un-capitalizes a template value. + - Un-capitalizes a template value. - **rife.render.Uppercase** - Convert a template value to uppercase. @@ -22,24 +30,24 @@ This project provides a set of template renderers. All rendered can be used at follows: -```html +``` ``` or -```json +``` {{v render:rife.render.RendererName:valueId}} ``` For example, to capitalize a template `foo` value: -```html +``` ``` or -```json +``` {{v render:rife.render.Capitalize:foo}} ``` diff --git a/lib/build.gradle.kts b/lib/build.gradle.kts index 8b79293..3f2e9ce 100644 --- a/lib/build.gradle.kts +++ b/lib/build.gradle.kts @@ -29,7 +29,7 @@ dependencies { configurations { all { - resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS); + resolutionStrategy.cacheChangingModulesFor(0, TimeUnit.SECONDS) } } diff --git a/lib/src/main/java/rife2/render/EncodeHtml.java b/lib/src/main/java/rife2/render/EncodeHtml.java new file mode 100644 index 0000000..0141c4f --- /dev/null +++ b/lib/src/main/java/rife2/render/EncodeHtml.java @@ -0,0 +1,50 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package rife2.render; + +import rife.template.Template; +import rife.template.ValueRenderer; +import rife.tools.StringUtils; + +/** + *

Encodes a template value to HTML.

+ * + *

Usage:

+ * + *
+ *   <!--v render:rife.render.EncodeHtml:valueId/-->
+ *   {{v render:rife.render.EncodeHtml:valueId}}
+ * 
+ * + * @author Erik C. Thauvin + * @see StringUtils#encodeHtml(String) + * @since 1.0 + */ +public class EncodeHtml implements ValueRenderer { + /** + * {@inheritDoc} + */ + @Override + public String render(Template template, String valueId, String differentiator) { + if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + return StringUtils.encodeHtml(template.getValue(differentiator)); + } else { + return ""; + } + } +} diff --git a/lib/src/main/java/rife2/render/EncodeJson.java b/lib/src/main/java/rife2/render/EncodeJson.java new file mode 100644 index 0000000..c80f150 --- /dev/null +++ b/lib/src/main/java/rife2/render/EncodeJson.java @@ -0,0 +1,50 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package rife2.render; + +import rife.template.Template; +import rife.template.ValueRenderer; +import rife.tools.StringUtils; + +/** + *

Encodes a template value to JSON.

+ * + *

Usage:

+ * + *
+ *   <!--v render:rife.render.EncodeJson:valueId/-->
+ *   {{v render:rife.render.EncodeJson:valueId}}
+ * 
+ * + * @author Erik C. Thauvin + * @see StringUtils#encodeJson(String) + * @since 1.0 + */ +public class EncodeJson implements ValueRenderer { + /** + * {@inheritDoc} + */ + @Override + public String render(Template template, String valueId, String differentiator) { + if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + return StringUtils.encodeJson(template.getValue(differentiator)); + } else { + return ""; + } + } +} diff --git a/lib/src/main/java/rife2/render/EncodeUrl.java b/lib/src/main/java/rife2/render/EncodeUrl.java new file mode 100644 index 0000000..408ce5a --- /dev/null +++ b/lib/src/main/java/rife2/render/EncodeUrl.java @@ -0,0 +1,50 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package rife2.render; + +import rife.template.Template; +import rife.template.ValueRenderer; +import rife.tools.StringUtils; + +/** + *

URL-encodes a template value.

+ * + *

Usage:

+ * + *
+ *   <!--v render:rife.render.EncodeUrl:valueId/-->
+ *   {{v render:rife.render.EncodeUrl:valueId}}
+ * 
+ * + * @author Erik C. Thauvin + * @see StringUtils#encodeUrl(String) + * @since 1.0 + */ +public class EncodeUrl implements ValueRenderer { + /** + * {@inheritDoc} + */ + @Override + public String render(Template template, String valueId, String differentiator) { + if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + return StringUtils.encodeUrl(template.getValue(differentiator)); + } else { + return ""; + } + } +} diff --git a/lib/src/main/java/rife2/render/EncodeXml.java b/lib/src/main/java/rife2/render/EncodeXml.java new file mode 100644 index 0000000..05a5abf --- /dev/null +++ b/lib/src/main/java/rife2/render/EncodeXml.java @@ -0,0 +1,50 @@ +/* + * Copyright 2023 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * https://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + */ + +package rife2.render; + +import rife.template.Template; +import rife.template.ValueRenderer; +import rife.tools.StringUtils; + +/** + *

Encodes a template value to XML.

+ * + *

Usage:

+ * + *
+ *   <!--v render:rife.render.EncodeXml:valueId/-->
+ *   {{v render:rife.render.EncodeXml:valueId}}
+ * 
+ * + * @author Erik C. Thauvin + * @see StringUtils#encodeXml(String) + * @since 1.0 + */ +public class EncodeXml implements ValueRenderer { + /** + * {@inheritDoc} + */ + @Override + public String render(Template template, String valueId, String differentiator) { + if (differentiator != null && !differentiator.isBlank() && template.hasValueId(differentiator)) { + return StringUtils.encodeXml(template.getValue(differentiator)); + } else { + return ""; + } + } +}