6.1 KiB
title, intro, product, redirect_from, permissions, versions, topics, shortTitle
| 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 "Set up Git."
{% 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 %} {% 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 <em>PARENT-FOLDER</em>
- If you haven't already, initialize a local Git repository, replacing REPOSITORY-NAME with the name of your repository.
$ git init <em>REPOSITORY-NAME</em>
> Initialized empty Git repository in /Users/octocat/my-site/.git/
# Creates a new folder on your computer, initialized as a Git repository
- Change directories to the repository.
$ cd <em>REPOSITORY-NAME</em>
# 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.
$ 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.
$ git checkout --orphan gh-pages
# Creates a new branch, with no history or contents, called gh-pages and switches to the gh-pages branch
-
To create a new Jekyll site, use the
jekyll newcommand:$ 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-pagesgem by editing the line starting with# gem "github-pages". Change this line to:gem "github-pages", "~> GITHUB-PAGES-VERSION", group: :jekyll_pluginsReplace GITHUB-PAGES-VERSION with the latest supported version of the
github-pagesgem. You can find this version here: "Dependency versions."The correct version Jekyll will be installed as a dependency of the
github-pagesgem. -
Save and close the Gemfile.
-
From the command line, run
bundle install. -
Optionally, make any necessary edits to the
_config.ymlfile. This is required for relative paths when the repository is hosted in a subdirectory. For more information, see "Splitting a subfolder out into a new repository."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
1. Optionally, test your site locally. For more information, see "[Testing your {% data variables.product.prodname_pages %} site locally with Jekyll](/articles/testing-your-github-pages-site-locally-with-jekyll)."
1. Add and commit your work.
```shell
git add .
git commit -m 'Initial GitHub pages site with Jekyll'
- Add your {% data variables.product.product_name %} repository as a remote, replacing {% ifversion ghes or ghae %}HOSTNAME with your enterprise's hostname,{% endif %} USER with the account that owns the repository{% ifversion ghes or ghae %},{% endif %} and REPOSITORY with the name of the repository.
{% ifversion fpt %}
$ git remote add origin https://github.com/<em>USER</em>/<em>REPOSITORY</em>.git
{% else %}
$ git remote add origin https://<em>HOSTNAME</em>/<em>USER</em>/<em>REPOSITORY</em>.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 <em>BRANCH</em>
{% data reusables.pages.configure-publishing-source %} {% data reusables.pages.navigate-site-repo %} {% data reusables.repositories.sidebar-settings %} {% data reusables.pages.sidebar-pages %} {% ifversion fpt %} {% data reusables.pages.choose-visibility %}{% endif %} {% data reusables.pages.visit-site %}
{% data reusables.pages.admin-must-push %}
Next steps
To add a new page or post to your site, see "Adding content to your {% data variables.product.prodname_pages %} site using Jekyll."
{% data reusables.pages.add-jekyll-theme %} For more information, see "Adding a theme to your {% data variables.product.prodname_pages %} site using Jekyll."