推荐几个不需要写后台代码的服务
做了一个 App, 应用打开需要填激活码, 后台的逻辑是将 App 发送的激活码与 UUID 进行验证.
App 激活之后, 每次打开需要验证激活码.
APP 会调用 2 个接口:
1. 激活接口: `active(code, uuid)`
2. 验证接口: `validate(code, uuid)`
后台大概有这么些功能:
1. 验证激活码在后台有无, 如果无则返回失败, 如过有则进行下一步验证
2. active: 找到激活码所在的 item,将 UUID 更新进去, 并返回 OK
3. validate: 找到激活码所在的 item, 验证 uuid 与数据库中是否一样
4. addCode: 管理员调用此接口, 用来创建激活码
5. invalidateCode: 管理员调用此接口, 用一个字段来将激活码标记为失效状态
并且需要一些激活日期 /上次请求日期 /激活码被使用过的 UUID 列表(支持多个设备非同时绑定使用)等字段.
以上逻辑功能很简单, 但要是直接写一个后台并部署到服务器, 还要配置好数据库, 搭一个简单的后台管理系统, 也是有点费事.
所以针对以上需求, 现在有没有拿来即用的服务?
看过 MongoDB 有 webhook 功能, 不知道满不满足这需求. 除此之外还有什么其他方式或服务?
#激活码 #验证 #接口 #后台 #App #UUID #uuid #调用 #active #code
做了一个 App, 应用打开需要填激活码, 后台的逻辑是将 App 发送的激活码与 UUID 进行验证.
App 激活之后, 每次打开需要验证激活码.
APP 会调用 2 个接口:
1. 激活接口: `active(code, uuid)`
2. 验证接口: `validate(code, uuid)`
后台大概有这么些功能:
1. 验证激活码在后台有无, 如果无则返回失败, 如过有则进行下一步验证
2. active: 找到激活码所在的 item,将 UUID 更新进去, 并返回 OK
3. validate: 找到激活码所在的 item, 验证 uuid 与数据库中是否一样
4. addCode: 管理员调用此接口, 用来创建激活码
5. invalidateCode: 管理员调用此接口, 用一个字段来将激活码标记为失效状态
并且需要一些激活日期 /上次请求日期 /激活码被使用过的 UUID 列表(支持多个设备非同时绑定使用)等字段.
以上逻辑功能很简单, 但要是直接写一个后台并部署到服务器, 还要配置好数据库, 搭一个简单的后台管理系统, 也是有点费事.
所以针对以上需求, 现在有没有拿来即用的服务?
看过 MongoDB 有 webhook 功能, 不知道满不满足这需求. 除此之外还有什么其他方式或服务?
#激活码 #验证 #接口 #后台 #App #UUID #uuid #调用 #active #code
SwiftUI 的一个技术问题
我有一个需要加载数据的 Task ,想在 View 里显示进度条,但是目前 Task 并不会刷新进度条的值,该怎么做呢?
目前的是
```code
struct ContentView: View {
@ObservedObject var model: Model
var body: some View {
VStack {
ProgressView("Downloading…", value: model.progress, total: 100)
.onAppear {
Task {
await model.fetchData()
}
}
}
}
}
//在 Model.swift 里,代码如下:
@MainActor
class Model: ObservableObject {
@Published var progress: Int = 0
func fetchData() async {
Task {
do {
for idx in 0...100 {
progress += 1
sleep(1)
}
}
}
}
}
```
#Task #View #var #model #Model #progress #进度条 #100 #fetchData #code
我有一个需要加载数据的 Task ,想在 View 里显示进度条,但是目前 Task 并不会刷新进度条的值,该怎么做呢?
目前的是
```code
struct ContentView: View {
@ObservedObject var model: Model
var body: some View {
VStack {
ProgressView("Downloading…", value: model.progress, total: 100)
.onAppear {
Task {
await model.fetchData()
}
}
}
}
}
//在 Model.swift 里,代码如下:
@MainActor
class Model: ObservableObject {
@Published var progress: Int = 0
func fetchData() async {
Task {
do {
for idx in 0...100 {
progress += 1
sleep(1)
}
}
}
}
}
```
#Task #View #var #model #Model #progress #进度条 #100 #fetchData #code
请教一个关于 sql server 多对多核销的问题
目前有 BOM 和领料,需要根据 BOM 的需求数量,根据先进先出的原则,BOM 用了哪些领料,也就是列出那些领料对应哪条 BOM ,以及用掉多少,目前能想到的方案是用游标逐行判单,记录核销数量,但在数据量比较大的情况下,执行效率十分低,是否有比较高效的解决方案。
``` sql
IF OBJECT_ID('tempdb.dbo.#BOM') IS NOT NULL DROP TABLE #BOM
CREATE TABLE #BOM
(
in_Code NVARCHAR(60),
in_Date DATETIME,
Orders NVARCHAR(60),
BOM_materials NVARCHAR(60),
in_Qty DECIMAL(18,4)
)
INSERT INTO #BOM
(in_Code, in_Date, Orders, BOM_materials, in_Qty)
VALUES (N'RK0001', '2022-03-08', N'A01', N'L01', 50),
(N'RK0001', '2022-03-08', N'A01', N'L02', 30),
(N'RK0002', '2022-03-15', N'A01', N'L01', 50)
SELECT * FROM #BOM
```
| in_Code | in_Date | Orders | BOM_materials| in_Qty |
| -------- | ---------- | -------- | ------- | ------------ |
| RK0001 | 2022-03-05 | A01 | L01 | 50 |
| RK0001 | 2022-03-05 | A01 | L02 | 30 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 |
| | | | | |
``` sql
IF OBJECT_ID('tempdb.dbo.#picking') IS NOT NULL DROP TABLE #picking
CREATE TABLE #picking
(
out_Code NVARCHAR(60),
out_Date DATETIME,
Orders NVARCHAR(60),
materials NVARCHAR(60),
out_Qty DECIMAL(18,4),
out_ID BIGINT
)
INSERT INTO #picking
(out_Code, out_Date, Orders, materials, out_Qty, out_ID)
VALUES (N'CK0001', '2022-01-08', N'A01', N'L01', 90, 1),
(N'CK0002', '2022-01-20', N'A01', N'L01', 70, 2),
(N'CK0003', '2022-01-30', N'A01', N'L02', 10, 3)
SELECT * FROM #picking
```
| out_Code | out_Date | Orders | materials | out_Qty | out_ID |
| -------- | ---------- | ------ | --------- | ------- | ------ |
| CK0001 | 2022-01-08 | A01 | L01 | 90 | 1 |
| CK0002 | 2022-01-20 | A01 | L01 | 70 | 2 |
| CK0003 | 2022-01-30 | A01 | L02 | 10 | 3 |
| | | | | | |
期望结果
| in_Code | in_Date | Orders | BOM_materials | in_Qty | out_Code | out_Qty | need_Qty |out_id |
| ------- | ---------- | ------ | ------------- | ------ | -------- | -------- | ------- |------- |
| RK0001 | 2022-03-05 | A01 | L01 | 50 | CK0001 | 90 | 50 | 1 |
| RK0001 | 2022-03-05 | A01 | L02 | 30 | CK0003 | 10 | 10 |3 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 | CK0001 | 90 | 40 | 1 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 | CK0002 | 70 | 10 |2 |
#2022 #A01 #out #BOM #L01 #03 #Qty #Code #50 #Date
目前有 BOM 和领料,需要根据 BOM 的需求数量,根据先进先出的原则,BOM 用了哪些领料,也就是列出那些领料对应哪条 BOM ,以及用掉多少,目前能想到的方案是用游标逐行判单,记录核销数量,但在数据量比较大的情况下,执行效率十分低,是否有比较高效的解决方案。
``` sql
IF OBJECT_ID('tempdb.dbo.#BOM') IS NOT NULL DROP TABLE #BOM
CREATE TABLE #BOM
(
in_Code NVARCHAR(60),
in_Date DATETIME,
Orders NVARCHAR(60),
BOM_materials NVARCHAR(60),
in_Qty DECIMAL(18,4)
)
INSERT INTO #BOM
(in_Code, in_Date, Orders, BOM_materials, in_Qty)
VALUES (N'RK0001', '2022-03-08', N'A01', N'L01', 50),
(N'RK0001', '2022-03-08', N'A01', N'L02', 30),
(N'RK0002', '2022-03-15', N'A01', N'L01', 50)
SELECT * FROM #BOM
```
| in_Code | in_Date | Orders | BOM_materials| in_Qty |
| -------- | ---------- | -------- | ------- | ------------ |
| RK0001 | 2022-03-05 | A01 | L01 | 50 |
| RK0001 | 2022-03-05 | A01 | L02 | 30 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 |
| | | | | |
``` sql
IF OBJECT_ID('tempdb.dbo.#picking') IS NOT NULL DROP TABLE #picking
CREATE TABLE #picking
(
out_Code NVARCHAR(60),
out_Date DATETIME,
Orders NVARCHAR(60),
materials NVARCHAR(60),
out_Qty DECIMAL(18,4),
out_ID BIGINT
)
INSERT INTO #picking
(out_Code, out_Date, Orders, materials, out_Qty, out_ID)
VALUES (N'CK0001', '2022-01-08', N'A01', N'L01', 90, 1),
(N'CK0002', '2022-01-20', N'A01', N'L01', 70, 2),
(N'CK0003', '2022-01-30', N'A01', N'L02', 10, 3)
SELECT * FROM #picking
```
| out_Code | out_Date | Orders | materials | out_Qty | out_ID |
| -------- | ---------- | ------ | --------- | ------- | ------ |
| CK0001 | 2022-01-08 | A01 | L01 | 90 | 1 |
| CK0002 | 2022-01-20 | A01 | L01 | 70 | 2 |
| CK0003 | 2022-01-30 | A01 | L02 | 10 | 3 |
| | | | | | |
期望结果
| in_Code | in_Date | Orders | BOM_materials | in_Qty | out_Code | out_Qty | need_Qty |out_id |
| ------- | ---------- | ------ | ------------- | ------ | -------- | -------- | ------- |------- |
| RK0001 | 2022-03-05 | A01 | L01 | 50 | CK0001 | 90 | 50 | 1 |
| RK0001 | 2022-03-05 | A01 | L02 | 30 | CK0003 | 10 | 10 |3 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 | CK0001 | 90 | 40 | 1 |
| RK0002 | 2022-03-18 | A01 | L01 | 50 | CK0002 | 70 | 10 |2 |
#2022 #A01 #out #BOM #L01 #03 #Qty #Code #50 #Date
jellyfin 硬解不了,总是报错,求解答!
### 错误如下:
```code
[03:31:07] [ERR] [37] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[03:31:08] [INF] [37] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[03:31:08] [ERR] [28] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/bffa3f30-23b5-5b8f-bb96-efab1d05367e/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
```
### top 命令可以看到 jellyfin-ffmpeg 使用了 /dev/dri/renderD128
```code
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va
```
### 环境
1. 华擎 j4105 的 cpu 和核显
2. 群晖 7.1.0
3. docker 安装的 jellyfin ,这个 nyanmisaka/jellyfin 镜像也试过,结果一样
4. 电影格式基本是 mkv 的
### 安装命令
```code
docker run -d --name=jellyfin --restart=always -v /path/jellyfin/config:/config -v /path/jellyfin/cache:/cache -v /path/video:/video -p 8096:8096 --device=/dev/dri:/dev/dri jellyfin/jellyfin:latest
```
### 求 v 友指导
#jellyfin #### #code #Jellyfin #dev #dri #03 #31 #Api #request
### 错误如下:
```code
[03:31:07] [ERR] [37] Jellyfin.Api.Helpers.TranscodingJobHelper: FFmpeg exited with code 1
[03:31:08] [INF] [37] Jellyfin.Api.Controllers.DynamicHlsController: Current HLS implementation doesn't support non-keyframe breaks but one is requested, ignoring that request
[03:31:08] [ERR] [28] Jellyfin.Server.Middleware.ExceptionMiddleware: Error processing request. URL GET /videos/bffa3f30-23b5-5b8f-bb96-efab1d05367e/hls1/main/0.ts.
MediaBrowser.Common.FfmpegException: FFmpeg exited with code 1
at Jellyfin.Api.Helpers.TranscodingJobHelper.StartFfMpeg(StreamState state, String outputPath, String commandLineArguments, HttpRequest request, TranscodingJobType transcodingJobType, CancellationTokenSource cancellationTokenSource, String workingDirectory)
```
### top 命令可以看到 jellyfin-ffmpeg 使用了 /dev/dri/renderD128
```code
/usr/lib/jellyfin-ffmpeg/ffmpeg -analyzeduration 200M -init_hw_device vaapi=va:/dev/dri/renderD128 -filter_hw_device va
```
### 环境
1. 华擎 j4105 的 cpu 和核显
2. 群晖 7.1.0
3. docker 安装的 jellyfin ,这个 nyanmisaka/jellyfin 镜像也试过,结果一样
4. 电影格式基本是 mkv 的
### 安装命令
```code
docker run -d --name=jellyfin --restart=always -v /path/jellyfin/config:/config -v /path/jellyfin/cache:/cache -v /path/video:/video -p 8096:8096 --device=/dev/dri:/dev/dri jellyfin/jellyfin:latest
```
### 求 v 友指导
#jellyfin #### #code #Jellyfin #dev #dri #03 #31 #Api #request
为什么 TypeScript 在第二行还会认为 b 可为 null?应该怎样写更好?

[Playground Link]( https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABAQwCaoBTIFyLCAWwCMBTAJ0QB88QAbWgGkSN32PKpvoEpEBvAFCJhiGMERZEAXhldaiAGQLm02fh6IyJKCDJJ1tANxCRYiclVS5vLTr3NDiAPROJAB2RlkBbeV4sadgpqAxNhMwwiS2tNbV0kZGMRRDDYuwSAaiJjAF8BIA)
#nz8B8 #png #https #i.328888 #xyz #2022 #12 #31 #Playground #Link

[Playground Link]( https://www.typescriptlang.org/play?#code/GYVwdgxgLglg9mABAQwCaoBTIFyLCAWwCMBTAJ0QB88QAbWgGkSN32PKpvoEpEBvAFCJhiGMERZEAXhldaiAGQLm02fh6IyJKCDJJ1tANxCRYiclVS5vLTr3NDiAPROJAB2RlkBbeV4sadgpqAxNhMwwiS2tNbV0kZGMRRDDYuwSAaiJjAF8BIA)
#nz8B8 #png #https #i.328888 #xyz #2022 #12 #31 #Playground #Link
Moegi Theme: 写了一套 VS Code 主题
起初是在筛主题的过程中总发现很多第三方主题有我不太喜欢的点:
- 被选中文字的颜色不够明显,经常不知道自己选中了哪里;
- 很多 Dark 主题背景色会偏蓝,如果开启了 Mac Native Tab 选项后,系统标题栏就与主题背景不太协调了;
- 界面比较倾向于扁平化,文件树区域和编辑区没有颜色差异,甚至没有分割线。感觉太过扁平的界面有点像在操作白板而不是操作软件。
于是就着手写了一套主题: **Moegi Theme**。主要优化了以上三个方面:为搜索和字符选中优化 / 纯朴的灰色系背景 / 没那么扁,欢迎有以上三种困扰的用户体验看看。

UI 调色是纯灰色系,点缀色选用了低饱和绿+暖红色,代码配色是偏冷的风格。此外,还提供了 Light 主题和一套与 [Vitesse Theme]( https://github.com/antfu/vscode-theme-vitesse) 结合的变体。
## For JetBrains
目前,也正在做 JetBrains 的主题版本,已经提交了第一个版本在审核中,目前大概还原了 VS Code 版 60% 左右的样子了。

## More
- **Marketplace**: [VS Code]( https://marketplace.visualstudio.com/items?itemName=ddiu8081.moegi-theme) | [JetBrains]( https://plugins.jetbrains.com/plugin/20781-moegi-theme)
- **Repository (VS Code)**: https://github.com/moegi-design/vscode-theme
- **Repository (JetBrains)**: https://github.com/moegi-design/jetbrains-theme
另外还简单在博客写了一下做主题的想法和过程:[做一个 VS Code 主题:Moegi Theme]( https://notes.ljl.li/making-vscode-moegi-theme/)
#https #theme #com #moegi #主题 #JetBrains #VS #Code #Theme #github
起初是在筛主题的过程中总发现很多第三方主题有我不太喜欢的点:
- 被选中文字的颜色不够明显,经常不知道自己选中了哪里;
- 很多 Dark 主题背景色会偏蓝,如果开启了 Mac Native Tab 选项后,系统标题栏就与主题背景不太协调了;
- 界面比较倾向于扁平化,文件树区域和编辑区没有颜色差异,甚至没有分割线。感觉太过扁平的界面有点像在操作白板而不是操作软件。
于是就着手写了一套主题: **Moegi Theme**。主要优化了以上三个方面:为搜索和字符选中优化 / 纯朴的灰色系背景 / 没那么扁,欢迎有以上三种困扰的用户体验看看。

UI 调色是纯灰色系,点缀色选用了低饱和绿+暖红色,代码配色是偏冷的风格。此外,还提供了 Light 主题和一套与 [Vitesse Theme]( https://github.com/antfu/vscode-theme-vitesse) 结合的变体。
## For JetBrains
目前,也正在做 JetBrains 的主题版本,已经提交了第一个版本在审核中,目前大概还原了 VS Code 版 60% 左右的样子了。

## More
- **Marketplace**: [VS Code]( https://marketplace.visualstudio.com/items?itemName=ddiu8081.moegi-theme) | [JetBrains]( https://plugins.jetbrains.com/plugin/20781-moegi-theme)
- **Repository (VS Code)**: https://github.com/moegi-design/vscode-theme
- **Repository (JetBrains)**: https://github.com/moegi-design/jetbrains-theme
另外还简单在博客写了一下做主题的想法和过程:[做一个 VS Code 主题:Moegi Theme]( https://notes.ljl.li/making-vscode-moegi-theme/)
#https #theme #com #moegi #主题 #JetBrains #VS #Code #Theme #github
TypeScript 的索引定义和原有字段类型冲突有什么技巧?
[PlayGround]( https://www.typescriptlang.org/play?noPropertyAccessFromIndexSignature=true#code/C4TwDgpgBAQghgJygXigbwFBSgOzgWwgC4oBnYBASxwHMMBfKAMnSygG0BrCEE8q2gF0SAETjAIDDBgAmEAMYAbRNHkB7HOSgAjRCXgIMiiMChwUOxADo8hIyZ0XdCdgHIAHq8HT1m084AmfUQLNFwCYigPTyh6Hw0tZwBmUPDCEmjXWLNSWER7fwCnRAC3T28gA)
```ts
type Bar = {
name: string
} & { // A: 这行为什么必需呢?官方文档里也没写清楚
[key: string]: Date
}
declare const bar: Bar
let a = bar.name // 正确的得到 string
let b = bar['x'] // 正确的得到 Date
const bar2: Bar = { name: 'xx' } // B: 这里为什么报错?
const bar3 = { name: 'xx' } as Bar // C: 难道所有地方都要强制转换?
let b2 = bar2['x']
```
[PlayGround]( https://www.typescriptlang.org/play?noPropertyAccessFromIndexSignature=true#code/C4TwDgpgBAQghgJygXigbwFBSgOzgWwgC4oBnYBASxwHMMBfKAMnSygG0BrCEE8q2gF0SAETjAIDDBgAmEAMYAbRNHkB7HOSgAjRCXgIMiiMChwUOxADo8hIyZ0XdCdgHIAHq8HT1m084AmfUQLNFwCYigPTyh6Hw0tZwBmUPDCEmjXWLNSWER7fwCnRAC3T28gA)
```ts
type Bar = {
name: string
} & { // A: 这行为什么必需呢?官方文档里也没写清楚
[key: string]: Date
}
declare const bar: Bar
let a = bar.name // 正确的得到 string
let b = bar['x'] // 正确的得到 Date
const bar2: Bar = { name: 'xx' } // B: 这里为什么报错?
const bar3 = { name: 'xx' } as Bar // C: 难道所有地方都要强制转换?
let b2 = bar2['x']
```
深度解析在 tg 上遇到区块链骗子,被骗 2 万经历
本来在 tg 群聊上交流显卡挖矿,突然有人私聊问我是不是专业挖矿的,后面聊到了一些加密货币投资话题。
我们相互交流一下心得,然后他说国外有个游戏项目拉倒了投资,要发币,说法和 V 友
https://www.v2ex.com/t/1040140 差不多。
----------
本来我就心生警惕,在他各种劝说下,我就狠心买了 100u ,反正骗了也没多少。
买入后不久果然涨了 2 倍,他和我说国外机构还没入场,要继续加仓,我看到他给我的截图,**他自己确实也买了几十个 BNB 的量,于是我加仓了***,心想如果是有问题的话,他自己都买了,于是开始放松警惕。
接下来的时间,他还是劝我加仓,说持仓到 50 万(数量,不是价值)项目方会送价值 1500u 的 NFT ,他可以直接 2000u 回收,
**于是我又加仓了**,总共买了 2700u (差不多 2 万人民币)
小插曲:我的持仓还是不够 50 万,他问我还差多少,结果他直接给我转了 17 万个。**这一点让我对他信任更深了**
------------
到了晚上 21 点左右,涨了 50 倍,钱包显示价值 15 万 u ,我就想卖了,然后问他要不要卖,他说老外还没进场,先不着急,我让他卖的时候叫我,先去睡觉了。
结果晚上我睡不着,12 点多发现 tg 上被他删除了聊天,毫无痕迹,也找不到了。我还以为是女朋友误将他删除了
我看了币价,直接暴跌。**我于是马上准备卖出,结果一个都卖不掉!!!** 我当时操作的时都手抖😂,更多是气氛,没想到自认为还算谨慎的我居然被骗。
那天一个都卖不掉,我还以为是流动性不足,所以卖不掉。于是计划监控了他的钱包,等他下次发币,然后偷偷买入,看时机卖出,结果是我太年轻。又被打脸了!!
刚刚买入的时候,是可以卖掉的,我看到涨了 2 倍打算卖出,**结果又是一个都卖不掉!!**
***至今他们(应该是个团伙)发了十几个币了**
------------
经过这 2 天的学习,我找到了他的合约代码,分析了结果:
1 、他能控制你是否能卖出/转账
2 、他有几十个小号在买/卖,这点骗过很多检测工具
所以现在基本无解。只能买教训了。
-----------
##相关信息
合约代码: https://bscscan.com/token/0x439122fabd881abeda4cabce5bbc860ba7aa2196#code
创建者钱包:0x9aaca8dfbb22a33f761d74630b7cbff34b48b79c
---------



本来在 tg 群聊上交流显卡挖矿,突然有人私聊问我是不是专业挖矿的,后面聊到了一些加密货币投资话题。
我们相互交流一下心得,然后他说国外有个游戏项目拉倒了投资,要发币,说法和 V 友
https://www.v2ex.com/t/1040140 差不多。
----------
本来我就心生警惕,在他各种劝说下,我就狠心买了 100u ,反正骗了也没多少。
买入后不久果然涨了 2 倍,他和我说国外机构还没入场,要继续加仓,我看到他给我的截图,**他自己确实也买了几十个 BNB 的量,于是我加仓了***,心想如果是有问题的话,他自己都买了,于是开始放松警惕。
接下来的时间,他还是劝我加仓,说持仓到 50 万(数量,不是价值)项目方会送价值 1500u 的 NFT ,他可以直接 2000u 回收,
**于是我又加仓了**,总共买了 2700u (差不多 2 万人民币)
小插曲:我的持仓还是不够 50 万,他问我还差多少,结果他直接给我转了 17 万个。**这一点让我对他信任更深了**
------------
到了晚上 21 点左右,涨了 50 倍,钱包显示价值 15 万 u ,我就想卖了,然后问他要不要卖,他说老外还没进场,先不着急,我让他卖的时候叫我,先去睡觉了。
结果晚上我睡不着,12 点多发现 tg 上被他删除了聊天,毫无痕迹,也找不到了。我还以为是女朋友误将他删除了
我看了币价,直接暴跌。**我于是马上准备卖出,结果一个都卖不掉!!!** 我当时操作的时都手抖😂,更多是气氛,没想到自认为还算谨慎的我居然被骗。
那天一个都卖不掉,我还以为是流动性不足,所以卖不掉。于是计划监控了他的钱包,等他下次发币,然后偷偷买入,看时机卖出,结果是我太年轻。又被打脸了!!
刚刚买入的时候,是可以卖掉的,我看到涨了 2 倍打算卖出,**结果又是一个都卖不掉!!**
***至今他们(应该是个团伙)发了十几个币了**
------------
经过这 2 天的学习,我找到了他的合约代码,分析了结果:
1 、他能控制你是否能卖出/转账
2 、他有几十个小号在买/卖,这点骗过很多检测工具
所以现在基本无解。只能买教训了。
-----------
##相关信息
合约代码: https://bscscan.com/token/0x439122fabd881abeda4cabce5bbc860ba7aa2196#code
创建者钱包:0x9aaca8dfbb22a33f761d74630b7cbff34b48b79c
---------



新开源了一套 React 高质量 Hooks 库,欢迎试用和提建议。

# 介绍
`@shined/react-use` 是一个对 **SSR (服务端渲染)友好**、**全面**且**高度优化**的 React Hooks 库,提供了灵活且高效的钩子解决方案。完全采用 **TypeScript** 开发,配备了包含丰富示例的交互式文档🔥。
主要受到 [VueUse]( https://vueuse.org/) 的启发,同时也吸取了 [react-use]( https://github.com/streamich/react-use)、[ahooks]( https://ahooks.js.org/) 以及社区内许多其他优秀库的影响。特别感谢开源社区,尤其是上述库的作者们,感谢他们的杰出工作和灵感。
## 🚀 特性
- **灵活性**:特性包括 [ElementTarget]( https://sheinsight.github.io/react-use/zh-cn/docs/features/element-target)、[Ref Getter]( https://sheinsight.github.io/react-use/zh-cn/docs/features/ref-getter)、[Pausable](/docs/features/pausable) 等。
- **可摇树优化**:采用 [ESM]( https://nodejs.org/api/esm.html) 设计和交付,只导入你需要的内容。
- **交互式文档**:具有现场示例和 [Playground]( https://react-online.vercel.app/#code=aW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnCmltcG9JdCB7IHVzZU1vdXNlLCB1c2VSZWFjdGl2ZSB9IGZyb20gJ0BzaGluZWQvcmVhY3QtdXNlJwoKCmZ1bmN0aW9uIEFwcCgpIHsKICBjb25zdCB7IHgsIHkgfSA9IHVzZU1vdXNlKCkKICBjb25zdCBbeyBjb3VudCB9LCBtdXRhdGVdID0gdXNlUmVhY3RpdmUoeyBjb3VudDogMCB9KQoKICBjb25zdCBhZGRPbmUgPSAoKSA9PiBtdXRhdGUuY291bnQrKwoKICByZXR1cm4gKAogICAgPGRpdj4KICAgICAgPGRpdj4oeCwgeSk6ICh7eH0sIHt5fSk8L2Rpdj4KICAgICAgPGJ1dHRvbiBvbkNsaWNrPXthZGRPbmV9PkNvdW50OiB7Y291bnR9PC9idXR0b24%2BCiAgICA8L2Rpdj4KICApCn0KCmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKSEpLnJlbmRlcig8QXBwIC8%2BKQo%3D)。
- **轻量级**:自豪地宣布 [零依赖]( https://github.com/sheinsight/react-use/blob/main/package.json)。
- **对 SSR 友好**:确保所有钩子与服务端渲染( SSR )兼容。
- **一流的 TypeScript 支持**:用 [TypeScript]( https://www.typescriptlang.org/) 编写,拥有命名良好的类型定义和 [JSDoc]( https://jsdoc.app/) 注释。
- **~~全面测试~~**:(即将推出……)
## ⚡️ 优化
- **安全状态**:为所有有状态的钩子实现了 [安全状态]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/safe-state) 策略,减少了 bug 和不希望的行为。
- **函数稳定**:默认情况下,每个导出函数都受益于 [稳定化]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/stabilization)。
- **最新状态**:通过内部使用 [最新]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/latest-state) 状态,避免了过期闭包问题。
- **减少不必要的重渲染**:使用 [Pausable]( https://sheinsight.github.io/react-use/zh-cn/docs/features/pausable) 实例可选地控制某些钩子的行为。
## 其他
### 技术选型现代化、仓库配置标准化
1. 主流 pnpm + monorepo 架构,源码与文档、示例项目共存
2. 使用 .node-version 、packageManager 锁定 Node.js 和包管理器版本
3. 使用 tsup 进行源码构建,由 esbuild 驱动,轻量快速
4. 使用 Biome 进行项目 Lint 、格式化,基于 Rust 的现代工具
5. 使用 Vitest 进行测试,现代化、注重效率、ESM 优先
6. 使用 Docusaurus 编写文档 + UnoCSS 编写文档 Demo
7. 配置 GitHub Action ,包括 CI (lint)、Release 、GitHub Pages 流程规范化
8. 配置 npm 的 provenance 发布认证,避免供应链攻击
9. 使用 bumpp 进行版本控制,一站式 version bump 、tag 、commit 、push
10. 使用 conventional-changelog-cli 自动生成更新日志(`CHANGELOG.md`)
11. 使用 changelogithub 规范化发布 (根据提交信息生成和发布 GitHub Release )
12. 规范 package.json ,包括但不限于 exports 、sideEffects 、typesVersions 等
13. 配置 clean-pkg-json 在发布前执行,确保 package.json 干净、规范化
14. ...
### 完善底层、基础的 Hooks 打好地基,同时为上层特性服务
1. useSafeState => State 行为安全、符合官方倡导,额外支持 deep compare
2. useStableFn => Hooks 导出的函数引用稳定,内部的渲染优化之一
3. useTargetElement => 统一所有 ElementTarget 参数处理,简化元素定位
4. usePausable => 支持各个 Hook 底层的可暂停特性,可选的内部渲染优化之一
5. useSupported => 存在兼容性的 API 的可访问性状态的统一化
6. useEventListener => 处理各种符合事件接口的实例的事件操作
7. useLatest => 通过稳定的 Ref 的应用来避免过期闭包问题
8. useEffect 衍生出的一系列 Hooks (create-xxx-effect) 作为底层依赖
9. ...
## 相关链接
- [GitHub 仓库]( https://github.com/sheinsight/react-use)
- [官方文档(中英双语)]( https://sheinsight.github.io/react-use)

# 介绍
`@shined/react-use` 是一个对 **SSR (服务端渲染)友好**、**全面**且**高度优化**的 React Hooks 库,提供了灵活且高效的钩子解决方案。完全采用 **TypeScript** 开发,配备了包含丰富示例的交互式文档🔥。
主要受到 [VueUse]( https://vueuse.org/) 的启发,同时也吸取了 [react-use]( https://github.com/streamich/react-use)、[ahooks]( https://ahooks.js.org/) 以及社区内许多其他优秀库的影响。特别感谢开源社区,尤其是上述库的作者们,感谢他们的杰出工作和灵感。
## 🚀 特性
- **灵活性**:特性包括 [ElementTarget]( https://sheinsight.github.io/react-use/zh-cn/docs/features/element-target)、[Ref Getter]( https://sheinsight.github.io/react-use/zh-cn/docs/features/ref-getter)、[Pausable](/docs/features/pausable) 等。
- **可摇树优化**:采用 [ESM]( https://nodejs.org/api/esm.html) 设计和交付,只导入你需要的内容。
- **交互式文档**:具有现场示例和 [Playground]( https://react-online.vercel.app/#code=aW1wb3J0IHsgY3JlYXRlUm9vdCB9IGZyb20gJ3JlYWN0LWRvbS9jbGllbnQnCmltcG9JdCB7IHVzZU1vdXNlLCB1c2VSZWFjdGl2ZSB9IGZyb20gJ0BzaGluZWQvcmVhY3QtdXNlJwoKCmZ1bmN0aW9uIEFwcCgpIHsKICBjb25zdCB7IHgsIHkgfSA9IHVzZU1vdXNlKCkKICBjb25zdCBbeyBjb3VudCB9LCBtdXRhdGVdID0gdXNlUmVhY3RpdmUoeyBjb3VudDogMCB9KQoKICBjb25zdCBhZGRPbmUgPSAoKSA9PiBtdXRhdGUuY291bnQrKwoKICByZXR1cm4gKAogICAgPGRpdj4KICAgICAgPGRpdj4oeCwgeSk6ICh7eH0sIHt5fSk8L2Rpdj4KICAgICAgPGJ1dHRvbiBvbkNsaWNrPXthZGRPbmV9PkNvdW50OiB7Y291bnR9PC9idXR0b24%2BCiAgICA8L2Rpdj4KICApCn0KCmNyZWF0ZVJvb3QoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jvb3QnKSEpLnJlbmRlcig8QXBwIC8%2BKQo%3D)。
- **轻量级**:自豪地宣布 [零依赖]( https://github.com/sheinsight/react-use/blob/main/package.json)。
- **对 SSR 友好**:确保所有钩子与服务端渲染( SSR )兼容。
- **一流的 TypeScript 支持**:用 [TypeScript]( https://www.typescriptlang.org/) 编写,拥有命名良好的类型定义和 [JSDoc]( https://jsdoc.app/) 注释。
- **~~全面测试~~**:(即将推出……)
## ⚡️ 优化
- **安全状态**:为所有有状态的钩子实现了 [安全状态]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/safe-state) 策略,减少了 bug 和不希望的行为。
- **函数稳定**:默认情况下,每个导出函数都受益于 [稳定化]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/stabilization)。
- **最新状态**:通过内部使用 [最新]( https://sheinsight.github.io/react-use/zh-cn/docs/optimization/latest-state) 状态,避免了过期闭包问题。
- **减少不必要的重渲染**:使用 [Pausable]( https://sheinsight.github.io/react-use/zh-cn/docs/features/pausable) 实例可选地控制某些钩子的行为。
## 其他
### 技术选型现代化、仓库配置标准化
1. 主流 pnpm + monorepo 架构,源码与文档、示例项目共存
2. 使用 .node-version 、packageManager 锁定 Node.js 和包管理器版本
3. 使用 tsup 进行源码构建,由 esbuild 驱动,轻量快速
4. 使用 Biome 进行项目 Lint 、格式化,基于 Rust 的现代工具
5. 使用 Vitest 进行测试,现代化、注重效率、ESM 优先
6. 使用 Docusaurus 编写文档 + UnoCSS 编写文档 Demo
7. 配置 GitHub Action ,包括 CI (lint)、Release 、GitHub Pages 流程规范化
8. 配置 npm 的 provenance 发布认证,避免供应链攻击
9. 使用 bumpp 进行版本控制,一站式 version bump 、tag 、commit 、push
10. 使用 conventional-changelog-cli 自动生成更新日志(`CHANGELOG.md`)
11. 使用 changelogithub 规范化发布 (根据提交信息生成和发布 GitHub Release )
12. 规范 package.json ,包括但不限于 exports 、sideEffects 、typesVersions 等
13. 配置 clean-pkg-json 在发布前执行,确保 package.json 干净、规范化
14. ...
### 完善底层、基础的 Hooks 打好地基,同时为上层特性服务
1. useSafeState => State 行为安全、符合官方倡导,额外支持 deep compare
2. useStableFn => Hooks 导出的函数引用稳定,内部的渲染优化之一
3. useTargetElement => 统一所有 ElementTarget 参数处理,简化元素定位
4. usePausable => 支持各个 Hook 底层的可暂停特性,可选的内部渲染优化之一
5. useSupported => 存在兼容性的 API 的可访问性状态的统一化
6. useEventListener => 处理各种符合事件接口的实例的事件操作
7. useLatest => 通过稳定的 Ref 的应用来避免过期闭包问题
8. useEffect 衍生出的一系列 Hooks (create-xxx-effect) 作为底层依赖
9. ...
## 相关链接
- [GitHub 仓库]( https://github.com/sheinsight/react-use)
- [官方文档(中英双语)]( https://sheinsight.github.io/react-use)
遍历 1300+ 中文独立博客:一点看法与收获
### 背景
截止 2024 年 7 月 31 日,这个 GitHub Repo ([https://github.com/timqian/chinese-independent-blogs]( https://github.com/timqian/chinese-independent-blogs))一共收录了 1300 多个中文独立博客。浏览完这些链接后,我忍不住想要写点什么,于是将这些杂乱的思绪整理并记录在这里。
具体的过程是这样的:
1. 点开一个博客后,先浏览首页,再点“Archive”或者“归档”并翻页,把那些对眼缘的收藏到书签,其余的相忘于江湖;
2. 重复上述流程,直到浏览完所有链接后,我大约收藏了 80 个左右;
3. 然后,再次打开这些书签,阅读每个博客中的一些文章,并将那些不再感兴趣的博客从收藏夹中删除;
4. 最终留下不超过 30 个书签。
### 印象与吐槽
- 去除掉一部分已经停止解析域名或者重定向到域名待售网页的站点,仍有超过 1000 个可以访问的博客。
- 其中,简体中文博客占了绝大多数,只有少数是正體中文博客,而那些零星的英文博客,不难推断出博主是华人。有一个最特别的,我翻了半天发现它跟中文博客沾边的特征是 cn 域名。
- 大多数博客都和 IT 相关,也有少部分投资,旅拍,写散文的博客。在 IT 相关的博客中,大多数集中在 Web 开发领域,而在 Web 后端开发中,聚焦 Go 和 Python 似乎又要多一些, ~~Go vs Java 扳回一局~~。
- 技术栈的方面,粗略来看,WordPress 的使用较为普遍。由于 Typecho 会自动发送第一篇博文,特征也较明显。 而使用 Hugo 的用户似乎特别喜欢写关于迁移到 Hugo 或从 Hugo 迁移到其他平台的文章。其余的就看不出什么特征了,一些前端背景的博主或许用的是 NextJS 或者 NuxtJS 吧。
- 二次元浓度过高的博客十有八九属于在校大学生,内容也多以学习笔记为主。
- 容易留下坏印象的特质:和文章半毛钱关系没有的卡通女孩封面,右下角意义不明的动画小人。
- 容易留下深刻坏印象的特质:同椰树包装盒一样有冲击力的配色,比 3D 黄油还 Q 弹的 CSS 动效。
### 写博客的意义
考虑到简中互联网得天独厚的生态,对于非 IT 领域的作者,维护独立博客的意义恐怕就只剩下情怀了。
而对于 IT 方面的从业者,我想独立博客是一个和代码开源有关系但是并不重叠的“文章开源赛道”,虽然难以直接变现,却有助于开发者**建立个人品牌并积累声望**。有几位头部的博主,以撰写博客和教程收获的知名度和影响力应该超越了许多上千甚至上万 Stars 的 Repo 维护者。
### 附件
[收藏夹]( https://www.notion.so/f251e55261b446fc808939290dd6e0bf?pvs=21)
模拟 `Cmd + Click` 的[脚本]( https://www.typescriptlang.org/play/?#code/PTAEF5wVQZwUwE4GUDGCCWAHALpAUCKAAIB2AhgLZyg220BKlAJgPYWgDymcJBYplODExkU1WgAts2TAC4Q2StwQUWJANZwAngDoScbMD7EAbohjo1dGgCYADDYAsAWjsB2ZzYCcxokyFoWNiWJDTYCFqg2CxRZJqgLGYIURLUAO4sCAA2TACEvmQArtgSmdY0AJoshb4UZNgoEuU0UjIw8sAA5uglhQBGOihswMEUAI7oZCTAjej68M5z-twk-iTYzn1ZLJ0wwFssfcB1MNiIwPQAogCCACIAspc6FEy+6EOhzaCtmO0gaQCdJ0WDssnBBsMYDZgAAzMgmd5qGAAfhgAC9wAA2RwAMlYdTm4G6vQGQwovk6CCm2C+JDUcGMkGAsEQqAwOHweAAFDDCiQUME1FyAJSgADeeDoH1OoAAkrcIKAAOSzeZwRarOArNYbA67JWS2jSml1BDqVhpULgUCsFCFKjrHRjQqILRIOBggWZLkAIlN5pYlucojEMAsWx6Wmcii2cB9wsNNGNsVj9EDMEV1wQVN0MIQbC5-otJCdLoi7s90QQ1yyWV92D6LCYkXC8YTUqRNKGfJp1pjYLTaRgOjBJE6JUToGTPTg7Gt2xQZCySCrZE64PX2FlZwoXPlCcnYJpCIs2AAEuhTplItaxQBfSfhSISr4nnoXq8RRUz9jI0AAKSQDgADkdBEBB4C5H9RVkcUHy+Sc7ynepGlALlEAQUUX2aaUWDBEcdnQ7N22aQgFyXFdMjXcF4C3Hc91uAAaACgNA04MDHdAYS0Ll72FEiaAfSdkzhfxFRFCAAD5xUnOgYW9ZNwgSGEUwHdMsNknDO1AMhFXCUtXQrOAvQQesmFkdYJGcWYci5ABmUUyHjTTyi4rlcjIYVsK+cpcPw7ZOi5cIBJ8jt1jmF0XOseDQqnbSJAQOAVOtMgdASpKoroNy33PS8qy0ABtdKYQAXQ02LrH004tHwlgRBQSNFTsHQbEy2gYvKDrQC6whRLgEVhO05QLBla0JPAaTvOscjl1XdcdFo7dZwY5jAJAhbwjmbpuK5HKP3y-jEMGkgZWLbYyCYAAxdAwXEj4znWZiYRuuBgMEUUJpkr5kwOPpFX0NJQAAIW2PouQK+6eGwErmLFKItG4WCfTOAAPQwUBgEwfW64UAG4ouTQpskVKB6AAGUGRL6jgDg+gAK2M7BSbJrlfrxgntKyOZ1EVW17Shym4Gpy4wQdbBfSc9mvi5jQ0sS5LQCJrJ8el7mdDOlgLsVZ6wTeqgVeaPmxZ0Rtmx0MhMG1ABhCQbqYLkZfUKXmkdwYuZQdQRQN8ojYF03dES1QzBtu2He553ymZnREpMFhNFphmBWZrklYj9r8cnNIlkDHQ1D6JLMjgPlzqYbW+QFEIJKmuhhrygaoo1i7rrBLk1rYzbOJ2va8uvYVmIAA27z8tAAfQAEjFBPGZ0TQtBgXbL3fHuImFEceHHCQ7x0OmYDUfuDzoIS6DwY6ZUdgBxHhEHqTJLvLsv+UFUIACoq6i+TTMU5IWBU-s4EHGA5VYrJl0n2BABlywekZt6ZG5lLLWVtrZByOlnIVWTMVRUqVionwqlVbANVwR1VEI1a0zVWptRoG5XIQ98pFXlmVL6FVaBaHQB6UuGCKHdVAFFLqR8jTaU6IqC+V8qRVjvvyAaYUZSz1uIGEgZ4phMDBMkMacATDYA+pNKKbk1HYBntoUAuRIDKgQEqLynDErYCJiQb20UT5RUIMmKkqxZTrEVPceoEgdAwm2N6DxJRo6KILKKZ+cUewhToI47SzimDXH5KUFRoACo6BSX-ABBUYmuOhhAt0UCTI1jrD6SWJVzbi2cAARgPqRMAyYxTFSQtaGJcTGiZCihzE6NISiXnuGwKGioADUANQC3GppI6poA3IYLmKAGh15QA4hxCkbpvS3HOBmYvXKw86FJRKqAAAPKAcpdhjmgFCZiOwpzQDnMuU4S5bhzFfEIHQSx1jQAyLkQo1YyjeKz1gkqUxd4Im0EIF1KRNI4YmCXC6WCGCGmgE6HoOAaMxnlFmREbZpU9K2xgD0sWUUs6rBznVHgXJipVMEjg2gBKLTmyYEwS4Zh1hkzyiI30s9iw+mYu8y0nylGIATICr2QA)
### 背景
截止 2024 年 7 月 31 日,这个 GitHub Repo ([https://github.com/timqian/chinese-independent-blogs]( https://github.com/timqian/chinese-independent-blogs))一共收录了 1300 多个中文独立博客。浏览完这些链接后,我忍不住想要写点什么,于是将这些杂乱的思绪整理并记录在这里。
具体的过程是这样的:
1. 点开一个博客后,先浏览首页,再点“Archive”或者“归档”并翻页,把那些对眼缘的收藏到书签,其余的相忘于江湖;
2. 重复上述流程,直到浏览完所有链接后,我大约收藏了 80 个左右;
3. 然后,再次打开这些书签,阅读每个博客中的一些文章,并将那些不再感兴趣的博客从收藏夹中删除;
4. 最终留下不超过 30 个书签。
### 印象与吐槽
- 去除掉一部分已经停止解析域名或者重定向到域名待售网页的站点,仍有超过 1000 个可以访问的博客。
- 其中,简体中文博客占了绝大多数,只有少数是正體中文博客,而那些零星的英文博客,不难推断出博主是华人。有一个最特别的,我翻了半天发现它跟中文博客沾边的特征是 cn 域名。
- 大多数博客都和 IT 相关,也有少部分投资,旅拍,写散文的博客。在 IT 相关的博客中,大多数集中在 Web 开发领域,而在 Web 后端开发中,聚焦 Go 和 Python 似乎又要多一些, ~~Go vs Java 扳回一局~~。
- 技术栈的方面,粗略来看,WordPress 的使用较为普遍。由于 Typecho 会自动发送第一篇博文,特征也较明显。 而使用 Hugo 的用户似乎特别喜欢写关于迁移到 Hugo 或从 Hugo 迁移到其他平台的文章。其余的就看不出什么特征了,一些前端背景的博主或许用的是 NextJS 或者 NuxtJS 吧。
- 二次元浓度过高的博客十有八九属于在校大学生,内容也多以学习笔记为主。
- 容易留下坏印象的特质:和文章半毛钱关系没有的卡通女孩封面,右下角意义不明的动画小人。
- 容易留下深刻坏印象的特质:同椰树包装盒一样有冲击力的配色,比 3D 黄油还 Q 弹的 CSS 动效。
### 写博客的意义
考虑到简中互联网得天独厚的生态,对于非 IT 领域的作者,维护独立博客的意义恐怕就只剩下情怀了。
而对于 IT 方面的从业者,我想独立博客是一个和代码开源有关系但是并不重叠的“文章开源赛道”,虽然难以直接变现,却有助于开发者**建立个人品牌并积累声望**。有几位头部的博主,以撰写博客和教程收获的知名度和影响力应该超越了许多上千甚至上万 Stars 的 Repo 维护者。
### 附件
[收藏夹]( https://www.notion.so/f251e55261b446fc808939290dd6e0bf?pvs=21)
模拟 `Cmd + Click` 的[脚本]( https://www.typescriptlang.org/play/?#code/PTAEF5wVQZwUwE4GUDGCCWAHALpAUCKAAIB2AhgLZyg220BKlAJgPYWgDymcJBYplODExkU1WgAts2TAC4Q2StwQUWJANZwAngDoScbMD7EAbohjo1dGgCYADDYAsAWjsB2ZzYCcxokyFoWNiWJDTYCFqg2CxRZJqgLGYIURLUAO4sCAA2TACEvmQArtgSmdY0AJoshb4UZNgoEuU0UjIw8sAA5uglhQBGOihswMEUAI7oZCTAjej68M5z-twk-iTYzn1ZLJ0wwFssfcB1MNiIwPQAogCCACIAspc6FEy+6EOhzaCtmO0gaQCdJ0WDssnBBsMYDZgAAzMgmd5qGAAfhgAC9wAA2RwAMlYdTm4G6vQGQwovk6CCm2C+JDUcGMkGAsEQqAwOHweAAFDDCiQUME1FyAJSgADeeDoH1OoAAkrcIKAAOSzeZwRarOArNYbA67JWS2jSml1BDqVhpULgUCsFCFKjrHRjQqILRIOBggWZLkAIlN5pYlucojEMAsWx6Wmcii2cB9wsNNGNsVj9EDMEV1wQVN0MIQbC5-otJCdLoi7s90QQ1yyWV92D6LCYkXC8YTUqRNKGfJp1pjYLTaRgOjBJE6JUToGTPTg7Gt2xQZCySCrZE64PX2FlZwoXPlCcnYJpCIs2AAEuhTplItaxQBfSfhSISr4nnoXq8RRUz9jI0AAKSQDgADkdBEBB4C5H9RVkcUHy+Sc7ynepGlALlEAQUUX2aaUWDBEcdnQ7N22aQgFyXFdMjXcF4C3Hc91uAAaACgNA04MDHdAYS0Ll72FEiaAfSdkzhfxFRFCAAD5xUnOgYW9ZNwgSGEUwHdMsNknDO1AMhFXCUtXQrOAvQQesmFkdYJGcWYci5ABmUUyHjTTyi4rlcjIYVsK+cpcPw7ZOi5cIBJ8jt1jmF0XOseDQqnbSJAQOAVOtMgdASpKoroNy33PS8qy0ABtdKYQAXQ02LrH004tHwlgRBQSNFTsHQbEy2gYvKDrQC6whRLgEVhO05QLBla0JPAaTvOscjl1XdcdFo7dZwY5jAJAhbwjmbpuK5HKP3y-jEMGkgZWLbYyCYAAxdAwXEj4znWZiYRuuBgMEUUJpkr5kwOPpFX0NJQAAIW2PouQK+6eGwErmLFKItG4WCfTOAAPQwUBgEwfW64UAG4ouTQpskVKB6AAGUGRL6jgDg+gAK2M7BSbJrlfrxgntKyOZ1EVW17Shym4Gpy4wQdbBfSc9mvi5jQ0sS5LQCJrJ8el7mdDOlgLsVZ6wTeqgVeaPmxZ0Rtmx0MhMG1ABhCQbqYLkZfUKXmkdwYuZQdQRQN8ojYF03dES1QzBtu2He553ymZnREpMFhNFphmBWZrklYj9r8cnNIlkDHQ1D6JLMjgPlzqYbW+QFEIJKmuhhrygaoo1i7rrBLk1rYzbOJ2va8uvYVmIAA27z8tAAfQAEjFBPGZ0TQtBgXbL3fHuImFEceHHCQ7x0OmYDUfuDzoIS6DwY6ZUdgBxHhEHqTJLvLsv+UFUIACoq6i+TTMU5IWBU-s4EHGA5VYrJl0n2BABlywekZt6ZG5lLLWVtrZByOlnIVWTMVRUqVionwqlVbANVwR1VEI1a0zVWptRoG5XIQ98pFXlmVL6FVaBaHQB6UuGCKHdVAFFLqR8jTaU6IqC+V8qRVjvvyAaYUZSz1uIGEgZ4phMDBMkMacATDYA+pNKKbk1HYBntoUAuRIDKgQEqLynDErYCJiQb20UT5RUIMmKkqxZTrEVPceoEgdAwm2N6DxJRo6KILKKZ+cUewhToI47SzimDXH5KUFRoACo6BSX-ABBUYmuOhhAt0UCTI1jrD6SWJVzbi2cAARgPqRMAyYxTFSQtaGJcTGiZCihzE6NISiXnuGwKGioADUANQC3GppI6poA3IYLmKAGh15QA4hxCkbpvS3HOBmYvXKw86FJRKqAAAPKAcpdhjmgFCZiOwpzQDnMuU4S5bhzFfEIHQSx1jQAyLkQo1YyjeKz1gkqUxd4Im0EIF1KRNI4YmCXC6WCGCGmgE6HoOAaMxnlFmREbZpU9K2xgD0sWUUs6rBznVHgXJipVMEjg2gBKLTmyYEwS4Zh1hkzyiI30s9iw+mYu8y0nylGIATICr2QA)
给你的 Vitepress 文档自动补充代码组图标 [vitepress-plugin-group-icons]
Vitepress 有一个[代码组]( https://vitepress.dev/zh/guide/markdown#code-groups)功能,可以允许用户对多个代码块进行分组并切换:

[vitepress-plugin-group-icons]( https://github.com/yuyinws/vitepress-plugin-group-icons) 是一个插件,可以为代码组自动补充图标,增强文档的可读性。
## 内置图标
包含常见的前端包管理器,框架,配置文件等

## 自定义图标
你可以使用所有 [iconify]( https://icones.js.org/) 或者本地的 svg 文件进行自定义图标展示。

## 案例展示
已经有许多开源项目的 Vitepress 文档在使用此插件:
- [Hono]( https://hono.dev/docs/#quick-start)
- [UnoCSS]( https://unocss.dev/guide/style-reset#installation)
- [Vue Macros]( https://vue-macros.dev/guide/getting-started.html#installation)
- [Rolldown]( https://rolldown.rs/contrib-guide/setup-the-project)
- [Unplugin]( https://unplugin.unjs.io/guide/#install-package)
- [Unplugin Turbo Console]( https://utc.yuy1n.io/guide/getting-started.html#install)
- [...]( https://github.com/yuyinws/vitepress-plugin-group-icons/network/dependents)
## 开始使用
请访问[文档地址]( https://vp.yuy1n.io/)查看详细的使用教程。
[GitHub 仓库]( https://github.com/yuyinws/vitepress-plugin-group-icons)。
欢迎大家使用此插件并反馈🥳
Vitepress 有一个[代码组]( https://vitepress.dev/zh/guide/markdown#code-groups)功能,可以允许用户对多个代码块进行分组并切换:

[vitepress-plugin-group-icons]( https://github.com/yuyinws/vitepress-plugin-group-icons) 是一个插件,可以为代码组自动补充图标,增强文档的可读性。
## 内置图标
包含常见的前端包管理器,框架,配置文件等

## 自定义图标
你可以使用所有 [iconify]( https://icones.js.org/) 或者本地的 svg 文件进行自定义图标展示。

## 案例展示
已经有许多开源项目的 Vitepress 文档在使用此插件:
- [Hono]( https://hono.dev/docs/#quick-start)
- [UnoCSS]( https://unocss.dev/guide/style-reset#installation)
- [Vue Macros]( https://vue-macros.dev/guide/getting-started.html#installation)
- [Rolldown]( https://rolldown.rs/contrib-guide/setup-the-project)
- [Unplugin]( https://unplugin.unjs.io/guide/#install-package)
- [Unplugin Turbo Console]( https://utc.yuy1n.io/guide/getting-started.html#install)
- [...]( https://github.com/yuyinws/vitepress-plugin-group-icons/network/dependents)
## 开始使用
请访问[文档地址]( https://vp.yuy1n.io/)查看详细的使用教程。
[GitHub 仓库]( https://github.com/yuyinws/vitepress-plugin-group-icons)。
欢迎大家使用此插件并反馈🥳
Web 缓存加速网最近升级了 CODE 服务,允许任意项目的有限加速,欢迎使用!
Web 缓存加速网最近升级了 CODE 服务,允许任意项目的有限文件类型的加速,包括 js,css,svg,gif,jpg,png 等,欢迎使用!服务介绍地址: https://www.webcache.cn/#code
Web 缓存加速网最近升级了 CODE 服务,允许任意项目的有限文件类型的加速,包括 js,css,svg,gif,jpg,png 等,欢迎使用!服务介绍地址: https://www.webcache.cn/#code