File tree Expand file tree Collapse file tree 4 files changed +50
-0
lines changed Expand file tree Collapse file tree 4 files changed +50
-0
lines changed Original file line number Diff line number Diff line change @@ -16,6 +16,10 @@ Layout/LineEndStringConcatenationIndentation:
1616
1717Lint/EmptyInPattern :
1818 Enabled : false
19+
20+ Metrics/AbcSize :
21+ IgnoredMethods :
22+ - generate # in generator.rb
1923
2024Naming/InclusiveLanguage :
2125 Enabled : false
Original file line number Diff line number Diff line change @@ -246,6 +246,16 @@ feed:
246246
247247Note that if you include a tag that is excluded a feed will not be generated for it.
248248
249+ # # Skip development
250+
251+ Use `disable_in_development : true` if you want to turn off feed generation when `jekyll.environment == "development"`,
252+ but don't want to remove the plugin (so you don't accidentally commit the removal). Default value is `false`.
253+
254+ ` ` ` yml
255+ feed:
256+ disable_in_development: true
257+ ` ` `
258+
249259# # Contributing
250260
2512611. Fork it (https://github.com/jekyll/jekyll-feed/fork)
Original file line number Diff line number Diff line change @@ -8,6 +8,10 @@ class Generator < Jekyll::Generator
88 # Main plugin action, called by Jekyll-core
99 def generate ( site )
1010 @site = site
11+ if disabled_in_development?
12+ Jekyll . logger . info "Jekyll Feed:" , "Skipping feed generation in development"
13+ return
14+ end
1115 collections . each do |name , meta |
1216 Jekyll . logger . info "Jekyll Feed:" , "Generating feed for #{ name } "
1317 ( meta [ "categories" ] + [ nil ] ) . each do |category |
@@ -137,5 +141,9 @@ def normalize_posts_meta(hash)
137141 config [ "path" ] ||= hash [ "posts" ] [ "path" ]
138142 hash
139143 end
144+
145+ def disabled_in_development?
146+ config && config [ "disable_in_development" ] && Jekyll . env == "development"
147+ end
140148 end
141149end
Original file line number Diff line number Diff line change 2525 let ( :contents ) { File . read ( dest_dir ( "feed.xml" ) ) }
2626 let ( :context ) { make_context ( :site => site ) }
2727 let ( :feed_meta ) { Liquid ::Template . parse ( "{% feed_meta %}" ) . render! ( context , { } ) }
28+ let ( :jekyll_env ) { "development" }
2829 before ( :each ) do
30+ allow ( Jekyll ) . to receive ( :env ) . and_return ( jekyll_env )
2931 site . process
3032 end
3133
@@ -745,4 +747,30 @@ def to_s
745747 end
746748 end
747749 end
750+
751+ context "with skip_development" do
752+ let ( :overrides ) do
753+ {
754+ "feed" => {
755+ "disable_in_development" => true
756+ } ,
757+ }
758+ end
759+
760+ context "in production environment" do
761+ let ( :jekyll_env ) { "production" }
762+
763+ it "generates a feed as normal" do
764+ expect ( Pathname . new ( dest_dir ( "feed.xml" ) ) ) . to exist
765+ end
766+ end
767+
768+ context "in development environment" do
769+ let ( :jekyll_env ) { "development" }
770+
771+ it "does not generate a feed" do
772+ expect ( Pathname . new ( dest_dir ( "feed.xml" ) ) ) . not_to exist
773+ end
774+ end
775+ end
748776end
You can’t perform that action at this time.
0 commit comments