Commit
·
891295f
1
Parent(s):
6511f74
init commit
Browse files- .gitattributes +13 -0
- .gitignore +20 -0
- Dockerfile +4 -1
- blog/2019-05-28-first-blog-post.md +12 -0
- blog/2019-05-29-long-blog-post.md +44 -0
- blog/2021-08-01-mdx-blog-post.mdx +24 -0
- blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg +0 -0
- blog/2021-08-26-welcome/index.md +29 -0
- blog/authors.yml +23 -0
- blog/tags.yml +19 -0
- docusaurus.config.ts +143 -0
- package-lock.json +0 -0
- package.json +47 -0
- sidebars.ts +33 -0
- src/components/HomepageFeatures/index.tsx +71 -0
- src/components/HomepageFeatures/styles.module.css +11 -0
- src/css/custom.css +30 -0
- src/pages/index.module.css +23 -0
- src/pages/index.tsx +44 -0
- src/pages/markdown-page.md +7 -0
- static/.nojekyll +0 -0
- static/img/docusaurus-social-card.jpg +0 -0
- static/img/docusaurus.png +0 -0
- static/img/favicon.ico +0 -0
- static/img/logo.svg +1 -0
- static/img/undraw_docusaurus_mountain.svg +171 -0
- static/img/undraw_docusaurus_react.svg +170 -0
- static/img/undraw_docusaurus_tree.svg +40 -0
- tsconfig.json +8 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,16 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
static/images/steve.webm filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
static/videos/blueshirt.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
static/videos/chair-tp.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 39 |
+
static/videos/coffee.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 40 |
+
static/videos/dollyzoom-depth.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 41 |
+
static/videos/dollyzoom.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 42 |
+
static/videos/mask.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 43 |
+
static/videos/matting.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 44 |
+
static/videos/replay.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 45 |
+
static/videos/shiba.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 46 |
+
static/videos/steve.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 47 |
+
static/videos/teaser.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 48 |
+
static/videos/toby.mp4 filter=lfs diff=lfs merge=lfs -text
|
.gitignore
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Dependencies
|
| 2 |
+
/node_modules
|
| 3 |
+
|
| 4 |
+
# Production
|
| 5 |
+
/build
|
| 6 |
+
|
| 7 |
+
# Generated files
|
| 8 |
+
.docusaurus
|
| 9 |
+
.cache-loader
|
| 10 |
+
|
| 11 |
+
# Misc
|
| 12 |
+
.DS_Store
|
| 13 |
+
.env.local
|
| 14 |
+
.env.development.local
|
| 15 |
+
.env.test.local
|
| 16 |
+
.env.production.local
|
| 17 |
+
|
| 18 |
+
npm-debug.log*
|
| 19 |
+
yarn-debug.log*
|
| 20 |
+
yarn-error.log*
|
Dockerfile
CHANGED
|
@@ -6,8 +6,11 @@ ENV PATH="/home/user/.local/bin:$PATH"
|
|
| 6 |
|
| 7 |
WORKDIR /app
|
| 8 |
|
| 9 |
-
COPY --chown=user ./
|
| 10 |
RUN npm i
|
| 11 |
|
| 12 |
COPY --chown=user . /app
|
|
|
|
|
|
|
|
|
|
| 13 |
CMD ["npm run serve -- --port 80"]
|
|
|
|
| 6 |
|
| 7 |
WORKDIR /app
|
| 8 |
|
| 9 |
+
COPY --chown=user package*.json ./
|
| 10 |
RUN npm i
|
| 11 |
|
| 12 |
COPY --chown=user . /app
|
| 13 |
+
RUN npm run build
|
| 14 |
+
|
| 15 |
+
EXPOSE 80
|
| 16 |
CMD ["npm run serve -- --port 80"]
|
blog/2019-05-28-first-blog-post.md
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
slug: first-blog-post
|
| 3 |
+
title: First Blog Post
|
| 4 |
+
authors: [slorber, yangshun]
|
| 5 |
+
tags: [hola, docusaurus]
|
| 6 |
+
---
|
| 7 |
+
|
| 8 |
+
Lorem ipsum dolor sit amet...
|
| 9 |
+
|
| 10 |
+
<!-- truncate -->
|
| 11 |
+
|
| 12 |
+
...consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
blog/2019-05-29-long-blog-post.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
slug: long-blog-post
|
| 3 |
+
title: Long Blog Post
|
| 4 |
+
authors: yangshun
|
| 5 |
+
tags: [hello, docusaurus]
|
| 6 |
+
---
|
| 7 |
+
|
| 8 |
+
This is the summary of a very long blog post,
|
| 9 |
+
|
| 10 |
+
Use a `<!--` `truncate` `-->` comment to limit blog post size in the list view.
|
| 11 |
+
|
| 12 |
+
<!-- truncate -->
|
| 13 |
+
|
| 14 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 15 |
+
|
| 16 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 17 |
+
|
| 18 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 19 |
+
|
| 20 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 21 |
+
|
| 22 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 23 |
+
|
| 24 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 25 |
+
|
| 26 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 27 |
+
|
| 28 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 29 |
+
|
| 30 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 31 |
+
|
| 32 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 33 |
+
|
| 34 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 35 |
+
|
| 36 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 37 |
+
|
| 38 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 39 |
+
|
| 40 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 41 |
+
|
| 42 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
| 43 |
+
|
| 44 |
+
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Pellentesque elementum dignissim ultricies. Fusce rhoncus ipsum tempor eros aliquam consequat. Lorem ipsum dolor sit amet
|
blog/2021-08-01-mdx-blog-post.mdx
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
slug: mdx-blog-post
|
| 3 |
+
title: MDX Blog Post
|
| 4 |
+
authors: [slorber]
|
| 5 |
+
tags: [docusaurus]
|
| 6 |
+
---
|
| 7 |
+
|
| 8 |
+
Blog posts support [Docusaurus Markdown features](https://docusaurus.io/docs/markdown-features), such as [MDX](https://mdxjs.com/).
|
| 9 |
+
|
| 10 |
+
:::tip
|
| 11 |
+
|
| 12 |
+
Use the power of React to create interactive blog posts.
|
| 13 |
+
|
| 14 |
+
:::
|
| 15 |
+
|
| 16 |
+
{/* truncate */}
|
| 17 |
+
|
| 18 |
+
For example, use JSX to create an interactive button:
|
| 19 |
+
|
| 20 |
+
```js
|
| 21 |
+
<button onClick={() => alert('button clicked!')}>Click me!</button>
|
| 22 |
+
```
|
| 23 |
+
|
| 24 |
+
<button onClick={() => alert('button clicked!')}>Click me!</button>
|
blog/2021-08-26-welcome/docusaurus-plushie-banner.jpeg
ADDED
|
blog/2021-08-26-welcome/index.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
slug: welcome
|
| 3 |
+
title: Welcome
|
| 4 |
+
authors: [slorber, yangshun]
|
| 5 |
+
tags: [facebook, hello, docusaurus]
|
| 6 |
+
---
|
| 7 |
+
|
| 8 |
+
[Docusaurus blogging features](https://docusaurus.io/docs/blog) are powered by the [blog plugin](https://docusaurus.io/docs/api/plugins/@docusaurus/plugin-content-blog).
|
| 9 |
+
|
| 10 |
+
Here are a few tips you might find useful.
|
| 11 |
+
|
| 12 |
+
<!-- truncate -->
|
| 13 |
+
|
| 14 |
+
Simply add Markdown files (or folders) to the `blog` directory.
|
| 15 |
+
|
| 16 |
+
Regular blog authors can be added to `authors.yml`.
|
| 17 |
+
|
| 18 |
+
The blog post date can be extracted from filenames, such as:
|
| 19 |
+
|
| 20 |
+
- `2019-05-30-welcome.md`
|
| 21 |
+
- `2019-05-30-welcome/index.md`
|
| 22 |
+
|
| 23 |
+
A blog post folder can be convenient to co-locate blog post images:
|
| 24 |
+
|
| 25 |
+

|
| 26 |
+
|
| 27 |
+
The blog supports tags as well!
|
| 28 |
+
|
| 29 |
+
**And if you don't want a blog**: just delete this directory, and use `blog: false` in your Docusaurus config.
|
blog/authors.yml
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
yangshun:
|
| 2 |
+
name: Yangshun Tay
|
| 3 |
+
title: Front End Engineer @ Facebook
|
| 4 |
+
url: https://github.com/yangshun
|
| 5 |
+
image_url: https://github.com/yangshun.png
|
| 6 |
+
page: true
|
| 7 |
+
socials:
|
| 8 |
+
x: yangshunz
|
| 9 |
+
github: yangshun
|
| 10 |
+
|
| 11 |
+
slorber:
|
| 12 |
+
name: Sébastien Lorber
|
| 13 |
+
title: Docusaurus maintainer
|
| 14 |
+
url: https://sebastienlorber.com
|
| 15 |
+
image_url: https://github.com/slorber.png
|
| 16 |
+
page:
|
| 17 |
+
# customize the url of the author page at /blog/authors/<permalink>
|
| 18 |
+
permalink: '/all-sebastien-lorber-articles'
|
| 19 |
+
socials:
|
| 20 |
+
x: sebastienlorber
|
| 21 |
+
linkedin: sebastienlorber
|
| 22 |
+
github: slorber
|
| 23 |
+
newsletter: https://thisweekinreact.com
|
blog/tags.yml
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
facebook:
|
| 2 |
+
label: Facebook
|
| 3 |
+
permalink: /facebook
|
| 4 |
+
description: Facebook tag description
|
| 5 |
+
|
| 6 |
+
hello:
|
| 7 |
+
label: Hello
|
| 8 |
+
permalink: /hello
|
| 9 |
+
description: Hello tag description
|
| 10 |
+
|
| 11 |
+
docusaurus:
|
| 12 |
+
label: Docusaurus
|
| 13 |
+
permalink: /docusaurus
|
| 14 |
+
description: Docusaurus tag description
|
| 15 |
+
|
| 16 |
+
hola:
|
| 17 |
+
label: Hola
|
| 18 |
+
permalink: /hola
|
| 19 |
+
description: Hola tag description
|
docusaurus.config.ts
ADDED
|
@@ -0,0 +1,143 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import {themes as prismThemes} from 'prism-react-renderer';
|
| 2 |
+
import type {Config} from '@docusaurus/types';
|
| 3 |
+
import type * as Preset from '@docusaurus/preset-classic';
|
| 4 |
+
|
| 5 |
+
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
| 6 |
+
|
| 7 |
+
const config: Config = {
|
| 8 |
+
title: 'My Site',
|
| 9 |
+
tagline: 'Dinosaurs are cool',
|
| 10 |
+
favicon: 'img/favicon.ico',
|
| 11 |
+
|
| 12 |
+
// Set the production url of your site here
|
| 13 |
+
url: 'https://your-docusaurus-site.example.com',
|
| 14 |
+
// Set the /<baseUrl>/ pathname under which your site is served
|
| 15 |
+
// For GitHub pages deployment, it is often '/<projectName>/'
|
| 16 |
+
baseUrl: '/',
|
| 17 |
+
|
| 18 |
+
// GitHub pages deployment config.
|
| 19 |
+
// If you aren't using GitHub pages, you don't need these.
|
| 20 |
+
organizationName: 'facebook', // Usually your GitHub org/user name.
|
| 21 |
+
projectName: 'docusaurus', // Usually your repo name.
|
| 22 |
+
|
| 23 |
+
onBrokenLinks: 'throw',
|
| 24 |
+
onBrokenMarkdownLinks: 'warn',
|
| 25 |
+
|
| 26 |
+
// Even if you don't use internationalization, you can use this field to set
|
| 27 |
+
// useful metadata like html lang. For example, if your site is Chinese, you
|
| 28 |
+
// may want to replace "en" with "zh-Hans".
|
| 29 |
+
i18n: {
|
| 30 |
+
defaultLocale: 'en',
|
| 31 |
+
locales: ['en'],
|
| 32 |
+
},
|
| 33 |
+
|
| 34 |
+
presets: [
|
| 35 |
+
[
|
| 36 |
+
'classic',
|
| 37 |
+
{
|
| 38 |
+
docs: {
|
| 39 |
+
sidebarPath: './sidebars.ts',
|
| 40 |
+
// Please change this to your repo.
|
| 41 |
+
// Remove this to remove the "edit this page" links.
|
| 42 |
+
editUrl:
|
| 43 |
+
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
|
| 44 |
+
},
|
| 45 |
+
blog: {
|
| 46 |
+
showReadingTime: true,
|
| 47 |
+
feedOptions: {
|
| 48 |
+
type: ['rss', 'atom'],
|
| 49 |
+
xslt: true,
|
| 50 |
+
},
|
| 51 |
+
// Please change this to your repo.
|
| 52 |
+
// Remove this to remove the "edit this page" links.
|
| 53 |
+
editUrl:
|
| 54 |
+
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/',
|
| 55 |
+
// Useful options to enforce blogging best practices
|
| 56 |
+
onInlineTags: 'warn',
|
| 57 |
+
onInlineAuthors: 'warn',
|
| 58 |
+
onUntruncatedBlogPosts: 'warn',
|
| 59 |
+
},
|
| 60 |
+
theme: {
|
| 61 |
+
customCss: './src/css/custom.css',
|
| 62 |
+
},
|
| 63 |
+
} satisfies Preset.Options,
|
| 64 |
+
],
|
| 65 |
+
],
|
| 66 |
+
|
| 67 |
+
themeConfig: {
|
| 68 |
+
// Replace with your project's social card
|
| 69 |
+
image: 'img/docusaurus-social-card.jpg',
|
| 70 |
+
navbar: {
|
| 71 |
+
title: 'My Site',
|
| 72 |
+
logo: {
|
| 73 |
+
alt: 'My Site Logo',
|
| 74 |
+
src: 'img/logo.svg',
|
| 75 |
+
},
|
| 76 |
+
items: [
|
| 77 |
+
{
|
| 78 |
+
type: 'docSidebar',
|
| 79 |
+
sidebarId: 'tutorialSidebar',
|
| 80 |
+
position: 'left',
|
| 81 |
+
label: 'Tutorial',
|
| 82 |
+
},
|
| 83 |
+
{to: '/blog', label: 'Blog', position: 'left'},
|
| 84 |
+
{
|
| 85 |
+
href: 'https://github.com/facebook/docusaurus',
|
| 86 |
+
label: 'GitHub',
|
| 87 |
+
position: 'right',
|
| 88 |
+
},
|
| 89 |
+
],
|
| 90 |
+
},
|
| 91 |
+
footer: {
|
| 92 |
+
style: 'dark',
|
| 93 |
+
links: [
|
| 94 |
+
{
|
| 95 |
+
title: 'Docs',
|
| 96 |
+
items: [
|
| 97 |
+
{
|
| 98 |
+
label: 'Tutorial',
|
| 99 |
+
to: '/docs/intro',
|
| 100 |
+
},
|
| 101 |
+
],
|
| 102 |
+
},
|
| 103 |
+
{
|
| 104 |
+
title: 'Community',
|
| 105 |
+
items: [
|
| 106 |
+
{
|
| 107 |
+
label: 'Stack Overflow',
|
| 108 |
+
href: 'https://stackoverflow.com/questions/tagged/docusaurus',
|
| 109 |
+
},
|
| 110 |
+
{
|
| 111 |
+
label: 'Discord',
|
| 112 |
+
href: 'https://discordapp.com/invite/docusaurus',
|
| 113 |
+
},
|
| 114 |
+
{
|
| 115 |
+
label: 'X',
|
| 116 |
+
href: 'https://x.com/docusaurus',
|
| 117 |
+
},
|
| 118 |
+
],
|
| 119 |
+
},
|
| 120 |
+
{
|
| 121 |
+
title: 'More',
|
| 122 |
+
items: [
|
| 123 |
+
{
|
| 124 |
+
label: 'Blog',
|
| 125 |
+
to: '/blog',
|
| 126 |
+
},
|
| 127 |
+
{
|
| 128 |
+
label: 'GitHub',
|
| 129 |
+
href: 'https://github.com/facebook/docusaurus',
|
| 130 |
+
},
|
| 131 |
+
],
|
| 132 |
+
},
|
| 133 |
+
],
|
| 134 |
+
copyright: `Copyright © ${new Date().getFullYear()} My Project, Inc. Built with Docusaurus.`,
|
| 135 |
+
},
|
| 136 |
+
prism: {
|
| 137 |
+
theme: prismThemes.github,
|
| 138 |
+
darkTheme: prismThemes.dracula,
|
| 139 |
+
},
|
| 140 |
+
} satisfies Preset.ThemeConfig,
|
| 141 |
+
};
|
| 142 |
+
|
| 143 |
+
export default config;
|
package-lock.json
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
package.json
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"name": "my-docs",
|
| 3 |
+
"version": "0.0.0",
|
| 4 |
+
"private": true,
|
| 5 |
+
"scripts": {
|
| 6 |
+
"docusaurus": "docusaurus",
|
| 7 |
+
"start": "docusaurus start",
|
| 8 |
+
"build": "docusaurus build",
|
| 9 |
+
"swizzle": "docusaurus swizzle",
|
| 10 |
+
"deploy": "docusaurus deploy",
|
| 11 |
+
"clear": "docusaurus clear",
|
| 12 |
+
"serve": "docusaurus serve",
|
| 13 |
+
"write-translations": "docusaurus write-translations",
|
| 14 |
+
"write-heading-ids": "docusaurus write-heading-ids",
|
| 15 |
+
"typecheck": "tsc"
|
| 16 |
+
},
|
| 17 |
+
"dependencies": {
|
| 18 |
+
"@docusaurus/core": "3.7.0",
|
| 19 |
+
"@docusaurus/preset-classic": "3.7.0",
|
| 20 |
+
"@mdx-js/react": "^3.0.0",
|
| 21 |
+
"clsx": "^2.0.0",
|
| 22 |
+
"prism-react-renderer": "^2.3.0",
|
| 23 |
+
"react": "^19.0.0",
|
| 24 |
+
"react-dom": "^19.0.0"
|
| 25 |
+
},
|
| 26 |
+
"devDependencies": {
|
| 27 |
+
"@docusaurus/module-type-aliases": "3.7.0",
|
| 28 |
+
"@docusaurus/tsconfig": "3.7.0",
|
| 29 |
+
"@docusaurus/types": "3.7.0",
|
| 30 |
+
"typescript": "~5.6.2"
|
| 31 |
+
},
|
| 32 |
+
"browserslist": {
|
| 33 |
+
"production": [
|
| 34 |
+
">0.5%",
|
| 35 |
+
"not dead",
|
| 36 |
+
"not op_mini all"
|
| 37 |
+
],
|
| 38 |
+
"development": [
|
| 39 |
+
"last 3 chrome version",
|
| 40 |
+
"last 3 firefox version",
|
| 41 |
+
"last 5 safari version"
|
| 42 |
+
]
|
| 43 |
+
},
|
| 44 |
+
"engines": {
|
| 45 |
+
"node": ">=18.0"
|
| 46 |
+
}
|
| 47 |
+
}
|
sidebars.ts
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
| 2 |
+
|
| 3 |
+
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
| 4 |
+
|
| 5 |
+
/**
|
| 6 |
+
* Creating a sidebar enables you to:
|
| 7 |
+
- create an ordered group of docs
|
| 8 |
+
- render a sidebar for each doc of that group
|
| 9 |
+
- provide next/previous navigation
|
| 10 |
+
|
| 11 |
+
The sidebars can be generated from the filesystem, or explicitly defined here.
|
| 12 |
+
|
| 13 |
+
Create as many sidebars as you want.
|
| 14 |
+
*/
|
| 15 |
+
const sidebars: SidebarsConfig = {
|
| 16 |
+
// By default, Docusaurus generates a sidebar from the docs folder structure
|
| 17 |
+
tutorialSidebar: [{type: 'autogenerated', dirName: '.'}],
|
| 18 |
+
|
| 19 |
+
// But you can create a sidebar manually
|
| 20 |
+
/*
|
| 21 |
+
tutorialSidebar: [
|
| 22 |
+
'intro',
|
| 23 |
+
'hello',
|
| 24 |
+
{
|
| 25 |
+
type: 'category',
|
| 26 |
+
label: 'Tutorial',
|
| 27 |
+
items: ['tutorial-basics/create-a-document'],
|
| 28 |
+
},
|
| 29 |
+
],
|
| 30 |
+
*/
|
| 31 |
+
};
|
| 32 |
+
|
| 33 |
+
export default sidebars;
|
src/components/HomepageFeatures/index.tsx
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type {ReactNode} from 'react';
|
| 2 |
+
import clsx from 'clsx';
|
| 3 |
+
import Heading from '@theme/Heading';
|
| 4 |
+
import styles from './styles.module.css';
|
| 5 |
+
|
| 6 |
+
type FeatureItem = {
|
| 7 |
+
title: string;
|
| 8 |
+
Svg: React.ComponentType<React.ComponentProps<'svg'>>;
|
| 9 |
+
description: ReactNode;
|
| 10 |
+
};
|
| 11 |
+
|
| 12 |
+
const FeatureList: FeatureItem[] = [
|
| 13 |
+
{
|
| 14 |
+
title: 'Easy to Use',
|
| 15 |
+
Svg: require('@site/static/img/undraw_docusaurus_mountain.svg').default,
|
| 16 |
+
description: (
|
| 17 |
+
<>
|
| 18 |
+
Docusaurus was designed from the ground up to be easily installed and
|
| 19 |
+
used to get your website up and running quickly.
|
| 20 |
+
</>
|
| 21 |
+
),
|
| 22 |
+
},
|
| 23 |
+
{
|
| 24 |
+
title: 'Focus on What Matters',
|
| 25 |
+
Svg: require('@site/static/img/undraw_docusaurus_tree.svg').default,
|
| 26 |
+
description: (
|
| 27 |
+
<>
|
| 28 |
+
Docusaurus lets you focus on your docs, and we'll do the chores. Go
|
| 29 |
+
ahead and move your docs into the <code>docs</code> directory.
|
| 30 |
+
</>
|
| 31 |
+
),
|
| 32 |
+
},
|
| 33 |
+
{
|
| 34 |
+
title: 'Powered by React',
|
| 35 |
+
Svg: require('@site/static/img/undraw_docusaurus_react.svg').default,
|
| 36 |
+
description: (
|
| 37 |
+
<>
|
| 38 |
+
Extend or customize your website layout by reusing React. Docusaurus can
|
| 39 |
+
be extended while reusing the same header and footer.
|
| 40 |
+
</>
|
| 41 |
+
),
|
| 42 |
+
},
|
| 43 |
+
];
|
| 44 |
+
|
| 45 |
+
function Feature({title, Svg, description}: FeatureItem) {
|
| 46 |
+
return (
|
| 47 |
+
<div className={clsx('col col--4')}>
|
| 48 |
+
<div className="text--center">
|
| 49 |
+
<Svg className={styles.featureSvg} role="img" />
|
| 50 |
+
</div>
|
| 51 |
+
<div className="text--center padding-horiz--md">
|
| 52 |
+
<Heading as="h3">{title}</Heading>
|
| 53 |
+
<p>{description}</p>
|
| 54 |
+
</div>
|
| 55 |
+
</div>
|
| 56 |
+
);
|
| 57 |
+
}
|
| 58 |
+
|
| 59 |
+
export default function HomepageFeatures(): ReactNode {
|
| 60 |
+
return (
|
| 61 |
+
<section className={styles.features}>
|
| 62 |
+
<div className="container">
|
| 63 |
+
<div className="row">
|
| 64 |
+
{FeatureList.map((props, idx) => (
|
| 65 |
+
<Feature key={idx} {...props} />
|
| 66 |
+
))}
|
| 67 |
+
</div>
|
| 68 |
+
</div>
|
| 69 |
+
</section>
|
| 70 |
+
);
|
| 71 |
+
}
|
src/components/HomepageFeatures/styles.module.css
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
.features {
|
| 2 |
+
display: flex;
|
| 3 |
+
align-items: center;
|
| 4 |
+
padding: 2rem 0;
|
| 5 |
+
width: 100%;
|
| 6 |
+
}
|
| 7 |
+
|
| 8 |
+
.featureSvg {
|
| 9 |
+
height: 200px;
|
| 10 |
+
width: 200px;
|
| 11 |
+
}
|
src/css/custom.css
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* Any CSS included here will be global. The classic template
|
| 3 |
+
* bundles Infima by default. Infima is a CSS framework designed to
|
| 4 |
+
* work well for content-centric websites.
|
| 5 |
+
*/
|
| 6 |
+
|
| 7 |
+
/* You can override the default Infima variables here. */
|
| 8 |
+
:root {
|
| 9 |
+
--ifm-color-primary: #2e8555;
|
| 10 |
+
--ifm-color-primary-dark: #29784c;
|
| 11 |
+
--ifm-color-primary-darker: #277148;
|
| 12 |
+
--ifm-color-primary-darkest: #205d3b;
|
| 13 |
+
--ifm-color-primary-light: #33925d;
|
| 14 |
+
--ifm-color-primary-lighter: #359962;
|
| 15 |
+
--ifm-color-primary-lightest: #3cad6e;
|
| 16 |
+
--ifm-code-font-size: 95%;
|
| 17 |
+
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.1);
|
| 18 |
+
}
|
| 19 |
+
|
| 20 |
+
/* For readability concerns, you should choose a lighter palette in dark mode. */
|
| 21 |
+
[data-theme='dark'] {
|
| 22 |
+
--ifm-color-primary: #25c2a0;
|
| 23 |
+
--ifm-color-primary-dark: #21af90;
|
| 24 |
+
--ifm-color-primary-darker: #1fa588;
|
| 25 |
+
--ifm-color-primary-darkest: #1a8870;
|
| 26 |
+
--ifm-color-primary-light: #29d5b0;
|
| 27 |
+
--ifm-color-primary-lighter: #32d8b4;
|
| 28 |
+
--ifm-color-primary-lightest: #4fddbf;
|
| 29 |
+
--docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3);
|
| 30 |
+
}
|
src/pages/index.module.css
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
/**
|
| 2 |
+
* CSS files with the .module.css suffix will be treated as CSS modules
|
| 3 |
+
* and scoped locally.
|
| 4 |
+
*/
|
| 5 |
+
|
| 6 |
+
.heroBanner {
|
| 7 |
+
padding: 4rem 0;
|
| 8 |
+
text-align: center;
|
| 9 |
+
position: relative;
|
| 10 |
+
overflow: hidden;
|
| 11 |
+
}
|
| 12 |
+
|
| 13 |
+
@media screen and (max-width: 996px) {
|
| 14 |
+
.heroBanner {
|
| 15 |
+
padding: 2rem;
|
| 16 |
+
}
|
| 17 |
+
}
|
| 18 |
+
|
| 19 |
+
.buttons {
|
| 20 |
+
display: flex;
|
| 21 |
+
align-items: center;
|
| 22 |
+
justify-content: center;
|
| 23 |
+
}
|
src/pages/index.tsx
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type {ReactNode} from 'react';
|
| 2 |
+
import clsx from 'clsx';
|
| 3 |
+
import Link from '@docusaurus/Link';
|
| 4 |
+
import useDocusaurusContext from '@docusaurus/useDocusaurusContext';
|
| 5 |
+
import Layout from '@theme/Layout';
|
| 6 |
+
import HomepageFeatures from '@site/src/components/HomepageFeatures';
|
| 7 |
+
import Heading from '@theme/Heading';
|
| 8 |
+
|
| 9 |
+
import styles from './index.module.css';
|
| 10 |
+
|
| 11 |
+
function HomepageHeader() {
|
| 12 |
+
const {siteConfig} = useDocusaurusContext();
|
| 13 |
+
return (
|
| 14 |
+
<header className={clsx('hero hero--primary', styles.heroBanner)}>
|
| 15 |
+
<div className="container">
|
| 16 |
+
<Heading as="h1" className="hero__title">
|
| 17 |
+
{siteConfig.title}
|
| 18 |
+
</Heading>
|
| 19 |
+
<p className="hero__subtitle">{siteConfig.tagline}</p>
|
| 20 |
+
<div className={styles.buttons}>
|
| 21 |
+
<Link
|
| 22 |
+
className="button button--secondary button--lg"
|
| 23 |
+
to="/docs/intro">
|
| 24 |
+
Docusaurus Tutorial - 5min ⏱️
|
| 25 |
+
</Link>
|
| 26 |
+
</div>
|
| 27 |
+
</div>
|
| 28 |
+
</header>
|
| 29 |
+
);
|
| 30 |
+
}
|
| 31 |
+
|
| 32 |
+
export default function Home(): ReactNode {
|
| 33 |
+
const {siteConfig} = useDocusaurusContext();
|
| 34 |
+
return (
|
| 35 |
+
<Layout
|
| 36 |
+
title={`Hello from ${siteConfig.title}`}
|
| 37 |
+
description="Description will go into a meta tag in <head />">
|
| 38 |
+
<HomepageHeader />
|
| 39 |
+
<main>
|
| 40 |
+
<HomepageFeatures />
|
| 41 |
+
</main>
|
| 42 |
+
</Layout>
|
| 43 |
+
);
|
| 44 |
+
}
|
src/pages/markdown-page.md
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Markdown page example
|
| 3 |
+
---
|
| 4 |
+
|
| 5 |
+
# Markdown page example
|
| 6 |
+
|
| 7 |
+
You don't need React to write simple standalone pages.
|
static/.nojekyll
ADDED
|
File without changes
|
static/img/docusaurus-social-card.jpg
ADDED
|
static/img/docusaurus.png
ADDED
|
static/img/favicon.ico
ADDED
|
|
static/img/logo.svg
ADDED
|
|
static/img/undraw_docusaurus_mountain.svg
ADDED
|
|
static/img/undraw_docusaurus_react.svg
ADDED
|
|
static/img/undraw_docusaurus_tree.svg
ADDED
|
|
tsconfig.json
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
// This file is not used in compilation. It is here just for a nice editor experience.
|
| 3 |
+
"extends": "@docusaurus/tsconfig",
|
| 4 |
+
"compilerOptions": {
|
| 5 |
+
"baseUrl": "."
|
| 6 |
+
},
|
| 7 |
+
"exclude": [".docusaurus", "build"]
|
| 8 |
+
}
|