annabunches.net/_plugins/markdown_and_sign.rb

27 lines
897 B
Ruby
Raw Normal View History

# Adds metadata to the post object for linking to the source page.
# Also adds metadata linking to the gpg signature file, if it exists.
Jekyll::Hooks.register :posts, :pre_render do |post, payload|
if post.path =~ /\.md$/
post.data['md_file'] = "/#{post.data['category']}/#{post.basename}"
sig_filename = "#{post.path}.asc"
if File.exist?(sig_filename)
post.data['sig_file'] = post.data['md_file'] + '.asc'
end
end
end
# Copy all of the source markdown files and signature files
# directly into the destination.
Jekyll::Hooks.register :site, :post_write do |site|
dest = site.dest
site.posts.docs.select{|p| p.path =~ /\.md$/}.each do |post|
FileUtils.cp(post.path, "#{dest}/#{post.data['md_file']}")
sig_filename = "#{post.path}.asc"
if File.exist?(sig_filename)
FileUtils.cp(sig_filename, "#{dest}/#{post.data['sig_file']}")
end
end
end