#base-16 #base24 #tinted-theming #color-scheme #library #cli

已删除 builder-rust

一个使用yaml配色方案生成主题文件的Tinted Theming模板构建器

2个不稳定版本

0.2.0 2024年3月8日
0.1.0 2024年3月8日

#8 in #base16

每月下载 25次

GPL-3.0 许可证

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 --helpbuilder-rust build --help
--version -V 显示builder-rust的版本。 所有 - builder-rust--版本

构建规范

builder-rust实现了0.11.0 builder规范。此规范详细说明了yaml格式或模式以及构建器在渲染mustache模板文件时应提供的变量。有关更多详细信息,请参阅builder规范文档。

此库公开了SchemeTemplate结构,您可以使用这些结构使用base16base24模板以及符合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