Skip to content

Commit

Permalink
docs: add TypeScript playgrounds to docusaurus.new + Playground page (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
slorber committed Mar 2, 2023
1 parent e78a6a6 commit 62aba77
Show file tree
Hide file tree
Showing 4 changed files with 41 additions and 4 deletions.
6 changes: 4 additions & 2 deletions admin/new.docusaurus.io/functionUtils/playgroundUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,15 @@ const CookieName = 'DocusaurusPlaygroundName';
const PlaygroundConfigs = {
codesandbox:
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic?file=%2FREADME.md',
'codesandbox-ts':
'https://codesandbox.io/p/sandbox/github/facebook/docusaurus/tree/main/examples/classic-typescript?file=%2FREADME.md',

// Not updated
// stackblitz: 'https://stackblitz.com/fork/docusaurus',
// Slow to load
// stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/main/examples/classic',
// Dedicated branch: faster load
stackblitz: 'https://stackblitz.com/github/facebook/docusaurus/tree/starter',
'stackblitz-ts':
'https://stackblitz.com/github/facebook/docusaurus/tree/main/examples/classic-typescript',
};

const PlaygroundDocumentationUrl = 'https://docusaurus.io/docs/playground';
Expand Down
12 changes: 12 additions & 0 deletions admin/new.docusaurus.io/functions/codesandbox-ts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import {createPlaygroundResponse} from '../functionUtils/playgroundUtils';
import type {Handler} from '@netlify/functions';

export const handler: Handler = () =>
Promise.resolve(createPlaygroundResponse('codesandbox-ts'));
12 changes: 12 additions & 0 deletions admin/new.docusaurus.io/functions/stackblitz-ts.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/

import {createPlaygroundResponse} from '../functionUtils/playgroundUtils';
import type {Handler} from '@netlify/functions';

export const handler: Handler = () =>
Promise.resolve(createPlaygroundResponse('stackblitz-ts'));
15 changes: 13 additions & 2 deletions website/src/components/Playground/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ const Playgrounds = [
name: '📦 CodeSandbox',
image: require('@site/static/img/playgrounds/codesandbox.png'),
url: 'https://docusaurus.new/codesandbox',
urlTS: 'https://docusaurus.new/codesandbox-ts',
description: (
<Translate id="playground.codesandbox.description">
CodeSandbox is an online code editor and development environment that
Expand All @@ -31,6 +32,7 @@ const Playgrounds = [
name: '⚡ StackBlitz 🆕',
image: require('@site/static/img/playgrounds/stackblitz.png'),
url: 'https://docusaurus.new/stackblitz',
urlTS: 'https://docusaurus.new/stackblitz-ts',
description: (
<Translate
id="playground.stackblitz.description"
Expand All @@ -53,10 +55,11 @@ interface Props {
name: string;
image: string;
url: string;
urlTS: string;
description: JSX.Element;
}

function PlaygroundCard({name, image, url, description}: Props) {
function PlaygroundCard({name, image, url, urlTS, description}: Props) {
return (
<div className="col col--6 margin-bottom--lg">
<div className={clsx('card')}>
Expand All @@ -70,9 +73,17 @@ function PlaygroundCard({name, image, url, description}: Props) {
<p>{description}</p>
</div>
<div className="card__footer">
<div style={{textAlign: 'center'}}>
<b>
<Translate id="playground.tryItButton">Try it now!</Translate>
</b>
</div>
<div className="button-group button-group--block">
<Link className="button button--secondary" to={url}>
<Translate id="playground.tryItButton">Try it now!</Translate>
JavaScript
</Link>
<Link className="button button--secondary" to={urlTS}>
TypeScript
</Link>
</div>
</div>
Expand Down

0 comments on commit 62aba77

Please sign in to comment.