10

I am hosting a static application on GitHub pages. My application structure is like this - I have some front-end facing files, and some Python files that are run periodically to get the data for the front-end, but should not be user-facing:

index.html
/js
    index.js
    vendor/
/css
/data
    get_data.py

How can I stop everything in data/ being publicly available on the website?

Richard
  • 62,943
  • 126
  • 334
  • 542

1 Answers1

14

You have two main options:

Option 1: Rename your data directory to _data.

Jekyll ignores files and directories that start with an underscore. You could also create a top-level _backend directory and then move your data directory into that.

Option 2: Configure your Jekyll to exclude the data directory.

You can add an exclude setting to _config.yml to tell Jekyll to ignore your data directory.

From the configuration documentation:

Exclude

Exclude directories and/or files from the conversion. These exclusions are relative to the site's source directory and cannot be outside the source directory.

exclude: [DIR, FILE, ...]

Googling "jekyll underscore directory" returns a ton of results, including this one which explains all of the above: https://help.github.com/articles/files-that-start-with-an-underscore-are-missing/

Kevin Workman
  • 41,537
  • 9
  • 68
  • 107
  • Thanks very much! Does GitHub pages use Jekyll? I wasn't aware of that, would have helped with Googling :) – Richard Oct 19 '16 at 16:52
  • @Richard Yep, GitHub Pages uses Jekyll (or at least it **can** use Jekyll). More info [here](https://help.github.com/articles/about-github-pages-and-jekyll/). – Kevin Workman Oct 19 '16 at 16:55