diff --git a/lib/jekyll-pandoc-multiple-formats/generator.rb b/lib/jekyll-pandoc-multiple-formats/generator.rb
index f8e948e9259b6b5601ea7db344e0aadd890cc740..bf4a8395e2000dd297cffd09b576a8c47fcfacd9 100644
--- a/lib/jekyll-pandoc-multiple-formats/generator.rb
+++ b/lib/jekyll-pandoc-multiple-formats/generator.rb
@@ -30,13 +30,10 @@ class PandocGenerator < Generator
 
   def generate_post_for_output(post, output)
     Jekyll.logger.debug 'Pandoc:', post.data['title']
-    Jekyll::Hooks.trigger :posts, :pre_render, post, { format: output }
 
     pandoc_file = PandocFile.new(@site, output, post)
     return unless pandoc_file.write
 
-    Jekyll::Hooks.trigger :posts, :post_render, post, { format: output }
-
     @site.keep_files << pandoc_file.relative_path
     @pandoc_files << pandoc_file
   end
@@ -88,10 +85,10 @@ class PandocGenerator < Generator
 
     @config.outputs.each_pair do |output, _|
       Jekyll.logger.info 'Pandoc:', "Generating #{output}"
-      if @config.generate_posts?
-        @site.posts.docs.each do |post|
-          generate_post_for_output post, output
-        end
+      @site.posts.docs.each do |post|
+        Jekyll::Hooks.trigger :posts, :pre_render, post, { format: output }
+        generate_post_for_output(post, output) if @config.generate_posts?
+        Jekyll::Hooks.trigger :posts, :post_render, post, { format: output }
       end
 
       if @config.generate_categories?