mirror of
https://github.com/catppuccin/lua.git
synced 2026-01-09 05:31:30 +08:00
84 lines
2.0 KiB
Lua
84 lines
2.0 KiB
Lua
local json = require("cjson")
|
|
|
|
local pallete_list = {
|
|
"rosewater",
|
|
"flamingo",
|
|
"pink",
|
|
"mauve",
|
|
"red",
|
|
"maroon",
|
|
"peach",
|
|
"yellow",
|
|
"green",
|
|
"teal",
|
|
"sky",
|
|
"sapphire",
|
|
"blue",
|
|
"lavender",
|
|
"text",
|
|
"subtext1",
|
|
"subtext0",
|
|
"overlay2",
|
|
"overlay1",
|
|
"overlay0",
|
|
"surface2",
|
|
"surface1",
|
|
"surface0",
|
|
"base",
|
|
"mantle",
|
|
"crust",
|
|
}
|
|
|
|
local flavors_file = {
|
|
latte = io.open("catppuccin/latte.lua", "w+"),
|
|
frappe = io.open("catppuccin/frappe.lua", "w+"),
|
|
macchiato = io.open("catppuccin/macchiato.lua", "w+"),
|
|
mocha = io.open("catppuccin/mocha.lua", "w+"),
|
|
}
|
|
|
|
local f_json = assert(io.open("palette-porcelain.json") or io.open("assets/palette-porcelain.json"))
|
|
local pallete = json.decode(f_json:read("a"))
|
|
f_json:close()
|
|
|
|
for flavor, f in pairs(flavors_file) do
|
|
f:write("return {\n")
|
|
f:write((" name = \"%s\",\n"):format(flavor))
|
|
for _, pallete_name in ipairs(pallete_list) do
|
|
local v = pallete[flavor][pallete_name]
|
|
local r, g, b = (table.unpack or unpack)(v.rgb)
|
|
local h, s, l = (table.unpack or unpack)(v.hsl)
|
|
f:write(([[ %s = {
|
|
hex = "#%s",
|
|
rgb = { %d, %d, %d },
|
|
hsl = { %d, %.2f, %.2f },
|
|
},
|
|
]]):format(pallete_name, v.hex, r, g, b, h, s, l))
|
|
end
|
|
f:write("}")
|
|
f:close()
|
|
end
|
|
|
|
local mini = io.open("catppuccin-amalg.lua", "w+")
|
|
|
|
flavors_file = {
|
|
latte = io.open("catppuccin/latte.lua", "r"),
|
|
frappe = io.open("catppuccin/frappe.lua", "r"),
|
|
macchiato = io.open("catppuccin/macchiato.lua", "r"),
|
|
mocha = io.open("catppuccin/mocha.lua", "r"),
|
|
}
|
|
|
|
for flavor, f in pairs(flavors_file) do
|
|
---@type string
|
|
local content = f:read("*a")
|
|
mini:write((content:gsub("^return", "local "..flavor.." =")), "\n")
|
|
f:close()
|
|
end
|
|
|
|
mini:write([[
|
|
return {
|
|
latte = function() return latte end,
|
|
frappe = function() return frappe end,
|
|
macchiato = function() return macchiato end,
|
|
mocha = function() return mocha end,
|
|
}
|
|
]]) |