Browse Source
* feat:Integrate docusaraus for docs * Update docs for Excalidraw Co-authored-by: David Luzar <luzar.david@gmail.com> * remove blogs * remove blog authors * get started docs * typo * add static assets * change port number * Add script to build docs only if docs updated * dummy * update script to be compatible with ignoreBuild in vercel * remove script and dummy log Co-authored-by: David Luzar <luzar.david@gmail.com>aakansha-refct
28 changed files with 8110 additions and 1 deletions
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
# Dependencies |
||||
/node_modules |
||||
|
||||
# Production |
||||
/build |
||||
|
||||
# Generated files |
||||
.docusaurus |
||||
.cache-loader |
||||
|
||||
# Misc |
||||
.DS_Store |
||||
.env.local |
||||
.env.development.local |
||||
.env.test.local |
||||
.env.production.local |
||||
|
||||
npm-debug.log* |
||||
yarn-debug.log* |
||||
yarn-error.log* |
||||
@ -0,0 +1,41 @@
@@ -0,0 +1,41 @@
|
||||
# Website |
||||
|
||||
This website is built using [Docusaurus 2](https://docusaurus.io/), a modern static website generator. |
||||
|
||||
### Installation |
||||
|
||||
``` |
||||
$ yarn |
||||
``` |
||||
|
||||
### Local Development |
||||
|
||||
``` |
||||
$ yarn start |
||||
``` |
||||
|
||||
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server. |
||||
|
||||
### Build |
||||
|
||||
``` |
||||
$ yarn build |
||||
``` |
||||
|
||||
This command generates static content into the `build` directory and can be served using any static contents hosting service. |
||||
|
||||
### Deployment |
||||
|
||||
Using SSH: |
||||
|
||||
``` |
||||
$ USE_SSH=true yarn deploy |
||||
``` |
||||
|
||||
Not using SSH: |
||||
|
||||
``` |
||||
$ GIT_USER=<Your GitHub username> yarn deploy |
||||
``` |
||||
|
||||
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch. |
||||
@ -0,0 +1,3 @@
@@ -0,0 +1,3 @@
|
||||
module.exports = { |
||||
presets: [require.resolve("@docusaurus/core/lib/babel/preset")], |
||||
}; |
||||
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
--- |
||||
sidebar_position: 1 |
||||
title: Overview |
||||
--- |
||||
|
||||
In development. For now, refer to [excalidraw Readme](https://github.com/excalidraw/excalidraw/blob/master/README.md). |
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
--- |
||||
sidebar_position: 1 |
||||
title: Introduction |
||||
--- |
||||
|
||||
Want to integrate Excalidraw into your app? Head over to the [package docs](/docs/package/overview). |
||||
|
||||
If you're looking into the Excalidraw codebase itself, start [here](/docs/codebase/overview). |
||||
@ -0,0 +1,6 @@
@@ -0,0 +1,6 @@
|
||||
--- |
||||
sidebar_position: 1 |
||||
title: Overview |
||||
--- |
||||
|
||||
In development. For now, refer to [excalidraw package readme](https://github.com/excalidraw/excalidraw/blob/master/src/packages/excalidraw/README.md). |
||||
@ -0,0 +1,46 @@
@@ -0,0 +1,46 @@
|
||||
{ |
||||
"name": "docs", |
||||
"version": "0.0.0", |
||||
"private": true, |
||||
"scripts": { |
||||
"docusaurus": "docusaurus", |
||||
"start": "docusaurus start --port 3003", |
||||
"build": "docusaurus build", |
||||
"swizzle": "docusaurus swizzle", |
||||
"deploy": "docusaurus deploy", |
||||
"clear": "docusaurus clear", |
||||
"serve": "docusaurus serve", |
||||
"write-translations": "docusaurus write-translations", |
||||
"write-heading-ids": "docusaurus write-heading-ids", |
||||
"typecheck": "tsc" |
||||
}, |
||||
"dependencies": { |
||||
"@docusaurus/core": "2.0.0-rc.1", |
||||
"@docusaurus/preset-classic": "2.0.0-rc.1", |
||||
"@mdx-js/react": "^1.6.22", |
||||
"clsx": "^1.2.1", |
||||
"prism-react-renderer": "^1.3.5", |
||||
"react": "^17.0.2", |
||||
"react-dom": "^17.0.2" |
||||
}, |
||||
"devDependencies": { |
||||
"@docusaurus/module-type-aliases": "2.0.0-rc.1", |
||||
"@tsconfig/docusaurus": "^1.0.5", |
||||
"typescript": "^4.7.4" |
||||
}, |
||||
"browserslist": { |
||||
"production": [ |
||||
">0.5%", |
||||
"not dead", |
||||
"not op_mini all" |
||||
], |
||||
"development": [ |
||||
"last 1 chrome version", |
||||
"last 1 firefox version", |
||||
"last 1 safari version" |
||||
] |
||||
}, |
||||
"engines": { |
||||
"node": ">=16.14" |
||||
} |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/** |
||||
* Creating a sidebar enables you to: |
||||
- create an ordered group of docs |
||||
- render a sidebar for each doc of that group |
||||
- provide next/previous navigation |
||||
|
||||
The sidebars can be generated from the filesystem, or explicitly defined here. |
||||
|
||||
Create as many sidebars as you want. |
||||
*/ |
||||
|
||||
// @ts-check
|
||||
|
||||
/** @type {import('@docusaurus/plugin-content-docs').SidebarsConfig} */ |
||||
const sidebars = { |
||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
||||
tutorialSidebar: [{ type: "autogenerated", dirName: "." }], |
||||
|
||||
// But you can create a sidebar manually
|
||||
/* |
||||
tutorialSidebar: [ |
||||
{ |
||||
type: 'category', |
||||
label: 'Tutorial', |
||||
items: ['hello'], |
||||
}, |
||||
], |
||||
*/ |
||||
}; |
||||
|
||||
module.exports = sidebars; |
||||
@ -0,0 +1,62 @@
@@ -0,0 +1,62 @@
|
||||
import React from "react"; |
||||
import clsx from "clsx"; |
||||
import styles from "./styles.module.css"; |
||||
|
||||
const FeatureList = [ |
||||
{ |
||||
title: "Learn how Excalidraw works", |
||||
Svg: require("@site/static/img/undraw_innovative.svg").default, |
||||
description: ( |
||||
<>Want to contribute to Excalidraw but got lost in the codebase?</> |
||||
), |
||||
}, |
||||
{ |
||||
title: "Integrate Excalidraw", |
||||
Svg: require("@site/static/img/undraw_blank_canvas.svg").default, |
||||
description: ( |
||||
<> |
||||
Want to build your own app powered by Excalidraw by don't know where to |
||||
start? |
||||
</> |
||||
), |
||||
}, |
||||
{ |
||||
title: "Help us improve", |
||||
Svg: require("@site/static/img/undraw_add_files.svg").default, |
||||
description: ( |
||||
<> |
||||
Are the docs missing something? Anything you had trouble understanding |
||||
or needs an explanation? Come contribute to the docs to make them even |
||||
better! |
||||
</> |
||||
), |
||||
}, |
||||
]; |
||||
|
||||
function Feature({ Svg, title, description }) { |
||||
return ( |
||||
<div className={clsx("col col--4")}> |
||||
<div className="text--center"> |
||||
<Svg className={styles.featureSvg} role="img" /> |
||||
</div> |
||||
<div className="text--center padding-horiz--md"> |
||||
<h3>{title}</h3> |
||||
<p>{description}</p> |
||||
</div> |
||||
</div> |
||||
); |
||||
} |
||||
|
||||
export default function HomepageFeatures() { |
||||
return ( |
||||
<section className={styles.features}> |
||||
<div className="container"> |
||||
<div className="row"> |
||||
{FeatureList.map((props, idx) => ( |
||||
<Feature key={idx} {...props} /> |
||||
))} |
||||
</div> |
||||
</div> |
||||
</section> |
||||
); |
||||
} |
||||
@ -0,0 +1,70 @@
@@ -0,0 +1,70 @@
|
||||
import React from "react"; |
||||
import clsx from "clsx"; |
||||
import styles from "./styles.module.css"; |
||||
|
||||
type FeatureItem = { |
||||
title: string; |
||||
Svg: React.ComponentType<React.ComponentProps<"svg">>; |
||||
description: JSX.Element; |
||||
}; |
||||
|
||||
const FeatureList: FeatureItem[] = [ |
||||
{ |
||||
title: "Easy to Use", |
||||
Svg: require("@site/static/img/undraw_docusaurus_mountain.svg").default, |
||||
description: ( |
||||
<> |
||||
Docusaurus was designed from the ground up to be easily installed and |
||||
used to get your website up and running quickly. |
||||
</> |
||||
), |
||||
}, |
||||
{ |
||||
title: "Focus on What Matters", |
||||
Svg: require("@site/static/img/undraw_docusaurus_tree.svg").default, |
||||
description: ( |
||||
<> |
||||
Docusaurus lets you focus on your docs, and we'll do the chores. Go |
||||
ahead and move your docs into the <code>docs</code> directory. |
||||
</> |
||||
), |
||||
}, |
||||
{ |
||||
title: "Powered by React", |
||||
Svg: require("@site/static/img/undraw_docusaurus_react.svg").default, |
||||
description: ( |
||||
<> |
||||
Extend or customize your website layout by reusing React. Docusaurus can |
||||
be extended while reusing the same header and footer. |
||||
</> |
||||
), |
||||
}, |
||||
]; |
||||
|
||||
function Feature({ title, Svg, description }: FeatureItem) { |
||||
return ( |
||||
<div className={clsx("col col--4")}> |
||||
<div className="text--center"> |
||||
<Svg className={styles.featureSvg} role="img" /> |
||||
</div> |
||||
<div className="text--center padding-horiz--md"> |
||||
<h3>{title}</h3> |
||||
<p>{description}</p> |
||||
</div> |
||||
</div> |
||||
); |
||||
} |
||||
|
||||
export default function HomepageFeatures(): JSX.Element { |
||||
return ( |
||||
<section className={styles.features}> |
||||
<div className="container"> |
||||
<div className="row"> |
||||
{FeatureList.map((props, idx) => ( |
||||
<Feature key={idx} {...props} /> |
||||
))} |
||||
</div> |
||||
</div> |
||||
</section> |
||||
); |
||||
} |
||||
@ -0,0 +1,11 @@
@@ -0,0 +1,11 @@
|
||||
.features { |
||||
display: flex; |
||||
align-items: center; |
||||
padding: 2rem 0; |
||||
width: 100%; |
||||
} |
||||
|
||||
.featureSvg { |
||||
height: 200px; |
||||
width: 200px; |
||||
} |
||||
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
/** |
||||
* Any CSS included here will be global. The classic template |
||||
* bundles Infima by default. Infima is a CSS framework designed to |
||||
* work well for content-centric websites. |
||||
*/ |
||||
|
||||
/* You can override the default Infima variables here. */ |
||||
:root { |
||||
--ifm-color-primary: #6965db; |
||||
--ifm-color-primary-dark: #5b57d1; |
||||
--ifm-color-primary-darker: #5b57d1; |
||||
--ifm-color-primary-darkest: #4a47b1; |
||||
--ifm-color-primary-light: #5b57d1; |
||||
--ifm-color-primary-lighter: #5b57d1; |
||||
--ifm-color-primary-lightest: #5b57d1; |
||||
--ifm-code-font-size: 95%; |
||||
} |
||||
|
||||
/* For readability concerns, you should choose a lighter palette in dark mode. */ |
||||
[data-theme="dark"] { |
||||
--ifm-color-primary: #5650f0; |
||||
--ifm-color-primary-dark: #4b46d8; |
||||
--ifm-color-primary-darker: #4b46d8; |
||||
--ifm-color-primary-darkest: #3e39be; |
||||
--ifm-color-primary-light: #3f3d64; |
||||
--ifm-color-primary-lighter: #3f3d64; |
||||
--ifm-color-primary-lightest: #3f3d64; |
||||
} |
||||
|
||||
.docusaurus-highlight-code-line { |
||||
background-color: rgba(0, 0, 0, 0.1); |
||||
display: block; |
||||
margin: 0 calc(-1 * var(--ifm-pre-padding)); |
||||
padding: 0 var(--ifm-pre-padding); |
||||
} |
||||
|
||||
[data-theme="dark"] .docusaurus-highlight-code-line { |
||||
background-color: rgba(0, 0, 0, 0.3); |
||||
} |
||||
|
||||
[data-theme="dark"] .navbar__logo { |
||||
filter: invert(93%) hue-rotate(180deg); |
||||
} |
||||
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
import React from "react"; |
||||
import clsx from "clsx"; |
||||
import Layout from "@theme/Layout"; |
||||
import Link from "@docusaurus/Link"; |
||||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; |
||||
import styles from "./index.module.css"; |
||||
import HomepageFeatures from "@site/src/components/Homepage"; |
||||
|
||||
function HomepageHeader() { |
||||
const { siteConfig } = useDocusaurusContext(); |
||||
return ( |
||||
<header className={clsx("hero hero--primary", styles.heroBanner)}> |
||||
<div className="container"> |
||||
<h1 className="hero__title">{siteConfig.title}</h1> |
||||
<p className="hero__subtitle">{siteConfig.tagline}</p> |
||||
<div className={styles.buttons}> |
||||
<Link |
||||
className="button button--secondary button--lg" |
||||
to="/docs/get-started" |
||||
> |
||||
Get started |
||||
</Link> |
||||
</div> |
||||
</div> |
||||
</header> |
||||
); |
||||
} |
||||
|
||||
export default function Home() { |
||||
const { siteConfig } = useDocusaurusContext(); |
||||
return ( |
||||
<Layout |
||||
title={`Hello from ${siteConfig.title}`} |
||||
description="Description will go into a meta tag in <head />" |
||||
> |
||||
<HomepageHeader /> |
||||
<main> |
||||
<HomepageFeatures /> |
||||
</main> |
||||
</Layout> |
||||
); |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/** |
||||
* CSS files with the .module.css suffix will be treated as CSS modules |
||||
* and scoped locally. |
||||
*/ |
||||
|
||||
.heroBanner { |
||||
padding: 4rem 0; |
||||
text-align: center; |
||||
position: relative; |
||||
overflow: hidden; |
||||
} |
||||
|
||||
[data-theme="dark"] .heroBanner { |
||||
color: #fff; |
||||
} |
||||
|
||||
@media screen and (max-width: 996px) { |
||||
.heroBanner { |
||||
padding: 2rem; |
||||
} |
||||
} |
||||
|
||||
.buttons { |
||||
display: flex; |
||||
align-items: center; |
||||
justify-content: center; |
||||
} |
||||
@ -0,0 +1,42 @@
@@ -0,0 +1,42 @@
|
||||
import React from "react"; |
||||
import clsx from "clsx"; |
||||
import Layout from "@theme/Layout"; |
||||
import Link from "@docusaurus/Link"; |
||||
import useDocusaurusContext from "@docusaurus/useDocusaurusContext"; |
||||
import styles from "./index.module.css"; |
||||
import HomepageFeatures from "@site/src/components/Homepage"; |
||||
|
||||
function HomepageHeader() { |
||||
const { siteConfig } = useDocusaurusContext(); |
||||
return ( |
||||
<header className={clsx("hero hero--primary", styles.heroBanner)}> |
||||
<div className="container"> |
||||
<h1 className="hero__title">{siteConfig.title}</h1> |
||||
<p className="hero__subtitle">{siteConfig.tagline}</p> |
||||
<div className={styles.buttons}> |
||||
<Link |
||||
className="button button--secondary button--lg" |
||||
to="/docs/get-started" |
||||
> |
||||
Get started |
||||
</Link> |
||||
</div> |
||||
</div> |
||||
</header> |
||||
); |
||||
} |
||||
|
||||
export default function Home() { |
||||
const { siteConfig } = useDocusaurusContext(); |
||||
return ( |
||||
<Layout |
||||
title={`Hello from ${siteConfig.title}`} |
||||
description="Description will go into a meta tag in <head />" |
||||
> |
||||
<HomepageHeader /> |
||||
<main> |
||||
<HomepageFeatures /> |
||||
</main> |
||||
</Layout> |
||||
); |
||||
} |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
--- |
||||
title: Markdown page example |
||||
--- |
||||
|
||||
# Markdown page example |
||||
|
||||
You don't need React to write simple standalone pages. |
||||
|
After Width: | Height: | Size: 5.0 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
{ |
||||
// This file is not used in compilation. It is here just for a nice editor experience. |
||||
"extends": "@tsconfig/docusaurus/tsconfig.json", |
||||
"compilerOptions": { |
||||
"baseUrl": "." |
||||
} |
||||
} |
||||
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
const { exec } = require("child_process"); |
||||
|
||||
// get files changed between prev and head commit
|
||||
exec(`git diff --name-only HEAD^ HEAD`, async (error, stdout, stderr) => { |
||||
if (error || stderr) { |
||||
console.error(error); |
||||
process.exit(1); |
||||
} |
||||
const changedFiles = stdout.trim().split("\n"); |
||||
|
||||
const docFiles = changedFiles.filter((file) => { |
||||
return file.indexOf("docs") >= 0; |
||||
}); |
||||
|
||||
if (!docFiles.length) { |
||||
console.info("Skipping building docs as no valid diff found"); |
||||
process.exit(0); |
||||
} |
||||
// Exit code 1 to build the docs in ignoredBuildStep
|
||||
process.exit(1); |
||||
}); |
||||
Loading…
Reference in new issue