aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/workflow.yml31
-rw-r--r--README.md94
-rwxr-xr-xmake_preview_image.lua51
-rw-r--r--manifest.json413
-rw-r--r--previews/ayu-dark.svg30
-rw-r--r--previews/ayu-light.svg28
-rw-r--r--previews/ayu-mirage.svg30
-rw-r--r--previews/github-dark-dimmed.svg22
-rwxr-xr-xscripts/make_preview_image.lua50
9 files changed, 643 insertions, 106 deletions
diff --git a/.github/workflows/workflow.yml b/.github/workflows/workflow.yml
new file mode 100644
index 0000000..6022eae
--- /dev/null
+++ b/.github/workflows/workflow.yml
@@ -0,0 +1,31 @@
+name: Update README
+
+on:
+ push:
+ branches: [master]
+
+jobs:
+ reorganize:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Generate table with `lpm`
+ run: |
+ wget https://github.com/lite-xl/lite-xl-plugin-manager/releases/download/latest/lpm.x86_64-linux -O lpm && chmod +x lpm
+ # Unstub all stubs so we can make proper previews.
+ ./lpm --userdir . init . && ./lpm --userdir . color install "*" && ./lpm purge --userdir .
+ ./lpm exec scripts/make_preview_image.lua colors/*
+ # Remove everything after the --- so we can regenerate it.
+ perl -pi -e 'exit(0) if $_ =~ m/^\-\-\-/' README.md
+ echo "---" >> README.md
+ echo -e "\n## Dark\n" >> README.md
+ ./lpm list --repository . --type color --tag "dark" --table 'url,{string.format("![%s_preview](previews/%s.svg)", addon.id,addon.id)}' --type color --header Theme,Preview >> README.md
+ echo -e "\n## Light\n" >> README.md
+ ./lpm list --repository . --type color --tag "light" --table 'url,{string.format("![%s_preview](previews/%s.svg)", addon.id,addon.id)}' --type color --header Theme,Preview >> README.md
+ if ! git diff --exit-code -s README.md; then
+ git config --global user.name "Github Actions" && git config --global user.email "<>"
+ git add README.md previews
+ git commit -m '[CI] Updated README.md.'
+ git push
+ fi
+
diff --git a/README.md b/README.md
index c394bec..6741a54 100644
--- a/README.md
+++ b/README.md
@@ -16,55 +16,61 @@ Then, add a call to `core.reload_module` to your user module (the gear in the bo
core.reload_module("colors.github_dark")
```
-*Note: if you make a pull request, the relevant table should be updated and kept
-in alphabetical order. The [`make_preview_image.lua`](make_preview_image.lua)
-script should be used to create a preview image for your theme which should be
-embedded in the table.*
+*Note: if you make a pull request, please update the manifest.json.
+The below table will be automatically updated as part of CI; please
+do not bother modifying it.*
+
+
+<!-- DO NOT EDIT THIS FILE MANUALLY -->
+<!-- This file is autogenerated from manifest.json, so edit that. -->
+<!-- DO NOT EDIT THIS FILE MANUALLY -->
---
## Dark
-Theme | Preview
-------|-----------------------------------------
-[`betelgeuse`](colors/betelgeuse.lua?raw=1) | ![betelgeuse_preview](previews/betelgeuse.svg)
-[`cold_lime`](colors/cold_lime.lua?raw=1) | ![cold_lime_preview](previews/cold_lime.svg)
-[`c0mfy`](colors/c0mfy.lua?raw=1) | ![c0mfy_preview](previews/c0mfy.svg)
-[`dracula`](colors/dracula.lua?raw=1) | ![dracula_preview](previews/dracula.svg)
-[`duorand`](colors/duorand.lua?raw=1) | ![duorand_preview](previews/duorand.svg)
-[`duotone`](colors/duotone.lua?raw=1) | ![duotone_preview](previews/duotone.svg)
-[`everforest`](colors/everforest.lua?raw=1) | ![everforest_preview](previews/everforest.svg)
-[`github_dark`](colors/github_dark.lua?raw=1) | ![github_dark_preview](previews/github_dark.svg)
-[`github-dark-dimmed`](colors/github-dark-dimmed.lua?raw=1) | ![duotone_preview](previews/github-dark-dimmed.svg)
-[`gruvbox_dark`](colors/gruvbox_dark.lua?raw=1) | ![gruvbox_dark_preview](previews/gruvbox_dark.svg)
-[`jb-fleet`](colors/jb-fleet.lua?raw=1) | ![jb-fleet_preview](previews/jb-fleet.svg)
-[`jellybeans`](colors/jellybeans.lua?raw=1) | ![jellybeans_preview](previews/jellybeans.svg)
-[`liqube`](colors/liqube.lua?raw=1) | ![liqube_preview](previews/liqube.svg)
-[`mariana`](colors/mariana.lua?raw=1) | ![mariana_preview](previews/mariana.svg)
-[`monodark`](colors/monodark.lua?raw=1) | ![monodark_preview](previews/monodark.svg)
-[`monokai`](colors/monokai.lua?raw=1) | ![monokai_preview](previews/monokai.svg)
-[`monokai-pro-classic`](colors/monokai-pro-classic.lua?raw=1) | ![monokai-pro-classic_preview](previews/monokai-pro-classic.svg)
-[`nord`](colors/nord.lua?raw=1) | ![nord_preview](previews/nord.svg)
-[`onedark`](colors/onedark.lua?raw=1) | ![onedark_preview](previews/onedark.svg)
-[`only_dark`](colors/only_dark.lua?raw=1) | ![only_dark_preview](previews/only_dark.svg)
-[`plasma`](colors/plasma.lua?raw=1) | ![plasma_preview](previews/plasma.svg)
-[`rose-pine-moon`](colors/rose-pine-moon.lua?raw=1)| ![rose_pine_review](previews/rose-pine-moon.svg)
-[`rose-pine`](colors/rose-pine.lua?raw=1)| ![rose_pine_review](previews/rose-pine.svg)
-[`solarized_dark`](colors/solarized_dark.lua?raw=1) | ![solarized_dark_preview](previews/solarized_dark.svg)
-[`synthwave`](colors/synthwave.lua?raw=1) | ![synthwave_preview](previews/synthwave.svg)
-[`tokyo-night`](colors/tokyo-night.lua?raw=1) | ![tokyo-night_preview](previews/tokyo-night.svg)
-[`vscode-dark`](colors/vscode-dark.lua?raw=1) | ![vscode-dark_preview](previews/vscode-dark.svg)
-[`winter`](colors/winter.lua?raw=1) | ![winter_preview](previews/winter.svg)
-[`zenburn`](colors/zenburn.lua?raw=1) | ![zenburn_preview](previews/zenburn.svg)
+| Theme | Preview |
+| ------------------------------------------------------------------- | ---------------------------------------------------------------- |
+| [`abyss`](colors/abyss.lua?raw=1) | ![abyss_preview](previews/abyss.svg) |
+| [`ayu-dark`](https://github.com/juliardi/lite-xl-ayu-theme.git)\* | ![ayu-dark_preview](previews/ayu-dark.svg) |
+| [`ayu-mirage`](https://github.com/juliardi/lite-xl-ayu-theme.git)\* | ![ayu-mirage_preview](previews/ayu-mirage.svg) |
+| [`betelgeuse`](colors/betelgeuse.lua?raw=1) | ![betelgeuse_preview](previews/betelgeuse.svg) |
+| [`c0mfy`](colors/c0mfy.lua?raw=1) | ![c0mfy_preview](previews/c0mfy.svg) |
+| [`cold_lime`](colors/cold_lime.lua?raw=1) | ![cold_lime_preview](previews/cold_lime.svg) |
+| [`dracula`](colors/dracula.lua?raw=1) | ![dracula_preview](previews/dracula.svg) |
+| [`duorand`](colors/duorand.lua?raw=1) | ![duorand_preview](previews/duorand.svg) |
+| [`duotone`](colors/duotone.lua?raw=1) | ![duotone_preview](previews/duotone.svg) |
+| [`everforest`](colors/everforest.lua?raw=1) | ![everforest_preview](previews/everforest.svg) |
+| [`github-dark-dimmed`](colors/github-dark-dimmed.lua?raw=1) | ![github-dark-dimmed_preview](previews/github-dark-dimmed.svg) |
+| [`github_dark`](colors/github_dark.lua?raw=1) | ![github_dark_preview](previews/github_dark.svg) |
+| [`gruvbox_dark`](colors/gruvbox_dark.lua?raw=1) | ![gruvbox_dark_preview](previews/gruvbox_dark.svg) |
+| [`jb-fleet`](colors/jb-fleet.lua?raw=1) | ![jb-fleet_preview](previews/jb-fleet.svg) |
+| [`jellybeans`](colors/jellybeans.lua?raw=1) | ![jellybeans_preview](previews/jellybeans.svg) |
+| [`liqube`](colors/liqube.lua?raw=1) | ![liqube_preview](previews/liqube.svg) |
+| [`mariana`](colors/mariana.lua?raw=1) | ![mariana_preview](previews/mariana.svg) |
+| [`monodark`](colors/monodark.lua?raw=1) | ![monodark_preview](previews/monodark.svg) |
+| [`monokai`](colors/monokai.lua?raw=1) | ![monokai_preview](previews/monokai.svg) |
+| [`monokai-pro-classic`](colors/monokai-pro-classic.lua?raw=1) | ![monokai-pro-classic_preview](previews/monokai-pro-classic.svg) |
+| [`nord`](colors/nord.lua?raw=1) | ![nord_preview](previews/nord.svg) |
+| [`onedark`](colors/onedark.lua?raw=1) | ![onedark_preview](previews/onedark.svg) |
+| [`only_dark`](colors/only_dark.lua?raw=1) | ![only_dark_preview](previews/only_dark.svg) |
+| [`plasma`](colors/plasma.lua?raw=1) | ![plasma_preview](previews/plasma.svg) |
+| [`rose-pine`](colors/rose-pine.lua?raw=1) | ![rose-pine_preview](previews/rose-pine.svg) |
+| [`rose-pine-moon`](colors/rose-pine-moon.lua?raw=1) | ![rose-pine-moon_preview](previews/rose-pine-moon.svg) |
+| [`synthwave`](colors/synthwave.lua?raw=1) | ![synthwave_preview](previews/synthwave.svg) |
+| [`tokyo-night`](colors/tokyo-night.lua?raw=1) | ![tokyo-night_preview](previews/tokyo-night.svg) |
+| [`vscode-dark`](colors/vscode-dark.lua?raw=1) | ![vscode-dark_preview](previews/vscode-dark.svg) |
+| [`winter`](colors/winter.lua?raw=1) | ![winter_preview](previews/winter.svg) |
+| [`zenburn`](colors/zenburn.lua?raw=1) | ![zenburn_preview](previews/zenburn.svg) |
## Light
-Theme | Preview
-------|-----------------------------------------
-[`github`](colors/github.lua?raw=1) | ![github_preview](previews/github.svg)
-[`gruvbox_light`](colors/gruvbox_light.lua?raw=1) | ![gruvbox_light_preview](previews/gruvbox_light.svg)
-[`moe`](colors/moe.lua?raw=1) | ![moe_preview](previews/moe.svg)
-[`rose-pine-dawn`](colors/rose-pine-dawn.lua?raw=1)| ![rose_pine_review](previews/rose-pine-dawn.svg)
-[`solarized_light`](colors/solarized_light.lua?raw=1) | ![solarized_light_preview](previews/solarized_light.svg)
-[`solarobj`](colors/solarobj.lua?raw=1) | ![solarobj_preview](previews/solarobj.svg)
-
+| Theme | Preview |
+| ------------------------------------------------------------------ | -------------------------------------------------------- |
+| [`ayu-light`](https://github.com/juliardi/lite-xl-ayu-theme.git)\* | ![ayu-light_preview](previews/ayu-light.svg) |
+| [`github`](colors/github.lua?raw=1) | ![github_preview](previews/github.svg) |
+| [`gruvbox_light`](colors/gruvbox_light.lua?raw=1) | ![gruvbox_light_preview](previews/gruvbox_light.svg) |
+| [`moe`](colors/moe.lua?raw=1) | ![moe_preview](previews/moe.svg) |
+| [`rose-pine-dawn`](colors/rose-pine-dawn.lua?raw=1) | ![rose-pine-dawn_preview](previews/rose-pine-dawn.svg) |
+| [`solarized_light`](colors/solarized_light.lua?raw=1) | ![solarized_light_preview](previews/solarized_light.svg) |
+| [`solarobj`](colors/solarobj.lua?raw=1) | ![solarobj_preview](previews/solarobj.svg) |
diff --git a/make_preview_image.lua b/make_preview_image.lua
deleted file mode 100755
index 6bcaac8..0000000
--- a/make_preview_image.lua
+++ /dev/null
@@ -1,51 +0,0 @@
-#!/usr/bin/lua
-
-local filename = ...
-local name = filename:match("([^\\/]+)%..*$")
-
-
--- get colors
-local text = io.open(filename):read("*a")
-local colors = {}
-for r, g, b in text:gmatch("#(%x%x)(%x%x)(%x%x)") do
- r = tonumber(r, 16)
- g = tonumber(g, 16)
- b = tonumber(b, 16)
- table.insert(colors, { r, g, b })
-end
-
-table.sort(colors, function(a, b)
- return a[1] + a[2] + a[3] < b[1] + b[2] + b[3]
-end)
-
-local function eq(a, b)
- return a[1] == b[1] and a[2] == b[2] and a[3] == b[3]
-end
-
-local prev = {}
-for i = #colors, 1, -1 do
- if eq(colors[i], prev) then
- table.remove(colors, i)
- else
- prev = colors[i]
- end
-end
-
-
---generate svg file
-local w = 200
-local h = 16
-local fp = io.open("previews/" .. name .. ".svg", "wb")
-
-fp:write('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'..w..'" height="'..h..'" shape-rendering="crispEdges"> \n')
-
-for i = 1, #colors do
- local width = w/#colors
- local r, g, b = table.unpack(colors[i])
- local rect = '<rect x="'..(i-1)*width..'" width="'..width..'" height="'..h..'" fill="rgb('..r..', '..g..', '..b..')"></rect> \n'
- fp:write(rect)
-end
-
-fp:write('</svg>')
-fp:close()
-
diff --git a/manifest.json b/manifest.json
new file mode 100644
index 0000000..bfb83c1
--- /dev/null
+++ b/manifest.json
@@ -0,0 +1,413 @@
+{
+ "addons" : [
+ {
+ "id" : "abyss",
+ "mod_version" : "3.0.0",
+ "name" : "abyss",
+ "path" : "colors/abyss.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id": "ayu-dark",
+ "remote": "https://github.com/juliardi/lite-xl-ayu-theme.git:33a514527d4870480554771c273e667eb6418873",
+ "type": "color",
+ "tags": [
+ "dark"
+ ]
+ },
+ {
+ "id": "ayu-light",
+ "remote": "https://github.com/juliardi/lite-xl-ayu-theme.git:33a514527d4870480554771c273e667eb6418873",
+ "type": "color",
+ "tags": [
+ "light"
+ ]
+ },
+ {
+ "id": "ayu-mirage",
+ "remote": "https://github.com/juliardi/lite-xl-ayu-theme.git:33a514527d4870480554771c273e667eb6418873",
+ "type": "color",
+ "tags": [
+ "dark"
+ ]
+ },
+ {
+ "id" : "betelgeuse",
+ "mod_version" : "3.0.0",
+ "name" : "betelgeuse",
+ "path" : "colors/betelgeuse.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "c0mfy",
+ "mod_version" : "3.0.0",
+ "name" : "c0mfy",
+ "path" : "colors/c0mfy.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "cold_lime",
+ "mod_version" : "3.0.0",
+ "name" : "cold_lime",
+ "path" : "colors/cold_lime.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "dracula",
+ "mod_version" : "3.0.0",
+ "name" : "dracula",
+ "path" : "colors/dracula.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "duorand",
+ "mod_version" : "3.0.0",
+ "name" : "duorand",
+ "path" : "colors/duorand.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "duotone",
+ "mod_version" : "3.0.0",
+ "name" : "duotone",
+ "path" : "colors/duotone.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "everforest",
+ "mod_version" : "3.0.0",
+ "name" : "everforest",
+ "path" : "colors/everforest.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "github",
+ "mod_version" : "3.0.0",
+ "name" : "github",
+ "path" : "colors/github.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "github-dark-dimmed",
+ "mod_version" : "3.0.0",
+ "name" : "github-dark-dimmed",
+ "path" : "colors/github-dark-dimmed.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "github_dark",
+ "mod_version" : "3.0.0",
+ "name" : "github_dark",
+ "path" : "colors/github_dark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "gruvbox_dark",
+ "mod_version" : "3.0.0",
+ "name" : "gruvbox_dark",
+ "path" : "colors/gruvbox_dark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "gruvbox_light",
+ "mod_version" : "3.0.0",
+ "name" : "gruvbox_light",
+ "path" : "colors/gruvbox_light.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "jb-fleet",
+ "mod_version" : "3.0.0",
+ "name" : "jb-fleet",
+ "path" : "colors/jb-fleet.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "jellybeans",
+ "mod_version" : "3.0.0",
+ "name" : "jellybeans",
+ "path" : "colors/jellybeans.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "liqube",
+ "mod_version" : "3.0.0",
+ "name" : "liqube",
+ "path" : "colors/liqube.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "mariana",
+ "mod_version" : "3.0.0",
+ "name" : "mariana",
+ "path" : "colors/mariana.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "moe",
+ "mod_version" : "3.0.0",
+ "name" : "moe",
+ "path" : "colors/moe.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "monodark",
+ "mod_version" : "3.0.0",
+ "name" : "monodark",
+ "path" : "colors/monodark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "monokai",
+ "mod_version" : "3.0.0",
+ "name" : "monokai",
+ "path" : "colors/monokai.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "monokai-pro-classic",
+ "mod_version" : "3.0.0",
+ "name" : "monokai-pro-classic",
+ "path" : "colors/monokai-pro-classic.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "nord",
+ "mod_version" : "3.0.0",
+ "name" : "nord",
+ "path" : "colors/nord.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "onedark",
+ "mod_version" : "3.0.0",
+ "name" : "onedark",
+ "path" : "colors/onedark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "only_dark",
+ "mod_version" : "3.0.0",
+ "name" : "only_dark",
+ "path" : "colors/only_dark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "plasma",
+ "mod_version" : "3.0.0",
+ "name" : "plasma",
+ "path" : "colors/plasma.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "rose-pine",
+ "mod_version" : "3.0.0",
+ "name" : "rose-pine",
+ "path" : "colors/rose-pine.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "rose-pine-dawn",
+ "mod_version" : "3.0.0",
+ "name" : "rose-pine-dawn",
+ "path" : "colors/rose-pine-dawn.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "rose-pine-moon",
+ "mod_version" : "3.0.0",
+ "name" : "rose-pine-moon",
+ "path" : "colors/rose-pine-moon.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "solarized_light",
+ "mod_version" : "3.0.0",
+ "name" : "solarized_light",
+ "path" : "colors/solarized_light.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "solarobj",
+ "mod_version" : "3.0.0",
+ "name" : "solarobj",
+ "path" : "colors/solarobj.lua",
+ "tags" : [
+ "light"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "synthwave",
+ "mod_version" : "3.0.0",
+ "name" : "synthwave",
+ "path" : "colors/synthwave.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "tokyo-night",
+ "mod_version" : "3.0.0",
+ "name" : "tokyo-night",
+ "path" : "colors/tokyo-night.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "vscode-dark",
+ "mod_version" : "3.0.0",
+ "name" : "vscode-dark",
+ "path" : "colors/vscode-dark.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "winter",
+ "mod_version" : "3.0.0",
+ "name" : "winter",
+ "path" : "colors/winter.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ },
+ {
+ "id" : "zenburn",
+ "mod_version" : "3.0.0",
+ "name" : "zenburn",
+ "path" : "colors/zenburn.lua",
+ "tags" : [
+ "dark"
+ ],
+ "type" : "color",
+ "version" : "0.1"
+ }
+ ]
+}
diff --git a/previews/ayu-dark.svg b/previews/ayu-dark.svg
new file mode 100644
index 0000000..b7b3895
--- /dev/null
+++ b/previews/ayu-dark.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="16" shape-rendering="crispEdges">
+<rect x="0.0" width="7.1428571428571" height="16" fill="rgb(16, 20, 28)"></rect>
+<rect x="7.1428571428571" width="7.1428571428571" height="16" fill="rgb(24, 28, 37)"></rect>
+<rect x="14.285714285714" width="7.1428571428571" height="16" fill="rgb(28, 33, 40)"></rect>
+<rect x="21.428571428571" width="7.1428571428571" height="16" fill="rgb(34, 38, 46)"></rect>
+<rect x="28.571428571429" width="7.1428571428571" height="16" fill="rgb(37, 41, 47)"></rect>
+<rect x="35.714285714286" width="7.1428571428571" height="16" fill="rgb(53, 57, 63)"></rect>
+<rect x="42.857142857143" width="7.1428571428571" height="16" fill="rgb(187, 0, 0)"></rect>
+<rect x="50.0" width="7.1428571428571" height="16" fill="rgb(72, 72, 79)"></rect>
+<rect x="57.142857142857" width="7.1428571428571" height="16" fill="rgb(82, 82, 89)"></rect>
+<rect x="64.285714285714" width="7.1428571428571" height="16" fill="rgb(92, 99, 112)"></rect>
+<rect x="71.428571428571" width="7.1428571428571" height="16" fill="rgb(28, 124, 156)"></rect>
+<rect x="78.571428571429" width="7.1428571428571" height="16" fill="rgb(131, 131, 143)"></rect>
+<rect x="85.714285714286" width="7.1428571428571" height="16" fill="rgb(114, 184, 134)"></rect>
+<rect x="92.857142857143" width="7.1428571428571" height="16" fill="rgb(255, 102, 102)"></rect>
+<rect x="100.0" width="7.1428571428571" height="16" fill="rgb(255, 143, 64)"></rect>
+<rect x="107.14285714286" width="7.1428571428571" height="16" fill="rgb(170, 217, 76)"></rect>
+<rect x="114.28571428571" width="7.1428571428571" height="16" fill="rgb(240, 113, 113)"></rect>
+<rect x="121.42857142857" width="7.1428571428571" height="16" fill="rgb(57, 186, 230)"></rect>
+<rect x="128.57142857143" width="7.1428571428571" height="16" fill="rgb(230, 180, 80)"></rect>
+<rect x="135.71428571429" width="7.1428571428571" height="16" fill="rgb(242, 150, 104)"></rect>
+<rect x="142.85714285714" width="7.1428571428571" height="16" fill="rgb(255, 169, 77)"></rect>
+<rect x="150.0" width="7.1428571428571" height="16" fill="rgb(255, 180, 84)"></rect>
+<rect x="157.14285714286" width="7.1428571428571" height="16" fill="rgb(172, 182, 191)"></rect>
+<rect x="164.28571428571" width="7.1428571428571" height="16" fill="rgb(191, 189, 182)"></rect>
+<rect x="171.42857142857" width="7.1428571428571" height="16" fill="rgb(147, 221, 250)"></rect>
+<rect x="178.57142857143" width="7.1428571428571" height="16" fill="rgb(204, 202, 223)"></rect>
+<rect x="185.71428571429" width="7.1428571428571" height="16" fill="rgb(225, 225, 230)"></rect>
+<rect x="192.85714285714" width="7.1428571428571" height="16" fill="rgb(255, 255, 255)"></rect>
+</svg> \ No newline at end of file
diff --git a/previews/ayu-light.svg b/previews/ayu-light.svg
new file mode 100644
index 0000000..eab30f0
--- /dev/null
+++ b/previews/ayu-light.svg
@@ -0,0 +1,28 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="16" shape-rendering="crispEdges">
+<rect x="0.0" width="7.6923076923077" height="16" fill="rgb(92, 97, 102)"></rect>
+<rect x="7.6923076923077" width="7.6923076923077" height="16" fill="rgb(28, 124, 156)"></rect>
+<rect x="15.384615384615" width="7.6923076923077" height="16" fill="rgb(134, 179, 0)"></rect>
+<rect x="23.076923076923" width="7.6923076923077" height="16" fill="rgb(3, 109, 214)"></rect>
+<rect x="30.769230769231" width="7.6923076923077" height="16" fill="rgb(119, 119, 119)"></rect>
+<rect x="38.461538461538" width="7.6923076923077" height="16" fill="rgb(120, 123, 128)"></rect>
+<rect x="46.153846153846" width="7.6923076923077" height="16" fill="rgb(124, 129, 134)"></rect>
+<rect x="53.846153846154" width="7.6923076923077" height="16" fill="rgb(114, 184, 134)"></rect>
+<rect x="61.538461538462" width="7.6923076923077" height="16" fill="rgb(138, 145, 153)"></rect>
+<rect x="69.230769230769" width="7.6923076923077" height="16" fill="rgb(250, 141, 62)"></rect>
+<rect x="76.923076923077" width="7.6923076923077" height="16" fill="rgb(255, 102, 102)"></rect>
+<rect x="84.615384615385" width="7.6923076923077" height="16" fill="rgb(240, 113, 113)"></rect>
+<rect x="92.307692307692" width="7.6923076923077" height="16" fill="rgb(255, 170, 51)"></rect>
+<rect x="100.0" width="7.6923076923077" height="16" fill="rgb(85, 180, 212)"></rect>
+<rect x="107.69230769231" width="7.6923076923077" height="16" fill="rgb(237, 147, 102)"></rect>
+<rect x="115.38461538462" width="7.6923076923077" height="16" fill="rgb(242, 174, 73)"></rect>
+<rect x="123.07692307692" width="7.6923076923077" height="16" fill="rgb(255, 119, 119)"></rect>
+<rect x="130.76923076923" width="7.6923076923077" height="16" fill="rgb(255, 169, 77)"></rect>
+<rect x="138.46153846154" width="7.6923076923077" height="16" fill="rgb(188, 188, 188)"></rect>
+<rect x="146.15384615385" width="7.6923076923077" height="16" fill="rgb(188, 193, 198)"></rect>
+<rect x="153.84615384615" width="7.6923076923077" height="16" fill="rgb(204, 204, 204)"></rect>
+<rect x="161.53846153846" width="7.6923076923077" height="16" fill="rgb(147, 221, 250)"></rect>
+<rect x="169.23076923077" width="7.6923076923077" height="16" fill="rgb(220, 220, 220)"></rect>
+<rect x="176.92307692308" width="7.6923076923077" height="16" fill="rgb(236, 236, 236)"></rect>
+<rect x="184.61538461538" width="7.6923076923077" height="16" fill="rgb(252, 252, 252)"></rect>
+<rect x="192.30769230769" width="7.6923076923077" height="16" fill="rgb(255, 255, 255)"></rect>
+</svg> \ No newline at end of file
diff --git a/previews/ayu-mirage.svg b/previews/ayu-mirage.svg
new file mode 100644
index 0000000..def7694
--- /dev/null
+++ b/previews/ayu-mirage.svg
@@ -0,0 +1,30 @@
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="16" shape-rendering="crispEdges">
+<rect x="0.0" width="7.1428571428571" height="16" fill="rgb(33, 38, 51)"></rect>
+<rect x="7.1428571428571" width="7.1428571428571" height="16" fill="rgb(36, 41, 54)"></rect>
+<rect x="14.285714285714" width="7.1428571428571" height="16" fill="rgb(49, 54, 67)"></rect>
+<rect x="21.428571428571" width="7.1428571428571" height="16" fill="rgb(52, 52, 68)"></rect>
+<rect x="28.571428571429" width="7.1428571428571" height="16" fill="rgb(72, 72, 79)"></rect>
+<rect x="35.714285714286" width="7.1428571428571" height="16" fill="rgb(68, 73, 86)"></rect>
+<rect x="42.857142857143" width="7.1428571428571" height="16" fill="rgb(82, 82, 89)"></rect>
+<rect x="50.0" width="7.1428571428571" height="16" fill="rgb(221, 0, 51)"></rect>
+<rect x="57.142857142857" width="7.1428571428571" height="16" fill="rgb(84, 89, 118)"></rect>
+<rect x="64.285714285714" width="7.1428571428571" height="16" fill="rgb(92, 99, 112)"></rect>
+<rect x="71.428571428571" width="7.1428571428571" height="16" fill="rgb(28, 124, 156)"></rect>
+<rect x="78.571428571429" width="7.1428571428571" height="16" fill="rgb(131, 131, 143)"></rect>
+<rect x="85.714285714286" width="7.1428571428571" height="16" fill="rgb(114, 184, 134)"></rect>
+<rect x="92.857142857143" width="7.1428571428571" height="16" fill="rgb(255, 102, 102)"></rect>
+<rect x="100.0" width="7.1428571428571" height="16" fill="rgb(240, 113, 113)"></rect>
+<rect x="107.14285714286" width="7.1428571428571" height="16" fill="rgb(255, 169, 77)"></rect>
+<rect x="114.28571428571" width="7.1428571428571" height="16" fill="rgb(242, 158, 116)"></rect>
+<rect x="121.42857142857" width="7.1428571428571" height="16" fill="rgb(92, 207, 230)"></rect>
+<rect x="128.57142857143" width="7.1428571428571" height="16" fill="rgb(255, 173, 102)"></rect>
+<rect x="135.71428571429" width="7.1428571428571" height="16" fill="rgb(255, 204, 102)"></rect>
+<rect x="142.85714285714" width="7.1428571428571" height="16" fill="rgb(255, 209, 115)"></rect>
+<rect x="150.0" width="7.1428571428571" height="16" fill="rgb(188, 186, 207)"></rect>
+<rect x="157.14285714286" width="7.1428571428571" height="16" fill="rgb(213, 255, 128)"></rect>
+<rect x="164.28571428571" width="7.1428571428571" height="16" fill="rgb(204, 202, 194)"></rect>
+<rect x="171.42857142857" width="7.1428571428571" height="16" fill="rgb(147, 221, 250)"></rect>
+<rect x="178.57142857143" width="7.1428571428571" height="16" fill="rgb(184, 207, 230)"></rect>
+<rect x="185.71428571429" width="7.1428571428571" height="16" fill="rgb(225, 225, 230)"></rect>
+<rect x="192.85714285714" width="7.1428571428571" height="16" fill="rgb(255, 255, 255)"></rect>
+</svg> \ No newline at end of file
diff --git a/previews/github-dark-dimmed.svg b/previews/github-dark-dimmed.svg
index b68bb2c..8a689c0 100644
--- a/previews/github-dark-dimmed.svg
+++ b/previews/github-dark-dimmed.svg
@@ -1,12 +1,12 @@
-<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="16" shape-rendering="crispEdges">
-<rect x="0.0" width="20.0" height="16" fill="rgb(34, 39, 46)"></rect>
-<rect x="20.0" width="20.0" height="16" fill="rgb(45, 51, 59)"></rect>
-<rect x="40.0" width="20.0" height="16" fill="rgb(68, 76, 86)"></rect>
-<rect x="60.0" width="20.0" height="16" fill="rgb(46, 76, 119)"></rect>
-<rect x="80.0" width="20.0" height="16" fill="rgb(118, 131, 144)"></rect>
-<rect x="100.0" width="20.0" height="16" fill="rgb(244, 112, 103)"></rect>
-<rect x="120.0" width="20.0" height="16" fill="rgb(108, 182, 255)"></rect>
-<rect x="140.0" width="20.0" height="16" fill="rgb(173, 186, 199)"></rect>
-<rect x="160.0" width="20.0" height="16" fill="rgb(150, 208, 255)"></rect>
-<rect x="180.0" width="20.0" height="16" fill="rgb(220, 189, 251)"></rect>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="16" shape-rendering="crispEdges">
+<rect x="0.0" width="20.0" height="16" fill="rgb(34, 39, 46)"></rect>
+<rect x="20.0" width="20.0" height="16" fill="rgb(45, 51, 59)"></rect>
+<rect x="40.0" width="20.0" height="16" fill="rgb(68, 76, 86)"></rect>
+<rect x="60.0" width="20.0" height="16" fill="rgb(46, 76, 119)"></rect>
+<rect x="80.0" width="20.0" height="16" fill="rgb(118, 131, 144)"></rect>
+<rect x="100.0" width="20.0" height="16" fill="rgb(244, 112, 103)"></rect>
+<rect x="120.0" width="20.0" height="16" fill="rgb(108, 182, 255)"></rect>
+<rect x="140.0" width="20.0" height="16" fill="rgb(173, 186, 199)"></rect>
+<rect x="160.0" width="20.0" height="16" fill="rgb(150, 208, 255)"></rect>
+<rect x="180.0" width="20.0" height="16" fill="rgb(220, 189, 251)"></rect>
</svg> \ No newline at end of file
diff --git a/scripts/make_preview_image.lua b/scripts/make_preview_image.lua
new file mode 100755
index 0000000..d1d48be
--- /dev/null
+++ b/scripts/make_preview_image.lua
@@ -0,0 +1,50 @@
+#!/usr/bin/lua
+
+for i, filename in ipairs({ ... }) do
+ local name = filename:match("([^\\/]+)%..*$")
+
+ -- get colors
+ local text = io.open(filename):read("*a")
+ local colors = {}
+ for r, g, b in text:gmatch("#(%x%x)(%x%x)(%x%x)") do
+ r = tonumber(r, 16)
+ g = tonumber(g, 16)
+ b = tonumber(b, 16)
+ table.insert(colors, { r, g, b })
+ end
+
+ table.sort(colors, function(a, b)
+ return a[1] + a[2] + a[3] < b[1] + b[2] + b[3]
+ end)
+
+ local function eq(a, b)
+ return a[1] == b[1] and a[2] == b[2] and a[3] == b[3]
+ end
+
+ local prev = {}
+ for i = #colors, 1, -1 do
+ if eq(colors[i], prev) then
+ table.remove(colors, i)
+ else
+ prev = colors[i]
+ end
+ end
+
+
+ --generate svg file
+ local w = 200
+ local h = 16
+ local fp = io.open("previews/" .. name .. ".svg", "wb")
+
+ fp:write('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="'..w..'" height="'..h..'" shape-rendering="crispEdges"> \n')
+
+ for i = 1, #colors do
+ local width = w/#colors
+ local r, g, b = table.unpack(colors[i])
+ local rect = '<rect x="'..(i-1)*width..'" width="'..width..'" height="'..h..'" fill="rgb('..r..', '..g..', '..b..')"></rect> \n'
+ fp:write(rect)
+ end
+
+ fp:write('</svg>')
+ fp:close()
+end