From 6a93d3d7c3c3e61339bde84c30056cad08f21e6c Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 07 Jul 2022 17:00:52 +0800 Subject: [PATCH] fix template static path --- src/main/java/com/xcong/farmer/cms/core/template/Configuration.java | 1 + src/main/java/com/xcong/farmer/cms/core/node/Template.java | 4 ++-- src/main/java/com/xcong/farmer/cms/core/node/AttrNode.java | 18 ++++++++++++++++-- 3 files changed, 19 insertions(+), 4 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 27d74e6..c85e75e 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 @@ -7,6 +7,7 @@ import com.xcong.farmer.cms.core.handler.DataParserHandler; import com.xcong.farmer.cms.core.tag.TagsEnum; import com.xcong.farmer.cms.core.template.Configuration; +import com.xcong.farmer.cms.core.template.TemplateConfiguration; import groovy.lang.Binding; import groovy.lang.GroovyShell; import org.apache.commons.text.StringSubstitutor; @@ -79,17 +80,30 @@ this.element.attr("src", STATIC_URL + src); } } + + if ("link".equals(this.element.tagName())) { + String src = this.element.attr("href"); + if (StrUtil.isNotBlank(STATIC_URL)) { + this.element.attr("href", STATIC_URL + src); + } + } + + if ("script".equals(this.element.tagName())) { + String src = this.element.attr("src"); + if (StrUtil.isNotBlank(STATIC_URL)) { + this.element.attr("src", STATIC_URL + src); + } + } } public void parser() { + staticPath(); // 判断是否为最小节点,如果是且没有特殊标签,则跳过清空 if (!isNeedEmpty()) { return; } this.element.empty(); - - staticPath(); Attributes attributes = this.element.attributes(); if (attributes.isEmpty()) { return; 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 9e2e5b9..78e6476 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 @@ -77,7 +77,7 @@ } 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); @@ -96,7 +96,7 @@ for (PartNode partNode : partNodes) { sb.append(partNode.getHtml()); } - document.body().empty().html(sb.toString()); + document = Jsoup.parse(sb.toString()); String outPath = path(outputPath); String html = document.html(); diff --git a/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java b/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java index 897392b..766240b 100644 --- a/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java +++ b/src/main/java/com/xcong/farmer/cms/core/template/Configuration.java @@ -20,6 +20,7 @@ Configuration.templatePath = templatePath; Configuration.outputPath = outputPath; Configuration.BASE_URL = baseUrl; + Configuration.STATIC_URL = staticUrl; } public static Map<String, String> templateCode = new HashMap<>(); -- Gitblit v1.9.1