RSS: https://blog.196000.xyz/atom.xml
开发实践、Docker 与 Homelab 折腾,偶尔写写生活。
提交点赞

博客中文字体自托管与子集化实践

上一篇《字体原理笔记》讲了字体栈和子集化的原理,这一篇只解决怎么落地:把一套中文字体放到自己的服务器上,并把十几 MB 的源文件裁成网页能承受的大小。 我拿 Noto Serif SC 做示例,正文使用 400,标题和粗体使用 700。换成思源宋体、霞鹜文楷或其它字体时,步骤不变,需要调整的只是下载地址、文件名和字重。 为什么要做字体子集 中文字体通常包含两万多个字形。一个完整的 OTF/TTF ...
评论点赞收藏13 天前

字体原理笔记

上一篇《博客字体的选择》记的是换字体的结果,现在继续说一下背后的原理。 三大字体族 衬线体(serif):笔画末端带小装饰角。拉丁的 Times、Georgia;中文对应宋体/明体——横细竖粗、横画末端有顿角。装饰不是审美添头,是工艺化石:拉丁衬线来自古罗马石刻收刀,宋体顿角来自雕版刀口与毛笔顿笔。气质天然联想「纸、书、正式」。 黑体(sans-serif):去掉一切装饰,笔画等粗。拉丁的 Hel...
评论点赞收藏20 天前

博客字体的选择

记录博客更换字体,结果把字号、行高、行宽、颜色全部换了一遍——因为字体族要配对尺寸系统,动一个就得动一串。 从衬线体到系统黑体 最初使用思源宋体的子集(400/700 两档,子集化后各 400KB 左右),当时的实现: body { / 拉丁字形在前:英文、数字走 Georgia(真斜体+老式数字),中文落自托管宋体 / font-family: Georgia, "Iowan Old Style...
评论点赞收藏21 天前

我的AI牛仔裤选购指南

一个困扰的问题 平时穿得最多的就是牛仔裤。回顾那些被淘汰的裤子,无论价格高低,“死因”惊人地一致——后裆十字缝附近的布料,要么摩擦变色,要么越磨越薄,最后直接拉丝破洞。 我一直想不通:就算是久坐,受力最大的明明是臀部正中间,为什么先报废的反而是它下面那一圈? 为了解开这个心结,我和 AI 进行了下面这场对话,并最终据此挑到了一条相对满意的牛仔裤。 与 AI 的对话过程 第一步:角色设定 你是一名衣...
评论点赞收藏26 天前

Cloudflare Tunnel 内网穿透

使用 Cloudflare Tunnel 穿透内网服务暴露在外网。 原理:在内网服务器上跑一个 cloudflared 进程,它主动向 Cloudflare 边缘网络建立一条加密隧道。外部用户访问你的域名 → Cloudflare 全球网络 → 隧道 → 你的内网服务。全程只需要出站连接,不需要开放任何入站端口。 前置准备 Cloudflare 账号 域名托管在 Cloudflare 一台内网服务...
评论点赞收藏31 天前

Claude Code Skills 使用

Claude Code Skills 是一套模块化功能扩展系统,允许开发者通过结构化的文件夹来增强 Claude 的能力。每个Skills(Skill)都包含一个核心的 文件以及相关的辅助资源文件。 Skills存储方式 个人Skills (Personal Skills) 存储位置:~/.claude/skills/ 目录 适用场景:个人工作流程优化、实验性功能开发、个人生产力工具 项目Skil...
评论点赞收藏52 天前

Node.js 环境安装

使用 winget 安装 # 安装官方 LTS 版本 winget install OpenJS.NodeJS.LTS # 安装特定的版本 winget install OpenJS.NodeJS.LTS --version 24.18.0 # 安装完成后,重启终端并输入 node -v 和 npm -v 验证是否成功 使用安装包安装 使用 或者 Node.js 官方网站下载 Windows 安装...
评论点赞收藏56 天前

使用 AI 开发一个 Chrome 插件

主要是整理整个操作的步骤,F12查看源码,找出关键的HTML控件代码,比如点击按钮、 输入文本框等,然后提交给提示词让根据需求完成编码。 下面的是实现一个风控网站的助手插件,把历史搜索过的关键字先导出 csv 文件,然后逐行扫描根据关键字导出 PDF 结果文件下载到本地存档。 # Chrome tdcc 操作辅助助手 开发 Chrome 插件,辅助人工批量操作,实现浏览器自动化以下操作,注意每个...
评论点赞收藏82 天前

chrome-devtools-mcp 使用

Chrome DevTools MCP 是一个本地服务,它为 AI 编码助手(比如 Claude、Codex、Cursor 等)提供了一套控制 Chrome 浏览器的工具集。 Chrome M144 中添加了一项新功能,可让 Chrome 开发者工具 MCP 服务器请求远程调试连接。这一新流程基于 Chrome 现有的远程调试功能构建而成。默认情况下,Chrome 中会停用远程调试连接。开发者必须...
评论点赞收藏86 天前

FastAdmin 使用备忘录

项目初始配置 # 将 application\admin\view\index\index.html 文件将 admin.php 警告隐藏 sed -i '/alert-danger-light text-center/s#style="margin-bottom:0;border:none;"#style="margin-bottom:0;border:none;display:none;"#'...
评论点赞收藏89 天前

Claude Code 使用

安装 # 全局安装 npm install -g @anthropic-ai/claude-code # bash curl -fsSL | bash # Windows PowerShell irm | iex # Windows CMDbatch curl -fsSL -o install.cmd && install.cmd && del install.cmd # 查看版本 claude ...
评论点赞收藏124 天前

Docker版CLIProxyAPI部署

Docker 版配置文件 # cat /opt/docker/build/dockge/cliproxyapi/compose.yaml services: cliproxyapi: image: eceasy/cli-proxy-api:latest container_name: cliproxyapi ports: - 8317:8317 - 8085:8085 - 1455:1455 - ...
评论点赞收藏134 天前

Codex 编辑文件乱码解决方案

Codex 编辑文件乱码 解决 Codex 修改文件后中文乱码问题:根源在终端编码,不在 VS Code! 关键词:Codex、中文乱码、VS Code、PowerShell、UTF-8、终端编码、无 BOM 问题现象 使用 GitHub Copilot(或 Codex)修改包含中文的文件时,保存后打开发现中文变成乱码,比如: 我爱中文 → 实际应为 “我爱中文” 很多人第一反应是...
评论点赞收藏145 天前

Codex 使用笔记

使用第三方中转配置 ~/.codex/auth.json { "auth_mode": "apikey", "OPENAI_API_KEY": "sk-697379e50af6d2d2c98429d9be2010f2638f3ee6d1d72d437a3ec0dcfe268330" } ~/.codex/config.toml windows_wsl_setup_acknowledged = tr...
评论点赞收藏152 天前

SSH 密码爆破的三层境界

第一层,手动输密码 手撸,地球人都知道的原始方式。 ssh -p 20026 root@38.148.243.111 # 参数说明 # -p 20026 指定 SSH 连接的端口 20026 # root@38.148.243.111 登录目标主机 38.148.243.111,以 root 用户身份 第二层,自动输密码 把密码字典枚举后,自动输入密码。 sshpass -p "0a9a8a872...
评论点赞收藏186 天前

源码编译开源项目 Memos 安卓版 APK

windows11下编译开源项目 的 0.8.5 (对应 Memos-v0.24.0) 版本 APK 步骤。 1. 检出源码 # 1)clone 项目 git clone cd MoeMemosAndroid # 2)拉取远端标签(若还没拉过) git fetch origin --tags # 3)查看是否有 0.8.5 的 tag git tag -l "0.8.5" # 4)切换到 0.8....
评论点赞收藏187 天前

rsync 常用用法

假设本地目录结构如下,需要同步到线上服务器 root@74.48.1.2:/opt/backup/dst/ 目录下 /mnt/d/src/ ├── dir_a │ ├── dir_a1 │ ├── dir_a2 │ │ ├── dir_aa1 │ │ └── file_aa1.txt │ ├── dir_a3 │ └── file_a1.txt ├── dir_b ├── dir_c └── fi...
评论点赞收藏208 天前

Docker 环境部署 Ollama + Open WebUI

我的环境:Win11 + WSL2 Ubuntu 22.04 + Docker,使用 Docker 部署 Ollama(模型服务)+ Open WebUI(网页界面) 1、先确认 Docker/Compose OK 在 WSL 的 Ubuntu 里执行: docker version docker compose version 都能输出版本号就行。 2、创建一键启动的 docker-compos...
评论点赞收藏215 天前

Node.js 多版本使用和管理

fnm 是一款快速简单跨平台的 Node.js 版本管理器,使用 Rust 构建。 # 安装 fnm winget install Schniz.fnm fnm --version fnm current # 查看最新版本 fnm ls-remote --lts --latest # 安装版本 fnm install 24.12.0 # 使用指定版本 fnm use 24.12.0 # 固化nod...
评论点赞收藏236 天前