A builder for base16 and base24 templates using the 0.11.1
builder specification.
This repo contains a command-line tool, tinted-builder-rust, to build base16 and base24 templates. It is also contains a library crate, tinted-builder, which you can use to directly build templates within your own Rust application.
Cargo
cargo install tinted-builder-rust
Homebrew
brew tap tinted-theming/tinted brew install tinted-builder-rust
Binaries
Download the relevant binary from the repository releases page.
tinted-builder-rust sync # To sync with latest schemes tinted-builder-rust build path/to/base16-template
The following is a table of the available subcommands for the CLI tool (tinted-builder-rust), including the descriptions and any notable arguments.
Subcommand Description Arguments Example Usage Flagssync
Installs and or updates latest schemes. - tinted-builder-rust sync
--quiet
(silence stderr and stdout) build
Builds the themes of a template. template_path
: Path to template directory. tinted-builder-rust build ./path/to/base16-template
--quiet
(silence stderr and stdout), --sync
(equivalent of running tinted-builder-rust sync
before tinted-builder-rust build
) Flag/Option Description Applicable Subcommands Default Value Example Usage --schemes-dir
-s
Path to a custom local schemes directory to use when building. Only necessary if the latest schemes repository is not desired. build
tinted-builder-rust build . --schemes-dir=/path/to/schemes/dir
--data-dir
-d
Specifies a custom path for the data directory. All Linux: $XDG_DATA_HOME/tinted-theming/tinted-builder-rust
or ~/.local/share
. MacOS: ~/Library/Application\ Support/tinted-theming/tinted-builder-rust
tinted-builder-rust sync --data-dir /path/to/custom/data-dir
--help
-h
Displays help information for the subcommand. All - tinted-builder-rust --help
, tinted-builder-rust build --help
, etc --version
-V
Shows the version of tinted-builder-rust. All - tinted-builder-rust --version
tinted-builder-rust implements the 0.11.1
builder specification. This specification details the scheme yaml format or schema as well as the variables the builder should provide when rendering template mustache file. Have a look at the builder specification document for more details.
This library exposes a Scheme
and Template
struct which you can use to generate your own themes using base16 and base24 templates and 0.11.1
compliant base16 and base24 scheme files.
Internally tinted-builder-rust uses ribboncurls to render the templates.
cargo add tinted-builder-rust
use tinted_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 scheme = Scheme::Base16(serde_yaml::from_str(&scheme_str).unwrap()); let template = Template::new(template_str, scheme); template .render() .unwrap();
The Scheme struct is as follows:
use std::collections::HashMap; use tinted_builder::{SchemeSystem, SchemeVariant}; pub struct Scheme { pub system: SchemeSystem, pub name: String, pub slug: String, pub author: String, pub description: Option<String>, pub variant: SchemeVariant, 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
The Template
struct simply sets the content provided to it via Template::new
.
template.render_to_file(&scheme)
takes the scheme and generates the variables defined in the 0.11.1
builder specification.
Contributions are welcome! Have a look at CONTRIBUTING.md for more information.
Ribboncurls is dual-licensed under the [Apache 2.0] and [MIT] licenses. For more information about the licenses of the projects used by Ribboncurls, have a look at LICENSES-THIRD-PARTY.md.
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4