Skip to content

Commit f0843ba

Browse files
authored
Merge branch 'develop' into refactor
2 parents cddb1ea + 49ba940 commit f0843ba

39 files changed

Lines changed: 352 additions & 4 deletions

docs/docs/languages/javascript.mdx

Lines changed: 76 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,78 @@
11
# JavaScript
22

3-
TODO...
3+
LiveCodes runs [JavaScript](https://developer.mozilla.org/docs/Web/JavaScript) (JS) in the browser.
4+
Accordingly, it has access to the DOM and other Web APIs, but it does not have access to Node.js APIs such as the file system or process information.
5+
6+
## Demo
7+
8+
import LiveCodes from '../../src/components/LiveCodes.tsx';
9+
10+
<LiveCodes template="javascript" height="60vh"></LiveCodes>
11+
12+
## Usage
13+
14+
The JavaScript code is added as-is without any transformations to the [result page](../features/result.mdx) inside a `<script>` tag.
15+
16+
If the code has imports or exports, the `<script>` tag will have `type="module"` attribute.
17+
18+
The only case where the code is modified is when CommonJS `require`s are used to import external dependencies (not recommended - use ESM imports instead).
19+
These `require`s are converted to ESM imports with some glue code to make them work.
20+
21+
Example:
22+
23+
export const commonjs = `const { v4 } = require('uuid');
24+
25+
document.body.innerHTML = v4();`;
26+
27+
<LiveCodes params={{ activeEditor: 'script', js: commonjs, compiled: 'open' }}></LiveCodes>
28+
29+
### External Modules
30+
31+
Modules can be imported from various sources (e.g. npm, deno.land/x, jsr, CDNs, GitHub, etc.) including bare module imports.
32+
The modules are loaded from CDNs using importmaps (see [module resolution](../features/module-resolution.mdx) for details).
33+
34+
Example:
35+
36+
export const esm = `import _ from 'lodash';
37+
38+
const arr = [1, 2, 3, 4, 5];
39+
console.log(_.shuffle(arr)); // shuffle the array
40+
`;
41+
42+
<LiveCodes params={{ activeEditor: 'script', js: esm, console: 'open' }}></LiveCodes>
43+
44+
45+
## Language Info
46+
47+
### Name
48+
49+
`javascript`
50+
51+
### Alias
52+
53+
`js`
54+
55+
### Extensions
56+
57+
`js`, `mjs`
58+
59+
### Editor
60+
61+
`script`
62+
63+
### Compiler
64+
65+
JavaScript runs natively in the browser without compilation.
66+
67+
## Code Formatting
68+
69+
Using [Prettier](https://prettier.io/).
70+
71+
## Starter Template
72+
73+
https://livecodes.io/?template=Javascript
74+
75+
## Links
76+
77+
- [JavaScript Reference on MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
78+
- [Web API](https://developer.mozilla.org/en-US/docs/Web/API)

src/livecodes/html/language-info.html

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -646,6 +646,37 @@ <h3 data-i18n="language-info:java.name">Java</h3>
646646
</li>
647647
</ul>
648648
</section>
649+
<section data-lang="javascript">
650+
<h3 data-i18n="language-info:javascript.name">JavaScript</h3>
651+
<div data-i18n="language-info:javascript.desc" data-i18n-prop="innerHTML">
652+
The scripting language of the web.
653+
</div>
654+
<ul data-i18n="language-info:javascript.link" data-i18n-prop="innerHTML">
655+
<li>
656+
<a
657+
href="https://developer.mozilla.org/en-US/docs/Web/JavaScript"
658+
target="_blank"
659+
rel="noopener"
660+
>JavaScript on MDN</a
661+
>
662+
</li>
663+
<li>
664+
<a href="https://learnxinyminutes.com/docs/javascript/" target="_blank" rel="noopener"
665+
>Learn X in Y minutes, where X=JavaScript</a
666+
>
667+
</li>
668+
<li>
669+
<a href="{{DOCS_BASE_URL}}languages/javascript" target="_blank" rel="noopener"
670+
>LiveCodes Documentation</a
671+
>
672+
</li>
673+
<li>
674+
<a href="?template=javascript" class="button" target="_parent" data-template="javascript"
675+
>Load starter template</a
676+
>
677+
</li>
678+
</ul>
679+
</section>
649680
<section data-lang="jinja">
650681
<h3 data-i18n="language-info:jinja.name">Jinja</h3>
651682
<div data-i18n="language-info:jinja.desc">

src/livecodes/i18n/locales/ar/language-info.lokalise.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,15 @@
267267
"java.name": {
268268
"translation": "Java"
269269
},
270+
"javascript.desc": {
271+
"translation": "لغة البرمجة النصية للويب."
272+
},
273+
"javascript.link": {
274+
"translation": "<tag-1> <tag-2>جافا سكريبت على MDN</tag-2> </tag-1> <tag-3> <tag-4>تعلم X في دقائق Y، حيث X = جافا سكريبت</tag-4> </tag-3> <tag-5> <tag-6>وثائق LiveCodes</tag-6> </tag-5> <tag-7> <tag-8>تحميل قالب البداية</tag-8> </tag-7>"
275+
},
276+
"javascript.name": {
277+
"translation": "JavaScript"
278+
},
270279
"jinja.desc": {
271280
"translation": "Jinja هو محرك قوالب سريع ومعبّر وقابل للتوسيع."
272281
},

src/livecodes/i18n/locales/ar/language-info.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,6 +150,11 @@ const languageInfo: I18nLangInfoTranslation = {
150150
link: '<1> <2>موقع جافا الرسمي</2> </1> <3> <4> DoppioJVM</4> </3> <5> <6> تعلم X في دقائق Y، حيث X = جافا</6> </5> <7> <8> تحميل قالب البدء</8> </7>',
151151
name: 'Java',
152152
},
153+
javascript: {
154+
desc: 'لغة البرمجة النصية للويب.',
155+
link: '<1> <2>جافا سكريبت على MDN</2> </1> <3> <4>تعلم X في دقائق Y، حيث X = جافا سكريبت</4> </3> <5> <6>وثائق LiveCodes</6> </5> <7> <8>تحميل قالب البداية</8> </7>',
156+
name: 'JavaScript',
157+
},
153158
jinja: {
154159
desc: 'Jinja هو محرك قوالب سريع ومعبّر وقابل للتوسيع.',
155160
link: '<1> <2>الموقع الرسمي</2> </1> <3> <4>وثائق القالب</4> </3> <5> <6>تطبيق JavaScript</6> </5> <7> <8>وثائق LiveCodes</8> </7>',

src/livecodes/i18n/locales/bn/language-info.lokalise.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,15 @@
267267
"java.name": {
268268
"translation": "Java"
269269
},
270+
"javascript.desc": {
271+
"translation": "ওয়েবের স্ক্রিপ্টিং ভাষা।"
272+
},
273+
"javascript.link": {
274+
"translation": "<tag-1> <tag-2>MDN-এ জাভাস্ক্রিপ্ট</tag-2> </tag-1> <tag-3> <tag-4>Y মিনিটে X শিখুন, যেখানে X=জাভাস্ক্রিপ্ট</tag-4> </tag-3> <tag-5> <tag-6>লাইভকোডস ডকুমেন্টেশন</tag-6> </tag-5> <tag-7> <tag-8>স্টার্টার টেমপ্লেট লোড করুন</tag-8> </tag-7>"
275+
},
276+
"javascript.name": {
277+
"translation": "JavaScript"
278+
},
270279
"jinja.desc": {
271280
"translation": "Jinja একটি দ্রুত, প্রকাশক, এক্সটেনসিবল টেমপ্লেটিং ইঞ্জিন।"
272281
},

src/livecodes/i18n/locales/bn/language-info.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,11 @@ const languageInfo: I18nLangInfoTranslation = {
151151
link: '<1> <2>Java অফিসিয়াল ওয়েবসাইট</2> </1> <3> <4>DoppioJVM</4> </3> <5> <6>Y মিনিটে X শিখুন, যেখানে X=java</6> </5> <7> <8>LiveCodes ডকুমেন্টেশন</8> </7> <9> <10>স্টার্টার টেমপ্লেট লোড করুন</10> </9>',
152152
name: 'Java',
153153
},
154+
javascript: {
155+
desc: 'ওয়েবের স্ক্রিপ্টিং ভাষা।',
156+
link: '<1> <2>MDN-এ জাভাস্ক্রিপ্ট</2> </1> <3> <4>Y মিনিটে X শিখুন, যেখানে X=জাভাস্ক্রিপ্ট</4> </3> <5> <6>লাইভকোডস ডকুমেন্টেশন</6> </5> <7> <8>স্টার্টার টেমপ্লেট লোড করুন</8> </7>',
157+
name: 'JavaScript',
158+
},
154159
jinja: {
155160
desc: 'Jinja একটি দ্রুত, প্রকাশক, এক্সটেনসিবল টেমপ্লেটিং ইঞ্জিন।',
156161
link: '<1> <2>অফিসিয়াল ওয়েবসাইট</2> </1> <3> <4>টেমপ্লেট ডকুমেন্টেশন</4> </3> <5> <6>JavaScript বাস্তবায়ন</6> </5> <7> <8>LiveCodes ডকুমেন্টেশন</8> </7>',

src/livecodes/i18n/locales/de/language-info.lokalise.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -267,6 +267,15 @@
267267
"java.name": {
268268
"translation": "Java"
269269
},
270+
"javascript.desc": {
271+
"translation": "Die Skriptsprache des Webs."
272+
},
273+
"javascript.link": {
274+
"translation": "<tag-1> <tag-2>JavaScript auf MDN</tag-2> </tag-1> <tag-3> <tag-4>Lernen Sie X in Y Minuten, wobei X=JavaScript</tag-4> </tag-3> <tag-5> <tag-6>LiveCodes Dokumentation</tag-6> </tag-5> <tag-7> <tag-8>Laden Sie eine Startvorlage</tag-8> </tag-7>"
275+
},
276+
"javascript.name": {
277+
"translation": "JavaScript"
278+
},
270279
"jinja.desc": {
271280
"translation": "Jinja ist eine schnelle, ausdrucksstarke und erweiterbare Template-Engine."
272281
},

src/livecodes/i18n/locales/de/language-info.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,11 @@ const languageInfo: I18nLangInfoTranslation = {
153153
link: '<1> <2>Offizielle Java-Website</2> </1> <3> <4> DoppioJVM</4> </3> <5> <6> Lernen Sie X in Y Minuten, wobei X=java</6> </5> <7> <8> Laden Sie die Startvorlage</8> </7>',
154154
name: 'Java',
155155
},
156+
javascript: {
157+
desc: 'Die Skriptsprache des Webs.',
158+
link: '<1> <2>JavaScript auf MDN</2> </1> <3> <4>Lernen Sie X in Y Minuten, wobei X=JavaScript</4> </3> <5> <6>LiveCodes Dokumentation</6> </5> <7> <8>Laden Sie eine Startvorlage</8> </7>',
159+
name: 'JavaScript',
160+
},
156161
jinja: {
157162
desc: 'Jinja ist eine schnelle, ausdrucksstarke und erweiterbare Template-Engine.',
158163
link: '<1> <2>Offizielle Website</2> </1> <3> <4> Template-Dokumentation</4> </3> <5> <6> JavaScript-Implementierung</6> </5> <7> <8> LiveCodes Dokumentationen</8> </7>',

src/livecodes/i18n/locales/en/language-info.lokalise.json

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,18 @@
356356
"notes": "",
357357
"translation": "Java"
358358
},
359+
"javascript.desc": {
360+
"notes": "",
361+
"translation": "The scripting language of the web."
362+
},
363+
"javascript.link": {
364+
"notes": "### <tag-1> ###\n<li />\n\n### <tag-2> ###\n<a href=\"https://developer.mozilla.org/en-US/docs/Web/JavaScript\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-3> ###\n<li />\n\n### <tag-4> ###\n<a href=\"https://learnxinyminutes.com/docs/javascript/\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-5> ###\n<li />\n\n### <tag-6> ###\n<a href=\"{{DOCS_BASE_URL}}languages/javascript\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-7> ###\n<li />\n\n### <tag-8> ###\n<a href=\"?template=javascript\" class=\"button\" target=\"_parent\" data-template=\"javascript\" />\n\n",
365+
"translation": "<tag-1> <tag-2>JavaScript on MDN</tag-2> </tag-1> <tag-3> <tag-4>Learn X in Y minutes, where X=JavaScript</tag-4> </tag-3> <tag-5> <tag-6>LiveCodes Documentation</tag-6> </tag-5> <tag-7> <tag-8>Load starter template</tag-8> </tag-7>"
366+
},
367+
"javascript.name": {
368+
"notes": "",
369+
"translation": "JavaScript"
370+
},
359371
"jinja.desc": {
360372
"notes": "",
361373
"translation": "Jinja is a fast, expressive, extensible templating engine."

src/livecodes/i18n/locales/en/language-info.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,11 @@ const languageInfo = {
159159
link: '<1> <2>Java official website</2> </1> <3> <4>DoppioJVM</4> </3> <5> <6>Learn X in Y minutes, where X=java</6> </5> <7> <8>LiveCodes Documentation</8> </7> <9> <10>Load starter template</10> </9>',
160160
name: 'Java',
161161
},
162+
javascript: {
163+
desc: 'The scripting language of the web.',
164+
link: '<1> <2>JavaScript on MDN</2> </1> <3> <4>Learn X in Y minutes, where X=JavaScript</4> </3> <5> <6>LiveCodes Documentation</6> </5> <7> <8>Load starter template</8> </7>',
165+
name: 'JavaScript',
166+
},
162167
jinja: {
163168
desc: 'Jinja is a fast, expressive, extensible templating engine.',
164169
link: '<1> <2>Official website</2> </1> <3> <4>Template documentation</4> </3> <5> <6>JavaScript implementation</6> </5> <7> <8>LiveCodes Documentations</8> </7>',

0 commit comments

Comments
 (0)