diff --git a/_config.butterfly.yml b/_config.butterfly.yml
index e1e11d1..73301d4 100644
--- a/_config.butterfly.yml
+++ b/_config.butterfly.yml
@@ -16,7 +16,8 @@ beautify:
title-prefix-icon: '\f0c1'
title-prefix-icon-color: "#F47466"
# 加載動畫 Loading Animation
-preloader: true
+preloader:
+ true
# enable: false
# source
# 1. fullpage-loading
@@ -28,7 +29,7 @@ preloader: true
# 图片格式 background: url(http://xxxxxx.com/xxx.jpg)
# 顔色 background: '#49B202'
# 留空 显示白色
-background: '#efefef'
+background: "#efefef"
# background: url(https://i.loli.net/2019/09/09/5oDRkWVKctx2b6A.png)
highlight_theme: mac light
@@ -39,7 +40,6 @@ code_word_wrap: true
index_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/BBC19066-E176-47C2-9D22-48C81EE5DF6B.jpeg
archive_img: https://gcore.jsdelivr.net/gh/volantis-x/cdn-wallpaper/abstract/67239FBB-E15D-4F4F-8EE8-0F1C9F3C4E7C.jpeg
-
# Footer设置
since: 2022
footer_custom_text: Hi, welcome to my Xiaoda blog!
@@ -74,8 +74,9 @@ aplayerInject:
per_page: true
inject:
head:
+ -
bottom:
- # 7427714271
+ # 7427714271
-
-
pjax:
@@ -86,4 +87,4 @@ pjax:
# fab fa-github: https://github.com/xxxxx || Github
# fas fa-envelope: mailto:xxxxxx@gmail.com || Email
wordcount:
- enable: true
\ No newline at end of file
+ enable: true
diff --git a/_config.yml b/_config.yml
index 4a55c61..9d35856 100644
--- a/_config.yml
+++ b/_config.yml
@@ -5,11 +5,11 @@
# Site
title: XiaodaのBlog
#subtitle: 'XiaodaBlog'
-description: '欢迎访问小达的博客!'
+description: "欢迎访问小达的博客!"
keywords: 编程
author: Wen Yongda
language: zh-CN
-timezone: 'Asia/Shanghai'
+timezone: "Asia/Shanghai"
# URL
## Set your site url here. For example, if you use GitHub Page, set url as 'https://username.github.io/project'
@@ -37,7 +37,7 @@ titlecase: false # Transform title into titlecase
external_link:
enable: true # Open external links in new tab
field: site # Apply to the whole site
- exclude: ''
+ exclude: ""
filename_case: 0
render_drafts: false
post_asset_folder: true
@@ -50,21 +50,21 @@ highlight:
enable: true
line_number: false
auto_detect: false
- tab_replace:
+ tab_replace:
# wrap: true
hljs: true
prismjs:
enable: false
preprocess: true
line_number: false
- tab_replace: ''
+ tab_replace: ""
# Home page setting
# path: Root path for your blogs index page. (default = '')
# per_page: Posts displayed per page. (0 = disable pagination)
# order_by: Posts order. (Order by date descending by default)
index_generator:
- path: ''
+ path: ""
per_page: 10
order_by: -date
@@ -84,7 +84,7 @@ meta_generator: true
date_format: YYYY-MM-DD
time_format: HH:mm:ss
## updated_option supports 'mtime', 'date', 'empty'
-updated_option: 'mtime'
+updated_option: "mtime"
# Pagination
## Set per_page to 0 to disable pagination
@@ -106,10 +106,10 @@ theme: butterfly
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
- type: 'git'
- repo: https://gitee.com/wenyongda/xiaoda-blog.git
+ type: "git"
+ repo: https://github.com/wenyongda/XiaodaBlog.git
branch: master
aplayer:
meting: true
- asset_inject: false
\ No newline at end of file
+ asset_inject: false
diff --git a/source/_posts/Docker.md b/source/_posts/Docker.md
index eaabf3b..d666c45 100644
--- a/source/_posts/Docker.md
+++ b/source/_posts/Docker.md
@@ -205,6 +205,127 @@ Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一
### 使用 Dockerfile 定制镜像
+1. 定制一个 nginx 镜像(构建好的镜像内会有一个 /usr/share/nginx/html/index.html 文件)
+ 在一个空目录下,新建一个名为 Dockerfile 文件,并在文件内添加以下内容:
+
+ ```dockerfile
+ FROM nginx
+ RUN echo '这是一个本地构建的nginx镜像' > /usr/share/nginx/html/index.html
+ ```
+
+2. FROM 和 RUN 指令的作用
+ **FROM**: 定制的镜像都是基于 FROM 的镜像,这里的 nginx 就是定制需要的基础镜像。后续的操作都是基于 nginx。
+ **RUN**: 用于执行后面跟着的命令行命令。有以下俩种格式:
+ shell 格式:
+
+ ```dockerfile
+ RUN <命令行命令>
+ # <命令行命令> 等同于,在终端操作的 shell 命令。
+ ```
+
+ exec 格式:
+
+ ```dockerfile
+ RUN ["可执行文件", "参数1", "参数2"]
+ # 例如:
+ # RUN ["./test.php", "dev", "offline"] 等价于 RUN ./test.php dev offline
+ ```
+
+ **注意**: Dockerfile 的指令每执行一次都会在 docker 上新建一层。所以过多无意义的层,会造成镜像膨胀过大。例如:
+
+ ```dockerfile
+ FROM centos
+ RUN yum -y install wget
+ RUN wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz"
+ RUN tar -xvf redis.tar.gz
+ ```
+
+ 以上执行会创建 3 层镜像。可简化为以下格式:
+
+ ```dockerfile
+ FROM centos
+ RUN yum -y install wget \
+ && wget -O redis.tar.gz "http://download.redis.io/releases/redis-5.0.3.tar.gz" \
+ && tar -xvf redis.tar.gz
+ ```
+
+ 如上,以 **&&** 符号连接命令,这样执行后,只会创建 1 层镜像。
+
+### 开始构建镜像
+
+在 Dockerfile 文件的存放目录下,执行构建动作。
+
+以下示例,通过目录下的 Dockerfile 构建一个 nginx:v3(镜像名称:镜像标签)。
+
+**注**: 最后的`.`代表本次执行的上下文路径,下一节会介绍。
+
+```shell
+docker build -t nginx:v3 .
+```
+
+
+
+### 上下文路径
+
+上一节中,有提到指令最后一个 **.** 是上下文路径,那么什么是上下文路径呢?
+
+```shell
+docker build -t nginx:v3 .
+```
+
+上下文路径,是指 docker 在构建镜像,有时候想要使用到本机的文件(比如复制),docker build 命令得知这个路径后,会将路径下的所有内容打包。
+
+**解析**:由于 docker 的运行模式是 C/S。我们本机是 C,docker 引擎是 S。实际的构建过程是在 docker 引擎下完成的,所以这个时候无法用到我们本机的文件。这就需要把我们本机的指定目录下的文件一起打包提供给 docker 引擎使用。
+
+如果未说明最后一个参数,那么默认上下文路径就是 Dockerfile 所在的位置。
+
+**注意**:上下文路径下不要放无用的文件,因为会一起打包发送给 docker 引擎,如果文件过多会造成过程缓慢。
+
+### 指令详解
+
+| Dockerfile 指令 | 说明 |
+| --------------- | ------------------------------------------------------------ |
+| FROM | 指定基础镜像,用于后续的指令构建。 |
+| MAINTAINER | 指定Dockerfile的作者/维护者。(已启用,推荐使用LABEL指令) |
+| LABEL | 添加镜像的元数据,使用键值对的形式。 |
+| RUN | 在构建过程中在镜像中执行命令。 |
+| CMD | 指定容器创建时的默认命令。(可以被覆盖) |
+| ENTRYPOINT | 设置容器创建时的主要命令。(不可被覆盖) |
+| EXPOSE | 声明容器运行时监听的特定网络端口。 |
+| ENV | 在容器内部设置环境变量。 |
+| ADD | 将文件、目录或远程URL复制到镜像中。 |
+| COPY | 将文件或目录复制到镜像中。 |
+| VOLUME | 为容器创建挂载点或声明卷。 |
+| WORKDIR | 设置后续指令的工作目录。 |
+| USER | 指定后续指令的用户上下文。 |
+| ARG | 定义在构建过程中传递给构建器的变量,可使用"docker build"命令设置。 |
+| ONBUILD | 当该镜像被用作另一个构建过程的基础时,添加触发器。 |
+| STOPSIGNAL | 设置发送给容器以退出的系统调用信号。 |
+| HEALTHCHECK | 定义周期性检查容器健康状态的命令。 |
+| SHELL | 覆盖Docker中默认的shell,用于RUN、CMD和ENTRYPOINT。 |
+
+#### COPY
+
+复制指令,从上下文目录中复制文件或者目录到容器里指定路径。
+
+格式:
+
+```dockerfile
+COPY [--chown=:] <源路径1>... <目标路径>
+COPY [--chown=:] ["<源路径1>",... "<目标路径>"]
+```
+
+**[--chown=:]**:可选参数,用户改变复制到容器内文件的拥有者和属组。
+
+**<源路径>**:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 Go 的 filepath.Match 规则。例如:
+
+```dockerfile
+COPY hom* /mydir/
+COPY hom?.txt /mydir/
+```
+
+**<目标路径>**:容器内的指定路径,该路径不用事先建好,路径不存在的话,会自动创建。
+
# Docker 实例
@@ -215,14 +336,11 @@ Dockerfile 是一个用来构建镜像的文本文件,文本内容包含了一
```shell
docker pull mariadb:10.2
-```
-
-```shell
docker images
docker run --name mariadb10.2 -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:10.2
```
-## Docker Redis主从复制集群搭建
+## Docker Redis 主从复制集群搭建
拉取redis4.0.11镜像
@@ -294,7 +412,7 @@ info Replication
auth
```
-## Docker Redis哨兵高可用集群搭建
+## Docker Redis 哨兵高可用集群搭建
## Docker 安装 code-server
@@ -384,7 +502,7 @@ docker pull mcr.microsoft.com/mssql/server
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=Wyd210213" -p 1433:1433 --memory 2000M --name sqlserver2022 -v /etc/sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server
```
-## Docker安装PostgreSQL
+## Docker 安装 PostgreSQL
```shell
docker pull postgres:latest
diff --git a/source/_posts/Docker/dockerfile2.png b/source/_posts/Docker/dockerfile2.png
new file mode 100644
index 0000000..87c1698
Binary files /dev/null and b/source/_posts/Docker/dockerfile2.png differ
diff --git a/source/_posts/Docker/image-20231101093813381.png b/source/_posts/Docker/image-20231101093813381.png
new file mode 100644
index 0000000..9172612
Binary files /dev/null and b/source/_posts/Docker/image-20231101093813381.png differ
diff --git a/source/_posts/Hexo.md b/source/_posts/Hexo.md
index 7bac536..fd5e13e 100644
--- a/source/_posts/Hexo.md
+++ b/source/_posts/Hexo.md
@@ -51,3 +51,31 @@ hexo new [layout]
```
新建一篇文章。如果没有设置 `layout` 的话,默认使用 [_config.yml](https://hexo.io/zh-cn/docs/configuration) 中的 `default_layout` 参数代替。如果标题包含空格的话,请使用引号括起来。
+
+## 鼠标样式修改
+
+1. 在\themes\butterfly\source\css路径下创建一个mouse.css文件,在文件中添加如下代码:
+ ```css
+ body {
+ cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/default.cur),
+ default;
+ }
+ a,
+ img {
+ cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/pointer.cur),
+ default;
+ }
+ ```
+
+
+
+2. 打开站点的主题配置文件_config.butterfly.yml,找到inject,在head处直接引入该文件:
+ ```yaml
+ inject:
+ head:
+ -
+ ```
+
+
+
+3. 重新部署,即可看到效果
diff --git a/source/_posts/Mybatis基本介绍.md b/source/_posts/Mybatis基本介绍.md
index a25bc15..004457d 100644
--- a/source/_posts/Mybatis基本介绍.md
+++ b/source/_posts/Mybatis基本介绍.md
@@ -1,6 +1,8 @@
# Mybatis
-***
+---
+
+
## Maven引入Mybatis
diff --git a/source/_posts/PowerShell.md b/source/_posts/PowerShell.md
index 5bd9963..27bdbac 100644
--- a/source/_posts/PowerShell.md
+++ b/source/_posts/PowerShell.md
@@ -27,3 +27,36 @@ Set-Content <文件名>.<扩展名后缀> -value "<内容>"
Set-Content my.ini -value ""
```
+## 新建文件夹
+
+```powershell
+New-Item data -ItemType Directory
+```
+
+# 做 sudo 命令
+
+在Windows系统上sudo对应的就是管理员权限了。
+
+一般使用Powershell时,并不会管理员启动,当执行需要权限的命令(比如net start mysql),就需要以管理员打开新的窗口。
+
+为了一步到位,这里给powershell创建一个`alias` -> `sudo` 来运行需要管理员权限的命令。
+
+在文档目录中(在`powershell`执行`$profile`即可输出此文件路径),新建文件夹`WindowsPowerShell`,新建文件`Microsoft.PowerShell_profile.ps1`。
+
+> 此文件是在启动Powershell时执行的脚本。set-alias 在退出后就会失效,所以放到启动脚本中。
+
+追加如下代码,**然后重启Powershell窗口。**
+
+```text
+function _sudo {
+ $ss = "$args ; pause"
+ Start-Process powershell -Verb runAs -ArgumentList $ss
+}
+set-alias -name sudo -value _sudo
+```
+
+保存后发现无法加载,因为默认不加载外部脚本,管理员权限下 powershell 运行:
+
+```text
+set-ExecutionPolicy RemoteSigned
+```
diff --git a/source/_posts/Rust.md b/source/_posts/Rust.md
index 8f4368d..874cd78 100644
--- a/source/_posts/Rust.md
+++ b/source/_posts/Rust.md
@@ -209,9 +209,9 @@ println!("a is {0}, a again is {0}", a);
```
在`{}`之间可以放一个数字,它将把之后的可变参数当做一个数组来访问,下标从0开始。
-
+{% raw %}
如果要输出 **{** 或 **}** 怎么办呢?格式字符串通过 **{{** 和 **}}** 分别转义代表 { 和 } 。但是其他常用转义字符与 C 语言里的转义字符一样,都是反斜杠开头的形式。
-
+{% endraw %}
```rust
fn main() {
println!("{{}}");
diff --git a/source/_posts/Vim.md b/source/_posts/Vim.md
index b50557b..c1fd7d4 100644
--- a/source/_posts/Vim.md
+++ b/source/_posts/Vim.md
@@ -17,6 +17,170 @@ vim 有6种工作模式。
vim 的各种工作模式可以通过不同的键进行切换,用户统一使用`ESC`键返回到普通模式。
-# 光标移动命令
+## 命令模式
+
+**用户刚刚启动vim,便进入里命令模式**
+
+此状态下敲击键盘动作会被 Vim 识别为命令,而非输入字符,比如我们此时按下`i`,并不会输入一个字符,`i`被当作了一个命令。
+
+以下是普通模式常用的几个命令:
+
+- `i` -- 切换到输入模式,在光标当前位置开始输入文本。
+- `x` -- 删除当前光标所在处的字符。
+- `:` -- 切换到底线命令模式,以在最底一行输入命令。
+- `a` -- 进入插入模式,在光标下一个位置开始输入文本。
+- `o` -- 在当前行的下方插入一个新行,并进入插入模式。
+- `O` -- 在当前行的上方插入一个新行,并进入插入模式。
+- `dd` -- 删除当前行。
+- `yy` -- 复制当前行。
+- `p`(小写)-- 粘贴剪贴板内容到光标下方。
+- `P`(大写)-- 粘贴剪贴板内容到光标上方。
+- `u` -- 撤销上一次操作。
+- `Ctrl + r` -- 重做上一次撤销的操作。
+- `:w` -- 保存文件。
+- `:q` -- 退出 Vim 编辑器
+- `:q!` -- 强制退出 Vim 编辑器,不保存修改。
+
+若要编辑文本,只需要启动 Vim,进入了命令模式,按下`i`切换到输入模式即可。
+
+命令模式只有一些最基本的命令,因此仍要依靠**底线命令行模式**输入更多命令。
+
+## 输入模式
+
+在命令模式下按下`i`就进入了输入模式,使用`Esc`键可以返回到普通模式。
+
+在输入模式中,可以使用以下按键:
+
+- **字符按键以及Shifi组合**,输入字符
+- **ENTER**,回车键,换行
+- **BACK SPACE**,退格键,删除光标前一个字符
+- **DEL**,删除键,删除光标后一个字符
+- **方向键**,在文本中移动光标
+- **HOME/END**,移动光标到行首/行尾
+- **Page Up/Page Down**,上/下翻页
+- **Insert**,切换光标输入为输入\替换模式,光标将变成竖线/下划线
+- **ESC**,退出输入模式,切换到命令模式
+
+## 底线命令模式
+
+在命令模式下按下`:`(英文冒号)就进入了底线命令模式。
+
+底线命令模式可以输入单个或多个字符的命令,可用的命令非常多。
+
+在底线命令模式中,基本的命令有(已经省略了冒号):
+
+- :w: 保存文件
+- :q: 退出 Vim 编辑器
+- :wq: 保存文件并退出 Vim 编辑器
+- :q!: 强制退出 Vim 编辑器,不保存修改
+
+按`ESC`键可随时退出底线命令模式。
+
+简单的说,我们可以将这三个模式想成底下的图标来表示:
+
+
+
+# Vim 的按键说明
+
+## 第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
+
+
+
+
+
+ | 移动光标的方法 |
+
+
+
+
+ | h 或 向左箭头键(←) |
+ 光标向左移动一个字符 |
+
+
+ | j 或 向下箭头键(↓) |
+ 光标向下移动一个字符 |
+
+
+ | k 或 向上箭头键(↑) |
+ 光标向上移动一个字符 |
+
+
+ | l 或 向右箭头键(→) |
+ 光标向右移动一个字符 |
+
+
+ | 如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可! |
+
+
+ | Ctrl + f |
+ 屏幕『向下』移动一页,相当于 Page Down 按键 (常用) |
+
+
+ | Ctrl + b |
+ 屏幕『向上』移动一页,相当于 Page Up 按键 (常用) |
+
+
+ | Ctrl + d |
+ 屏幕『向下』移动半页 |
+
+
+ | Ctrl + u |
+ 屏幕『向上』移动半页 |
+
+
+ | + |
+ 光标移动到非空格符的下一行 |
+
+
+ | - |
+ 光标移动到非空格符的上一行 |
+
+
+ | n『空格』 |
+ 那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20『空格』 则光标会向后面移动 20 个字符距离。 |
+
+
+ | 0 或功能键[Home] |
+ 这是数字『 0 』:移动到这一行的最前面字符处 (常用) |
+
+
+ | $ 或功能键[End] |
+ 移动到这一行的最后面字符处(常用) |
+
+
+ | H |
+ 光标移动到这个屏幕的最上方那一行的第一个字符 |
+
+
+ | M |
+ 光标移动到这个屏幕的中央那一行的第一个字符 |
+
+
+ | L |
+ 光标移动到这个屏幕的最下方那一行的第一个字符 |
+
+
+ | G |
+ 移动到这个档案的最后一行(常用) |
+
+
+ | nG |
+ n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu) |
+
+
+ | gg |
+ 移动到这个档案的第一行,相当于 1G 啊! (常用) |
+
+
+ | n『 Enter 』 |
+ n 为数字。光标向下移动 n 行(常用) |
+
+
+
+
+ | 搜索替换 |
+
+
+
+
-查找下一个 n 查找上一个 N
diff --git a/source/_posts/Visual Studio.md b/source/_posts/Visual Studio.md
index aa58b95..925c07c 100644
--- a/source/_posts/Visual Studio.md
+++ b/source/_posts/Visual Studio.md
@@ -1,9 +1,10 @@
---
-
+title: tags
+date: 2018-09-30 18:23:38
+type: "tags"
+layout: "tags"
---
-
-
# 快捷键
## 注释:Ctrl+K+C
diff --git a/source/_posts/新建 Markdown File.md b/source/_posts/新建 Markdown File.md
new file mode 100644
index 0000000..7d6e0ba
--- /dev/null
+++ b/source/_posts/新建 Markdown File.md
@@ -0,0 +1,133 @@
+# Furion
+
+## 脚手架
+
+Furion+SqlSugar WebAPI
+
+
+
+从.NET5到.NET8都可以选择
+
+
+
+## 项目结构
+
+
+
+## 引用
+
+Core -> Application -> Web.Core -> Web.Entry
+
+ ↓ -> System -> Web.Core -> Web.Entry
+
+依赖在Core中安装
+
+## 依赖安装
+
+
+
+
+
+# Blog.Core
+
+## 项目结构
+
+### 后端
+
+
+
+### 前端
+
+
+
+## 引用
+
+ Model -> Common -> IServices -> Services -> Entensions -> Api
+
+ -> Tasks
+
+## 依赖安装
+
+
+
+`AutoMapper` -> **Model**
+
+`AutoMapper.Extensions.Microsoft.DependencyInjection` -> **Model**
+
+`log4net` -> **Common**
+
+`Autofac.Extras.DynamicProxy` -> **Extensions**
+
+`Autofac.Extensions.DependencyInjection` -> **Extensions**
+
+`Newtonsoft.Json` -> **Extensions**
+
+`Quartz` -> **Tasks**
+
+`SqlSugarCore` -> **Model**
+
+`StackExchange.Redis` -> **Common**
+
+`FluentValidation.AspNetCore` -> **Api**
+
+`FluentValidation.DependencyInjectionExtensions` -> **Api**
+
+
+
+# ZRAdmin.NET
+
+## 项目结构
+
+### 后端
+
+
+
+### 前端
+
+
+
+[ZRAdmin.NET在线文档 (izhaorui.cn)](http://www.izhaorui.cn/doc/)
+
+## 引用
+
+ common -> Tasks ->
+
+Model -> Repository -> Service -> WebApi
+
+Infrastructure ->
+
+项目结构比较像Java的若依框架
+
+## 依赖安装
+
+
+
+# 优缺点对比
+
+| | Furion | Blog.Core | ZRAdmin.NET |
+| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
+| 项目结构 | 跟MVC三层架构还是有不少差别,可能有DDD的思想在里面,只是业务层做了系统和应用层区分,和B端的ERP有很大差别 | 比较符合MVC三层架构,但是其中的时间总线和路由,是项目用不上的,如果做拆分,会有依赖引用问题 | 比较像Java的若依框架,经典三层架构,只是Infrastructure ,其实可以合并到Common中 |
+| 依赖安装 | Furion集成不少依赖,虽然开发方便,但由于都是集成的,后续有升级难度,定时任务是框架重写了一套,没有用到Quartz.Net | 集成的都是常用的,但是也集成了不少微服务开发和分布式总线上才用到的,会显得比较臃肿 | 集成的有常用的,有较新的,比如NLog,Mapster,但实际看来是比Log4Net和AutoMapper性能要强,Autofac没有集成,使用ASP.Net自带的封装注解,Redis客户端工具类使用的是CSRedisCore,没有用StackExchange.Redis,但是据说存在不定时连接超时的问题,还有就是没有IdentityServer 4的集成 |
+| 文档 | 全 | 较全,但文档日期停留在 2021-08-21 | 全,比较像Java的若依框架文档 |
+| 近期维护更新 | 常有,最近的是2小时前,但是仔细看提交记录,其实更新主要还是在文档上 | 有,最近的是20小时前,着重于日志,多租户方面的更新 | 有,最近的是15天前,目前项目总体进入维护状态,大的改动没有,比较稳定,只有针对ISSUE的提交 |
+| 其他 | 脚手架方便搭建,但是Furion更像是一个工具包集合,而不是框架,没有Admin等功能,所以这部分还需要自己去完成,因为这只是个架子 | 有博客端也有Admin端,但是仍是使用的Vue2,技术栈较久,今年年末就会停止维护,API没有进行分层,都写在一个JS中,后期不好维护,层叠样式表使用CSS,相比较SCSS,语法上较为麻烦 | 有Vue2,也有Vue3版的管理端,可以着重于应用业务上的开发,唯一的是前端使用了JavaScript开发,如果是TypeScript会更好,前端风格跟Java的若依框架前端基本一致,功能也是。后端Redis没有默认开启,需要手动集成,作者很贴心的留了注解,ORM用了sqlsugar,用了多租户,但是配置是在代码中,其实自己给移到配置文件里是最好的 |
+| 推荐指数 | 3 | 4 | 5 |
+
+# 后端开发环境
+
+`Visual Studio 2022`
+
+**dotnet-sdk-7.0.202-win-x64.exe** [下载 .NET 7.0 SDK (v7.0.202) - Windows x64 Installer (microsoft.com)](https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/sdk-7.0.202-windows-x64-installer)
+
+# 前端开发环境
+
+`Visual Studio Code`
+
+安装扩展
+
+`Volar` `i18n Ally`
+
+**node-v16.20.1-x64.msi** [Index of /download/release/v16.20.0/ (nodejs.org)](https://nodejs.org/download/release/v16.20.0/)
+
+https://nodejs.org/download/release/v16.20.0/node-v16.20.0-x64.msi
+
diff --git a/themes/butterfly/source/css/mouse.css b/themes/butterfly/source/css/mouse.css
new file mode 100644
index 0000000..7bde245
--- /dev/null
+++ b/themes/butterfly/source/css/mouse.css
@@ -0,0 +1,9 @@
+body {
+ cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/default.cur),
+ default;
+}
+a,
+img {
+ cursor: url(https://cdn.jsdelivr.net/gh/sviptzk/HexoStaticFile@latest/Hexo/img/pointer.cur),
+ default;
+}
\ No newline at end of file