Skip to content

Instantly share code, notes, and snippets.

@iamamused
Last active January 6, 2017 13:32
Show Gist options
  • Save iamamused/4689219 to your computer and use it in GitHub Desktop.
Save iamamused/4689219 to your computer and use it in GitHub Desktop.
Post publishing plugin for Jekyll
module Jekyll
class PostPublisher < Generator
safe false
def replace(filepath, regexp, *args, &block)
content = File.read(filepath).gsub(regexp, *args, &block)
File.open(filepath, 'wb') { |file| file.write(content) }
end
def generate(site)
@files = Dir["_publish/*"]
@files.each_with_index { |f,i|
now = DateTime.now.strftime("%Y-%m-%d %H:%M:%S")
replace(f, /^date: unpublished/mi) { |match| "date: \"" + now + "\"" }
now = Date.today.strftime("%Y-%m-%d")
File.rename(f, "_posts/#{now}-#{File.basename(f)}")
}
end
end
end
@madelinecr
Copy link

A great plugin, I've found it to be a life saver. I had a quick question though, is there any reason to use each_with_index over each in the generate method?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment