mirror of
https://github.com/facebook/docusaurus.git
synced 2025-12-27 20:02:50 +00:00
* 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 |
||
|---|---|---|
| .. | ||
| nav | ||
| BlogPageLayout.js | ||
| BlogPost.js | ||
| BlogPostLayout.js | ||
| BlogSidebar.js | ||
| CompLibrary.js | ||
| Container.js | ||
| Doc.js | ||
| DocsLayout.js | ||
| DocsSidebar.js | ||
| GridBlock.js | ||
| Head.js | ||
| Header.js | ||
| Marked.js | ||
| Prism.js | ||
| Site.js | ||
| SnackPlayer.js | ||
| WebPlayer.js | ||
| toSlug.js | ||
| unindent.js | ||