#color-scheme #base-16 #template #field #rendering #github

base16_color_scheme

用于构建base16-colorschemes的库

4个版本 (2个重大更改)

0.3.1 2023年4月12日
0.3.0 2023年4月4日
0.2.0 2023年3月31日
0.1.0 2023年3月30日

模板引擎 中排名第348

Download history 15/week @ 2024-03-11 9/week @ 2024-03-18 16/week @ 2024-03-25 25/week @ 2024-04-01 10/week @ 2024-04-08 12/week @ 2024-04-22 11/week @ 2024-04-29 3/week @ 2024-05-06 1/week @ 2024-05-13 10/week @ 2024-05-20 6/week @ 2024-06-03 18/week @ 2024-06-10 15/week @ 2024-06-17 19/week @ 2024-06-24

每月下载量58次
用于 flavours

MIT/Apache

28KB
395

base16_color_scheme

一个用Rust编写的用于构建base16颜色方案的库。

它使用ramhorns作为模板引擎,因此速度相当快。
(基于https://github.com/chriskempson/base16-templates-source 生成的9MB模板,大约70ms - 200ms。)

入门

要开始使用,您需要创建一个 Template 和一个 Scheme

Template 可以通过只读取模板文件并使用 Template::new() 来创建。

Scheme 通常通过使用 serde 反序列化来创建。

TemplateScheme 在渲染过程中都不会被修改,这意味着两者都可以用于效率。

use base16_color_scheme::{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();

工作原理

内部,该软件包通过实现ramhornsContent特性来工作。当渲染过程尝试查找一个字段时,字段名称被解析为TemplateField。如果是颜色,则从Scheme中获取该颜色,并按照https://github.com/chriskempson/base16/blob/main/builder.md#template-tags中的指定格式进行格式化。

依赖关系

~4MB
~48K SLoC