pytorch3d/website
Patrick Labatut e4456dba2f Facebook -> Meta Platforms on website footer + docs
Summary: Update company copyright on website footer + documentation pages, see [guidelines](https://www.internalfb.com/intern/wiki/Open_Source/Launch_an_OSS_Project/Launch_Preparation/Automated_Checkup/Terms_Of_Use_&_Privacy_Policy/).

Reviewed By: bottler

Differential Revision: D32649563

fbshipit-source-id: f285be79c185496832c5d41b839ee974234a8fa5
2021-11-24 10:07:15 -08:00
..
core License lint codebase 2021-06-22 03:45:27 -07:00
pages rename master branch to main 2021-08-16 04:06:53 -07:00
static License lint codebase 2021-06-22 03:45:27 -07:00
.dockerignore Setup website with docusaurus (#11) 2020-02-04 17:27:16 -08:00
.gitignore Setup website with docusaurus (#11) 2020-02-04 17:27:16 -08:00
README.md build website in docker container 2021-10-06 18:09:45 -07:00
package.json Setup website with docusaurus (#11) 2020-02-04 17:27:16 -08:00
sidebars.json Note for iou3d 2021-09-29 19:15:19 -07:00
siteConfig.js Facebook -> Meta Platforms on website footer + docs 2021-11-24 10:07:15 -08:00
tutorials.json Add new doc and new tutorials to website 2021-08-12 05:07:55 -07:00

README.md

This website was created with Docusaurus.

Building the PyTorch3D website

Install

  1. Make sure all the dependencies for the website are installed:
# Install dependencies
$ yarn

or

$ npm install docusaurus-init
  1. 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:

  • .html files in the website/_tutorials folder
  • .js files in the website/pages/tutorials folder
  • .py/.ipynb files in the website/static/files folder

TODO: Add support for latex in markdown in jupyter notebooks and embedded images.

Build and publish the website

To update for a new version, you need to build the tutorials and the website and push to the gh-pages branch of github.com/facebookresearch/pytorch3d. The instructions in scripts/publish_website.sh bring it all together.

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

  1. Create the doc as a new markdown file in /docs, example docs/newly-created-doc.md:
---
id: newly-created-doc
title: This Doc Needs To Be Edited
---

My new content here..
  1. 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

  1. Make sure there is a header link to your blog in website/siteConfig.js:

website/siteConfig.js

headerLinks: [
    ...
    { blog: true, label: 'Blog' },
    ...
]
  1. Create the blog post with the format YYYY-MM-DD-My-Blog-Post-Title.md in website/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

  1. 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

  1. Docusaurus uses React components to build pages. The components are saved as .js files in website/pages/en:
  2. If you want your page to show up in your navigation header, you will need to update website/siteConfig.js to add to the headerLinks element:

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.