1
0
mirror of synced 2025-12-21 10:57:10 -05:00
Files
docs/content/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll.md
Octomerger Bot 297ca63c32 repo sync (#8965)
2021-08-11 21:32:56 -04:00

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 %}
/articles/creating-a-github-pages-site-with-jekyll
/github/working-with-github-pages/creating-a-github-pages-site-with-jekyll
People with admin permissions for a repository can create a {% data variables.product.prodname_pages %} site with Jekyll.
fpt ghes ghae
* * *
Pages
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 %}

  1. 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>
  1. 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
  1. 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
  1. To create a new Jekyll site, use the jekyll new command:

    $ jekyll new --skip-bundle .
    # Creates a Jekyll site in the current directory
    
  2. Open the Gemfile that Jekyll created.

  3. Add "#" to the beginning of the line that starts with gem "jekyll" to comment out this line.

  4. 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.

  5. Save and close the Gemfile.

  6. From the command line, run bundle install.

  7. 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 "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'
  1. 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 %}
  1. 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."