Skip to content

Commit

Permalink
Allow disabling import of theme configuration (#8131)
Browse files Browse the repository at this point in the history
Merge pull request 8131
  • Loading branch information
ashmaroli committed May 6, 2020
1 parent 1f39f7a commit ed11d21
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 0 deletions.
18 changes: 18 additions & 0 deletions docs/_docs/configuration/options.md
Expand Up @@ -72,6 +72,24 @@ class="flag">flags</code> (specified on the command-line) that control them.
<p><code class="flag">--disable-disk-cache</code></p>
</td>
</tr>
<tr class="setting">
<td>
<p class="name">
<strong>Ignore theme configuration</strong>
<span class="version-badge" title="Introduced in v4.1.0">4.1.0</span>
</p>
<p class="description">
Jekyll 4.0 started allowing themes to bundle a <code>_config.yml</code>
to simplify theme-onboarding for new users.
In the unfortunate situation that importing a bundled theme configuration
messes up the merged site-configuration, the user can configure Jekyll
to not import the theme-config entirely.
</p>
</td>
<td class="align-center">
<p><code class="option">ignore_theme_config: BOOL</code></p>
</td>
</tr>
<tr class="setting">
<td>
<p class="name"><strong>Exclude</strong></p>
Expand Down
11 changes: 11 additions & 0 deletions features/theme_configuration.feature
Expand Up @@ -11,6 +11,17 @@ Feature: Bundling Config file with Theme gems
And the _site directory should exist
And I should see "aero" in "_site/index.html"

Scenario: Disabling import of theme configuration entirely
Given I have a configuration file with:
| key | value |
| theme | test-theme |
| ignore_theme_config | true |
And I have an "index.md" page that contains "{{ site.test_theme.skin }}"
When I run jekyll build
Then I should get a zero exit status
And the _site directory should exist
And I should not see "aero" in "_site/index.html"

Scenario: A pre-configured theme with valid config file overriding Jekyll defaults
Given I have a configuration file with "theme" set to "test-theme"
And I have an "index.md" page that contains "{{ site.baseurl }}"
Expand Down
2 changes: 2 additions & 0 deletions lib/jekyll/site.rb
Expand Up @@ -432,6 +432,8 @@ def collections_path
private

def load_theme_configuration(config)
return config if config["ignore_theme_config"] == true

theme_config_file = in_theme_dir("_config.yml")
return config unless File.exist?(theme_config_file)

Expand Down

0 comments on commit ed11d21

Please sign in to comment.