mirror of
https://github.com/jekyll/jekyll.git
synced 2026-01-10 07:28:07 -05:00
591 lines
27 KiB
HTML
591 lines
27 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||
<link type="application/atom+xml" rel="alternate" href="https://jekyllrb.com/feed.xml" title="Jekyll • Simple, blog-aware, static sites" />
|
||
<link type="application/atom+xml" rel="alternate" href="/feed/release.xml" title="Jekyll releases posts" />
|
||
<link rel="alternate" type="application/atom+xml" title="Recent commits to Jekyll’s master branch" href="https://github.com/jekyll/jekyll/commits/master.atom">
|
||
<link rel="preload" href="/fonts/lato-v14-latin-300.woff2" as="font" type="font/woff2" crossorigin />
|
||
<link rel="preload" href="/fonts/lato-v14-latin-700.woff2" as="font" type="font/woff2" crossorigin />
|
||
<link rel="preload" href="/css/screen.css" as="style">
|
||
<link rel="stylesheet" href="/css/screen.css">
|
||
<link rel="icon" type="image/x-icon" href="/favicon.ico">
|
||
<!-- Begin Jekyll SEO tag v2.8.0 -->
|
||
<title>Contributing | Jekyll • Simple, blog-aware, static sites</title>
|
||
<meta name="generator" content="Jekyll v4.4.1" />
|
||
<meta property="og:title" content="Contributing" />
|
||
<meta property="og:locale" content="en_US" />
|
||
<meta name="description" content="Hi there! Interested in contributing to Jekyll? We’d love your help. Jekyll is an open source project, built one contribution at a time by users like you." />
|
||
<meta property="og:description" content="Hi there! Interested in contributing to Jekyll? We’d love your help. Jekyll is an open source project, built one contribution at a time by users like you." />
|
||
<link rel="canonical" href="https://jekyllrb.com/docs/contributing/" />
|
||
<meta property="og:url" content="https://jekyllrb.com/docs/contributing/" />
|
||
<meta property="og:site_name" content="Jekyll • Simple, blog-aware, static sites" />
|
||
<meta property="og:image" content="https://jekyllrb.com/img/jekyll-og.png" />
|
||
<meta property="og:type" content="article" />
|
||
<meta property="article:published_time" content="2025-12-21T12:48:54-08:00" />
|
||
<meta name="twitter:card" content="summary_large_image" />
|
||
<meta property="twitter:image" content="https://jekyllrb.com/img/jekyll-og.png" />
|
||
<meta property="twitter:title" content="Contributing" />
|
||
<meta name="twitter:site" content="@jekyllrb" />
|
||
<meta name="google-site-verification" content="onQcXpAvtHBrUI5LlroHNE_FP0b2qvFyPq7VZw36iEY" />
|
||
<script type="application/ld+json">
|
||
{"@context":"https://schema.org","@type":"BlogPosting","dateModified":"2025-12-21T12:48:54-08:00","datePublished":"2025-12-21T12:48:54-08:00","description":"Hi there! Interested in contributing to Jekyll? We’d love your help. Jekyll is an open source project, built one contribution at a time by users like you.","headline":"Contributing","image":"https://jekyllrb.com/img/jekyll-og.png","mainEntityOfPage":{"@type":"WebPage","@id":"https://jekyllrb.com/docs/contributing/"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://jekyllrb.com/img/logo-2x.png"}},"url":"https://jekyllrb.com/docs/contributing/"}</script>
|
||
<!-- End Jekyll SEO tag -->
|
||
|
||
<!--[if lt IE 9]>
|
||
<script src="/js/html5shiv.min.js"></script>
|
||
<script src="/js/respond.min.js"></script>
|
||
<![endif]-->
|
||
</head>
|
||
<body class="wrap"><header>
|
||
<div class="flexbox">
|
||
<div class="center-on-mobiles">
|
||
<h1>
|
||
<a href="/" class="logo">
|
||
<span class="sr-only">Jekyll</span>
|
||
<img src="/img/logo-2x.png" width="140" height="65" alt="Jekyll Logo">
|
||
</a>
|
||
</h1>
|
||
</div>
|
||
<nav class="main-nav hide-on-mobiles">
|
||
<ul>
|
||
<li><a href="/">Home</a></li>
|
||
<li class="current"><a href="/docs/">Docs</a></li>
|
||
<li><a href="/resources/">Resources</a></li>
|
||
<li><a href="/showcase/">Showcase</a></li>
|
||
<li><a href="/news/">News</a></li>
|
||
</ul>
|
||
</nav>
|
||
<div class="search hide-on-mobiles">
|
||
<input type="text" id="docsearch-input" placeholder="Search the docs…" aria-label="Search">
|
||
</div>
|
||
<div class="meta hide-on-mobiles">
|
||
<ul>
|
||
<li><a href="https://github.com/jekyll/jekyll/releases/tag/v4.4.1">v4.4.1</a></li>
|
||
<li><a href="https://github.com/jekyll/jekyll">GitHub</a></li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<nav class="mobile-nav show-on-mobiles">
|
||
<ul>
|
||
<li><a href="/">Home</a></li>
|
||
<li class="current" aria-current="page"><a href="/docs/">Docs</a></li>
|
||
<li><a href="/resources/">Resources</a></li>
|
||
<li><a href="/news/">News</a></li>
|
||
<li><a href="https://github.com/jekyll/jekyll" target="_blank" rel="noopener">GitHub</a></li>
|
||
</ul></nav>
|
||
</header>
|
||
<section class="docs">
|
||
<div class="grid">
|
||
<div class="docs-nav-mobile unit whole show-on-mobiles">
|
||
<select id="doc-nav" onchange="navigateToUrl(this)" aria-label="Select a page from the documentation">
|
||
<option value="">Navigate the docs…</option>
|
||
|
||
<optgroup label="Getting Started">
|
||
<option value="/docs/">Quickstart</option>
|
||
<option value="/docs/installation/">Installation</option>
|
||
<option value="/docs/ruby-101/">Ruby 101</option>
|
||
<option value="/docs/community/">Community</option>
|
||
<option value="/docs/step-by-step/01-setup/">Step by Step Tutorial</option>
|
||
</optgroup>
|
||
|
||
<optgroup label="Build">
|
||
<option value="/docs/usage/">Command Line Usage</option>
|
||
<option value="/docs/configuration/">Configuration</option>
|
||
<option value="/docs/rendering-process/">Rendering Process</option>
|
||
</optgroup>
|
||
|
||
<optgroup label="Content">
|
||
<option value="/docs/pages/">Pages</option>
|
||
<option value="/docs/posts/">Posts</option>
|
||
<option value="/docs/front-matter/">Front Matter</option>
|
||
<option value="/docs/collections/">Collections</option>
|
||
<option value="/docs/datafiles/">Data Files</option>
|
||
<option value="/docs/assets/">Assets</option>
|
||
<option value="/docs/static-files/">Static Files</option>
|
||
</optgroup>
|
||
|
||
<optgroup label="Site Structure">
|
||
<option value="/docs/structure/">Directory Structure</option>
|
||
<option value="/docs/liquid/">Liquid</option>
|
||
<option value="/docs/variables/">Variables</option>
|
||
<option value="/docs/includes/">Includes</option>
|
||
<option value="/docs/layouts/">Layouts</option>
|
||
<option value="/docs/permalinks/">Permalinks</option>
|
||
<option value="/docs/themes/">Themes</option>
|
||
<option value="/docs/pagination/">Pagination</option>
|
||
</optgroup>
|
||
|
||
<optgroup label="Guides">
|
||
<option value="/docs/plugins/">Plugins</option>
|
||
<option value="/docs/migrations/">Blog Migrations</option>
|
||
<option value="/docs/upgrading/">Upgrading</option>
|
||
<option value="/docs/deployment/">Deployment</option>
|
||
</optgroup>
|
||
|
||
</select>
|
||
</div>
|
||
<div class="unit four-fifths">
|
||
<article>
|
||
<div class="improve right hide-on-mobiles">
|
||
<a data-proofer-ignore href="https://github.com/jekyll/jekyll/edit/master/docs/_docs/contributing.md">
|
||
<i class="fa fa-pencil"></i> Improve this page
|
||
</a>
|
||
</div>
|
||
|
||
<h1>Contributing</h1>
|
||
<p>Hi there! Interested in contributing to Jekyll? We’d love your help. Jekyll is an open source project, built one contribution at a time by users like you.</p>
|
||
|
||
<h2 id="where-to-get-help-or-report-a-problem">Where to get help or report a problem</h2>
|
||
|
||
<p>See the <a href="https://jekyllrb.com/docs/support/">support guidelines</a></p>
|
||
|
||
<h2 id="ways-to-contribute">Ways to contribute</h2>
|
||
|
||
<p>Whether you’re a developer, a designer, or just a Jekyll devotee, there are lots of ways to contribute. Here’s a few ideas:</p>
|
||
|
||
<ul>
|
||
<li>
|
||
<a href="https://jekyllrb.com/docs/installation/">Install Jekyll on your computer</a> and kick the tires. Does it work? Does it do what you’d expect? If not, <a href="https://github.com/jekyll/jekyll/issues/new">open an issue</a> and let us know.</li>
|
||
<li>Comment on some of the project’s <a href="https://github.com/jekyll/jekyll/issues">open issues</a>. Have you experienced the same problem? Know a workaround? Do you have a suggestion for how the feature could be better?</li>
|
||
<li>Read through the <a href="https://jekyllrb.com/docs/home/">documentation</a>, and click the “improve this page” button, any time you see something confusing, or have a suggestion for something that could be improved.</li>
|
||
<li>Browse through the <a href="https://talk.jekyllrb.com/">Jekyll discussion forum</a>, and lend a hand answering questions. There’s a good chance you’ve already experienced what another user is experiencing.</li>
|
||
<li>Find an <a href="https://github.com/jekyll/jekyll/issues">open issue</a> (especially <a href="https://github.com/jekyll/jekyll/issues?q=is%3Aopen+is%3Aissue+label%3Ahelp-wanted">those labeled <code class="language-plaintext highlighter-rouge">help-wanted</code></a>), and submit a proposed fix. If it’s your first pull request, we promise we won’t bite, and are glad to answer any questions.</li>
|
||
<li>Help evaluate <a href="https://github.com/jekyll/jekyll/pulls">open pull requests</a>, by testing the changes locally and reviewing what’s proposed.</li>
|
||
</ul>
|
||
|
||
<h2 id="submitting-a-pull-request">Submitting a pull request</h2>
|
||
|
||
<h3 id="pull-requests-generally">Pull requests generally</h3>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>The smaller the proposed change, the better. If you’d like to propose two unrelated changes, submit two pull requests.</p>
|
||
</li>
|
||
<li>
|
||
<p>The more information, the better. Make judicious use of the pull request body. Describe what changes were made, why you made them, and what impact they will have for users.</p>
|
||
</li>
|
||
<li>
|
||
<p>If this is your first pull request, it may help to <a href="https://guides.github.com/introduction/flow/">understand GitHub Flow</a>.</p>
|
||
</li>
|
||
<li>
|
||
<p>If you’re submitting a code contribution, be sure to read the <a href="#code-contributions">code contributions</a> section below.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<h3 id="submitting-a-pull-request-via-githubcom">Submitting a pull request via github.com</h3>
|
||
|
||
<p>Many small changes can be made entirely through the github.com web interface.</p>
|
||
|
||
<ol>
|
||
<li>Navigate to the file within <a href="https://github.com/jekyll/jekyll"><code class="language-plaintext highlighter-rouge">jekyll/jekyll</code></a> that you’d like to edit.</li>
|
||
<li>Click the pencil icon in the top right corner to edit the file</li>
|
||
<li>Make your proposed changes</li>
|
||
<li>Click “Propose file change”</li>
|
||
<li>Click “Create pull request”</li>
|
||
<li>Add a descriptive title and detailed description for your proposed change. The more information the better.</li>
|
||
<li>Click “Create pull request”</li>
|
||
</ol>
|
||
|
||
<p>That’s it! You’ll be automatically subscribed to receive updates as others review your proposed change and provide feedback.</p>
|
||
|
||
<h3 id="submitting-a-pull-request-via-git-command-line">Submitting a pull request via Git command line</h3>
|
||
|
||
<ol>
|
||
<li>Fork the project by clicking “Fork” in the top right corner of <a href="https://github.com/jekyll/jekyll"><code class="language-plaintext highlighter-rouge">jekyll/jekyll</code></a>.</li>
|
||
<li>Clone the repository locally <code class="language-plaintext highlighter-rouge">git clone https://github.com/<you-username>/jekyll</code>.</li>
|
||
<li>Create a new, descriptively named branch to contain your change ( <code class="language-plaintext highlighter-rouge">git checkout -b my-awesome-feature</code> ).</li>
|
||
<li>Hack away, add tests. Not necessarily in that order.</li>
|
||
<li>Make sure everything still passes by running <code class="language-plaintext highlighter-rouge">script/cibuild</code> (see the <a href="#running-tests-locally">tests section</a> below)</li>
|
||
<li>Push the branch up ( <code class="language-plaintext highlighter-rouge">git push origin my-awesome-feature</code> ).</li>
|
||
<li>Create a pull request by visiting <code class="language-plaintext highlighter-rouge">https://github.com/<your-username>/jekyll</code> and following the instructions at the top of the screen.</li>
|
||
</ol>
|
||
|
||
<h2 id="proposing-updates-to-the-documentation">Proposing updates to the documentation</h2>
|
||
|
||
<p>We want the Jekyll documentation to be the best it can be. We’ve open-sourced our docs and we welcome any pull requests if you find it lacking.</p>
|
||
|
||
<h3 id="how-to-submit-changes">How to submit changes</h3>
|
||
|
||
<p>You can find the documentation for jekyllrb.com in the <a href="https://github.com/jekyll/jekyll/tree/master/docs">docs</a> directory. See the section above, <a href="#submitting-a-pull-request">submitting a pull request</a> for information on how to propose a change.</p>
|
||
|
||
<p>One gotcha, all pull requests should be directed at the <code class="language-plaintext highlighter-rouge">master</code> branch (the default branch).</p>
|
||
|
||
<h3 id="updating-fontawesome-iconset-for-jekyllrbcom">Updating FontAwesome iconset for jekyllrb.com</h3>
|
||
|
||
<p>We use a custom version of FontAwesome which contains just the icons we use.</p>
|
||
|
||
<p>If you ever need to update our documentation with an icon that is not already available in our custom iconset, you’ll have to regenerate the iconset using Icomoon’s Generator:</p>
|
||
|
||
<ol>
|
||
<li>Go to <a href="https://icomoon.io/app/">https://icomoon.io/app/</a>.</li>
|
||
<li>Click <code class="language-plaintext highlighter-rouge">Import Icons</code> on the top-horizontal-bar and upload the existing <code class="language-plaintext highlighter-rouge"><jekyll>/docs/icomoon-selection.json</code>.</li>
|
||
<li>Click <code class="language-plaintext highlighter-rouge">Add Icons from Library..</code> further down on the page, and add ‘Font Awesome’.</li>
|
||
<li>Select the required icon(s) from the Library (make sure its the ‘FontAwesome’ library instead of ‘IcoMoon-Free’ library).</li>
|
||
<li>Click <code class="language-plaintext highlighter-rouge">Generate Font</code> on the bottom-horizontal-bar.</li>
|
||
<li>Inspect the included icons and proceed by clicking <code class="language-plaintext highlighter-rouge">Download</code>.</li>
|
||
<li>Extract the font files and adapt the CSS to the paths we use in Jekyll:</li>
|
||
</ol>
|
||
|
||
<ul>
|
||
<li>Copy the entire <code class="language-plaintext highlighter-rouge">fonts</code> directory over and overwrite existing ones at <code class="language-plaintext highlighter-rouge"><jekyll>/docs/</code>.</li>
|
||
<li>Copy the contents of <code class="language-plaintext highlighter-rouge">selection.json</code> and overwrite existing content inside <code class="language-plaintext highlighter-rouge"><jekyll>/docs/icomoon-selection.json</code>.</li>
|
||
<li>Copy the entire <code class="language-plaintext highlighter-rouge">@font-face {}</code> declaration and only the <strong>new-icon(s)’ css declarations</strong> further below, to update the
|
||
<code class="language-plaintext highlighter-rouge"><jekyll>/docs/_sass/_font-awesome.scss</code> sass partial.</li>
|
||
<li>Fix paths in the <code class="language-plaintext highlighter-rouge">@font-face {}</code> declaration by adding <code class="language-plaintext highlighter-rouge">../</code> before <code class="language-plaintext highlighter-rouge">fonts/FontAwesome.*</code> like so:
|
||
<code class="language-plaintext highlighter-rouge">('../fonts/Fontawesome.woff?9h6hxj')</code>.</li>
|
||
</ul>
|
||
|
||
<h3 id="adding-plugins">Adding plugins</h3>
|
||
|
||
<p>If you want to add your plugin to the <a href="https://jekyllrb.com/docs/plugins/#available-plugins">list of plugins</a>, please submit a pull request modifying the <a href="https://github.com/jekyll/jekyll/blob/master/docs/_docs/plugins.md">plugins page source file</a> by adding a link to your plugin under the proper subheading depending upon its type.</p>
|
||
|
||
<h2 id="code-contributions">Code Contributions</h2>
|
||
|
||
<p>Interested in submitting a pull request? Awesome. Read on. There’s a few common gotchas that we’d love to help you avoid.</p>
|
||
|
||
<h3 id="tests-and-documentation">Tests and documentation</h3>
|
||
|
||
<p>Any time you propose a code change, you should also include updates to the documentation and tests within the same pull request.</p>
|
||
|
||
<h4 id="documentation">Documentation</h4>
|
||
|
||
<p>If your contribution changes any Jekyll behavior, make sure to update the documentation. Documentation lives in the <code class="language-plaintext highlighter-rouge">docs/_docs</code> folder (spoiler alert: it’s a Jekyll site!). If the docs are missing information, please feel free to add it in. Great docs make a great project. Include changes to the documentation within your pull request, and once merged, <code class="language-plaintext highlighter-rouge">jekyllrb.com</code> will be updated.</p>
|
||
|
||
<h4 id="tests">Tests</h4>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>If you’re creating a small fix or patch to an existing feature, a simple test is more than enough. You can usually copy/paste from an existing example in the <code class="language-plaintext highlighter-rouge">tests</code> folder, but if you need you can find out about our tests suites <a href="https://github.com/thoughtbot/shoulda/tree/master">Shoulda</a> and <a href="https://github.com/rspec/rspec-mocks">RSpec-Mocks</a>.</p>
|
||
</li>
|
||
<li>
|
||
<p>If it’s a brand new feature, create a new <a href="https://github.com/cucumber/cucumber/">Cucumber</a> feature, reusing existing steps where appropriate.</p>
|
||
</li>
|
||
</ul>
|
||
|
||
<h3 id="code-contributions-generally">Code contributions generally</h3>
|
||
|
||
<ul>
|
||
<li>
|
||
<p>Jekyll uses the <a href="https://github.com/bbatsov/rubocop">Rubocop</a> static analyzer to ensure that contributions follow the <a href="https://github.com/styleguide/ruby">GitHub Ruby Styleguide</a>. Please check your code using <code class="language-plaintext highlighter-rouge">script/fmt</code> and resolve any errors before pushing your branch.</p>
|
||
</li>
|
||
<li>
|
||
<p>Don’t bump the Gem version in your pull request (if you don’t know what that means, you probably didn’t).</p>
|
||
</li>
|
||
<li>
|
||
<p>You can use the command <code class="language-plaintext highlighter-rouge">script/console</code> to start a REPL to explore the result of
|
||
Jekyll’s methods. It also provides you with helpful methods to quickly create a
|
||
site or configuration. <a href="https://github.com/jekyll/jekyll/blob/master/script/console">Feel free to check it out!</a></p>
|
||
</li>
|
||
<li>
|
||
<p>Previously, we’ve used the WIP Probot app to help contributors determine whether their pull request is ready for review. Please use a <a href="https://help.github.com/en/articles/about-pull-requests#draft-pull-requests">draft pull request</a> instead. When you’re ready, <a href="https://help.github.com/en/articles/changing-the-stage-of-a-pull-request">mark the pull request as ready for review</a></p>
|
||
</li>
|
||
</ul>
|
||
|
||
<h2 id="running-tests-locally">Running tests locally</h2>
|
||
|
||
<h3 id="test-dependencies">Test Dependencies</h3>
|
||
|
||
<p>To run the test suite and build the gem you’ll need to install Jekyll’s dependencies by running the following command:</p>
|
||
|
||
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>script/bootstrap
|
||
</code></pre></div></div>
|
||
|
||
<p>Before you make any changes, run the tests and make sure that they pass (to confirm your environment is configured properly):</p>
|
||
|
||
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>script/cibuild
|
||
</code></pre></div></div>
|
||
|
||
<p>If you are only updating a file in <code class="language-plaintext highlighter-rouge">test/</code>, you can use the command:</p>
|
||
|
||
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>script/test <span class="nb">test</span>/blah_test.rb
|
||
</code></pre></div></div>
|
||
|
||
<p>If you are only updating a <code class="language-plaintext highlighter-rouge">.feature</code> file, you can use the command:</p>
|
||
|
||
<div class="language-sh highlighter-rouge"><div class="highlight"><pre class="highlight"><code>script/cucumber features/blah.feature
|
||
</code></pre></div></div>
|
||
|
||
<p>Both <code class="language-plaintext highlighter-rouge">script/test</code> and <code class="language-plaintext highlighter-rouge">script/cucumber</code> can be run without arguments to
|
||
run its entire respective suite.</p>
|
||
|
||
<h2 id="visual-studio-code-development-container">Visual Studio Code Development Container</h2>
|
||
|
||
<p>If you’ve got <a href="https://code.visualstudio.com/">Visual Studio Code</a> with the <a href="https://marketplace.visualstudio.com/items?itemName=ms-vscode-remote.vscode-remote-extensionpack">Remote Development Extension Pack</a> installed then simply opening this repository in Visual Studio Code and following the prompts to “Re-open In A Development Container” will get you setup and ready to go with a fresh environment with all the requirements installed.</p>
|
||
|
||
<h2 id="a-thank-you">A thank you</h2>
|
||
|
||
<p>Thanks! Hacking on Jekyll should be fun. If you find any of this hard to figure out, let us know so we can improve our process or documentation!</p>
|
||
|
||
</article>
|
||
</div>
|
||
<div class="unit one-fifth hide-on-mobiles">
|
||
<aside>
|
||
|
||
<h4>Getting Started</h4>
|
||
<ul>
|
||
<li>
|
||
<a href="/docs/">
|
||
Quickstart
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/installation/">
|
||
Installation
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/ruby-101/">
|
||
Ruby 101
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/community/">
|
||
Community
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/step-by-step/01-setup/">
|
||
Step by Step Tutorial
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<h4>Build</h4>
|
||
<ul>
|
||
<li>
|
||
<a href="/docs/usage/">
|
||
Command Line Usage
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/configuration/">
|
||
Configuration
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/rendering-process/">
|
||
Rendering Process
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<h4>Content</h4>
|
||
<ul>
|
||
<li>
|
||
<a href="/docs/pages/">
|
||
Pages
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/posts/">
|
||
Posts
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/front-matter/">
|
||
Front Matter
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/collections/">
|
||
Collections
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/datafiles/">
|
||
Data Files
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/assets/">
|
||
Assets
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/static-files/">
|
||
Static Files
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<h4>Site Structure</h4>
|
||
<ul>
|
||
<li>
|
||
<a href="/docs/structure/">
|
||
Directory Structure
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/liquid/">
|
||
Liquid
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/variables/">
|
||
Variables
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/includes/">
|
||
Includes
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/layouts/">
|
||
Layouts
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/permalinks/">
|
||
Permalinks
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/themes/">
|
||
Themes
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/pagination/">
|
||
Pagination
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
<h4>Guides</h4>
|
||
<ul>
|
||
<li>
|
||
<a href="/docs/plugins/">
|
||
Plugins
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/migrations/">
|
||
Blog Migrations
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/upgrading/">
|
||
Upgrading
|
||
</a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="/docs/deployment/">
|
||
Deployment
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</aside>
|
||
</div>
|
||
<div class="clear"></div>
|
||
</div>
|
||
</section>
|
||
<footer>
|
||
<div class="grid">
|
||
<div class="unit two-thirds center-on-mobiles">
|
||
<p>Jekyll is lovingly maintained by the <a href="/team/">core team</a> of volunteers. </p>
|
||
<p>The contents of this website are <br>© 2025 under the terms of the <a href="https://github.com/jekyll/jekyll/blob/master/LICENSE">MIT License</a>.</p>
|
||
</div>
|
||
<div class="unit one-third align-right center-on-mobiles">
|
||
<p>
|
||
Proudly hosted by
|
||
<a href="https://github.com">
|
||
<img src="/img/footer-logo.png" width="100" height="30" alt="GitHub • Social coding">
|
||
</a>
|
||
</p>
|
||
<p>
|
||
Jekyll is funded thanks to its <a href="https://github.com/jekyll/jekyll#sponsors">sponsors!</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</footer>
|
||
<script>
|
||
/* Creates an anchor element with the given ID and link for the permalink*/
|
||
const anchorForId = (id) => {
|
||
const anchor = document.createElement("a");
|
||
anchor.className = "header-link";
|
||
anchor.href = `#${id}`;
|
||
anchor.innerHTML = `<span class="sr-only">Permalink</span><i class="fa fa-link" aria-hidden="true"></i>`;
|
||
anchor.title = "Permalink";
|
||
return anchor;
|
||
};
|
||
|
||
/* Finds all headers of the specified level within the given element, and adds a permalink to each header*/
|
||
const linkifyAnchors = (level, containingElement) => {
|
||
const headers = Array.from(containingElement.getElementsByTagName(`h${level}`));
|
||
headers.forEach((header) => {
|
||
if (header.id) {
|
||
header.appendChild(anchorForId(header.id));
|
||
}
|
||
});
|
||
};
|
||
|
||
/* Executes the function when the document is ready */
|
||
document.onreadystatechange = () => {
|
||
if (document.readyState === "complete") {
|
||
const contentBlock = document.getElementsByClassName("docs")[0]
|
||
?? document.getElementsByClassName("news")[0];
|
||
if (!contentBlock) { return; }
|
||
for (let level = 1; level <= 6; level++) {
|
||
linkifyAnchors(level, contentBlock);
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
<!-- Google Analytics (https://www.google.com/analytics) -->
|
||
<script>
|
||
!function(j,e,k,y,l,L){j.GoogleAnalyticsObject=y,j[y]||(j[y]=function(){
|
||
(j[y].q=j[y].q||[]).push(arguments)}),j[y].l=+new Date,l=e.createElement(k),
|
||
L=e.getElementsByTagName(k)[0],l.src='https://www.google-analytics.com/analytics.js',
|
||
L.parentNode.insertBefore(l,L)}(window,document,'script','ga');
|
||
|
||
ga('create', 'UA-50755011-1', 'jekyllrb.com');
|
||
ga('send', 'pageview');
|
||
</script>
|
||
<script src="https://cdn.jsdelivr.net/npm/docsearch.js@2/dist/cdn/docsearch.min.js"></script>
|
||
<script> docsearch({
|
||
apiKey: '50fe39c839958dfad797000f33e2ec17',
|
||
indexName: 'jekyllrb',
|
||
inputSelector: '#docsearch-input',
|
||
enhancedSearchInput: true,
|
||
debug: false // Set debug to true if you want to inspect the dropdown
|
||
});
|
||
</script>
|
||
<script>
|
||
const navigateToUrl = (select) => {
|
||
const url = select.value;
|
||
url && (window.location.href = url);
|
||
};
|
||
</script>
|
||
</body>
|
||
</html>
|