Slate helps you create beautiful API documentation. Think of it as an intelligent, responsive documentation template for your API.
The example above was created with Slate. Check it out at tripit.github.io/slate.
Clean, intuitive design — with Slate, the description of your API is on the left side of your documentation, and all the code examples are on the right side. Inspired by Stripe's and Paypal's API docs. Slate is responsive, so it looks great on tablets, phones, and even print.
Everything on a single page — gone are the days where your users had to search through a million pages to find what they wanted. Slate puts the entire documentation on a single page. We haven't sacrificed linkability, though. As you scroll, your browser's hash will update to the nearest header, so linking to a particular point in the documentation is still natural and easy.
Slate is just Markdown — when you write docs with Slate, you're just writing Markdown, which makes it simple to edit and understand. Everything is written in Markdown — even the code samples are just Markdown code blocks!
Write code samples in multiple languages — if your API has bindings in multiple programming languages, you easily put in tabs to switch between them. In your document, you'll distinguish different languages by specifying the language name at the top of each code block, just like with Github Flavored Markdown!
Out-of-the-box syntax highlighting for almost 60 languages, no configuration required.
Automatic, smoothly scrolling table of contents on the far left of the page. As you scroll, it displays your current position in the document. It's fast, too. We're using Slate at TripIt to build documentation for our new API, where our table of contents has over 180 entries. We've made sure that the performance remains excellent, even for larger documents.
Let your users update your documentation for you — by default, your Slate-generated documentation is hosted in a public Github repository. Not only does this mean you get free hosting for your docs with Github Pages, but it also makes it's simple for other developers to make pull requests to your docs if they find typos or other problems. Of course, if you don't want to, you're welcome to not use Github and host your docs elsewhere!
Getting starting with Slate is super easy! Simply fork this repository, and then follow the instructions below. Or, if you'd like to check out what Slate is capable of, take a look at the sample docs.
Getting Started with Slate
You're going to need:
- Linux or OS X — Windows may work, but is unsupported.
- Ruby, version 1.9.3 or newer
- Bundler — If Ruby is already installed, but the
bundlecommand doesn't work, just run
gem install bundlerin a terminal.
Getting Set Up
- Fork this repository on Github.
- Clone your forked repository (not our original one) to your hard drive with
git clone https://github.com/YOURUSERNAME/slate.git
- Install all dependencies:
- Start the test server:
bundle exec middleman server
Or use the included Dockerfile! (must install Docker first)
docker build -t slate . docker run -d -p 4567:4567 slate
You can now see the docs at http://localhost:4567. Whoa! That was fast!
Note: if you're using the Docker setup on OSX, the docs will be
availalable at the output of
boot2docker ip instead of
Examples of Slate in the Wild
- Travis-CI's API docs
- Mozilla's localForage docs
- Mozilla Recroom
- ChaiOne Gameplan API docs
- Drcaban's Build a Quine tutorial
- PricePlow API docs
- Emerging Threats API docs
- Appium docs
- Golazon Developer
- Dwolla API docs
- RozpisyZapasu API docs
- Codestar Framework Docs
- Buddycloud API
- Crafty Clicks API
- Paracel API Reference
- Switch Payments Documentation & API
- Coinbase API Reference
- Whispir.io API
- NASA API
- CardPay API
- IBM Cloudant
- Bitrix basis components
(Feel free to add your site to this list in a pull request!)
Need Help? Found a bug?
Just submit a issue to the Slate Github if you need any help. And, of course, feel free to submit pull requests with bug fixes or changes.
Thanks to the following people who have submitted major pull requests:
Also, thanks to Sauce Labs for helping sponsor the project.