shriram-ethiraj/grayslate

GitHub: shriram-ethiraj/grayslate

一款基于 Rust 和 Tauri 构建的跨平台开发者临时笔记工具,支持本地文本转换、大型 CSV 浏览和自动保存搜索。

Stars: 25 | Forks: 3

Grayslate Logo

Grayslate

A fast scratchpad for code, data, and quick thinking.

Download the latest Grayslate release Latest Grayslate version Build status

Grayslate showing automatically named and saved slates
Grayslate 是您常驻在主编辑器旁边的窗口。粘贴 API 响应,探索庞大的 CSV,转换文本或记录灵感。Grayslate 能识别您的内容,推荐相关的转换操作,并自动为每个 slate 命名和保存——方便您随时再次找到它。 ## 功能介绍 **无需网页即可转换文本。** Grayslate 会检测当前的文档或选区,并优先将与内容类型匹配的转换放在前面。格式化 JSON、解码 Base64、将 CSV 转换为 JSON、对字符串进行哈希处理等操作,只需一次按键即可完成,且所有操作均在您的本地机器上运行。内置了超过 80 种转换操作;部分示例请见[下方](#transformations)。 **打开大型 CSV。** 表格视图由 Rust 和虚拟化技术提供支持,因此即使打开包含数十万行的文件并进行滚动,应用也不会卡顿。 **随时粘贴,日后查找。** Grayslate 能根据文件扩展名、shebang 或内容本身识别 40 多种语言。它会自动选择实用的文件名和扩展名,并在您输入时自动保存笔记(即 *slate*)。您可以随时浏览最近的 slate,或通过搜索名称和内容来找到所需文件。 **更高效地处理 JSON。** 右键点击键或值即可复制其路径、键或值,这与在 Chrome DevTools 中的操作非常相似。 此外,它还提供实时 Markdown 预览和多行查找与替换功能,甚至支持跨行匹配。 您的文件和转换操作始终保留在本地机器上。无需注册账号,无需云同步,也没有任何遥测数据。 ## 截图
CSV table view
Large CSVs in a virtualized table

JSON copy path, key, and value actions
Copy a JSON path, key, or value from the context menu

Transformations menu
Relevant transformations suggested from the detected content type
## 下载 ### macOS 下载适用于 Apple Silicon 和 Intel Mac 的[通用 DMG](https://github.com/shriram-ethiraj/grayslate/releases/latest/download/grayslate-macos-universal.dmg)。 或者使用 Homebrew 进行安装: ``` brew install --cask shriram-ethiraj/grayslate/grayslate ``` ### Windows 请为您的 Windows 设备选择相应的安装程序: - [Windows x64](https://github.com/shriram-ethiraj/grayslate/releases/latest/download/grayslate-windows-x86_64-setup.exe) - [Windows ARM64](https://github.com/shriram-ethiraj/grayslate/releases/latest/download/grayslate-windows-aarch64-setup.exe) ### Linux 目前的 Linux 安装包主要针对 x86_64 架构。推荐的安装程序会自动检测 Debian/Ubuntu/Mint 或 Fedora/RHEL 兼容系统,添加官方签名的 APT 或 DNF 软件源,并安装 Grayslate: ``` curl -fsSL https://packages.grayslate.app/install.sh | sh ``` 后续的版本更新将通过您日常使用的系统包管理器和 Linux 图形化更新工具进行分发。 如果倾向于使用独立文件?请下载 [AppImage](https://github.com/shriram-ethiraj/grayslate/releases/latest/download/grayslate-linux-x86_64.AppImage),然后运行: ``` chmod +x grayslate-linux-x86_64.AppImage ./grayslate-linux-x86_64.AppImage ``` 独立的带版本号 DEB/RPM 文件、所有其他构件及校验和均可在 [Releases 页面](https://github.com/shriram-ethiraj/grayslate/releases)获取。 手动配置 APT/DNF 软件源的详细步骤及故障排除方法,请查阅 [Linux 软件源操作手册](docs/linux-package-repository.md)。 ## 转换操作 内置超过 80 种操作。以下是部分功能示例: - **JSON** — 格式化、压缩、验证(允许注释和尾随逗号)、排序键值、JSON ↔ YAML、JSON → CSV、JSON → TypeScript、数组 ↔ JSON-lines、查询字符串 ↔ JSON、将键名重命名为驼峰/蛇形/烤串/标题格式 (camel/snake/kebab/Title case)。 - **CSV** — CSV → JSON(自动检测分隔符),以及从 JSON 端进行 JSON → CSV 转换。 - **编码** — Base64 和 Base64URL 编码/解码、gzip ↔ Base64、十六进制 ↔ ASCII、URL 编码/解码、HTML 实体编码/解码、解码 JWT(未经验证)。 - **哈希** — SHA-256、SHA-512、SHA-1、MD5、CRC32。 - **文本与行** — 大写/小写/标题/驼峰/蛇形/烤串/sPoNgE 大小写转换、行排序、行反转、字符串反转、去除重复项、修剪空白字符、折叠空行、ROT13、统计字数/行数/字符数。 - **数字与时间** — 二进制/十进制/十六进制转换、Unix 时间戳 ↔ RFC 3339。 - **格式化工具** — JavaScript、TypeScript、CSS、HTML、Svelte、YAML、TOML、Markdown、SQL、XML。 - **杂项** — 插入 UUID v4/v7、添加/删除斜杠、对 URL 进行失效处理/恢复 (defang/refang)。 ## 技术栈 - **前端** — [SvelteKit](https://kit.svelte.dev/) + [Svelte 5](https://svelte.dev/)、TypeScript - **编辑器** — [CodeMirror 6](https://codemirror.net/) - **样式** — [Tailwind CSS v4](https://tailwindcss.com/) + shadcn-svelte - **后端** — [Tauri 2](https://tauri.app/) (Rust) 借助 Tauri,Grayslate 能够使用操作系统内置的 WebView,而无需打包一个完整的浏览器,因此下载体积更小,内存占用也更低。 ## 从源码构建 您需要安装 [Node.js](https://nodejs.org/) (v24+)、[Rust](https://www.rust-lang.org/) 和 [pnpm](https://pnpm.io/)。 ``` git clone https://github.com/shriram-ethiraj/grayslate.git cd grayslate pnpm install pnpm tauri dev # run in development pnpm tauri build # produce an optimized build ``` ## 常见问题 **它与 Boop 或 Notepad++ 有什么不同?** Boop 主要专注于一次性的文本转换,而 Notepad++ 是一款通用编辑器。Grayslate 则是围绕持久化的临时记录需求构建的:它能识别粘贴的内容,推荐相关的转换操作,为每个新 slate 起一个有意义的名字,自动保存,并支持日后搜索查找。此外,它还能在 macOS、Windows 和 Linux 上处理真实的文件编辑工作以及大型 CSV 文件。 **Grayslate 会自动保存我的工作吗?** 新的 slate 会在您输入时自动命名并保存,并保留在库中供浏览或搜索。对于从计算机其他位置打开的文件,系统绝不会自动覆盖——只有当您明确选择“保存”时,Grayslate 才会将更改写入这些文件。 **为什么选择 Tauri 而不是 Electron?** Electron 在发布每个应用时都会捆绑完整的 Chromium 和 Node 运行时。Tauri 则复用了系统自带的 WebView,并配合 Rust 后端运行,因此安装包体积要小得多,内存占用也更低。 **为什么不直接使用在线格式化工具?** 因为那样您的数据就会离开您的机器。专有代码、API 密钥、客户 CSV 文件——这些都不应该仅仅为了格式化就传输到陌生人的服务器上。Grayslate 的所有操作均在本地完成。 **它能处理非常大的文件吗?** Grayslate 可以打开最大 200 MB 的文件,无论是 CSV 还是常规文本文件。CSV 表格采用了虚拟化技术,因此即使是包含数十万行的文件也能流畅浏览。 **它是免费的吗?** 是的,完全免费且开源。 ## 路线图 - **Git 同步** — 自动对您的笔记进行版本控制,并将其备份到 Git 仓库中。 - **自定义转换** — 编写您自己的转换操作并将其添加到菜单中。 ## 许可证 MIT。
标签:Rust, SBOM分析, SOC Prime, Svelte, Tauri, 可视化界面, 开发工具, 文本编辑器, 网络流量审计, 通知系统