Summary: A few small website updates: - changed the tutorials to point to the `stable` tag on github so we don't have to update the website each time we want to run them! - changed the colab button - re ran notebook cells to update the images for textured meshes Once these fixes are landed I can build and publish the website. Reviewed By: bottler Differential Revision: D20484836 fbshipit-source-id: 603a05e752f631c60d1a3abb9adeb1b9b451ab98
This website was created with Docusaurus.
Building the PyTorch3D website
Install
- Make sure all the dependencies for the website are installed:
 
# Install dependencies
$ yarn
or 
$ npm install docusaurus-init
- Run your dev server:
 
# Start the site
$ yarn start
or
$ ./node_modules/docusaurus/lib/start-server.js
Build the tutorials
We convert the ipython notebooks to html using parse_tutorials.py which is found in the scripts folder at the root of the PyTorch3D directory.
Before running this script install the following dependencies:
pip install nbformat==4.4.0 nbconvert==5.3.1 ipywidgets==7.5.1 tornado==4.2 bs4
Install yarn:
brew install yarn
# or 
curl -o- -L https://yarnpkg.com/install.sh | bash
Then run the build script:
bash scripts/build_website.sh
This will build the docusaurus website and run a script to parse the tutorials and generate:
.htmlfiles in thewebsite/_tutorialsfolder.jsfiles in thewebsite/pages/tutorialsfolder.py/.ipynbfiles in thewebsite/static/filesfolder
TODO: Add support for latex in markdown in jupyter notebooks and embedded images.
Add a new tutorial
The tutorials to include in the website are listed in website/tutorials.json. If you create a new tutorial add an entry to the list in this file. This is needed in order to generate the sidebar for the tutorials page.
Edit the landing page
To change the content of the landing page modify: website/pages/en/index.js.
Edit the tutorials page
To change the content of the tutorials home page modify: website/pages/tutorials/index.js.
Docusaurus docs
Directory Structure
Your project file structure should look something like this
my-docusaurus/
  docs/
    doc-1.md
    doc-2.md
    doc-3.md
  website/
    blog/
      2016-3-11-oldest-post.md
      2017-10-24-newest-post.md
    core/
    node_modules/
    pages/
    static/
      css/
      img/
    package.json
    sidebars.json
    siteConfig.js
Editing Content
Editing an existing docs page
Edit docs by navigating to docs/ and editing the corresponding document:
docs/doc-to-be-edited.md
---
id: page-needs-edit
title: This Doc Needs To Be Edited
---
Edit me...
For more information about docs, click here
Editing an existing blog post
Edit blog posts by navigating to website/blog and editing the corresponding post:
website/blog/post-to-be-edited.md
---
id: post-needs-edit
title: This Blog Post Needs To Be Edited
---
Edit me...
For more information about blog posts, click here
Adding Content
Adding a new docs page to an existing sidebar
- Create the doc as a new markdown file in 
/docs, exampledocs/newly-created-doc.md: 
---
id: newly-created-doc
title: This Doc Needs To Be Edited
---
My new content here..
- Refer to that doc's ID in an existing sidebar in 
website/sidebars.json: 
// Add newly-created-doc to the Getting Started category of docs
{
  "docs": {
    "Getting Started": [
      "quick-start",
      "newly-created-doc" // new doc here
    ],
    ...
  },
  ...
}
For more information about adding new docs, click here
Adding a new blog post
- Make sure there is a header link to your blog in 
website/siteConfig.js: 
website/siteConfig.js
headerLinks: [
    ...
    { blog: true, label: 'Blog' },
    ...
]
- Create the blog post with the format 
YYYY-MM-DD-My-Blog-Post-Title.mdinwebsite/blog: 
website/blog/2018-05-21-New-Blog-Post.md
---
author: Frank Li
authorURL: https://twitter.com/foobarbaz
authorFBID: 503283835
title: New Blog Post
---
Lorem Ipsum...
For more information about blog posts, click here
Adding items to your site's top navigation bar
- Add links to docs, custom pages or external links by editing the headerLinks field of 
website/siteConfig.js: 
website/siteConfig.js
{
  headerLinks: [
    ...
    /* you can add docs */
    { doc: 'my-examples', label: 'Examples' },
    /* you can add custom pages */
    { page: 'help', label: 'Help' },
    /* you can add external links */
    { href: 'https://github.com/facebook/docusaurus', label: 'GitHub' },
    ...
  ],
  ...
}
For more information about the navigation bar, click here
Adding custom pages
- Docusaurus uses React components to build pages. The components are saved as .js files in 
website/pages/en: - If you want your page to show up in your navigation header, you will need to update 
website/siteConfig.jsto add to theheaderLinkselement: 
website/siteConfig.js
{
  headerLinks: [
    ...
    { page: 'my-new-custom-page', label: 'My New Custom Page' },
    ...
  ],
  ...
}
For more information about custom pages, click here.
Full Documentation
Full documentation can be found on the website.