panthro
panthro

Reputation: 24061

Removing pages from build and nav?

I need to be able to exclude certain files from the build. I am aware I can do this in the config file.

I also need a way to turn off a section of the website in the nav.

So I thought about having a flag in a data file, if it's false do not include a link to the section in the nav.

But how can I also use the same flag to prevent the section from being built?

Or is it easier to specify in config and check this flag in the nav?

Upvotes: 0

Views: 119

Answers (2)

Virtua Creative
Virtua Creative

Reputation: 2113

To exclude files from builds, add this line to your _config.yml:

keep_files: [folder, "file.ext"]

The folder and the file.ext will be left untouched by Jekyll and will be included on builds.

OR

exclude: ["file.md", "otherfile.html"]

Both files won't be included on you site built by Jekyll at all.


Here:

I also need a way to turn off a section of the website in the nav.

I'm not sure what you meant, but I guess you can probably do that with if statements:

In a post or a page front matter, add a variable indicating the section to exclude:

---
# your front matter settings
foo: bar # variable and value
---

Then, to your template, add:

{% if page.foo %}
  <div>this will display</div>
{% endif %}

or

{% if page.foo %}
  <div>this will display</div>
{% else %}
  <p>this will display when the above doesn't</p>
{% endif %}

Hope to have helped! :)

Upvotes: 1

Mr. Hugo
Mr. Hugo

Reputation: 12592

Seems like a config problem to me. I would put it in the config and have your includes and nav check the config values.

Upvotes: 0

Related Questions