///|
pub fn ThemeDocument::to_tailwind(self : ThemeDocument) -> String {
let document = self.sorted()
let colors : Array[String] = []
let sizes : Array[String] = []
for token in document.tokens {
let name = token.path.canonical().replace(old=".", new="-")
match token.value {
ColorValue(value) =>
colors.push(
" \"" + json_escape(name) + "\": \"" + json_escape(value) + "\"",
)
NumberValue(value) =>
sizes.push(
" \"" + json_escape(name) + "\": \"" + value.to_string() + "px\"",
)
_ => ()
}
}
let builder = StringBuilder::new()
builder.write_string("{\n \"theme\": {\n \"extend\": {")
if colors.length() > 0 {
builder.write_string("\n \"colors\": {\n")
builder.write_string(colors.join(",\n"))
builder.write_string("\n }")
}
if sizes.length() > 0 {
if colors.length() > 0 {
builder.write_string(",")
}
builder.write_string("\n \"fontSize\": {\n")
builder.write_string(sizes.join(",\n"))
builder.write_string("\n }")
}
builder.write_string("\n }\n }\n}\n")
builder.to_string()
}