diff options
author | Adam <adamdharrison@gmail.com> | 2023-10-10 16:20:03 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-10 16:20:03 -0400 |
commit | 7db1dfb381912b4335779246f6f11ed405c6583e (patch) | |
tree | b360e69a9459d6f38c50ccb7b4181f1fdca397bc | |
parent | 1857097d36394054b4b3943febc88496ea2f5b44 (diff) | |
parent | bc75163b8b0dac536b1ccccf9d4325537a8ce4eb (diff) | |
download | lite-xl-colors-7db1dfb381912b4335779246f6f11ed405c6583e.tar.gz lite-xl-colors-7db1dfb381912b4335779246f6f11ed405c6583e.zip |
Merge pull request #26 from lite-xl/PR/add-in-autogeneration
Add in Auto-Generation/Stub Support with LPM
-rw-r--r-- | .github/workflows/workflow.yml | 31 | ||||
-rw-r--r-- | README.md | 94 | ||||
-rwxr-xr-x | make_preview_image.lua | 51 | ||||
-rw-r--r-- | manifest.json | 413 | ||||
-rw-r--r-- | previews/ayu-dark.svg | 30 | ||||
-rw-r--r-- | previews/ayu-light.svg | 28 | ||||
-rw-r--r-- | previews/ayu-mirage.svg | 30 | ||||
-rw-r--r-- | previews/github-dark-dimmed.svg | 22 | ||||
-rwxr-xr-x | scripts/make_preview_image.lua | 50 |
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 + @@ -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 |