惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

L
Lohrmann on Cybersecurity
Martin Fowler
Martin Fowler
Engineering at Meta
Engineering at Meta
腾讯CDC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Azure Blog
Microsoft Azure Blog
G
Google Developers Blog
TaoSecurity Blog
TaoSecurity Blog
博客园_首页
Vercel News
Vercel News
Hugging Face - Blog
Hugging Face - Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
Last Week in AI
Last Week in AI
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
The Exploit Database - CXSecurity.com
量子位
Project Zero
Project Zero
A
Arctic Wolf
小众软件
小众软件
NISL@THU
NISL@THU
C
CERT Recently Published Vulnerability Notes
有赞技术团队
有赞技术团队
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
N
News and Events Feed by Topic
宝玉的分享
宝玉的分享
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
T
Troy Hunt's Blog
P
Privacy & Cybersecurity Law Blog
Security Latest
Security Latest
B
Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
D
DataBreaches.Net
Schneier on Security
Schneier on Security
The Hacker News
The Hacker News
K
Kaspersky official blog
C
Check Point Blog
Hacker News: Ask HN
Hacker News: Ask HN
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Webroot Blog
Webroot Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
人人都是产品经理
人人都是产品经理
AI
AI
Cisco Talos Blog
Cisco Talos Blog
MyScale Blog
MyScale Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
S
Schneier on Security
P
Palo Alto Networks Blog

皓子的小站

网站字体应用之坑——font-family 篇 糟糕的 meta name="theme-color" How to Automatically Track Newly Supported ESLint Rules in Oxlint How to Gradually Migrate from ESLint to Oxlint (Without Breaking Everything) 静态资源预压缩:零运行时开销,极致节省带宽 CVE-2025-70886 Proof of Concept (PoC) | A Script to Crash Halo CMS Comment Backend 自定义网页鼠标指针——一段曲折的旅程 CVE-2025-70886 漏洞复现/PoC | 一个脚本让 Halo CMS 评论后台瘫痪 2025 年终总结 & 博客两周年 老用户专享!已有 Halo 专业版授权可免费升级商业版 自动追踪 Oxlint 对 ESLint 规则的新增支持 Halo 贡献者证书与实体周边盲盒开箱 博客评论系统指南 CDN 回源跟随配置导致登录异常问题排查 SCDN 免费赞助计划:助力高质量博客&博客圈 锐捷校园网:网络共享与带宽叠加方案(哈理工案例) ESLint 到 Oxlint 渐进式迁移快速上手指南 Fixing Vite Breaking Inline JS & CSS in Thymeleaf Templates 解决 Vite 破坏 Thymeleaf 模板内联 JS & CSS 的方法 我的博客,为什么是月更? 博客俱乐部一周年纪念品开箱 网站字体加载之坑——format 篇 经历 1000000000 次 DDoS 请求攻击后,我总结了三条经验 题解分享:[AtCoder Beginner Contest 414 E] Count A%B=C 题解分享:[蓝桥杯 2025 国 Python A] 杨辉三角 P12876 FiF口语训练破解刷分教程(适用于 Windows) 不要与蠢人辩论 小心网络地雷·续篇 当心网络组织“开往”·续篇 当心网络组织“开往” 小心网络地雷 在 Halo CMS 中通过模板实现随机推荐多篇文章 回应某博客上有关“开往”组织在内部会议上对我的污蔑(上) 再遭 DDoS 攻击:CDN 流量限额拦不住请求计费飙升 2025年团体程序设计天梯赛 - Python 个人赛时暴力题解 网站流量分析工具 Umami 中国大陆合规版发布 把握当下,享受生活 Folo 认证功能反成漏洞?警惕 RSS 订阅源所有权被恶意盗取风险 在 Halo CMS 中通过模板实现随机文章跳转功能 从沉默展柜到时代回响:731部队罪证陈列馆参访手记 脚本分享:CDN 流量触顶后自动切换至 Cloudflare 官方 BUG 快薅!Halo 永久/买断用户可额外获得一份买断许可 老用户专享!已有 1Panel 永久授权/买断许可用户可再领免费买断许可证! 限时特惠!1¥ 立即解锁 1Panel 专业版全功能 61 天 混合云架构下的动态 IPv6 智能加速实践:从家庭网络到全球分发的低成本部署指南 如何用 AI 全方面辅助博客创作 - 从博文之内到博文之外 Random Number Generation and Formatting in Thymeleaf Thymeleaf 随机数生成与格式化详解 列举我维护的项目和发布的软件包 快速部署教程 - 通过 Webhook 触发邮件通知的开源自托管服务 Going Against the Grain - Four Websites That Make Your URL Longer 反其道而行 - 四个让你网址变得更长的网站 2024 年终总结 & 博客一周年 基于 OneBot API 的简易异步 QQ 群批量发消息脚本 如何给文章分类和打标签 群规之敏感违禁词对抗 一图展示​ ​RSS3 世界 - The Open(RSS3) Universe 开源项目发到 bilibili 后可能获得的 PR C/C++:为什么 a[i][j] 等价于 *(*(a+i)+j) Fast Methods to Convert Uppercase Letters to Lowercase in C++ C++ 中快速将字符串大写字母转为小写的方法 Fixing GitHub Actions push to ghcr '403 Forbidden' error Fixing docker pull image "ghcr.io..." Unauthorized error 本站“算法题练习/题解分享”相关文章汇总 不怕流氓多,就怕流氓有文化——站长应该防范的几个问题及对应解决方法分享 题解分享:HRBUST 1132 水数 新手程序员必备的三项技能 如何快速排查插件(模组)的兼容性问题(基于二分法和分治思想) 通过 Umami 最新功能观察定时发布文章的最佳时段 踩坑分享:如何一个人搬运 126.7 斤的书坐动车 两篇文章分享:别像弱智一样提问 & 提问的智慧 论下落式音游/定轨音游中的优质粪铺(文末附铺面推荐) 为什么选择无纸化阅读?为什么买墨水屏电子书?为什么 Kindle“失败”了? 我维护的 Halo 主题,现已发布到 Halo 应用商店! OSU!Standard(osu!std)/OSU!Taiko 转 OSU!Mania 铺面转换器发布 我常用的 OSU!Mania 皮肤分享 电荷守恒辨析:为什么一个离子带多个电荷要乘上所带电荷数而不是除以所带电荷数 注意!align-items: flex-start 会导致 overflow-wrap: break-word 失效 惊人 98 元限定T恤!1Panel, Halo 开发商开启推广积分奖励活动 Minecraft Spigot Bukkit 服务器插件开发 教程收集 中文博客倡议 Windows 10 遇到“只能重装系统”但不想重装的解决方案 Windows 10 文件系统错误 -2144926975 -2147219196 修复 Windows 10 升级 Windows 11 简明教程 CSS 预处理器如何正确的复用样式(stylus 中使用 @extend 继承的坑) 请一定要回复博客下的匿名评论!对于博主和评论者有关匿名评论的倡议 一图解释单一质点运动波动图像和振动图像的关系 解决 Docker pull image "ghcr.io..." Unauthorized error 解决 GitHub Actions push to ghcr '403 Forbidden' error 解决 Umami API 更新延迟问题(如何修改开源项目代码并构建 Docker 镜像-以 Umami 为例) 在国家公祭日自动将网站变灰 中文博客圈列表 解决 Halo CMS 的 Umami Plugin CORS&CSP 跨域报错问题 Windows 创建存储池报错 无法创建池 不支持该请求 (0x00000032) Windows 显示器突然黑白 桌面突然黑白 鼠标和截图还是彩色的 通过指令过滤出正确的公网 IPv6 地址(记一次折腾 IPv6 DDNS) 我的世界免费科技地址 1.7-1.21 网站 Favicon 下载工具发布 键盘 Bios 内可用 系统内无法输入 设备管理器无黄色感叹号 设备管理器 网卡一堆黄色感叹号 例如 WAN, Miniport
如何快速完成中文排版优化
HowieHz · 2024-12-19 · via 皓子的小站

前言

手动优化的方法就是照着中文文案排版指北,复制或创造一套自己的排版指南,并且以此作为方法论来指导网站内容排版。

快速优化的方法就是使用现成的工具。

《中文文案排版指北》已经附上了不少相关工具可供参考
仓库 系列 语言
pangu.js pangu JavaScript
pangu-go pangu Go
pangu.java pangu Java
pangu.py pangu Python
pangu.rb pangu Ruby
pangu.php pangu PHP
pangu.vim pangu Vim
vue-pangu pangu Vue.js (Web Converter)
intellij-pangu pangu Intellij Platform Plugin
autocorrect autocorrect Rust, WASM, CLI tool
autocorrect-node autocorrect Node.js
autocorrect-py autocorrect Python
autocorrect-rb autocorrect Ruby
autocorrect-java autocorrect Java
autocorrect-go autocorrect Go
autocorrect-php autocorrect PHP
autocorrect-vscode autocorrect VS Code Extension
autocorrect-idea-plugin autocorrect Intellij Platform Plugin
jxlwqq/chinese-typesetting other PHP
sparanoid/space-lover other PHP (WordPress)
sparanoid/grunt-auto-spacing other Node.js (Grunt)
hjiang/scripts/add-space-between-latin-and-cjk other Python
hustcc/hint other Python
n0vad3v/Tekorrect other Python

本文将简单介绍三款最常用的工具,希望能为你的选择提供参考。

AutoCorrect

🎯 AutoCorrect 的愿景是提供一套标准化的文案较正方案。以便于在各类场景(例如:撰写书籍、文档、内容发布、项目源代码...)里面应用,让使用者轻松实现标准化、专业化的文案输出 / 校正。

项目链接:huacnlee/autocorrect

AutoCorrect 是一个用于改进中英文混排文本中的空格、标点符号的代码格式化工具和 Lint 工具。主要针对中文、日文和韩文(CJK)与英文之间的文本格式进行自动校正,确保文案的准确性和专业性。

AutoCorrect 项目亮点

  • 支持超过 28 种文件类型(Markdown、JSON、YAML、JavaScript、HTML 等),通过抽象语法树(AST)分析仅检查字符串和注释部分。
  • 此外,此项目还提供了一个 LSP 服务器 autocorrect-lsp
  • 此项目支持 Linux、macOS、Windows 和 WebAssembly 的跨平台,还可通过对应的 SDK 在不同的编程环境中使用,如 Rust、Ruby、Go、Python、Node.js、JavaScript (Browser)、Java。

如何使用 AutoCorrect

安装非常简单,在 CLI 中使用时可以通过包管理器如 Homebrew 或 Scoop 安装,也可以通过命令行直接安装。允许允户通过命令行界面直接对文件进行格式化或 Lint 检查。

此工具还可以集成到各种持续集成(CI)环境中,例如 GitLab CI、GitHub Action 和 Travis CI,以自动检查和格式化代码提交。

用户可以定制 .autocorrectrc 配置文件来调整规则,例如自动为中英文之间添加空格、调整标点符号的全角半角,以及配置特定的文字或文件的忽略规则。

赫蹏(hètí)

赫蹏(hètí)是专为中文内容展示设计的排版样式增强。它基于通行的中文排版规范而来,可以为网站的读者带来更好的文章阅读体验。

项目链接:sivan/heti

赫蹏(Heti)是一个专门为中文内容设计的 CSS 库,它旨在通过增强样式来改善中文内容的展示。Heti 基于中文排版规范,支持包括预置的古文和诗词样式在内的多种文本排版需求,使网站内容展示更加美观和专业。

赫蹏项目亮点

  • 为中西文混排提供自动空格和全角标点挤压功能,减少手动调整。
  • 支持简体和繁体中文,以及自适应黑暗模式,适合各种浏览环境。
  • 提供多种预设样式,如行间注、多栏、竖排等,以及兼容常见的 CSS 重置方法,如 normalize.css。
  • 移动端友好,确保各设备上的阅读体验。

如何使用 Heti

使用 Heti 的方式非常简单,只需要在 HTML 文档的 <head> 部分引入 heti.css 文件,并在目标元素上添加 class="heti"。此外,还可以通过 JavaScript 脚本进一步增强功能,如自动添加空格和挤压标点。

Pangu 系列

有研究显示,打字的时候不喜欢在中文和英文之间加空格的人,感情路都走得很辛苦,有七成的比例会在 34 岁的时候跟自己不爱的人结婚,而其余三成的人最后只能把遗产留给自己的猫。毕竟爱情跟书写都需要适时地留白。

与大家共勉之。

项目链接:vinta/pangu.js

Pangu.js 介绍

Pangu.js 是一个用于处理中文与西文字母、数字、符号之间自动添加空格的 JavaScript 库。这个库的主要功能是提高中英文混排的可读性,根据中文排版指南,自动在中文和其他字符之间插入空格,使得文本更为清晰易读。

Pangu.js 项目亮点

  • 轻量级且高效,适用于网页和服务器环境。
  • 支持浏览器和 Node.js 环境,易于集成到现有的项目中。
  • 提供了多种接口,如直接作用于 HTML 元素、处理字符串等,使用方便灵活。

如何使用 Pangu.js

使用 Pangu.js 的方式非常简单,只需要在 HTML 文档中引入对应的 JavaScript 文件,然后调用提供的函数即可实现文本中自动添加适当的空格,以优化中英文混排的排版效果。

在 Node.js 中,也可以直接使用 pangu.spacing(text) 函数来处理字符串,并返回添加了必要空格的新字符串。

另外也支持在 CLI 中使用。

注意:不应该直接将此库用于调整 Markdown 文档的空格,因为这个库是专门为 HTML 网页和不含任何标记语言的纯文本设计的。

盘古系列概述

用户使用

  • Google Chrome (2019-02-09 更新):提供 Chrome 浏览器扩展,自动调整网页上的文本间距。
  • Mozilla Firefox (2019-02-09 更新):为 Firefox 用户提供类似的扩展。

开发者使用

  • 官方支持:
    • pangu.go (Go):适用于 Go 编程环境。
    • pangu.java (Java):可集成到 Java 应用程序中。
    • pangu.js (JavaScript):适用于浏览器和 Node.js 环境,便于 Web 项目中使用。
    • pangu.py (Python):适用于 Python 脚本和应用程序,自动化文本间距修正。
    • pangu.dart(Dart):为 Dart 开发者提供,可用于 Flutter 应用中保持文本呈现的一致性。
    • pangu.space (Web API):一个 API 服务,可从任何编程环境调用以应用文本间距修正。
  • 社区支持:
    • pangu.clj (Clojure):由社区开发的 Clojure 应用程序库。
    • pangu.dart (Dart):为 Dart 开发者提供,可用于 Flutter 应用中保持文本呈现的一致性。
    • pangu.ex (Elixir):适用于 Elixir 编程,有助于 Phoenix 项目或任何基于 Elixir 的应用。
    • pangu.objective-c (Objective-C):适用于 iOS 和 macOS 应用开发。
    • pangu.php (PHP):允许 PHP 应用自动处理文本间距。
    • pangu.rb (Ruby):为 Rails 或纯 Ruby 应用提供 Ruby gem。
    • pangu.rs (Rust):用于 Rust 应用,确保混合语言文本的可读性。
    • pangu.swift (Swift):适用于 Swift 开发的 iOS 和 macOS 应用。

结语

如果您对文中提到的工具有其他疑问或补充,欢迎在评论区一起交流探讨。