lym před 4 měsíci
rodič
revize
1131ad62fc

+ 1 - 1
pom.xml

@@ -131,7 +131,7 @@
                         <configuration>
                             <backend>spring-html</backend>
                             <attributes>
-                                <imagesdir>./images</imagesdir>
+                                <imagesdir>/images</imagesdir>
                                 <toc>left</toc>
                                 <icons>font</icons>
                                 <sectanchors>true</sectanchors>

+ 1 - 1
src/main/asciidoc/blog/idea/blog_idea_plugins.adoc

@@ -418,7 +418,7 @@ long 转时间,主要是日志只打时间戳时,方便快速转为可读时
 
 === wakaTime 记录Code时间分配
 
-image::images/blog/idea_plugins/waka.png[waka.png]
+image::blog/idea_plugins/waka.png[waka.png]
 
 === Darkyen's Time Tracker
 

+ 5 - 5
src/main/asciidoc/blog/java/base/practice/blog_java_base_practice_starMonitor.adoc

@@ -27,24 +27,24 @@ image:https://img.shields.io/badge/System-Windows/Linux/Mac-blue.svg[]
 
 选择你的角色:要么是寻求帮助的 `求助者`,要么是乐于助人的 `协助者`。
 
-image::images/blog/blog_starMonitor/ui-select.png[星控UI,align="center"]
+image::blog/blog_starMonitor/ui-select.png[星控UI,align="center"]
 
 === 求助者页面
 
-image::images/blog/blog_starMonitor/ui-settings.png[求助者页面,align="center"]
+image::blog/blog_starMonitor/ui-settings.png[求助者页面,align="center"]
 
 [TIP]
 ====
 可以复制星控令给协助者,以减少他人输入 IP、端口号的操作~
 ====
 
-image::images/blog/blog_starMonitor/ui-star-command.png[协助者,align="center"]
+image::blog/blog_starMonitor/ui-star-command.png[协助者,align="center"]
 
 === 求助者——高级设置
 
 设置页中可以调整高级选项,比如IP过滤和权限。
 
-[image::images/blog/blog_starMonitor/ui-settings-advance.png[高级设置,align="center"]
+[image::blog/blog_starMonitor/ui-settings-advance.png[高级设置,align="center"]
 === 协助者——尝试连接
 
 [TIP]
@@ -52,7 +52,7 @@ image::images/blog/blog_starMonitor/ui-star-command.png[协助者,align="center"
 进入协助者身份前,若复制了星控令,则会直接进入远程连接画面哦~
 ====
 
-image::images/blog/blog_starMonitor/ui-connect.png[协助者,align="center"]
+image::blog/blog_starMonitor/ui-connect.png[协助者,align="center"]
 
 == 🌟 一句话评价
 

+ 5 - 5
src/main/asciidoc/blog/java/blog_maven_central.adoc

@@ -41,7 +41,7 @@ status code: 401, reason phrase: Content access is protected by token (401)
 
 收到 `Sonatype` 官方团队邮件: link:https://central.sonatype.org/register/legacy/[sonatype账户系统迁移升级]
 
-image::images/blog/publish_jar/sonatype_email.png[邮件截图]
+image::blog/publish_jar/sonatype_email.png[邮件截图]
 
 == 解决方案(三步完成):
 
@@ -51,19 +51,19 @@ TIP: 参考了 link:https://central.sonatype.org/publish/generate-token/[Sonatyp
 
 打开 link:https://oss.sonatype.org/#welcome[https://oss.sonatype.org/#welcome] ,在右上角 `Log In` 登录账号。
 
-image::images/blog/publish_jar/nexus-gen-token.png[nexus 生成Token]
+image::blog/publish_jar/nexus-gen-token.png[nexus 生成Token]
 
 === 2. 生成 token
 
 . 点击右上方用户名,点击 **profile** 打开个人信息
 . 在下拉框,切换到 **User Token**,点击 **Access User Token** 并输入用户名、密码
 
-image::images/blog/publish_jar/nexus-gen-token.png[nexus 生成Token]
+image::blog/publish_jar/nexus-gen-token.png[nexus 生成Token]
 
 [start=3]
 . 复制你的 User Token:这两个个文本框分别为最新toekn形式的 "userName", "password" ,你可以直接复制下方的xml配置
 
-image::images/blog/publish_jar/user_token.png[nexus 生成Token]
+image::blog/publish_jar/user_token.png[nexus 生成Token]
 
 [source,xml]
 .xml
@@ -93,7 +93,7 @@ Sonatype 本次改动不仅影响老用户的使用,还影响第一次学习
 
 === 扩展:上传 jar 包流程
 
-image::images/blog/publish_jar/repo_relationship.png[上传 jar 包流程]
+image::blog/publish_jar/repo_relationship.png[上传 jar 包流程]
 
 1. 开发者上传 jar 包至 Sonatype
 2. Sonatype 将 jar 包同步至 Maven中央仓库

+ 15 - 15
src/main/asciidoc/blog/push/blog_push.adoc

@@ -11,91 +11,91 @@ canonical={canonical}
 
 === Java
 
-image::images/blog/push/java_shoulder.png[ICON,align="center"]
+image::blog/push/java_shoulder.png[ICON,align="center"]
 
 深入浅出地学习Java 和相关生态,助你成为更专业的杰出开发者,一起学习成长!
 
 === Spring
 
-image::images/blog/push/spring.jpg[ICON,align="center"]
+image::blog/push/spring.jpg[ICON,align="center"]
 
 欢迎来学习对 Spring 深入解析与实战经验,让我们一起探索 Spring 的奥秘,打造更棒的应用!
 
 === Spring Boot
 
-image::images/blog/push/spring-boot.jpg[ICON,align="center"]
+image::blog/push/spring-boot.jpg[ICON,align="center"]
 
 以真实案例出发,伸手抓住 Spring Boot 精髓,掌握 Java Web 高性能优化思路,筑起架构茶楼。
 
 === Spring Cloud
 
-image::images/blog/push/SpringCloud.jpg[docker,align="center"]
+image::blog/push/SpringCloud.jpg[docker,align="center"]
 
 轻松解锁 Spring Cloud 微服务架构技能,提升开发效率!
 
 === Linux
 
-image::images/blog/push/linux.jpg[ICON,align="center"]
+image::blog/push/linux.jpg[ICON,align="center"]
 
 分享Linux系统的使用技巧、管理方法和实用工具,助你轻松掌握并提升技能,让我们一起成为Linux高手!
 
 === Termux
 
-image::images/blog/push/termux.jpg[ICON,align="center"]
+image::blog/push/termux.jpg[ICON,align="center"]
 
 分享 Termux 的使用、玩法、工具,一起用手机轻松化身服务器,铸你黑客之梦!
 
 === Python
 
-image::images/blog/push/python.jpg[ICON,align="center"]
+image::blog/push/python.jpg[ICON,align="center"]
 
 从Python 0基础到AI、GPT,一起开启 Python 之旅,解锁人生备能源!
 
 === JavaScript
 
-image::images/blog/push/frontEnd.jpg[ICON,align="center"]
+image::blog/push/frontEnd.jpg[ICON,align="center"]
 
 探索前端领域,分享知识与学习经验!
 
 === Log / BugFix
 
-image::images/blog/push/log.jpg[ICON,align="center"]
+image::blog/push/log.jpg[ICON,align="center"]
 
 跟随我的编程日记,经历疑难问题解决的过程。让我的思考给你启示,避免一些耗时的经历直接获得宝贵的经验,Save Your Life!在这里,我们一起成长!
 
 === Tools
 
-image::images/blog/push/tools.jpg[ICON,align="center"]
+image::blog/push/tools.jpg[ICON,align="center"]
 
 深入探索Git,掌握版本控制技能,让代码管理更高效与专业!
 
 === Maven
 
-image::images/blog/push/tools.jpg[ICON,align="center"]
+image::blog/push/tools.jpg[ICON,align="center"]
 
 玩转Maven,让依赖管理更轻松!
 
 === Docker
 
-image::images/blog/push/tools.jpg[docker,align="center"]
+image::blog/push/tools.jpg[docker,align="center"]
 
 乘着 Docker 大鲸鱼,在技术的广袤海洋里更自由快速的畅游!
 
 === Github
 
-image::images/blog/push/github.jpg[docker,align="center"]
+image::blog/push/github.jpg[docker,align="center"]
 
 发现优秀开源项目,分享技术精华。挖掘编程世界的宝藏!
 
 === Data Base
 
-image::images/blog/push/database.jpg[docker,align="center"]
+image::blog/push/database.jpg[docker,align="center"]
 
 探索数据库知识,分享实践经验!
 
 === 工程效能
 
-image::images/blog/push/techSpec.jpg[docker,align="center"]
+image::blog/push/techSpec.jpg[docker,align="center"]
 
 软件工程理论知识,挖掘规模化、提效方法,优化开发运维流程,提升技术工程效率!
 

+ 1 - 1
src/main/asciidoc/blog/shoulder/blog_shoulder_intro.adoc

@@ -17,7 +17,7 @@ image::/img/banner-logo.svg[banner-logo.svg]
 
 == 核心特性详解
 
-image::images/shoulder/shoulder-arch.png[shoulder-arch]
+image::shoulder/shoulder-arch.png[shoulder-arch]
 
 === 错误码与异常处理
 

+ 3 - 3
src/main/asciidoc/blog/soft/uml_to_image.adoc

@@ -20,7 +20,7 @@ canonical={canonical}
 
 TIP: link:https://www.plantuml.com/plantuml/uml/[在线示例: www.plantuml.com/plantuml/uml ] 可在线查看和下载生成的类图(PNG、SVG)。
 
-image::images/blog/tech/plantuml.png[alt="plantuml"]
+image::blog/tech/plantuml.png[alt="plantuml"]
 
 
 TIP: `IDEA` 中使用: 可在 `IDEA` 安装 `PlantUML` 插件使用。
@@ -348,7 +348,7 @@ digraph G {
 
 TIP: link:https://dreampuf.github.io/GraphvizOnline[在线示例: dreampuf.github.io/GraphvizOnline ] 普通黑白 UI。
 
-image::images/blog/tech/graphvizOnline.png[alt="graphvizonline"]
+image::blog/tech/graphvizOnline.png[alt="graphvizonline"]
 
 
 TIP: link:https://www.devtoolsdaily.com/graphviz[在线示例: www.devtoolsdaily.com/graphviz ] 类似上面的,带了广告
@@ -359,7 +359,7 @@ TIP: link:https://graphviz.tjh.sg/[在线示例: graphviz.tjh.sg] 无法实时
 
 `Structurizr` 是 `C4模型` 的一个常用工具,支持通过 `DSL`(领域特定语言)和代码来生成系统设计图。
 
-image::images/blog/tech/structurizr.jpg[alt="structurizr"]
+image::blog/tech/structurizr.jpg[alt="structurizr"]
 
 TIP: link:https://structurizr.com/dsl[在线示例: structurizr.com/dsl]
 

+ 23 - 23
src/main/asciidoc/ref/aes.adoc

@@ -8,7 +8,7 @@ canonical={canonical}
 * 比特序列的 `XOR`
 ** A XOR B :对A和B进行异或运算,得出的结果再和B进行异或运算。
 ** 两次运算会变回A `A^B^B=A`
-** image::images/crypto/XOR.png[XOR.png]
+** image::crypto/XOR.png[XOR.png]
 
 == AES 算法简介
 
@@ -16,25 +16,25 @@ Rijndael是由比利时密码学家设计的分组密码算法,于2000年被
 
 === AES 对称加密接收
 
-image::images/crypto/aes/AES.jpg[AES]
+image::crypto/aes/AES.jpg[AES]
 
 AES 分组
 
-image::images/crypto/aes/AES-group.jpg.jpg[AES 密码分组]
+image::crypto/aes/AES-group.jpg.jpg[AES 密码分组]
 
 === 分组密码的填充
 
 - Pad1
 
-image::images/crypto/aes/AES.jpg[Pad1]
+image::crypto/aes/AES.jpg[Pad1]
 
 - Pad1
 
-image::images/crypto/aes/Pad2PKCS5.jpg[Pad2PKCS5]
+image::crypto/aes/Pad2PKCS5.jpg[Pad2PKCS5]
 
 === 流密码
 
-image::images/crypto/aes/StreamCrypto.jpg[流密码]
+image::crypto/aes/StreamCrypto.jpg[流密码]
 
 === AES 四种常见模式
 
@@ -42,36 +42,36 @@ image::images/crypto/aes/StreamCrypto.jpg[流密码]
 
 ==== ECB(电子密码本模式)
 
-image::images/crypto/aes/ECB1.jpg[ECB]
+image::crypto/aes/ECB1.jpg[ECB]
 
 ===== 对ECB模式的攻击
 
 攻击者无需破译密码就能操纵明文,典型案例如银行转账,付款人,收款人,金额,分为三个分组。攻击者只需要调换收付款人分组顺序即可实现反向转账。
 
-image::images/crypto/aes/ECB2.jpg[ECB]
+image::crypto/aes/ECB2.jpg[ECB]
 
 ==== CBC(密码分组链接,重点)footnote:[AES-CBC, https://blog.csdn.net/chengqiuming/article/details/82288851]
 
-image::images/crypto/aes/CBC.jpg[CBC]
+image::crypto/aes/CBC.jpg[CBC]
 
-image::images/crypto/aes/CBC.png[CBC]
+image::crypto/aes/CBC.png[CBC]
 
 ===== ECB模式与CBC模式的区别
 
 * ECB模式只进行了加密,而CBC模式则在加密之前进行了一次XOR。因此即使明文分组1和明文分组2的值是相等的,密文分组1和2的值也不一定是相等的。这样一来,ECB模式的缺陷在CBC模式中就不存在了。
 * 在CBC模式中,无法单独对一个中间的明文分组进行加密。例如,如果要生成密文分组3,则至少需要凑齐明文分组1、2、3才行。
 
-image::images/crypto/aes/CBC-ECB.png[CBC-ECB.png]
+image::crypto/aes/CBC-ECB.png[CBC-ECB.png]
 
 ===== 解密出错分析
 
 ** 假设CBC模式加密的密文分组中有一个分组损坏了。在这种情况下,只要密文分组的长度没有发生变化,则解密时最多只有2个分组受到数据损坏的影响。
 
-image::images/crypto/aes/CBC-badGroup.png[分组损坏]
+image::crypto/aes/CBC-badGroup.png[分组损坏]
 
 ** 假设CBC模式的密文分组中有一些比特缺失了,那么此时即便只缺失1比特,也会导致密文分组的长度发生变化,此后的分组发生错位,这样一来,缺失比特的位置之后的密文分组也就全部无法解密。见下图:
 
-image::images/crypto/aes/CBC-badLength.png[长度变化]
+image::crypto/aes/CBC-badLength.png[长度变化]
 
 ===== 对CBC模式的攻击
 
@@ -99,11 +99,11 @@ image::images/crypto/aes/CBC-badLength.png[长度变化]
 
 ==== CFB(密码反馈模式)
 
-image::images/crypto/aes/CFB.jpg[CFB]
+image::crypto/aes/CFB.jpg[CFB]
 
 CFB 并未真正通过密码学算法进行加密,即加解密其实是统一套 `XOR` 操作,安全性高度依赖 `IV` :
 
-image::images/crypto/aes/CFB.png[CFB]
+image::crypto/aes/CFB.png[CFB]
 
 ===== ECB模式与CBC模式的区别
 
@@ -111,7 +111,7 @@ image::images/crypto/aes/CFB.png[CFB]
 
 明文分组和密文分组之间并没有经过“加密”这一步骤。在CFB模式中,明文分组和密文分组之间只有一个XOR
 
-image::images/crypto/aes/CFB_CBC.jpg[CFB_CBC]
+image::crypto/aes/CFB_CBC.jpg[CFB_CBC]
 
 ===== 对CBC模式的攻击
 
@@ -119,7 +119,7 @@ Alice向Bob发送一条消息,这条消息由4个密文分组组成。主动
 
 于是,Bob解密时,4个分组中只有第1个可以解密成正确的明文分组,第2个会出错,而第3个和第4个则变成了被攻击者替换的内容(也就是昨天发送的明文内容)。攻击者没有破解密码,就成功地将以前的电文混入了新电文中。而第2个分组出错到底是通信错误呢,还是被人攻击所造成的呢?Bob是无法做出判断的。
 
-image::images/crypto/aes/CFB_repeatAttack.jpg[CFB_repeatAttack]
+image::crypto/aes/CFB_repeatAttack.jpg[CFB_repeatAttack]
 
 ==== OFB(输出反馈模式)
 
@@ -127,11 +127,11 @@ OFB模式的全称是output-Feedback模式(输出反馈模式)。在OFB模
 
 OFB模式不是通过密码算法对明文直接加密的,而是通过将“明文分组”和“密码算法的输出”进行XOR来产生“密文分组”的。
 
-image::images/crypto/aes/OFB.jpg[OFB 一览]
+image::crypto/aes/OFB.jpg[OFB 一览]
 
-image::images/crypto/aes/OFB_crypt.png[OFB 加密]
+image::crypto/aes/OFB_crypt.png[OFB 加密]
 
-image::images/crypto/aes/OFB_decrypt.png[OFB 解密]
+image::crypto/aes/OFB_decrypt.png[OFB 解密]
 
 ==== CTR(计数器模式)
 
@@ -141,14 +141,14 @@ CTR模式中,每个分组对应一个逐次累加的计数器,并通过对
 
 ===== 与OFB模式对比
 
-image::images/crypto/aes/CTR_crypt.png[OFB 加密]
+image::crypto/aes/CTR_crypt.png[OFB 加密]
 
-image::images/crypto/aes/CTR_decrypt.png[OFB 解密]
+image::crypto/aes/CTR_decrypt.png[OFB 解密]
 
 * CTR模式和OFB模式都属于流密码。
 * OFB模式是将加密的输出反馈到输入,而CTR模式则是将计数器的值用作输入。
 
-image::images/crypto/aes/CTR_OFB.png[CTR_OFB]
+image::crypto/aes/CTR_OFB.png[CTR_OFB]
 
 ==== GCM(Galois/Counter Mode)
 

+ 1 - 1
src/main/asciidoc/seo/seo.adoc

@@ -274,7 +274,7 @@ https://blog.csdn.net/qq_36129701/article/details/104789902
 示例:site:doc.itlym.cn
 ----
 
-image::images/blog/seo/seo_site_check.png[seo_site_check]
+image::blog/seo/seo_site_check.png[seo_site_check]
 
 == 异常情况
 

+ 1 - 1
src/main/asciidoc/shoulder/appendix/shoulder_related.adoc

@@ -13,7 +13,7 @@ image:/img/banner-logo.svg[banner-logo.svg]
 [TIP]
 ****
 
-image::images/shoulder/shoulder_releated_projects.png[shoulder_releated_projects.png]
+image::shoulder/shoulder_releated_projects.png[shoulder_releated_projects.png]
 
 ====
 

+ 1 - 1
src/main/asciidoc/shoulder/module/shoulder_core.adoc

@@ -313,7 +313,7 @@ public class MonitorRunnableAutoConfiguration {
 ====
 
 
-image::images/shoulder/shoulder_core_util.png[]
+image::shoulder/shoulder_core_util.png[]
 
 `Shoulder` 在 JSON 序列化上默认使用的是 `Jackson`(与 `Spring-Boot` 一致)。
 

+ 2 - 2
src/main/asciidoc/shoulder/module/shoulder_light.adoc

@@ -147,13 +147,13 @@ spring:
 
 设置启动后,访问 `link:http://localhost:8080/h2-console[http://localhost:8080/h2-console]` ,输入您配置的 `数据库url` `用户名`、`密码` 登录。
 
-image::images/shoulder/h2-console-login.png[]
+image::shoulder/h2-console-login.png[]
 
 TIP: 左上角可以调整语言信息,如调整为中文;这个界面不仅可连接 `H2`,还可以连接 `Mysql`、`Postgresql` 等。
 
 登录后可以看到 `H2` 提供了一个简单的 `UI` 管理界面,即可查看数据库中的表结构,编写 `SQL` 查看数据库内容。
 
-image::images/shoulder/h2-console-login.png[]
+image::shoulder/h2-console-login.png[]
 
 TIP: 该章节工程示例可参见 link:https://github.com/ChinaLym/shoulder-framework-demo/tree/main/demo2[Shoulder-Demo2]
 

+ 1 - 1
src/main/asciidoc/shoulder/shoulder.adoc

@@ -79,7 +79,7 @@ image::/img/banner-logo.svg[shoulder-banner-logo.svg,link="https://doc.itlym.cn/
 
 == 🏗️ 架构图
 
-image::images/shoulder/shoulder-arch.png[shoulder-archtech 架构图]
+image::shoulder/shoulder-arch.png[shoulder-archtech 架构图]
 
 == 🚀 快速开始
 

+ 1 - 1
src/main/asciidoc/specs/base/i18n.adoc

@@ -261,7 +261,7 @@ Spring 中提供的三个实现类
 * SpringSecurityMessageSource
 ** The default MessageSource used by Spring Security.
 
-image::images/i18n/messageSource.png[messageSource]
+image::i18n/messageSource.png[messageSource]
 
 若未成功翻译响应策略:
 

+ 3 - 3
src/main/asciidoc/specs/devOps/cloud-artifact.adoc

@@ -7,11 +7,11 @@ canonical={canonical}
 
 == 🏗️ 设计构思
 
-image::images/cloud/cloud-function.png[cloud-function]
+image::cloud/cloud-function.png[cloud-function]
 
 平台应有能力
 
-image::images/cloud/cloud-platform.png[cloud-platform]
+image::cloud/cloud-platform.png[cloud-platform]
 
 * SaaS
 ** 最上层专注于业务的系统
@@ -73,7 +73,7 @@ TODO docker 脚本
 
 === K8s
 
-image::images/cloud/k8s/k8s.png[k8s]
+image::cloud/k8s/k8s.png[k8s]
 
 . *ControllerManage* 负责维护集群的状态,比如故障检测,扩缩容,滚动更新等等。
 . *Scheduler* 负责资源的调度,按照预定的策略把pod调度到指定的node节点