修改鼠标样式

This commit is contained in:
YUN-PC5\user 2023-11-01 10:31:16 +08:00
parent 13bd63d11d
commit f484e52275
13 changed files with 518 additions and 29 deletions

View File

@ -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:
- <link rel="stylesheet" href="/css/mouse.css">
bottom:
# 7427714271
# 7427714271
- <div class="aplayer no-destroy" data-id="7755841452" data-server="netease" data-type="playlist" data-fixed="true" data-mini="true" data-listFolded="false" data-order="random" data-lrctype="1" data-preload="none" data-autoplay="true" muted></div>
- <script async src="https://npm.elemecdn.com/tzy-blog/lib/js/other/sakura.js"></script>
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
enable: true

View File

@ -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
asset_inject: false

View File

@ -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 .
```
![img](E:\source\repos\XiaodaBlogSource\source\_posts\Docker\dockerfile2.png)
### 上下文路径
上一节中,有提到指令最后一个 **.** 是上下文路径,那么什么是上下文路径呢?
```shell
docker build -t nginx:v3 .
```
上下文路径,是指 docker 在构建镜像有时候想要使用到本机的文件比如复制docker build 命令得知这个路径后,会将路径下的所有内容打包。
**解析**:由于 docker 的运行模式是 C/S。我们本机是 Cdocker 引擎是 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=<user>:<group>] <源路径1>... <目标路径>
COPY [--chown=<user>:<group>] ["<源路径1>",... "<目标路径>"]
```
**[--chown=<user>:<group>]**:可选参数,用户改变复制到容器内文件的拥有者和属组。
**<源路径>**:源文件或者源目录,这里可以是通配符表达式,其通配符规则要满足 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 <slave-password>
```
## 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@ -51,3 +51,31 @@ hexo new [layout] <title>
```
新建一篇文章。如果没有设置 `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:
- <link rel="stylesheet" href="/css/mouse.css">
```
3. 重新部署,即可看到效果

View File

@ -1,6 +1,8 @@
# Mybatis
***
---
## Maven引入Mybatis

View File

@ -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
```

View File

@ -209,9 +209,9 @@ println!("a is {0}, a again is {0}", a);
```
`{}`之间可以放一个数字它将把之后的可变参数当做一个数组来访问下标从0开始。
{% raw %}
如果要输出 **{** 或 **}** 怎么办呢?格式字符串通过 **{{** 和 **}}** 分别转义代表 { 和 } 。但是其他常用转义字符与 C 语言里的转义字符一样,都是反斜杠开头的形式。
{% endraw %}
```rust
fn main() {
println!("{{}}");

View File

@ -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`键可随时退出底线命令模式。
简单的说,我们可以将这三个模式想成底下的图标来表示:
![img](https://www.runoob.com/wp-content/uploads/2014/07/vim-vi-workmodel.png)
# Vim 的按键说明
## 第一部分:命令模式可用的光标移动、复制粘贴、搜索替换等
<center>
<table>
<thead>
<tr>
<th colspan="2">移动光标的方法</th>
</tr>
</thead>
<tbody>
<tr>
<td>h 或 向左箭头键(←)</td>
<td>光标向左移动一个字符</td>
</tr>
<tr>
<td>j 或 向下箭头键(↓)</td>
<td>光标向下移动一个字符</td>
</tr>
<tr>
<td>k 或 向上箭头键(↑)</td>
<td>光标向上移动一个字符</td>
</tr>
<tr>
<td>l 或 向右箭头键(→)</td>
<td>光标向右移动一个字符</td>
</tr>
<tr>
<td colspan="2">如果你将右手放在键盘上的话,你会发现 hjkl 是排列在一起的,因此可以使用这四个按钮来移动光标。如果想要进行多次移动的话,例如向下移动 30 行,可以使用 "30j" 或 "30↓" 的组合按键,亦即加上想要进行的次数(数字)后,按下动作即可!</td>
</tr>
<tr>
<td>Ctrl + f</td>
<td>屏幕『向下』移动一页,相当于 Page Down 按键 (常用)</td>
</tr>
<tr>
<td>Ctrl + b</td>
<td>屏幕『向上』移动一页,相当于 Page Up 按键 (常用)</td>
</tr>
<tr>
<td>Ctrl + d</td>
<td>屏幕『向下』移动半页</td>
</tr>
<tr>
<td>Ctrl + u</td>
<td>屏幕『向上』移动半页</td>
</tr>
<tr>
<td>+</td>
<td>光标移动到非空格符的下一行</td>
</tr>
<tr>
<td>-</td>
<td>光标移动到非空格符的上一行</td>
</tr>
<tr>
<td>n『空格』</td>
<td>那个 n 表示『数字』,例如 20 。按下数字后再按空格键,光标会向右移动这一行的 n 个字符。例如 20『空格』 则光标会向后面移动 20 个字符距离。</td>
</tr>
<tr>
<td>0 或功能键[Home]</td>
<td>这是数字『 0 』:移动到这一行的最前面字符处 (常用)</td>
</tr>
<tr>
<td>$ 或功能键[End]</td>
<td>移动到这一行的最后面字符处(常用)</td>
</tr>
<tr>
<td>H</td>
<td>光标移动到这个屏幕的最上方那一行的第一个字符</td>
</tr>
<tr>
<td>M</td>
<td>光标移动到这个屏幕的中央那一行的第一个字符</td>
</tr>
<tr>
<td>L</td>
<td>光标移动到这个屏幕的最下方那一行的第一个字符</td>
</tr>
<tr>
<td>G</td>
<td>移动到这个档案的最后一行(常用)</td>
</tr>
<tr>
<td>nG</td>
<td>n 为数字。移动到这个档案的第 n 行。例如 20G 则会移动到这个档案的第 20 行(可配合 :set nu)</td>
</tr>
<tr>
<td>gg</td>
<td>移动到这个档案的第一行,相当于 1G 啊! (常用)</td>
</tr>
<tr>
<td>n『 Enter 』</td>
<td>n 为数字。光标向下移动 n 行(常用)</td>
</tr>
</tbody>
<thead>
<tr>
<th colspan="2">搜索替换</th>
</tr>
</thead>
</table>
</center>
查找下一个 n 查找上一个 N

View File

@ -1,9 +1,10 @@
---
title: tags
date: 2018-09-30 18:23:38
type: "tags"
layout: "tags"
---
# 快捷键
## 注释Ctrl+K+C

View File

@ -0,0 +1,133 @@
# Furion
## 脚手架
Furion+SqlSugar WebAPI
![image-20230328091559534](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230328091559534.png)
从.NET5到.NET8都可以选择
![image-20230328091506895](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230328091506895.png)
## 项目结构
![image-20230328101328375](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230328101328375.png)
## 引用
Core -> Application -> Web.Core -> Web.Entry
↓ -> System -> Web.Core -> Web.Entry
依赖在Core中安装
## 依赖安装
![image-20230403130044894](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403130044894.png)
# Blog.Core
## 项目结构
### 后端
![image-20230329124950571](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230329124950571.png)
### 前端
![image-20230403155403966](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403155403966.png)
## 引用
Model -> Common -> IServices -> Services -> Entensions -> Api
-> Tasks
## 依赖安装
![image-20230403125509263](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403125509263.png)
`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
## 项目结构
### 后端
![image-20230403130320936](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403130320936.png)
### 前端
![image-20230403155626904](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403155626904.png)
[ZRAdmin.NET在线文档 (izhaorui.cn)](http://www.izhaorui.cn/doc/)
## 引用
common -> Tasks ->
Model -> Repository -> Service -> WebApi
Infrastructure ->
项目结构比较像Java的若依框架
## 依赖安装
![image-20230403132814465](https://markdownhexo.oss-cn-hangzhou.aliyuncs.com/img/image-20230403132814465.png)
# 优缺点对比
| | Furion | Blog.Core | ZRAdmin.NET |
| ------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ |
| 项目结构 | 跟MVC三层架构还是有不少差别可能有DDD的思想在里面只是业务层做了系统和应用层区分和B端的ERP有很大差别 | 比较符合MVC三层架构但是其中的时间总线和路由是项目用不上的如果做拆分会有依赖引用问题 | 比较像Java的若依框架经典三层架构只是Infrastructure 其实可以合并到Common中 |
| 依赖安装 | Furion集成不少依赖虽然开发方便但由于都是集成的后续有升级难度定时任务是框架重写了一套没有用到Quartz.Net | 集成的都是常用的,但是也集成了不少微服务开发和分布式总线上才用到的,会显得比较臃肿 | 集成的有常用的有较新的比如NLogMapster但实际看来是比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

View File

@ -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;
}