Skip to content

Commit 9eeb2f3

Browse files
committed
Add examples
1 parent ef4d5e6 commit 9eeb2f3

File tree

3 files changed

+116
-1
lines changed

3 files changed

+116
-1
lines changed

content/examples.ts

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
export default [
2+
{
3+
languageId: 'python',
4+
format: 'reST',
5+
code: `def encrypt_char(c):
6+
if c in ascii_uppercase:
7+
ltrs = ascii_uppercase
8+
elif c in ascii_lowercase:
9+
ltrs = ascii_lowercase
10+
else:
11+
return c
12+
new_index = (ltrs.index(c) + 13) % 26
13+
return ltrs[new_index]`,
14+
},
15+
{
16+
languageId: 'python',
17+
format: 'reST',
18+
code: `def maximum_subarray():
19+
str_input = (','.join(i for i in sys.argv[1:])).strip()
20+
if str_input == "":
21+
print("Usage: Please provide a list of at least two integers to sort in the format: '1, 2, 3, 4, 5'")
22+
return
23+
24+
arr = [int(num) for num in str_input.split(',')]
25+
ans = 0
26+
curr_sum = 0
27+
for i in range(len(arr)):
28+
if (curr_sum + arr[i] > 0):
29+
curr_sum += arr[i]
30+
else:
31+
curr_sum = 0
32+
ans = max(ans, curr_sum)
33+
print(ans)
34+
return`,
35+
},
36+
{
37+
languageId: 'typescript',
38+
format: 'JSDoc',
39+
code: `export const getFirstNodeByValue = (node: TreeNode | null, value: string): TreeNode | null => {
40+
if (node?.children == null) {
41+
return null;
42+
}
43+
if (node.value === value.trim()) {
44+
return node;
45+
}
46+
47+
let i = 0;
48+
let result = null;
49+
for(i = 0; result == null && i < node.children.length; i++){
50+
result = getFirstNodeByValue(node.children[i], value);
51+
}
52+
return result;
53+
}`,
54+
},
55+
{
56+
languageId: 'javascript',
57+
format: 'JSDoc',
58+
code: `function binarySearch(array, target, start = 0, end = array.length - 1) {
59+
60+
const isOrdered = array.every((num, i, arr) => !i || num >= arr[i - 1]);
61+
if (!isOrdered) return error;
62+
63+
const middleIndex = Math.floor((start + end) / 2);
64+
const middleValue = array[middleIndex];
65+
const newIndexes = target < middleValue ? [start, middleIndex - 1] : [middleIndex + 1, end];
66+
67+
return middleValue === target
68+
? true
69+
: start >= end
70+
? false
71+
: binarySearch(array, target, ...newIndexes);
72+
};`,
73+
},
74+
{
75+
languageId: 'javascript',
76+
format: 'Google',
77+
code: `async function getOrganizationFromToken(token) {
78+
const authToken = await AuthToken.findOne({ promptlyToken: token });
79+
80+
if (authToken == null) throw new Error('Invalid token');
81+
const organization = await Organization.findOne({
82+
members: authToken.email,
83+
});
84+
85+
if (organization == null) throw new Error('No organization found');
86+
87+
return organization;
88+
}`,
89+
},
90+
];

pages/index.tsx

+26-1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import CodeEditor from '../components/CodeEditor';
1616
import Output from '../components/Output';
1717
import vscode from '../assets/vsc.svg';
1818
import logo from '../assets/mintlify.svg';
19+
import EXAMPLES from '../content/examples';
1920

2021
const ENDPOINT = process.env.NODE_ENV === 'development'
2122
? 'http://localhost:5000'
@@ -124,6 +125,21 @@ export default function Example() {
124125
});
125126
};
126127

128+
const onGenerateExample = () => {
129+
const randomExample = EXAMPLES[Math.floor(Math.random() * EXAMPLES.length)];
130+
const foundLanguage = languagesDropdown.find(
131+
(languageOption) => languageOption.id === randomExample.languageId,
132+
);
133+
const foundFormat = formats.find(
134+
(format) => format.id === randomExample.format,
135+
);
136+
if (foundLanguage == null || foundFormat == null) return;
137+
138+
setSelectedLanguage(foundLanguage);
139+
setSelectedFormat(foundFormat);
140+
setCode(randomExample.code);
141+
};
142+
127143
const onClickGenerate = async () => {
128144
setIsGenerating(true);
129145
setOutputDisplay('');
@@ -211,14 +227,23 @@ export default function Example() {
211227
<main className="relative -mt-32 z-10">
212228
<div className="max-w-screen-xl mx-auto pb-6 px-4 sm:px-6 lg:pb-8 lg:px-8">
213229
<div className="rounded-lg">
214-
<div className="grid sm:grid-cols-2 sm:gap-4">
230+
<div className="grid sm:grid-cols-2 sm:gap-x-4 sm:gap-y-1">
215231
<div className="h-full">
216232
<CodeEditor
217233
code={code}
218234
setCode={onCodeChange}
219235
placeholder="Type or paste code here"
220236
languageGrammar={selectedLanguage.grammar}
221237
/>
238+
<div className="w-full text-right px-1">
239+
<button
240+
className="mt-1 text-primary text-sm hover:opacity-80 duration-100"
241+
type="button"
242+
onClick={onGenerateExample}
243+
>
244+
Get example
245+
</button>
246+
</div>
222247
</div>
223248
<div className="h-full mt-4 sm:m-0">
224249
<Output

public/favicon.ico

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)