6.3 KiB
title | intro | product | redirect_from | permissions | versions | topics | shortTitle | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Creating a GitHub Pages site with Jekyll | You can use Jekyll to create a {% data variables.product.prodname_pages %} site in a new or existing repository. | {% data reusables.gated-features.pages %} |
|
People with admin permissions for a repository can create a {% data variables.product.prodname_pages %} site with Jekyll. |
|
|
Create site with Jekyll |
{% data reusables.pages.org-owners-can-restrict-pages-creation %}
Prerequisites
Before you can use Jekyll to create a {% data variables.product.prodname_pages %} site, you must install Jekyll and Git. For more information, see Installation in the Jekyll documentation and "AUTOTITLE."
{% data reusables.pages.recommend-bundler %}
{% data reusables.pages.jekyll-install-troubleshooting %}
Creating a repository for your site
{% data reusables.pages.new-or-existing-repo %}
{% data reusables.repositories.create_new %} {% data reusables.repositories.owner-drop-down %} {% indented_data_reference reusables.pages.emu-org-only spaces=3 %} {% data reusables.pages.create-repo-name %} {% data reusables.repositories.choose-repo-visibility %}
Creating your site
{% data reusables.pages.must-have-repo-first %}
{% data reusables.pages.private_pages_are_public_warning %}
{% data reusables.command_line.open_the_multi_os_terminal %}
-
If you don't already have a local copy of your repository, navigate to the location where you want to store your site's source files, replacing PARENT-FOLDER with the folder you want to contain the folder for your repository.
cd PARENT-FOLDER
-
If you haven't already, initialize a local Git repository, replacing REPOSITORY-NAME with the name of your repository.
$ git init REPOSITORY-NAME > Initialized empty Git repository in /REPOSITORY-NAME/.git/ # Creates a new folder on your computer, initialized as a Git repository
-
Change directories to the repository.
$ cd REPOSITORY-NAME # Changes the working directory
{% data reusables.pages.decide-publishing-source %}
{% data reusables.pages.navigate-publishing-source %}
For example, if you chose to publish your site from the docs
folder on the default branch, create and change directories to the docs
folder.
```shell
$ mkdir docs
# Creates a new folder called docs
$ cd docs
```
If you chose to publish your site from the `gh-pages` branch, create and checkout the `gh-pages` branch.
```shell
$ git checkout --orphan gh-pages
# Creates a new branch, with no history or contents, called gh-pages, and switches to the gh-pages branch
$ git rm -rf .
# Removes the contents from your default branch from the working directory
```
-
To create a new Jekyll site, use the
jekyll new
command in your repository's root directory:$ jekyll new --skip-bundle . # Creates a Jekyll site in the current directory
-
Open the Gemfile that Jekyll created.
-
Add "#" to the beginning of the line that starts with
gem "jekyll"
to comment out this line. -
Add the
github-pages
gem by editing the line starting with# gem "github-pages"
. Change this line to:gem "github-pages", "~> GITHUB-PAGES-VERSION", group: :jekyll_plugins
Replace GITHUB-PAGES-VERSION with the latest supported version of the
github-pages
gem. You can find this version here: "Dependency versions."The correct version Jekyll will be installed as a dependency of the
github-pages
gem. -
Save and close the Gemfile.
-
From the command line, run
bundle install
. -
Open the
.gitignore
file that Jekyll created and ignore the gems lock file by adding this line:Gemfile.lock
-
Optionally, make any necessary edits to the
_config.yml
file. This is required for relative paths when the repository is hosted in a subdirectory. For more information, see "AUTOTITLE."domain: my-site.github.io # if you want to force HTTPS, specify the domain without the http at the start, e.g. example.com url: https://my-site.github.io # the base hostname and protocol for your site, e.g. http://example.com baseurl: /REPOSITORY-NAME/ # place folder name if the site is served in a subfolder
-
Optionally, test your site locally. For more information, see "Testing your {% data variables.product.prodname_pages %} site locally with Jekyll."
-
Add and commit your work.
git add . git commit -m 'Initial GitHub pages site with Jekyll'
-
Add your repository on {% data variables.location.product_location %} as a remote, replacing {% ifversion ghes %}HOSTNAME with your enterprise's hostname,{% endif %} USER with the account that owns the repository{% ifversion ghes %},{% endif %} and REPOSITORY with the name of the repository.
{% ifversion fpt or ghec %} $ git remote add origin https://github.com/USER/REPOSITORY.git {% else %} $ git remote add origin https://HOSTNAME/USER/REPOSITORY.git {% endif %}
-
Push the repository to {% data variables.product.product_name %}, replacing BRANCH with the name of the branch you're working on.
git push -u origin BRANCH
{% data reusables.pages.configure-publishing-source %} {% data reusables.pages.navigate-site-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.pages.sidebar-pages %} {% data reusables.pages.choose-visibility %} {% data reusables.pages.visit-site %} {% data reusables.pages.check-workflow-run %}
{% data reusables.pages.admin-must-push %}
Next steps
To add a new page or post to your site, see "AUTOTITLE."
{% data reusables.pages.add-jekyll-theme %} For more information, see "AUTOTITLE."