From 444994056fb1670de355e250e3dc461c247d35f4 Mon Sep 17 00:00:00 2001 From: qinhua <352484005@qq.com> Date: Sat, 13 Nov 2021 02:06:08 +0800 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20=20=E4=BF=AE=E5=A4=8D=201.0.1=20?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E7=BC=BA=E9=99=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 30 +- journals.ftl | 2 +- mail_template/mail_notice.ftl | 4 +- mail_template/mail_reply.ftl | 4 +- package.json | 5 +- post.ftl | 17 +- settings.yaml | 92 ++-- source/css/joe.global.less | 182 ++++---- source/css/joe.journals.less | 14 +- source/css/joe.post.less | 37 ++ source/css/joe.responsive.less | 6 +- source/css/joe.theme.less | 28 +- source/css/min/joe.global.min.css | 2 +- source/css/min/joe.journals.min.css | 2 +- source/css/min/joe.post.min.css | 2 +- source/css/min/joe.responsive.min.css | 2 +- source/css/min/joe.theme.min.css | 2 +- source/js/joe.common.js | 5 +- source/js/joe.index.js | 18 +- source/js/joe.journals.js | 1 - source/js/joe.photos.js | 1 - source/js/joe.post.js | 1 + source/js/min/joe.common.min.js | 2 +- source/js/min/joe.common.min.js.gz | Bin 5183 -> 5185 bytes source/js/min/joe.index.min.js | 2 +- source/js/min/joe.index.min.js.gz | Bin 5296 -> 5289 bytes source/js/min/joe.photos.min.js | 2 +- source/js/min/joe.utils.min.js | 2 +- source/utils/joe.utils.js | 597 +++++++++++++------------- source/utils/update-version.js | 28 ++ template/common/footer.ftl | 42 +- template/config.ftl | 56 +-- template/macro/list_index_async.ftl | 2 +- template/macro/tail.ftl | 2 +- template/module/article.ftl | 2 +- template/module/link.ftl | 2 +- template/module/post_operate.ftl | 4 +- template/module/post_status.ftl | 17 + theme.yaml | 2 +- webpack.config.js | 4 + 40 files changed, 716 insertions(+), 507 deletions(-) create mode 100644 source/utils/update-version.js create mode 100644 template/module/post_status.ftl diff --git a/README.md b/README.md index 8d093a0..cc6dce8 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@

-> `Joe2.0` 为 [Typecho Themes Joe](https://github.com/HaoOuBa/Joe) 主题的 Halo 版,由于 [社区](https://bbs.halo.run/) 之前有兄弟移植过,这次就叫 Joe2.0 吧,此次在原版主题上做了不少修改和适配,由原版的 php 模板调整为 freemarker, 移除了平台无关的特性,同时增加了一些平台特定的配置,保持灵活性的同时最大限度的移植了原版功能,希望大家喜欢 ❤️
+> `Joe2.0` 是 [Typecho Themes Joe](https://github.com/HaoOuBa/Joe) 主题的 Halo 版,由于 [社区](https://bbs.halo.run/) 之前有兄弟移植过,这次就叫 Joe2.0 吧,此次在原版主题上做了不少修改和适配,由原版的 php 模板调整为 freemarker, 移除了平台无关的特性,同时增加了一些平台特定的配置,保持灵活性的同时最大限度的移植了原版功能,希望大家喜欢 ❤️
> 🌸 同时也要在此感谢原作者 [Joe](https://github.com/HaoOuBa)。
@@ -52,7 +52,9 @@ ### ⚠️ 注意: -- 安装主题后请务必到 `后台管理 - 博客设置 - 高级选项` 中开启 `API服务` 并配置 `Access key` 为 `joe2.0`,不然部分用到 `Content API` 的页面会请求失败,导致报错。 +- 安装主题后请务必到 `后台管理 - 博客设置 - 高级选项` 中开启 `API服务` 并配置 `Access key` 为 `joe2.0`(注意:这里没必要一定是 joe2.0,可以配置为任意值),不然部分用到 `Content API` 的页面会请求失败,导致报错。 + + Tip:如果你后台管理中之前已经配置了其它的 `Access Key`(内容不是 `joe2.0`),那么需要你到本主题设置中的 `基本设置` 配置一下 `AccessKey<必填>`,和你后台中的一致即可(切记一致才行,且不要填写中文或特殊字符)。 - 主题升级后配置项变化较大时可能报错,导致页面渲染不出来。只需要进入当前主题的设置界面执行一下保存操作来更新旧的配置,然后再访问页面即可,有时可能需要先切换到其它主题后再切回来才能看到最新的效果。 @@ -257,9 +259,25 @@ Halo 已经提供好了邮件服务,我们只需要配置相关参数即可。 #### 5、如何配置留言页? -目前模板中的留言页面是自定义页面,所以需要你进入 `后台管理-页面` ,点击 `新建页面` 添加留言页,然后把模板目录中的 `leaving.ftl` 的内容复制进去保存,最后进入 `外观-菜单` 添加刚才自定义的留言页,保存后刷新前台页面即可。 +目前主题中的留言页面是自定义页面,所以需要你进入 `后台管理-页面` ,点击 `新建页面` 添加留言页,然后把模板目录中的 `leaving.ftl` 的内容复制进去保存,最后进入 `外观-菜单` 添加刚才自定义的留言页,保存后刷新前台页面即可。 + +#### 6、自己修改了主题中的 CSS 或 JS 后为什么还是用的以前的? + +目前主题默认使用 `CDN` 加载静态资源,要使用自己修改后的版本,需要到 `后台管理-外观-主题设置-其它` 中关闭 `使用CDN加载静态资源` 即可生效。但关闭后同时也失去了 `CDN` 加载的优势,如果你不想关闭,就需要自己单独修改文件引入处的链接。 + +比如我修改了 `joe.index.min.css` 这个文件,那么就需要到 `template/module/link.ftl` 中找到引入它的地方: + +```html + +``` + +把其中的 `${RES_BASE_URL}` 修改为主题自身路径 `${theme_base!}` 即可。 -#### 6、如何通过元数据为文章详情页进行单独的功能配置? +#### 7、如何通过元数据为文章详情页进行单独的功能配置? - 很多时候,我们希望能够单独控制文章详情页的功能,如分享、打赏、复制、点赞、评论、目录等。主题目前已经为文章详情页暴露了常用的元数据配置,具体大家可以查看 `theme.yaml` 文件中的 `postMetaField` 字段。 @@ -267,11 +285,11 @@ Halo 已经提供好了邮件服务,我们只需要配置相关参数即可。 ![文章详情页元数据配置](https://cdn.jsdelivr.net/gh/qinhua/halo-theme-joe2.0@master/source/img/dp/metas.png) -#### 7、如何查看博客后台日志? +#### 8、如何查看博客后台日志? 有时博客访问不了,想查看后台日志,可以进入 `后台管理-系统-小工具-实时日志` 查看,生成环境可能需要先开启彩蛋(连续点击 `Halo Dashboard` 10 次触发),更多请参见 [Halo 隐藏功能](https://halo.run/archives/use-hidden-features)。 -#### 8、Freemarker 相关小技巧 +#### 9、Freemarker 相关小技巧 主要是本人在开发主题过程中积累的一些 `Freemarker` 技能,希望能帮到需要的人。请参见 [FreeMarker 常用技巧](https://www.yuque.com/docs/share/f8a15e0c-3bf2-4c93-b2ef-e3bf2357d09c) diff --git a/journals.ftl b/journals.ftl index 10c1ebc..e2e943d 100644 --- a/journals.ftl +++ b/journals.ftl @@ -29,7 +29,7 @@ - <#include "empty.ftl"> - <@empty type="index" text="${settings.home_empty_text!'暂无文章数据'}"/> + <@empty type="index" text="${settings.home_empty_text!'暂无文章数据'}" isAsync="true"/> diff --git a/template/macro/tail.ftl b/template/macro/tail.ftl index ddb2c9f..782bd28 100644 --- a/template/macro/tail.ftl +++ b/template/macro/tail.ftl @@ -9,7 +9,7 @@ - <#if settings.enable_auto_switch_mode!=true> + <#if settings.enable_auto_switch_mode!=true && settings.static_mode == "off">
diff --git a/template/module/article.ftl b/template/module/article.ftl index de37cf6..100d267 100644 --- a/template/module/article.ftl +++ b/template/module/article.ftl @@ -4,7 +4,7 @@
  • 推荐文章
  • <#--
  • --> - <#if settings.qq_group??> + <#if settings.qq_group?? && settings.qq_group!=''>
    diff --git a/template/module/link.ftl b/template/module/link.ftl index fe1f2f4..11c5d53 100644 --- a/template/module/link.ftl +++ b/template/module/link.ftl @@ -5,7 +5,7 @@ <#include "key_css.ftl"> - + <#if settings.iconfont??> diff --git a/template/module/post_operate.ftl b/template/module/post_operate.ftl index 69f2cd1..d35a882 100644 --- a/template/module/post_operate.ftl +++ b/template/module/post_operate.ftl @@ -5,7 +5,7 @@
    <#assign enable_share = metas.enable_share!'true'> - <#if enable_share=='true' && settings.enable_share==true> + <#if enable_share=='true' && settings.enable_share==true && post.status!='DRAFT'>
    <#assign enable_donate = metas.enable_donate!'true'> - <#if enable_donate=='true' && settings.enable_donate==true> + <#if enable_donate=='true' && settings.enable_donate==true && post.status!='DRAFT'> <#include "donate.ftl">
    \ No newline at end of file diff --git a/template/module/post_status.ftl b/template/module/post_status.ftl new file mode 100644 index 0000000..b97f1b6 --- /dev/null +++ b/template/module/post_status.ftl @@ -0,0 +1,17 @@ +<#if post.status!='PUBLISHED'> + <#if post.status=='DRAFT'> +
    + 预览模式 +
    + + <#if post.status=='INTIMATE'> +
    + 私密文章 +
    + + <#if post.status=='RECYCLE'> +
    + 已回收的文章 +
    + + \ No newline at end of file diff --git a/theme.yaml b/theme.yaml index 78c38f8..140d98d 100644 --- a/theme.yaml +++ b/theme.yaml @@ -7,7 +7,7 @@ description: Halo主题 Joe2.0 logo: https://bbchin.com/logo website: https://bbchin.com repo: https://github.com/qinhua/halo-theme-joe2.0 -version: 1.0.1 +version: 1.0.2 require: 1.4.11 # 文章页 meta 变量 postMetaField: diff --git a/webpack.config.js b/webpack.config.js index e56ca6e..c618d0a 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -1,5 +1,6 @@ const path = require("path"); const CompressionPlugin = require("compression-webpack-plugin"); +const { CleanWebpackPlugin } = require("clean-webpack-plugin"); const resolve = (name) => path.resolve(__dirname, name); @@ -33,6 +34,9 @@ module.exports = { ], }, plugins: [ + new CleanWebpackPlugin({ + cleanOnceBeforeBuildPatterns: [path.join(process.cwd(), "source/js/min")], + }), new CompressionPlugin({ filename: "[path][base].gz", algorithm: "gzip",