Skip to content

Latest commit

 

History

History
55 lines (39 loc) · 2.93 KB

development.md

File metadata and controls

55 lines (39 loc) · 2.93 KB

Development

This document describes the process for running this application on your local computer.

Getting started

This site is powered by Node.js! ✨ 🐢 🚀 ✨

It runs on macOS, Windows, and Linux environments.

You'll need Node.js v14 to run the site. If you're using nodenv, read the nodenv docs for instructions on switching Node.js versions. If you're not using nodenv, the best way to install Node.js is to download the LTS installer from nodejs.org.

Once you've installed Node.js (which includes the popular npm package manager), open Terminal and run the following:

git clone https://github.com/github/docs
cd docs
npm install
npm start

You should now have a running server! Visit localhost:4000 in your browser. It will automatically restart as you make changes to site content.

When you're ready to stop your local server, type CTRLc in your terminal window.

Site structure

This site was originally a Ruby on Rails web application. Some time later it was converted into a static site powered by Jekyll. A few years after that it was migrated to Nanoc, another Ruby static site generator.

Today it's a dynamic Node.js webserver powered by Express, using middleware to support proper HTTP redirects, language header detection, and dynamic content generation to support the various flavors of GitHub's product documentation, like GitHub.com and GitHub Enterprise Server.

The tooling for this site has changed over the years, but many of the tried-and-true authoring conventions of the original Jekyll site have been preserved:

  • Content is written in Markdown files, which live in the content directory.
  • Content can use the Liquid templating language.
  • Files in the data directory are available to templates via the {% data %} tag.
  • Markdown files can contain frontmatter.
  • The redirect_from Jekyll plugin behavior is supported.

For more info about working with this site, check out these READMEs: