V2EX POST
639 subscribers
138 photos
31 videos
99 files
102K links
v2ex新贴定时推送,可按需置顶本频道然后关闭通知
Download Telegram
clion 和 eclipse 二选一,都没用过,怎么选?

延期毕业了,现在终于毕业入职公司了,linux 下 c++开发,不让用 vs code ,只能 clion 和 eclipse 二选一,都没用过,不知道怎么选,大家有什么建议吗?

#毕业 #入职 #linux #c++ #vs #code #clion #eclipse #二选 #没用过
最近想换电脑,求推荐

本人 java 及大数据开发。
现在想换个性价比高的电脑。目前在机械革命无界 16pro 、机械革命 2022 款 code01 、机械革命 code go 纠结。因为看的这几款堆料挺足,所以纠结这几个。其他品牌也不太懂。求各位大神推荐!

#纠结 #机械 #革命 #java #及大 #想换个 #16pro #2022 #code01 #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
请教一个关于 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
Q: 有没有关于 Vue3 代码风格组件风格统一标准、插件的 Simple Template 项目?

# intro

感觉自己写来写去都像是野生程序员写的辣鸡代码,所以想求一份代码

# requirements

- 1.代码风格良好
- 2.贴近标准化 /统一化(大家约定了,都这么写)的代码示例
- 3.组件抽象的很好的
- 4.状态管理不凌乱的
- 5.clean code

# ps

欢迎对自己代码质量有信心的朋友们贴 github 链接

#代码 #写来写去 #统一化 #示例 #intro #辣鸡 #想求 #requirements #clean #code
如何看待 code review ?

因为小组内所有代码需要通过 mr 后才会合到 master ,我会参与到 code review 并给予一些修改建议,但是有时候我提的一些建议其他小伙伴好像并不能做出针对性的调整。我理解这主要是认知的不同导致的,即使我说出了自己的看法,但是对方并不能 get 到。

那么 review 代码时候,我是否还要继续无所保留的给出自己的意见呢,我要如何平衡这个落差感呢?

#review #代码 #mr #master #code #get #我要 #小伙伴 #建议 #认知
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
有没有发现最近电报收不了短信验证码了

We've sent an SMS with an activation code to your phone



由于换了新手机,想要登录电报必须用旧手机的确认码或者短信验证码? 现在这两种情况都行不通,,还有其它方式可以登陆吗兄弟们

#ve #sent #SMS #activation #code #your #phone #确认码 #用旧 #新手机
现在 MacOS Ventura 稳定性如何

现在 MacOS Ventura 稳定性如何,升级安全吗
平时主要用 VS Code, Xcode 和 Final Cut Pro ,有没有升级完的 V 友解答一下稳定性如何

#稳定性 #升级 #MacOS #Ventura #VS #Code #Xcode #Final #Cut #Pro
Moegi Theme: 写了一套 VS Code 主题

起初是在筛主题的过程中总发现很多第三方主题有我不太喜欢的点:

- 被选中文字的颜色不够明显,经常不知道自己选中了哪里;
- 很多 Dark 主题背景色会偏蓝,如果开启了 Mac Native Tab 选项后,系统标题栏就与主题背景不太协调了;
- 界面比较倾向于扁平化,文件树区域和编辑区没有颜色差异,甚至没有分割线。感觉太过扁平的界面有点像在操作白板而不是操作软件。

于是就着手写了一套主题: **Moegi Theme**。主要优化了以上三个方面:为搜索和字符选中优化 / 纯朴的灰色系背景 / 没那么扁,欢迎有以上三种困扰的用户体验看看。

![screenshot]( https://cloud-upyun.ddiu.site/picture/2023/01/04/HDSnDv.jpg)

UI 调色是纯灰色系,点缀色选用了低饱和绿+暖红色,代码配色是偏冷的风格。此外,还提供了 Light 主题和一套与 [Vitesse Theme]( https://github.com/antfu/vscode-theme-vitesse) 结合的变体。

## For JetBrains

目前,也正在做 JetBrains 的主题版本,已经提交了第一个版本在审核中,目前大概还原了 VS Code 版 60% 左右的样子了。

![jetbrains-screenshot]( https://cloud-upyun.ddiu.site/picture/2023/01/04/I39lUE.jpg)

## 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
chatGPT 为啥突然报权限不足了

具体报错
Access denied
Error code 1020
You do not have access to chat.openai.com.

The site owner may have set restrictions that prevent you from accessing the site.
之前梯子设置成国外节点就可以了,现在换成美国、新加坡等所有节点都不行了

#site #节点 #报错 #Access #denied #Error #code #1020 #do #access
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']
```
浮墨笔记显示出 bug 了


浮墨笔记显示出 bug 了

原本是 tag 和文案不粘连的

`#code/git/` 文案 balababala

现在整行粘连在一起了

`#code/git/span> 文案 balababala`


(不会上传图片=。=
深度解析在 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

---------


![img]( https://ushost.xuanyuanhuangdi.org/WX20240515-103759@2x.png)
![img]( https://ushost.xuanyuanhuangdi.org/WX20240515-103059@2x.png)
![img]( https://ushost.xuanyuanhuangdi.org/WX20240515-101919@2x.png)
新开源了一套 React 高质量 Hooks 库,欢迎试用和提建议。


![screenshot]( https://s2.loli.net/2024/07/03/XjReoNwi5mI7MbO.png)

# 介绍

`@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)
给你的 Vitepress 文档自动补充代码组图标 [vitepress-plugin-group-icons]


Vitepress 有一个[代码组]( https://vitepress.dev/zh/guide/markdown#code-groups)功能,可以允许用户对多个代码块进行分组并切换:

![]( https://i.imgur.com/OXAuRB8.png)

[vitepress-plugin-group-icons]( https://github.com/yuyinws/vitepress-plugin-group-icons) 是一个插件,可以为代码组自动补充图标,增强文档的可读性。

## 内置图标

包含常见的前端包管理器,框架,配置文件等

![]( https://i.imgur.com/qratqxs.png)

## 自定义图标

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

![]( https://i.imgur.com/VSIorUz.png)


## 案例展示

已经有许多开源项目的 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