• Anatomy of GitHub Pages files
    • Files and Directories in this Project
  • Configuration Notes, behind the scenes
  • Customizations
    • Customize a Page
    • Change Title
    • Making a Submenu
    • Style revolves around _sass

Anatomy of GitHub Pages files

Discuss how to develop a home page, code, run local server test, and then sync to deploy to GitHub Pages.

Review tools setup and make in README.md to support this lesson.

Files and Directories in this Project

Here are some definitions to key files and directories in this project:

  • README.md: This file contains instructions and background information about the project. It is a standard file present in all properly set up GitHub projects.
  • index.md: This is the source file for the home page of the project. It is a standard file for all GitHub Pages projects. Note that Markdown (.md) files are converted to HTML by the Jekyll build process. HTML files are the only file type that is rendered on a website.
  • _notebooks: This directory contains Jupyter Notebook (.ipynb) files. These files are converted to Markdown (.md) files by the Makefile rules in the build process. The Markdown files are then converted to HTML by the Jekyll build process.
  • _posts: This directory contains Markdown (.md) files that will be part of the website. These files are formatted similarly to index.md and include frontmatter (metadata coded in YAML) and Markdown, HTML, JavaScript, and CSS source code. You will also find Liquid code in these files, which is used to generate Markdown, HTML, JavaScript, and CSS.
  • _data: This directory is the standard location for storing data files that support the _posts or _notebooks directories.
  • images: This directory is the standard location for storing image files (JPEG, PNG, etc.) that support the _posts or _notebooks directories.
  • _config.yml: This file contains YAML definitions (key-value properties) used to build the Jekyll website.
  • .gitignore: This file specifies elements to be excluded from version control. Files are excluded when they are derived from the original source and not considered part of the project's source code. In the VSCode Explorer, you may notice some files appearing dimmed, indicating that they are purposely excluded by the rules in .gitignore.
  • _layouts: This directory contains HTML files used by Jekyll to generate the structure of the website, including blogs, schedules, and home pages. Each post or notebook specifies a layout in its frontmatter, which determines how the content is presented.
  • scripts: This directory contains scripts such as convert_notebooks.py, which converts Jupyter Notebook (.ipynb) files into Markdown (.md) files. These scripts automate parts of the build process, ensuring that content is properly formatted for the website.

Please note that there are many other key files and directories in a GitHub Pages project, but we will highlight those as the development progresses.

FRQ 1: What is the purpose of the .gitignore file and why is it important in a project's file structure?