Skip to content

Commit

Permalink
docs: embed examples (remirror#1220)
Browse files Browse the repository at this point in the history
  • Loading branch information
ocavue authored Sep 9, 2021
1 parent b25cbbb commit 9a4633a
Show file tree
Hide file tree
Showing 24 changed files with 469 additions and 292 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ hide_title: true
title: 'CodeBlockExtension'
---

import Basic from '../../website/extension-examples/extension-code-block/basic';

# `CodeBlockExtension`

## Summary
Expand All @@ -27,7 +29,7 @@ The extension is provided by the `@remirror/extension-code-block` package. There

### Examples

See [storybook](https://remirror.vercel.app/?path=/story/extensions-codeblock--basic) for examples.
<Basic />

## API

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@ hide_title: true
title: 'CodeExtension'
---

import Basic from '../../website/extension-examples/extension-code/basic';

# `CodeExtension`

## Summary
Expand All @@ -27,7 +29,7 @@ The extension is provided by the `@remirror/extension-code` package. There are t

### Examples

See [storybook](https://remirror.vercel.app/?path=/story/extensions-code--basic) for examples.
<Basic />

## API

Expand Down
4 changes: 2 additions & 2 deletions docs/extensions/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ title: Overview

**[CalloutExtension](./callout-extension.md)**<br /> Makes regions of text stand out on a colour background with optional emoji prefix

**[CodeBlockExtension](./code-block-extension.md)**<br /> Adds code blocks to the editor. This differs to the `CodeExtension`, which provides code marks on inline text.
**[CodeBlockExtension](./code-block-extension.mdx)**<br /> Adds code blocks to the editor. This differs to the `CodeExtension`, which provides code marks on inline text.

**[CodeExtension](./code-extension.md)**<br /> Makes the text under the cursor / or at the provided position range `code`
**[CodeExtension](./code-extension.mdx)**<br /> Makes the text under the cursor / or at the provided position range `code`

**[CollaborationExtension](./collaboration-extension.md)**<br /> Adds collaborative functionality

Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,14 @@
"fix:prettier": "pnpm run:prettier -- --write",
"fix:repo": "manypkg fix",
"fix:size": "pnpm generate:size",
"fix:website-examples": "pnpm generate:website-examples",
"generate:exports": "pnpm run fix:exports -- --force",
"generate:icons": "node support/scripts/generate-icons",
"generate:intl": "node support/scripts/generate-intl",
"generate:size": "node support/scripts/generate-configs --size",
"generate:ts": "node support/scripts/generate-configs --ts-packages",
"generate:website-examples": "node support/scripts/generate-website-examples",
"generate:docs": "node support/scripts/generate-docs",
"if-clean": "node support/scripts/run-if-clean",
"if-config": "node support/scripts/run-if-config",
"if-not-ci": "node support/scripts/run-if-not-ci",
Expand All @@ -69,7 +72,6 @@
"is-logged-in": "npm whoami",
"lint": "run-s lint:*",
"lint:build": "preconstruct validate",
"generate:docs": "node support/scripts/generate-docs",
"lint:css": "node support/scripts/check-styles",
"lint:es": "cross-env FULL_ESLINT_CHECK=true eslint -f codeframe --ext=.tsx,.ts,.js .",
"lint:exports": "pnpm run fix:exports -- --check",
Expand Down
27 changes: 27 additions & 0 deletions packages/storybook-react/stories/extension-code-block/basic.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import javascript from 'refractor/lang/javascript';
import typescript from 'refractor/lang/typescript';
import { CodeBlockExtension } from 'remirror/extensions';
import { Remirror, ThemeProvider, useRemirror } from '@remirror/react';

const extensions = () => [
new CodeBlockExtension({
supportedLanguages: [javascript, typescript],
}),
];

const content = `<pre><code data-code-block-language="typescript">function sayHello {
console.log('hello world!')
}</code></pre>
`;

const Basic = (): JSX.Element => {
const { manager, state } = useRemirror({ extensions, content, stringHandler: 'html' });

return (
<ThemeProvider>
<Remirror manager={manager} initialContent={state} autoRender />
</ThemeProvider>
);
};

export default Basic;
Original file line number Diff line number Diff line change
@@ -1,69 +1,11 @@
import javascript from 'refractor/lang/javascript';
import typescript from 'refractor/lang/typescript';
import { CodeBlockExtension } from 'remirror/extensions';
import { ProsemirrorDevTools } from '@remirror/dev';
import { Remirror, ThemeProvider, useEditorState, useRemirror } from '@remirror/react';
import Basic from './basic';
import WithIncorrectLanguage from './with-incorrect-language';

export default { title: 'Extensions / CodeBlock' };

const Dev = () => {
const updatedState = useEditorState();
console.log(JSON.stringify(updatedState.doc.toJSON()));
return null;
};
export const Basic = (): JSX.Element => {
const { manager, state } = useRemirror({ extensions, content, stringHandler: 'html' });

return (
<ThemeProvider>
<Remirror manager={manager} initialContent={state} autoRender>
<Dev />
<ProsemirrorDevTools />
</Remirror>
</ThemeProvider>
);
};

Basic.args = {
(Basic as any).args = {
autoLink: true,
openLinkOnClick: true,
};

const extensions = () => [
new CodeBlockExtension({
supportedLanguages: [javascript, typescript],
}),
];

const html = String.raw;
const content = html`
<pre><code data-code-block-language="typescript">
function sayHello{
console.log('hello world!')
}
</code></pre>
`;

export const WithIncorrectLanguage = (): JSX.Element => {
const { manager, state } = useRemirror({
extensions,
content: {
type: 'doc',
content: [
{
type: 'codeBlock',
attrs: { language: 'THIS_LANGUAGE_DOES_NOT_EXIST', wrap: false },
content: [{ type: 'text', text: 'hello world' }],
},
],
},
});

return (
<ThemeProvider>
<Remirror manager={manager} initialContent={state} autoRender>
<ProsemirrorDevTools />
</Remirror>
</ThemeProvider>
);
};
export { Basic, WithIncorrectLanguage };
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import javascript from 'refractor/lang/javascript';
import typescript from 'refractor/lang/typescript';
import { CodeBlockExtension } from 'remirror/extensions';
import { Remirror, ThemeProvider, useRemirror } from '@remirror/react';

const extensions = () => [
new CodeBlockExtension({
supportedLanguages: [javascript, typescript],
}),
];

const WithIncorrectLanguage = (): JSX.Element => {
const { manager, state } = useRemirror({
extensions,
content: {
type: 'doc',
content: [
{
type: 'codeBlock',
attrs: { language: 'THIS_LANGUAGE_DOES_NOT_EXIST', wrap: false },
content: [{ type: 'text', text: 'hello world' }],
},
],
},
});

return (
<ThemeProvider>
<Remirror manager={manager} initialContent={state} autoRender />
</ThemeProvider>
);
};

export default WithIncorrectLanguage;
44 changes: 44 additions & 0 deletions packages/storybook-react/stories/extension-code/basic.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
import 'remirror/styles/all.css';
import './styles.css';

import { cx, htmlToProsemirrorNode } from 'remirror';
import { CodeExtension } from 'remirror/extensions';
import { ProsemirrorDevTools } from '@remirror/dev';
import { Remirror, ThemeProvider, useActive, useCommands, useRemirror } from '@remirror/react';

const extensions = () => [new CodeExtension()];

const CodeButton = () => {
const commands = useCommands();
const active = useActive(true);
return (
<button onClick={() => commands.toggleCode()} className={cx(active.code() && 'active')}>
Code
</button>
);
};

const Basic = (): JSX.Element => {
const { manager, state, onChange } = useRemirror({
extensions: extensions,
content: '<p>Text as <code>code</code></p>',
stringHandler: htmlToProsemirrorNode,
});

return (
<ThemeProvider>
<Remirror
manager={manager}
autoFocus
onChange={onChange}
initialContent={state}
autoRender='end'
>
<CodeButton />
<ProsemirrorDevTools />
</Remirror>
</ThemeProvider>
);
};

export default Basic;
43 changes: 2 additions & 41 deletions packages/storybook-react/stories/extension-code/code.stories.tsx
Original file line number Diff line number Diff line change
@@ -1,44 +1,5 @@
import 'remirror/styles/all.css';
import './styles.css';

import { cx, htmlToProsemirrorNode } from 'remirror';
import { CodeExtension } from 'remirror/extensions';
import { ProsemirrorDevTools } from '@remirror/dev';
import { Remirror, ThemeProvider, useActive, useCommands, useRemirror } from '@remirror/react';
import Basic from './basic';

export default { title: 'Extensions / Code' };

const extensions = () => [new CodeExtension()];

const CodeButton = () => {
const commands = useCommands();
const active = useActive(true);
return (
<button onClick={() => commands.toggleCode()} className={cx(active.code() && 'active')}>
Code
</button>
);
};

export const Basic = (): JSX.Element => {
const { manager, state, onChange } = useRemirror({
extensions: extensions,
content: '<p>Text as <code>code</code></p>',
stringHandler: htmlToProsemirrorNode,
});

return (
<ThemeProvider>
<Remirror
manager={manager}
autoFocus
onChange={onChange}
initialContent={state}
autoRender='end'
>
<CodeButton />
<ProsemirrorDevTools />
</Remirror>
</ThemeProvider>
);
};
export { Basic };
Loading

0 comments on commit 9a4633a

Please sign in to comment.