#font #download #awesome #command-line-tool #font-management

bin+lib font-catcher

用户和系统字体管理的命令行工具和高级库

8 个稳定版本

2.1.1 2022 年 1 月 25 日
2.1.0 2022 年 1 月 24 日
2.0.0 2021 年 11 月 21 日
1.2.5 2021 年 11 月 9 日
1.0.1 2021 年 9 月 30 日

#345 in 可视化

每月 24 次下载

AGPL-3.0

45KB
989

Font Catcher

一个跨平台的命令行工具和用户及系统字体管理的高级库

有趣的徽章 :P

main publishing crate downloads built with nix

用户快速入门

安装

前往 发布 页面,下载您想要的版本(推荐下载最新版本),将文件复制到 /usr/bin,然后就可以使用了!

注意:目前有两个版本(普通版和包含 Google Fonts 的版本),目前推荐下载包含 Google Fonts 的版本以获得更多字体选择,但未来可能会有所变化,请参阅 开源字体仓库

基本使用

Font Catcher 的命令旨在使用方便、直观。如果您曾经使用过 aptdnf 作为包管理器,您会注意到它们的相似之处。默认情况下,Font Catcher 包含一个仓库,目前是 WIP:开源字体仓库,但也可以使用 Google Fonts 作为仓库(以及其他仓库)。

搜索字体

font-catcher search font-name

安装字体

font-catcher install font-name

删除字体

font-catcher remove font-name

就是这样!(大多数情况下)

开发者快速入门

添加到您的项目中

font-catcher 使用了一些可能未安装在本系统中的低级库。

sudo apt install pkg-config libfreetype-dev openssl librust-openssl-dev cmake llvm make expat fontconfig fontconfig1-dev

安装这些库后,将其添加到 cargo 文件中

[dependencies]
font-catcher = "2.0.0"

使用库

要使用库,需要做两件事:导入它并初始化它。

use font-catcher as font_catcher;

let main() {
    let fonts_hashmap = font_catcher::init()?;
}

这返回一个 HashMap,其中键是字体名称,值是一个包含许多有用函数的结构体,在下面的示例中,我们将安装和删除 Agave 字体

use font-catcher as font_catcher;

let main() {
    let fonts_hashmap = font_catcher::init()?;

    match fonts_hashmap.get("Agave") {
    	// Checks if the font exists
        Some(font) => {font.install_to_user(None, true)?;},
	// None -> This means the font will be downloaded from any repo
	// available.
	// true -> Gives terminal output of the operation.
	None => {println!("No Agave font found!");}
	// Prints a message if the font is not to be found
    }

    match fonts_hashmap.get("Agave") {
    	// Checks if the font exists
        Some(font) => {font.uninstall_from_user(true)?;},
	// true -> Gives terminal output of the operation.
	None => {println!("No Agave font found!");}
	// Prints a message if the font is not to be found
    }
}

文档

更多示例可以在 main.rs 文件 中找到。

贡献者快速入门

使用Nix设置

第一步是克隆git仓库

git clone https://github.com/GustavoPeredo/Font-Catcher.git
cd Font-Catcher

然后,nix 使您非常容易开始在此项目上工作。只需在任意发行版或MacOS上下载 nix 即可

nix-shell

搞定! 所有依赖项、rust和neovim插件都将被安装。

编译

对于常见的修改

cargo build

应该足够了,但如果您想使用Google Fonts仓库进行编译,那么您需要从 Google Font的网站 获取一个密钥,然后编译时启用 google_repo 功能

GOOGLE_FONTS_KEY="YOUR API KEY HERE" cargo build --features google_repo

版本控制

v1.0.0 -> v2.0.0 主要版本更改了api

v1.0.0 -> v1.1.0 中间版本添加了功能,并可能弃用函数/函数输出

v1.0.0 -> v1.1.1 小版本包含错误修复和其他更新

其他文档

进一步使用

您可以将字体下载到指定目录,而不是直接安装

font-catcher download /desired/path Agave

您可以通过在字体之前传递 --repo 标志来指定要搜索、安装和下载字体的仓库

示例

font-catcher install --repo "Google Fonts" Roboto

font-catcher search --repo "Open Font Repository" Aga

font-catcher download ~/Downloads --repo "Open Font Repository" Agave

可以一次性安装、下载和删除多个字体

font-catcher install font1 font2 font3

font-catcher remove font1 font2 font3

要更新字体目录到最新版本,请运行

font-catcher update-repos

添加仓库

编辑 repos.conf 文件

将另一个仓库添加到最简单的方法是编辑位于字体-catcher文件夹中的数据文件下的 repos.conf 文件(通常为 ~/.local/share/font-catcher)。如果文件不存在,请创建一个新的文件。

这是一个仓库的模板

[[repo]]
name = "Open Font Repository Local"
url = "https://raw.githubusercontent.com/GustavoPeredo/open-font-repository/main/fonts.json"

如果您的仓库有一个API密钥,请在URL中添加 {API_KEY},API密钥应放置在URL中,例如

[[repo]]
name = "Google Fonts Local"
url = "https://www.googleapis.com/webfonts/v1/webfonts?key={API_KEY}"
key = "KEY"

您可以添加任意数量的仓库,只需像这样将它们追加到文件中即可

[[repo]]
name = "Open Font Repository Local"
url = "https://raw.githubusercontent.com/GustavoPeredo/open-font-repository/main/fonts.json"

[[repo]]
name = "Google Fonts Local"
url = "https://www.googleapis.com/webfonts/v1/webfonts?key={API_KEY}"
key = "KEY"

添加到源代码

要将仓库添加到源代码,请参考 src/repo.rs 中的示例

Repository {
                name: "Open Font Repository".to_string(),
                url: "https://raw.githubusercontent.com/GustavoPeredo/open-font-repository/main/fonts.json".to_string(),
                key: None,
            }

也许还有其他与此软件兼容的字体仓库,我在此不知情,它们在编译时作为选项将会很方便!

依赖项

~10–21MB
~322K SLoC