A repository is the most basic element of GitHub. They're easiest to imagine as a project's folder. A repository contains all of the project files (including documentation), and stores each file's revision history. Repositories can have multiple collaborators and can be either public or private.
A branch is a parallel version of a repository. It is contained within the repository, but does not affect the primary or master branch allowing you to work freely without disrupting the "live" version. When you've made the changes you want to make, you can merge your branch back into the master branch to publish your changes.
A repository's default branch is called "master". As you initially make commits, you're given a master branch that points to the last commit you made. Every time you commit, it moves forward automatically.
A fork is a copy of a repository. Forking a repository allows you to freely experiment with changes without affecting the original project. Most commonly, forks are used to either propose changes to someone else's project or to use someone else's project as a starting point for your own idea.
A commit to a in Git simply records/saves changed to a Git repository.
Markdown is a lightweight markup language with plain text formatting syntax. It is designed so that it can be converted to HTML and many other formats using a tool by the same name.
YAML (/ˈjæməl/, rhymes with camel) is a human-readable data serialization language. It is commonly used for configuration files, but could be used in many applications where data is being stored (e.g. debugging output) or transmitted (e.g. document headers).
Jekyll is a simple, blog-aware, static site generator. It takes a template directory containing raw text files in various formats, runs it through a converter (like Markdown) and a Liquid renderer, and spits out a complete, ready-to-publish static website suitable for serving with your favorite web server (or GitHub's in our case).
Jekyll looks to your directory and file sturcture to determine how to build a static Web Site
Jekyll has a plugin system with hooks that allow you to create custom generated content specific to your site. You can run custom code for your site without having to modify the Jekyll source itself.
GitHub has a predefined set of plugins that you can use, outside of those you will have to build your site locally before committing it to GitHub.
Jekyll allows you to concoct your sites in any way you can dream up, and it’s thanks to the powerful and flexible configuration options that this is possible. These options can either be specified in a _config.yml file placed in your site’s root directory, or can be specified as flags for the jekyll executable in the terminal.
Jekyll posts are either html or markdown files stored in the _posts directory.
Posts need to have their date and title in the filename like so: YEAR-MONTH-DAY-title.MARKUP
Posts also are required to have 'Front Matter' which is YAML defined in the top of the file
Jekyll Pages use 'Front Matter' to define page layout.
You can tell GitHub to completely bypass Jekyll processing on your Pages by creating a file named .nojekyll in the root of your pages directory.
AMP stands for Accelerated Mobile Pages, a Google-backed project designed as an open standard for any publisher to have pages load quickly on mobile devices. On Feb. 24, 2016, Google officially integrated AMP listings into its mobile search results.
AMP pages are weighted higher in search results.
AMP provides a set of Web Components to use as a pattern library for your site.
Let's fork a Jekyll AMP template for use as a new site.
Be sure to update the _config.yml file.
There are many options for editing your Jekyll site on GitHub including the online file editor, a Git tool and your favorite markdown editor, etc.
Prose.io is an online editor that uses GitHub's API to provide a friendlier (and free) editing experience.