diff --git a/lib/screenshot.rb b/lib/screenshot.rb index bde61ec..f3ec439 100644 --- a/lib/screenshot.rb +++ b/lib/screenshot.rb @@ -5,7 +5,7 @@ require 'mini_magick' class Screenshot include Capybara::DSL - attr_accessor :theme, :theme_name + attr_accessor :theme def self.prepare Capybara.register_driver :poltergeist do |app| @@ -19,30 +19,42 @@ class Screenshot end end - def initialize(theme_name) - @theme_name = theme_name - @theme = theme_name.parameterize.underscore + def initialize(theme) + @theme = OpenStruct.new(theme.merge( + slug: theme[:name].parameterize.underscore, + digest: Digest::MD5.new.hexdigest(theme[:colors]) + )) end def generate_theme_image - puts "Generating image for theme #{theme_name}" + if File.exist? target_file + puts "Image for theme #{theme.name} already exists" + return + end + + puts "Generating image for theme #{theme.name}" visit '/' - within ".theme_#{theme}" do + within ".theme_#{theme.slug}" do choose 'sidebar_theme_rd' end sleep 1 - file = Tempfile.new([theme, ".png"]) + + file = Tempfile.new([theme.slug, ".png"]) begin page.save_screenshot(file.path, full: true) MiniMagick::Tool::Convert.new do |convert| convert << file.path convert.crop '220x220+0+0' - convert << "source/images/theme/#{theme}.png" + convert << target_file end ensure file.close file.unlink end end + + def target_file + "source/images/theme/#{theme.slug}-#{theme.digest}.png" + end end \ No newline at end of file diff --git a/lib/screenshot_generator.rb b/lib/screenshot_generator.rb index cb64691..5d17356 100644 --- a/lib/screenshot_generator.rb +++ b/lib/screenshot_generator.rb @@ -9,7 +9,7 @@ class ScreenshotGenerator < ::Middleman::Extension Screenshot.prepare data = YAML.load_file('data/themes.yml') data.each do |theme| - Screenshot.new(theme[:name]).generate_theme_image + Screenshot.new(theme).generate_theme_image end puts "Hello World" # builder.run './my_deploy_script.sh' diff --git a/source/images/theme/aubergine.png b/source/images/theme/aubergine-78c77bed831d7972c590f9bd03e152d8.png similarity index 99% rename from source/images/theme/aubergine.png rename to source/images/theme/aubergine-78c77bed831d7972c590f9bd03e152d8.png index 64cca93..fd98984 100644 Binary files a/source/images/theme/aubergine.png and b/source/images/theme/aubergine-78c77bed831d7972c590f9bd03e152d8.png differ diff --git a/source/images/theme/base16_eighties_dark.png b/source/images/theme/base16_eighties_dark-75cab375f85855ef921fb80f9a061782.png similarity index 99% rename from source/images/theme/base16_eighties_dark.png rename to source/images/theme/base16_eighties_dark-75cab375f85855ef921fb80f9a061782.png index 2fda5dc..ac5935d 100644 Binary files a/source/images/theme/base16_eighties_dark.png and b/source/images/theme/base16_eighties_dark-75cab375f85855ef921fb80f9a061782.png differ diff --git a/source/images/theme/base16_eighties_light.png b/source/images/theme/base16_eighties_light-a46cf66777c2c54503e63b00d9082f43.png similarity index 99% rename from source/images/theme/base16_eighties_light.png rename to source/images/theme/base16_eighties_light-a46cf66777c2c54503e63b00d9082f43.png index 4da1528..f7d1339 100644 Binary files a/source/images/theme/base16_eighties_light.png and b/source/images/theme/base16_eighties_light-a46cf66777c2c54503e63b00d9082f43.png differ diff --git a/source/images/theme/base16_tomorrow_night.png b/source/images/theme/base16_tomorrow_night-71ae07518174786bfe2fb9ab5a9e83ba.png similarity index 99% rename from source/images/theme/base16_tomorrow_night.png rename to source/images/theme/base16_tomorrow_night-71ae07518174786bfe2fb9ab5a9e83ba.png index f8128b1..8b6378b 100644 Binary files a/source/images/theme/base16_tomorrow_night.png and b/source/images/theme/base16_tomorrow_night-71ae07518174786bfe2fb9ab5a9e83ba.png differ diff --git a/source/images/theme/choco_mint.png b/source/images/theme/choco_mint-2fddb05d1683177eb4fb68ee4120e5e7.png similarity index 99% rename from source/images/theme/choco_mint.png rename to source/images/theme/choco_mint-2fddb05d1683177eb4fb68ee4120e5e7.png index 93e2fc3..8c8d4ed 100644 Binary files a/source/images/theme/choco_mint.png and b/source/images/theme/choco_mint-2fddb05d1683177eb4fb68ee4120e5e7.png differ diff --git a/source/images/theme/citrus.png b/source/images/theme/citrus-aabf89160991190ec0315e2a39ea76fa.png similarity index 99% rename from source/images/theme/citrus.png rename to source/images/theme/citrus-aabf89160991190ec0315e2a39ea76fa.png index ed131fa..c0ba8af 100644 Binary files a/source/images/theme/citrus.png and b/source/images/theme/citrus-aabf89160991190ec0315e2a39ea76fa.png differ diff --git a/source/images/theme/digitalocean.png b/source/images/theme/digitalocean-e2d1eca6db4cc8a78abcfce1ebf50f5e.png similarity index 99% rename from source/images/theme/digitalocean.png rename to source/images/theme/digitalocean-e2d1eca6db4cc8a78abcfce1ebf50f5e.png index a0308a7..a23e310 100644 Binary files a/source/images/theme/digitalocean.png and b/source/images/theme/digitalocean-e2d1eca6db4cc8a78abcfce1ebf50f5e.png differ diff --git a/source/images/theme/hoth.png b/source/images/theme/hoth-974a7d725a04044a85c116f730e221b0.png similarity index 99% rename from source/images/theme/hoth.png rename to source/images/theme/hoth-974a7d725a04044a85c116f730e221b0.png index c1e6e2e..60dae81 100644 Binary files a/source/images/theme/hoth.png and b/source/images/theme/hoth-974a7d725a04044a85c116f730e221b0.png differ diff --git a/source/images/theme/juice_bar.png b/source/images/theme/juice_bar-d19b30d5e993056af7bf8fd82ff84ccd.png similarity index 99% rename from source/images/theme/juice_bar.png rename to source/images/theme/juice_bar-d19b30d5e993056af7bf8fd82ff84ccd.png index 3247880..82684d4 100644 Binary files a/source/images/theme/juice_bar.png and b/source/images/theme/juice_bar-d19b30d5e993056af7bf8fd82ff84ccd.png differ diff --git a/source/images/theme/monokai.png b/source/images/theme/monokai-00cd3d1eebb53928d87e47b0e9239b51.png similarity index 99% rename from source/images/theme/monokai.png rename to source/images/theme/monokai-00cd3d1eebb53928d87e47b0e9239b51.png index ecc0eda..c872775 100644 Binary files a/source/images/theme/monokai.png and b/source/images/theme/monokai-00cd3d1eebb53928d87e47b0e9239b51.png differ diff --git a/source/images/theme/monument.png b/source/images/theme/monument-7c8301d46a6d99fd5136c0ecbd55f631.png similarity index 99% rename from source/images/theme/monument.png rename to source/images/theme/monument-7c8301d46a6d99fd5136c0ecbd55f631.png index d69f3c7..e89debf 100644 Binary files a/source/images/theme/monument.png and b/source/images/theme/monument-7c8301d46a6d99fd5136c0ecbd55f631.png differ diff --git a/source/images/theme/ochin.png b/source/images/theme/ochin-bb801cd911b4e1f3f0f951dce01805d7.png similarity index 99% rename from source/images/theme/ochin.png rename to source/images/theme/ochin-bb801cd911b4e1f3f0f951dce01805d7.png index c141fb5..eba346f 100644 Binary files a/source/images/theme/ochin.png and b/source/images/theme/ochin-bb801cd911b4e1f3f0f951dce01805d7.png differ diff --git a/source/images/theme/solarized.png b/source/images/theme/solarized-3c81e712d0f0721fb6664f3946d5f15b.png similarity index 99% rename from source/images/theme/solarized.png rename to source/images/theme/solarized-3c81e712d0f0721fb6664f3946d5f15b.png index 2813f2d..2aa0f63 100644 Binary files a/source/images/theme/solarized.png and b/source/images/theme/solarized-3c81e712d0f0721fb6664f3946d5f15b.png differ diff --git a/source/images/theme/solarized_dark.png b/source/images/theme/solarized_dark-5a4cc5f4d03c3c1e33846234f789fb95.png similarity index 99% rename from source/images/theme/solarized_dark.png rename to source/images/theme/solarized_dark-5a4cc5f4d03c3c1e33846234f789fb95.png index addbf50..d249015 100644 Binary files a/source/images/theme/solarized_dark.png and b/source/images/theme/solarized_dark-5a4cc5f4d03c3c1e33846234f789fb95.png differ diff --git a/source/images/theme/son_of_obsidian.png b/source/images/theme/son_of_obsidian-cab221058b73795c923679a2f3b3e6ad.png similarity index 99% rename from source/images/theme/son_of_obsidian.png rename to source/images/theme/son_of_obsidian-cab221058b73795c923679a2f3b3e6ad.png index d929831..52c738c 100644 Binary files a/source/images/theme/son_of_obsidian.png and b/source/images/theme/son_of_obsidian-cab221058b73795c923679a2f3b3e6ad.png differ diff --git a/source/images/theme/stark_contrast.png b/source/images/theme/stark_contrast-e6e00e4c82364b53023d3b5fda330476.png similarity index 99% rename from source/images/theme/stark_contrast.png rename to source/images/theme/stark_contrast-e6e00e4c82364b53023d3b5fda330476.png index 07c0caa..3e112ae 100644 Binary files a/source/images/theme/stark_contrast.png and b/source/images/theme/stark_contrast-e6e00e4c82364b53023d3b5fda330476.png differ diff --git a/source/images/theme/summer_craze.png b/source/images/theme/summer_craze-e8ab77731821d3102c28ccefd6a10cd7.png similarity index 99% rename from source/images/theme/summer_craze.png rename to source/images/theme/summer_craze-e8ab77731821d3102c28ccefd6a10cd7.png index 4119db0..5c54c1b 100644 Binary files a/source/images/theme/summer_craze.png and b/source/images/theme/summer_craze-e8ab77731821d3102c28ccefd6a10cd7.png differ diff --git a/source/images/theme/tron.png b/source/images/theme/tron-b10d94434b0d041f447eb08564007304.png similarity index 99% rename from source/images/theme/tron.png rename to source/images/theme/tron-b10d94434b0d041f447eb08564007304.png index 439c87f..cc3b700 100644 Binary files a/source/images/theme/tron.png and b/source/images/theme/tron-b10d94434b0d041f447eb08564007304.png differ diff --git a/source/images/theme/wamein.png b/source/images/theme/wamein-38d4677962273b78f31b9a573890be96.png similarity index 99% rename from source/images/theme/wamein.png rename to source/images/theme/wamein-38d4677962273b78f31b9a573890be96.png index 35d076a..bd7d61e 100644 Binary files a/source/images/theme/wamein.png and b/source/images/theme/wamein-38d4677962273b78f31b9a573890be96.png differ diff --git a/source/images/theme/wegman.png b/source/images/theme/wegman-9fa5565d625a1e75be23738d64e056c2.png similarity index 99% rename from source/images/theme/wegman.png rename to source/images/theme/wegman-9fa5565d625a1e75be23738d64e056c2.png index bf01834..f454fc3 100644 Binary files a/source/images/theme/wegman.png and b/source/images/theme/wegman-9fa5565d625a1e75be23738d64e056c2.png differ diff --git a/source/images/theme/work_hard.png b/source/images/theme/work_hard-c12b3ea651f9389a50450ce93c2dba97.png similarity index 99% rename from source/images/theme/work_hard.png rename to source/images/theme/work_hard-c12b3ea651f9389a50450ce93c2dba97.png index c4ffb7a..f68b98a 100644 Binary files a/source/images/theme/work_hard.png and b/source/images/theme/work_hard-c12b3ea651f9389a50450ce93c2dba97.png differ diff --git a/source/index.html.erb b/source/index.html.erb index 1856c0b..cded4ae 100644 --- a/source/index.html.erb +++ b/source/index.html.erb @@ -4,8 +4,9 @@ title: Slack Themes <% data.themes.each do |theme| %> <% theme_slug = theme[:name].parameterize.underscore %> +<% digest = Digest::MD5.new.hexdigest(theme[:colors]) %> <% end %>