-
Notifications
You must be signed in to change notification settings - Fork 289
/
Copy pathelements.tsx
83 lines (72 loc) · 1.86 KB
/
elements.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @format
*/
import React from 'react';
import useBaseUrl from '@docusaurus/useBaseUrl';
import DocusaurusThemedImage from '@theme/ThemedImage';
type CommandProps = {
/**
* Name of the Sapling subcommand to link to. Command aliases are also
* supported.
*/
name: string;
/**
* If specified, overrides `name` as the the text to use fo the link.
*/
linkText?: string;
};
/** Creates a link to the corresponding documentation page for the command. */
export function Command({name, linkText}: CommandProps) {
const command = mapAliasToCommand(name);
const label = linkText ?? name;
return (
<a href={useBaseUrl(`/docs/commands/${command}`)}>
<code>{label}</code>
</a>
);
}
/** Shorthand for <Command> where `sl ${name}` is used as the linkText. */
export function SLCommand({name}: CommandProps) {
return <Command name={name} linkText={`sl ${name}`} />;
}
// TODO(mbolin): This should be autogenerated as a byproduct of running
// scripts/generate-command-markdown.py.
function mapAliasToCommand(alias: string): string {
switch (alias) {
case 'go':
return 'goto';
case 'isl':
return 'web';
}
return alias;
}
export function ReviewStackScreenshot() {
return (
<p style={{textAlign: 'center'}}>
<img
src={useBaseUrl('/img/reviewstack-demo.gif')}
width={800}
align="center"
/>
</p>
);
}
export function ThemedImage({alt, light, dark}) {
return <DocusaurusThemedImage
alt={alt}
sources={{
light: useBaseUrl(light),
dark: useBaseUrl(dark),
}}
/>;
}
export function Video({src}) {
return <video controls>
<source src={useBaseUrl(src)}/>
</video>;
}