From 51ea662e22121f9a0ddb5b40c4a8e93e098b34ec Mon Sep 17 00:00:00 2001
From: Hentua <wangdoubleone@gmail.com>
Date: Wed, 10 Jan 2024 22:22:44 +0800
Subject: [PATCH] fxi
---
src/main/java/com/xcong/farmer/cms/core/node/Template.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++--------
1 files changed, 101 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/xcong/farmer/cms/core/node/Template.java b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
index d160592..a2621db 100644
--- a/src/main/java/com/xcong/farmer/cms/core/node/Template.java
+++ b/src/main/java/com/xcong/farmer/cms/core/node/Template.java
@@ -2,33 +2,89 @@
import cn.hutool.core.collection.CollUtil;
import com.xcong.farmer.cms.core.node.PartNode;
+import lombok.extern.slf4j.Slf4j;
+import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.*;
/**
* @author wzy
* @date 2022-06-22
**/
+@Slf4j
public class Template {
- private String name;
+ // 文件名称
+ private String name = "index";
+ // 文件保存路径
+ private String path = "";
private Document document;
-
- private Map<String, Map<String, Object>> params = new HashMap<>();
private Map<String, Object> system;
private List<PartNode> partNodes = new ArrayList<>();
- private static boolean hasPaging = false;
+ public volatile static boolean HAS_PAGING = false;
+
+ public Template() {
+ }
+
+ public Template(File file, Map<String, Object> system) {
+ Document document = null;
+ try {
+ document = Jsoup.parse(file, "utf-8");
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ if (document == null) {
+ throw new NullPointerException();
+ }
+
+ this.document = document;
+ this.system = system;
+
+ Object templatePath = system.get("templatePath");
+ if (templatePath != null) {
+ this.path = (String) templatePath;
+ }
+
+ Object templateType = system.get("templateType");
+ if ("article".equals(templateType)) {
+ Object templateName = system.get("templateName");
+ if (templateName != null) {
+ this.name = String.valueOf(templateName);
+ }
+ } else if ("column".equals(templateType)) {
+ Object page = system.get("page");
+ if (!new Integer(1).equals(page)) {
+ this.name = name + "_" + page;
+ }
+ } else if ("search".equals(templateType)){
+ Object templateName = system.get("templateName");
+ if (templateName != null) {
+ this.name = String.valueOf(templateName);
+ } else {
+ this.name = "search";
+ }
+ } else if ("message".equals(templateType)) {
+ Object templateName = system.get("templateName");
+ if (templateName != null) {
+ this.name = String.valueOf(templateName);
+ } else {
+ this.name = "message";
+ }
+ }
+
+ }
public void parser() {
- Elements children = document.body().children();
+ Elements children = document.children();
if (CollUtil.isNotEmpty(children)) {
for (Element child : children) {
PartNode partNode = new PartNode(child, this.system);
@@ -37,6 +93,42 @@
this.add(partNode);
}
}
+ }
+
+ public void output(String outputPath) {
+ String suffix = ".html";
+ Document document = this.document;
+ List<PartNode> partNodes = this.partNodes;
+ StringBuilder sb = new StringBuilder();
+ for (PartNode partNode : partNodes) {
+ sb.append(partNode.getHtml());
+ }
+ document = Jsoup.parse(sb.toString());
+ String outPath = path(outputPath) + system.get("companyCode");
+
+ String html = document.html();
+ try {
+ String path = outPath + path(this.path);
+ File file = new File(path);
+ if (!file.exists()) {
+ file.mkdirs();
+ }
+
+ FileOutputStream outputStream = new FileOutputStream(path + this.name + suffix);
+ outputStream.write(html.getBytes());
+ outputStream.close();
+
+ document = null;
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ private String path(String path) {
+ if (!path.endsWith("/")) {
+ path = path + "/";
+ }
+ return path;
}
public String getName() {
@@ -61,14 +153,6 @@
public List<PartNode> getPartNodes() {
return partNodes;
- }
-
- public Map<String, Map<String, Object>> getParams() {
- return params;
- }
-
- public void putParams(String key, Map<String, Object> value) {
- this.params.put(key, value);
}
public void systemData(Map<String, Object> data) {
--
Gitblit v1.9.1