2个不稳定版本
0.2.0 | 2024年3月8日 |
---|---|
0.1.0 | 2024年3月8日 |
#8 in #base16
每月下载 25次
75KB
649 行
builder-rust
注意:该项目已被重命名为 tinted-builder-rust 以拥有一个更具体的名字。请更新以使用 tinted-builder-rust。
一个用于使用 0.11.0
构建规范 构建 base16 和 base24 模板的构建器。
此crate包含一个命令行工具,用于构建base16和base24模板。它也是一个库crate,您可以使用它直接在您的Rust应用程序中构建模板。
目录
CLI
安装
Cargo
cargo install builder-rust
Homebrew
brew tap tinted-theming/tinted
brew install builder-rust
二进制文件
从 存储库发行版页面 下载相关的二进制文件。
基本用法
builder-rust sync # To sync with latest schemes
builder-rust build path/to/base16-template
命令
以下是一个表格,列出了CLI工具(builder-rust)可用的子命令,包括描述和任何显著的参数。
子命令 | 描述 | 参数 | 示例用法 |
---|---|---|---|
sync |
安装或更新最新方案。 | - | builder-rust sync |
build |
构建模板的主题。 | template_path :模板目录的路径。 |
builder-rust build./path/to/base16-template |
标志
标志/选项 | 描述 | 适用子命令 | 默认值 | 示例用法 |
---|---|---|---|---|
--schemes-dir -s |
用于构建的自定义本地方案目录的路径。如果不需要最新方案存储库,则此参数是必需的。 | build |
builder-rust build. --schemes-dir=/path/to/schemes/dir |
|
--data-dir -d |
指定数据目录的自定义路径。 | 所有 | Linux: $XDG_DATA_HOME/tinted-theming/builder-rust 或 ~/.local/share . MacOS: ~/Library/Application\ Support/tinted-theming/builder-rust |
builder-rust sync--数据-dir/path/to/自定义/数据-dir |
--help -h |
显示子命令的帮助信息。 | 所有 | - | builder-rust --help 、builder-rust build --help 等 |
--version -V |
显示builder-rust的版本。 | 所有 | - | builder-rust--版本 |
构建规范
builder-rust实现了0.11.0
builder规范。此规范详细说明了yaml格式或模式以及构建器在渲染mustache模板文件时应提供的变量。有关更多详细信息,请参阅builder规范文档。
库
此库公开了Scheme
和Template
结构,您可以使用这些结构使用base16和base24模板以及符合0.11.0
规范的base16和base24方案文件来生成您自己的主题。
内部builder-rust使用ramhorns来渲染模板。
库安装
cargo add builder-rust
库使用方法
use builder_rust::{Scheme, Template};
use std::fs::read_to_string;
let template_str = read_to_string("path/to/template.mustache").unwrap();
let scheme_str = read_to_string("path/to/scheme.yml").unwrap();
let template = Template::new(template_str).unwrap();
let scheme: Scheme = serde_yaml::from_str(&scheme_str).unwrap();
template
.render_to_file("path/to/rendered/template", &scheme)
.unwrap();
Schema结构如下
pub struct Scheme {
pub system: String,
pub name: String,
pub slug: String,
pub author: String,
pub description: Option<String>,
pub variant: String,
pub palette: HashMap<String, Color>,
}
pub struct Color {
pub hex: (String, String, String),
pub rgb: (u8, u8, u8),
pub dec: (f32, f32, f32),
}
Template::new
Template
结构仅通过Template::new
设置提供的内容。
template.render_to_file(&scheme)
接收方案并生成0.11.0
builder规范中定义的变量。
贡献
欢迎贡献力量!有关更多信息,请参阅CONTRIBUTING.md。
许可证
本项目使用Ramhorns,它受GPL-3许可证的约束。虽然大多数Tinted Theming项目都受MIT许可证的约束,但由于本项目消耗了Ramhorns,因此本项目受GPL-3许可证的约束。有关更多详细信息,请参阅LICENSE文件和license.html文件,其中包含项目中使用的crate的许可证。
依赖关系
~6–17MB
~185K SLoC