89 lines
2.3 KiB
Ruby
Executable file
89 lines
2.3 KiB
Ruby
Executable file
#!/usr/bin/env ruby
|
|
|
|
puts "Gallery title?"
|
|
gallery_title = gets.chomp
|
|
gallery_slug = gallery_title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
|
|
|
|
puts "Getting jpg images for gallery."
|
|
@images = Dir.glob("#{Dir.pwd}/*.jpg")
|
|
|
|
Dir.mkdir gallery_slug
|
|
|
|
@names = Array.new
|
|
|
|
@images.each do |image|
|
|
basename = File.basename(image, '.jpg')
|
|
@names.push(basename)
|
|
puts "Resizing #{basename}."
|
|
thumb = "convert #{image} -filter Lanczos -sampling-factor 1x1 -unsharp 1.5x1+0.7+0.02 -quality 90 -resize 300x300 -set filename:f \"%t_t\" './#{gallery_slug}/%[filename:f].jpg'"
|
|
`#{thumb}`
|
|
mid = "convert #{image} -filter Lanczos -sampling-factor 1x1 -unsharp 1.5x1+0.7+0.02 -quality 90 -resize 1300x1300 -set filename:f \"%t_m\" './#{gallery_slug}/%[filename:f].jpg'"
|
|
`#{mid}`
|
|
full = "convert #{image} -filter Lanczos -sampling-factor 1x1 -unsharp 1.5x1+0.7+0.02 -quality 90 -resize 2500x2500 -set filename:f \"%t\" './#{gallery_slug}/%[filename:f].jpg'"
|
|
`#{full}`
|
|
|
|
puts "Making page for #{basename}."
|
|
page_text = <<END
|
|
---
|
|
layout: default
|
|
gallery-title: #{gallery_title}
|
|
title:
|
|
image-name: #{basename}
|
|
---
|
|
<article>
|
|
<header>
|
|
{% if page.gallery-title %}
|
|
<p class="subheading"><a href="/photos">Photos</a> / <a href="../">{{page.gallery-title}}</a></p>
|
|
{% endif %}
|
|
|
|
{% if page.photo-title %}
|
|
<h1 class="post-title">{{page.photo-title}}</h1>
|
|
{% endif %}
|
|
</header>
|
|
|
|
<p>
|
|
<a href="../#{basename}.jpg"><img src="../#{basename}_m.jpg" /></a>
|
|
</p>
|
|
|
|
<p class="caption">#{basename}</p>
|
|
</article>
|
|
END
|
|
File.open("./#{gallery_slug}/#{basename}.html", 'w') { |file| file.write(page_text) }
|
|
|
|
end
|
|
|
|
puts "Making gallery page."
|
|
gallery_text = <<END
|
|
---
|
|
layout: default
|
|
title: #{gallery_title}
|
|
slug: #{gallery_slug}
|
|
key-photo: #{@names.first}
|
|
images:
|
|
END
|
|
|
|
@names.each do |name|
|
|
gallery_text += "- image_name: #{name}\n"
|
|
end
|
|
|
|
gallery_text += <<END
|
|
---
|
|
|
|
<article>
|
|
<header>
|
|
{% if page.gallery-title %}
|
|
<h1 class="post-title">{{page.gallery-title}}</h1>
|
|
{% endif %}
|
|
</header>
|
|
|
|
<ul class="gallery">
|
|
{% for image in page.images %}
|
|
<li><a href="{{ page.url }}{{ image.image_name}}/"><img src="{{ page.url }}{{ image.image_name }}_t.jpg" /></a></li>
|
|
{% endfor %}
|
|
</ul>
|
|
</article>
|
|
END
|
|
|
|
File.open("./#{gallery_slug}/index.html", "w") { |file| file.write(gallery_text) }
|
|
|
|
puts "Gallery complete."
|