* Add the ability to define a default language
I don't want to have to add the language i'm working on to every single block nor do I want to rely on a default heuristic to find the language.
This adds the ability to write
```
highlight: { defaultLang: 'xxxx' }
```
in `siteConfig.js` to force the language when not specified.
I tested it without a a highlight block, without a defaultLang attribute and with one and with a wrong one. All of them work as expected.
* Move comment around
* Remove client side highlighting
* Update CSS rules to render plain code blocks with expected left border
* Add back codeColor background color config
* Ensure all pre code blocks use Highlight.js classes
* added a note about needing more than one language to be enabled to allow for a drop down
* Removing debug statements
* Add 'Help Translate' to translatable strings, improves error messages around missing translated strings, calls write-translations on some routes
* Adds sitemap.xml to live server and build. Versioning not supported. -- Also did some file name and module cache cleanups.
* Add the ability to provide custom layout
When I designed the system, I added the ability to provide a custom layout that would use arbitrary JavaScript to render some custom pages. This is why files are called "DocsLayout.js", "BlogPostLayout.js"... This ability to customize it was [ripped out](https://github.com/facebook/react-native/blob/master/website/server/convert.js#L78) during the migration to Docusaurus but I need it for the project I'm working on right now (that should remain unnamed!).
This adds back the ability to do it in a way that fits the third party system. In order to provide a new layout:
1) Add a `layout` field in the header of your markdown file:
```js
---
layout: mylayout
---
```
2) In your `siteConfig`, add
```js
layouts: {
mylayout: function({React, Marked}) {
return class extends React.Component {
render() {
return React.createElement('div', {}, this.props.metadata.layout);
}
}
}
}
```
I think that it's a reasonable to add and would unblock me :)
* Update DocsLayout.js
I was getting this error when running the examples:
```
Error: It looks like you've enabled language support, but haven't provided translated files. The document with id: 'en-doc1' doesn't exist.
```
However, this error was an indirect result of me not renaming the `docs-examples-from-docusaurus` directory to `docs` since I had `doc` in my
`headerLinks` in the example siteConfig.js.
So let's check the headerLinks and make sure we have the required directories.
Here is an example of the error if I try to load a Docusaurus site just after running `npm run examples` without having renamed the directories.
```
Error: You have 'doc' in your headerLinks, but no 'docs' folder exists one level up from 'website' folder. Are you running the examples? If so, make sure you rename 'docs-examples-from-docusaurus' to 'docs'.
at /Users/joelm/dev/test/website/node_modules/docusaurus/lib/core/nav/HeaderNav.js:226:15
:
:
```
Test Plan: Tested a local package in verdaccio
* Add Reason support to Prism.js
* Add XML/ATOM feed. Generates for both localhost and build script. Adds meta links to feeds to all html files.
* Updated /core/Footer.js to pull from siteConfig