` tag, and add the following `require` statement to the top of the file:
+
+```jsx
+...
+const translate = require("../../server/translate.js").translate;
+...
+
+ This header will be translated
+
+...
+```
+
+You can also include an optional description attribute to give more context to a translator about how to translate the string:
+
+```jsx
+
+ Rose
+
+```
+
+> The `` tag generally works well on pure strings. If you have a string like "Docusaurus currently provides support to help your website use [translations](${siteConfig.baseUrl}docs/${this.props.language}/translation.html)", wrapping the `` tag around that entire string will cause issues because of the markdown linking, etc. Your options are to not translate those strings, or spread a bunch of `` tags amongst the pure substrings of that string.
+
+## Gathering Strings to Translate
+
+The strings within localized Pages must be extracted and provided to Crowdin.
+
+Add the following script to your `website/package.json` file, if it does not exist already:
+
+```json
+...
+"scripts": {
+ "write-translations": "docusaurus-write-translations"
+},
+...
+```
+
+Running the script will generate a `website/i18n/en.json` file containing all the strings that will be translated from English into other languages.
+
+The script will include text from the following places:
+
+- `title` and `sidebar_label` strings in document markdown headers
+- category names in `sidebars.json`
+- tagline in `siteConfig.js`
+- header link `label` strings in `siteConfig.js`
+- strings wrapped in the `` tag in any `.js` files inside `pages`
+
+## How Strings Get Translated
+
+Docusaurus itself does not do any translation from one language to another. Instead, it integrates [Crowdin](https://crowdin.com/) to upload translations and then downloads the appropriately translated files from Crowdin.
+
+## How Docusaurus Uses String Translations
+
+This section provides context about how translations in Docusaurus works.
+
+### Strings
+
+A Docusaurus site has many strings used throughout it that require localization. However, maintaining a list of strings used through out a site can be laborious. Docusaurus simplifies this by centralizing strings.
+
+The header navigation, for example can have links to 'Home' or your 'Blog'. This and other strings found in the headers and sidebars of pages are extracted and placed into `i18n/en.json`. When your files are translated, say into Spanish, a `i18n/es-ES.json` file will be downloaded from Crowdin. Then, when the Spanish pages are generated, Docusaurus will replace the English version of corresponding strings with translated strings from the corresponding localized strings file (e.g. In a Spanish enabled site 'Help' will become 'Ayuda').
+
+### Markdown Files
+
+For documentation files themselves, translated versions of these files are downloaded and then rendered through the proper layout template.
+
+### Other Pages
+
+For other pages, Docusaurus will automatically transform all `` tags it finds into function calls that return the translated strings from the corresponding localized file _`locale.json`_.
+
+## Crowdin
+
+Crowdin is a company that provides translation services. For Open Source projects, Crowdin provides free string translations.
+
+Create your translation project on [Crowdin](https://crowdin.com/). You can use [Crowdin's guides](https://support.crowdin.com/translation-process-overview/) to learn more about the translations work flow. _We suggest that you deselect and do not include "English" as a translatable language to prevent the creation of `en-US` localization files as this can lead to confusion._
+
+> Ensure in your Crowdin settings, in the Translations section, that "Duplicate Strings" are set to ["Hide - all duplicates will share the same translation"](https://support.crowdin.com/api/create-project/). This setting will ensure that identical strings between versions share a single translation.
+
+Your project will need a `crowdin.yaml` file generated. If you ran `yarn examples translations` or `npm run examples translations`, this file was created for you on the same level as your `website` directory.
+
+> You will need to install the `crowdin` command line interface. Please follow the [installation directions](https://support.crowdin.com/cli-tool/).
+
+The example below can be automatically generated by the Docusaurus cli with the `examples` script. It should be placed in the top level of your project directory to configure how and what files are uploaded/downloaded.
+
+Below is an example Crowdin configuration for the respective languages: German, Spanish, French, Japanese, Korean, Bahasa Indonesia, Portuguese Brazilian, Chinese Simplified, and Chinese Traditional.
+
+```yaml
+project_identifier_env: CROWDIN_DOCUSAURUS_PROJECT_ID
+api_key_env: CROWDIN_DOCUSAURUS_API_KEY
+base_path: "./"
+preserve_hierarchy: true
+
+files:
+ -
+ source: '/docs/*.md'
+ translation: '/website/translated_docs/%locale%/%original_file_name%'
+ languages_mapping: &anchor
+ locale:
+ 'de': 'de'
+ 'es-ES': 'es-ES'
+ 'fr': 'fr'
+ 'ja': 'ja'
+ 'ko': 'ko'
+ 'mr': 'mr-IN'
+ 'pt-BR': 'pt-BR'
+ 'zh-CN': 'zh-CN'
+ 'zh-TW': 'zh-TW'
+```
+
+You can go [here](https://support.crowdin.com/configuration-file/) to learn more about customizing your `crowdin.yaml` file.
+
+### Setup the Crowdin Scripts
+
+You will want to manually sync your files to and from Crowdin. The sync process will upload any markdown files in `/docs` as well as translatable strings in `website/i18n/en.json`. (These strings can be generated by running `yarn write-translations`.)
+
+You can add the following to your `package.json` to manually trigger Crowdin.
+
+```json
+"scripts": {
+ "crowdin-upload": "crowdin --config ../crowdin.yaml upload sources --auto-update -b master",
+ "crowdin-download": "crowdin --config ../crowdin.yaml download -b master"
+},
+```
+
+### Manual File Sync
+
+You will always want to upload your markdown files and translatable strings first and the download the translations section. So run the commands in this order:
+
+```
+CROWDIN_DOCUSAURUS_PROJECT_ID=YOUR_CROWDIN_PROJECT_ID CROWDIN_DOCUSAURUS_API_KEY=YOUR_CROWDIN_API_KEY yarn run crowdin-upload
+CROWDIN_DOCUSAURUS_PROJECT_ID=YOUR_CROWDIN_PROJECT_ID CROWDIN_DOCUSAURUS_API_KEY=YOUR_CROWDIN_API_KEY yarn run crowdin-download
+```
+
+> `YOUR_CROWDIN_PROJECT_ID` is the name of your Crowdin project. e.g., for https://crowdin.com/project/docusaurus/, that variable would be set to `docusaurus`. `YOUR_CROWDIN_API_KEY` is a unique key that is like a password. You can find it in the `API` tab of your Crowdin project's `Settings`.
+
+> These commands require having an environment variable set with your Crowdin project id and api key (`CROWDIN_PROJECT_ID`, `CROWDIN_API_KEY`). You can preface them inline as done above or add them permanently to your `.bashrc` or `.bash_profile`.
+
+> If you run more than one localized Docusaurus project on your computer, you should change the name of the environment variables to something unique (`CROWDIN_PROJECTNAME_PROJECT_ID`, `CROWDIN_PROJECTNAME_API_KEY`).
+
+> Since the files are generated, you do not need to have any files in your `website/i18n` or `website/translated_docs` directory as part of your repo. So you can can add `website/i18n/*` and `website/translated_docs` to your `.gitignore` file.
+
+### Automated File Sync Using CircleCI
+
+You can automate pulling down and uploading translations for your files using the [CircleCI](https://circleci.com) web continuous integration service.
+
+First, update the `circle.yml` file in your project directory to include steps to upload English files to be translated and download translated files using the Crowdin CLI. Here is an example `circle.yml` file:
+
+```yaml
+machine:
+ node:
+ version: 6.10.3
+ npm:
+ version: 3.10.10
+
+test:
+ override:
+ - "true"
+
+deployment:
+ website:
+ branch: master
+ commands:
+ # configure git user
+ - git config --global user.email "test-site-bot@users.noreply.github.com"
+ - git config --global user.name "Website Deployment Script"
+ - echo "machine github.com login test-site-bot password $GITHUB_TOKEN" > ~/.netrc
+ # install Docusaurus and generate file of English strings
+ - cd website && npm install && npm run write-translations && cd ..
+ # crowdin install
+ - sudo apt-get install default-jre
+ - wget https://artifacts.crowdin.com/repo/deb/crowdin.deb -O crowdin.deb
+ - sudo dpkg -i crowdin.deb
+ # translations upload/download
+ - crowdin --config crowdin.yaml upload sources --auto-update -b master
+ - crowdin --config crowdin.yaml download -b master
+ # build and publish website
+ - cd website && GIT_USER=test-site-bot npm run publish-gh-pages
+```
+
+The `crowdin` command uses the `crowdin.yaml` file generated with the `examples` script. It should be placed in your project directory to configure how and what files are uploaded/downloaded.
+
+Note that in the `crowdin.yaml` file, `CROWDIN_PROJECT_ID` and `CROWDIN_API_KEY` are environment variables set-up in Circle for your Crowdin project. They can be found in your Crowdin project settings.
+
+Now, Circle will help you automatically get translations prior to building your website. The provided `crowdin.yaml` file will copy translated documents into `website/translated_docs/`, and translated versions of the `i18n/en.json` strings file will into `i18n/${language}.json`.
+
+If you wish to use Crowdin on your machine locally, you can install the [Crowdin CLI tool](https://support.crowdin.com/cli-tool/) and run the same commands found in the `circle.yaml` file. The only difference is that you must set `project_identifier` and `api_key` values in the `crowdin.yaml` file since you will not have Circle environment variables set up.
+
+## Versioned Translations
+
+If you wish to have translation and versioning for your documentation, add the following section to the end of your `crowdin.yaml` file:
+
+```yaml
+ -
+ source: '/website/versioned_docs/**/*.md'
+ translation: '/website/translated_docs/%locale%/**/%original_file_name%'
+ languages_mapping: *anchor
+```
+
+Translated, versioned documents will be copied into `website/translated_docs/${language}/${version}/`.
diff --git a/website/versioned_docs/version-1.0.11/guides-versioning.md b/website/versioned_docs/version-1.0.11/guides-versioning.md
new file mode 100644
index 0000000000..6b27905041
--- /dev/null
+++ b/website/versioned_docs/version-1.0.11/guides-versioning.md
@@ -0,0 +1,87 @@
+---
+id: version-1.0.11-versioning
+title: Versioning
+original_id: versioning
+---
+
+You can use the `version` script to cut a new documentation version based on the latest content in the `docs` folder. That specific set of documentation will then be preserved and accessible even as the documentation in the `docs` folder changes moving forward.
+
+## How to Create New Versions
+
+Run the following script to generate a starter versions page listing all the site versions:
+
+```bash
+yarn examples versions
+```
+
+This creates the `pages/en/versions.js` file.
+
+You can edit this file later on to customize how you display the versions.
+
+Add the following script to your `package.json` file if it doesn't already exist:
+
+```json
+...
+"scripts": {
+ "version": "docusaurus-version"
+},
+...
+```
+
+Run the script with a command line argument of the version you wish to create. e.g.,
+
+```bash
+yarn run version 1.0.0
+```
+
+This will preserve all documents currently in the `docs` folder and make them available as documentation for version `1.0.0`.
+
+If, for example, you ran the version script with `1.0.0` as the version number, version `1.0.0` is considered the latest release version for your project. The site will display the version number next to the title in the header. This version number links to a versions page that you created earlier.
+
+Documents in the `docs` folder will be considered part of version `next` and they are available, for example, at the url `docs/next/doc1.html`. Documents from the latest version use the url `docs/doc1.html`.
+
+Running the script again with `yarn run version 2.0.0` will create a version `2.0.0`, making version `2.0.0` the most recent set of documentation. Documents from version `1.0.0` will use the url `docs/1.0.0/doc1.html` while `2.0.0` will use `docs/doc1.html`.
+
+## Versioning Patterns
+
+You can create version numbers in whatever format you wish, and a new version can be created with any version number as long as it does not match an existing version. Version ordering is determined by the order in which versions are created, independently of how they are numbered.
+
+## Storing Files for Each Version
+
+Versioned documents are placed into `website/versioned_docs/version-${version}`, where `${version}` is the version number you supplied the `version` script.
+
+The markdown header for each versioned doc is altered by renaming the id front matter field to `original_id`, then using `"version-${version}-${original_id}"` as the value for the actual `id` field.
+
+Versioned sidebars are copied into `website/versioned_sidebars` and are named as `version-${version}-sidebars.json`.
+
+A `website/versions.json` file is created the first time you cut a version and is used by Docusaurus to detect what versions exist. Each time a new version is added, it gets added to the `versions.json` file.
+
+If you wish to change the documentation for a past version, you can access the files for that respective version.
+
+## Fallback Functionality
+
+Only files in the `docs` folder and sidebar files that differ from those of the latest version will get copied each time a new version is specified. If there is no change across versions, Docusaurus will use the file from the latest version with that file.
+
+For example, a document with the original id `doc1` exists for the latest version, `1.0.0`, and has the same content as the document with the id `doc1` in the `docs` folder. When a new version `2.0.0` is created, the file for `doc1` will not be copied into `versioned_docs/version-2.0.0/`. There will still be a page for `docs/2.0.0/doc1.html`, but it will use the file from version `1.0.0`.
+
+## Renaming Existing Versions
+
+To rename an existing version number to something else, first make sure the following script is in your `package.json` file:
+
+```json
+...
+"scripts": {
+ "rename-version": "docusaurus-rename-version"
+},
+...
+```
+
+Run the script with command line arguments of first, the current version name, then second, the new version name. e.g.,
+
+```bash
+yarn run rename-version 1.0.0 1.0.1
+```
+
+## Versioning and Translations
+
+If you wish to use versioning and translations features, the `crowdin.yaml` file should be set up to upload and download versioned documents to and from Crowdin for translation. Translated, versioned files will go into the folder `translated_docs/${language}/version-${version}/`. For more information, check out the [translations guide](guides-translation.md).
diff --git a/website/versioned_sidebars/version-1.0.11-sidebars.json b/website/versioned_sidebars/version-1.0.11-sidebars.json
new file mode 100644
index 0000000000..3999dd35f3
--- /dev/null
+++ b/website/versioned_sidebars/version-1.0.11-sidebars.json
@@ -0,0 +1,24 @@
+{
+ "version-1.0.11-docs": {
+ "Getting Started": [
+ "version-1.0.11-installation",
+ "version-1.0.11-site-preparation",
+ "version-1.0.11-site-creation",
+ "version-1.0.11-publishing"
+ ],
+ "Guides": [
+ "version-1.0.11-blog",
+ "version-1.0.11-custom-pages",
+ "version-1.0.11-search",
+ "version-1.0.11-navigation",
+ "version-1.0.11-translation",
+ "version-1.0.11-versioning"
+ ],
+ "API": [
+ "version-1.0.11-commands",
+ "version-1.0.11-doc-markdown",
+ "version-1.0.11-api-pages",
+ "version-1.0.11-site-config"
+ ]
+ }
+}
diff --git a/website/versions.json b/website/versions.json
new file mode 100644
index 0000000000..38546bd469
--- /dev/null
+++ b/website/versions.json
@@ -0,0 +1,3 @@
+[
+ "1.0.11"
+]