From 1671aed2ab9724d4ea9426d729fe975e06217a2c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Sat, 09 Jul 2022 15:09:18 +0800
Subject: [PATCH] 新增time标签,用于时间的格式化
---
src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java | 28 ++++++++++++++++++++++++++++
src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java | 14 ++++++++++++++
2 files changed, 42 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
index 783dfe1..f8df3cc 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java
@@ -2,10 +2,14 @@
import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.xcong.farmer.cms.core.handler.DataParserHandler;
import com.xcong.farmer.cms.core.tag.TagsEnum;
+import com.xcong.farmer.cms.core.tag.model.TimeTag;
import com.xcong.farmer.cms.core.template.Configuration;
import com.xcong.farmer.cms.core.template.TemplateConfiguration;
import com.xcong.farmer.cms.utils.GroovySingleton;
@@ -18,6 +22,8 @@
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
@@ -183,6 +189,10 @@
this.element.text(result);
} else if ("html".equals(key)) {
this.element.html(result);
+ } else if ("time".equals(key)) {
+ TimeTag time = parserTag(result, TimeTag.class);
+ String timeStr = DateUtil.format(DateUtil.parse(time.getText(), DatePattern.NORM_DATETIME_PATTERN), time.getFormat());
+ this.element.text(timeStr);
} else {
this.element.attr(key, result);
}
@@ -214,6 +224,10 @@
Script parse = groovyShell.parse(group);
parse.setBinding(binding);
Object evaluate = parse.run();
+ if (evaluate instanceof Date) {
+ evaluate = DateUtil.format((Date) evaluate, DatePattern.NORM_DATETIME_PATTERN);
+ }
+
if (evaluate == null) {
targetData.put(group, "");
} else {
diff --git a/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java b/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java
new file mode 100644
index 0000000..8364439
--- /dev/null
+++ b/src/main/java/com/xcong/farmer/cms/core/tag/model/TimeTag.java
@@ -0,0 +1,28 @@
+package com.xcong.farmer.cms.core.tag.model;
+
+/**
+ * @author wzy
+ * @date 2022-07-09
+ **/
+public class TimeTag {
+
+ private String text;
+
+ private String format;
+
+ public String getText() {
+ return text;
+ }
+
+ public void setText(String text) {
+ this.text = text;
+ }
+
+ public String getFormat() {
+ return format;
+ }
+
+ public void setFormat(String format) {
+ this.format = format;
+ }
+}
--
Gitblit v1.9.1