Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ A [feature-rich](https://livecodes.io/docs/features/), open-source, **client-sid
[![LiveCodes: npm version](https://img.shields.io/npm/v/livecodes)](https://www.npmjs.com/package/livecodes)
[![LiveCodes: npm downloads](https://img.shields.io/npm/dm/livecodes)](https://www.npmjs.com/package/livecodes)
[![LiveCodes: jsdelivr downloads](https://data.jsdelivr.com/v1/package/npm/livecodes/badge?style=rounded)](https://www.jsdelivr.com/package/npm/livecodes)
[![LiveCodes: languages](https://img.shields.io/badge/languages-110-blue)](https://livecodes.io/docs/languages/)
[![LiveCodes: languages](https://img.shields.io/badge/languages-111-blue)](https://livecodes.io/docs/languages/)
[![LiveCodes: docs](https://img.shields.io/badge/Documentation-575757?logo=gitbook&logoColor=white)](https://livecodes.io/docs/)
[![LiveCodes: llms.txt](https://img.shields.io/badge/llms.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms.txt)
[![LiveCodes: llms-full.txt](https://img.shields.io/badge/llms--full.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms-full.txt)
Expand Down
115 changes: 115 additions & 0 deletions docs/docs/languages/fanak.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
# Fanak

Fanak is a functional programming language that compiles to CIL (.NET). It has
algebraic data types with pattern matching, typeclasses, higher-order functions
and a small effectful standard library.

In LiveCodes, Fanak compiles and runs entirely in the browser: the Fanak
compiler and a .NET WebAssembly runtime (Blazor WebAssembly) are fetched from
the Fanak project, the program's assembly is emitted in memory, and the result
runs in the page.

## Usage

Demo:

import LiveCodes from '../../src/components/LiveCodes.tsx';
export const fanakConfig = {
activeEditor: 'script',
script: {
language: 'fanak',
content: `import std;

Unit main() {
List<int> xs = List.empty<int>().add(1).add(2).add(3);
List<int> tens = xs.iter().map((int x) => x * 10).toList();
runUnit(println(tens));
}`,
},
mode: 'simple',
editor: 'auto',
tools: {
status: 'full',
},
};

<LiveCodes config={fanakConfig}></LiveCodes>

## Language Info

### Name

`fanak`

### Aliases / Extensions

`fnk`, `fanak`

### Editor

`script`

## Compiler

The Fanak compiler and .NET WebAssembly runtime (Blazor WebAssembly), fetched
from the [Fanak project](https://gitlab.com/AhmedWael216/fanak) and run entirely
in the browser. There is no server round-trip; the first run downloads the
runtime and can take a moment.

The prelude is implicit in every file. The standard library is opt-in with
`import std;`.

### Version

0.1.0

## Code Formatting

In the Monaco editor, formatting is provided by the Fanak language service
(compiler-backed, using the Fanak compiler's own formatter). It is not
available in the CodeMirror or CodeJar editors.

## Communication with JavaScript

The Fanak program runs in the context of the result page. A few helpers are
available on the browser global `livecodes.fanak` object:

- `livecodes.fanak.loaded`: a promise that resolves when the compiler and the
program have finished running.
- `livecodes.fanak.output`: the program's standard output (a string), or `null`.
- `livecodes.fanak.error`: the program's error output (a string), or `null`.
- `livecodes.fanak.exitCode`: `0` on success, `1` on error.
- `livecodes.fanak.run`: re-runs the program and returns a promise resolving to an
object with `output`, `error` and `exitCode`. (It accepts an `input` argument
for host parity, but Fanak has no standard-input primitive yet, so it is
currently ignored.)

Example:

<LiveCodes template="fanak" params={{ activeEditor: 'markup' }} height="80vh"></LiveCodes>

## Live Reload

By default, new code changes are sent to the result page for re-evaluation
without a full page reload, avoiding the need to reinitialize the compiler.

## Example Usage

```fanak
import std;

Unit main() {
// Options, lambdas and pattern matching
Option<int> answer = Some(6 * 7);
runUnit(println(answer.getOr(0))); // 42
}
```

## Starter Template

https://livecodes.io/?template=fanak

## Links

- [Fanak](https://gitlab.com/AhmedWael216/fanak)
- [Fanak documentation](https://ahmedwael216.gitlab.io/fanak/)
1 change: 1 addition & 0 deletions docs/src/components/LanguageSliders.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,7 @@ export default function Sliders() {
{ name: 'vb-wasm', title: 'VB.NET (Wasm)' },
{ name: 'fsharp', title: 'F#' },
{ name: 'fsharp-wasm', title: 'F# (Wasm)' },
{ name: 'fanak', title: 'Fanak' },
{ name: 'scheme', title: 'Scheme' },
{ name: 'commonlisp', title: 'Lisp' },
{ name: 'clojurescript-cherry', title: 'CLJS (Cherry)' },
Expand Down
1 change: 1 addition & 0 deletions docs/src/components/TemplateList.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ const templates = [
{ name: 'vb-wasm', title: 'VB.NET (Wasm)', thumbnail: 'vb.svg' },
{ name: 'fsharp', title: 'F# Starter', thumbnail: 'fsharp.svg' },
{ name: 'fsharp-wasm', title: 'F# (Wasm) Starter', thumbnail: 'fsharp.svg' },
{ name: 'fanak', title: 'Fanak Starter', thumbnail: 'fanak.png' },
{ name: 'scheme', title: 'Scheme Starter', thumbnail: 'scheme.svg' },
{ name: 'commonlisp', title: 'Common Lisp Starter', thumbnail: 'commonlisp.svg' },
{ name: 'clojurescript', title: 'ClojureScript Starter', thumbnail: 'cljs.svg' },
Expand Down
1 change: 1 addition & 0 deletions functions/vendors/templates.js
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@ export const starterTemplates = {
"vb-wasm": "VB.NET (Wasm) Starter",
"fsharp": "F# Starter",
"fsharp-wasm": "F# (Wasm) Starter",
"fanak": "Fanak Starter",
"haskell": "Haskell Starter",
"haskell-wasm": "Haskell (Wasm) Starter",
"scheme": "Scheme Starter",
Expand Down
1 change: 1 addition & 0 deletions scripts/build.js
Original file line number Diff line number Diff line change
Expand Up @@ -230,6 +230,7 @@
'languages/clang-wasm/lang-clang-wasm-script.ts',
'languages/go-wasm/lang-go-wasm-script.ts',
'languages/csharp-wasm/lang-csharp-wasm-script.ts',
'languages/fanak/lang-fanak-script.ts',
'languages/vb-wasm/lang-vb-wasm-script.ts',
'languages/zig-wasm/lang-zig-wasm-script.ts',
'languages/dot/lang-dot-compiler.ts',
Expand Down Expand Up @@ -321,16 +322,16 @@

const stylesBuild = () => buildStyles(devMode);

prepareDir().then(async () => {
await buildLocalePathLoader();
Promise.all([
esmBuild(),
iifeBuild(),
workersBuild(),
stylesBuild(),
sdkBuild(),
buildI18n(),
]).then(async () => {

Check warning on line 334 in scripts/build.js

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Avoid nesting promises.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4XsE9wtbLhLwa95&open=AaDug4XsE9wtbLhLwa95&pullRequest=1048
if (!devMode) {
functionsBuild();
}
Expand Down
1 change: 1 addition & 0 deletions server/php/inc/starter-templates.json
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,7 @@
"vb-wasm": "VB.NET (Wasm) Starter",
"fsharp": "F# Starter",
"fsharp-wasm": "F# (Wasm) Starter",
"fanak": "Fanak Starter",
"haskell": "Haskell Starter",
"haskell-wasm": "Haskell (Wasm) Starter",
"scheme": "Scheme Starter",
Expand Down
1 change: 1 addition & 0 deletions src/livecodes/UI/command-menu-actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -213,7 +213,7 @@
id: 'Language: ' + lang.title,
title: lang.longTitle ?? lang.title,
keywords: [lang.name, lang.title, lang.longTitle, ...lang.extensions].join(', '),
handler: async () => {

Check warning on line 216 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Async method 'handler' has no 'await' expression.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa9x&open=AaDug4UAE9wtbLhLwa9x&pullRequest=1048
document
.querySelector<HTMLAnchorElement>('a[data-editor][data-lang="' + lang.name + '"]')
?.click();
Expand All @@ -240,7 +240,7 @@
processor.longTitle,
processor.isPostcssPlugin ? 'postcss' : '',
].join(' '),
handler: async () => {

Check warning on line 243 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Async method 'handler' has no 'await' expression.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa9y&open=AaDug4UAE9wtbLhLwa9y&pullRequest=1048
document
.querySelector<HTMLAnchorElement>(
'.processor-item input[data-processor="' + processor.name + '"]',
Expand Down Expand Up @@ -314,6 +314,7 @@
'vb-wasm',
'fsharp',
'fsharp-wasm',
'fanak',
'haskell',
'haskell-wasm',
'scheme',
Expand Down Expand Up @@ -419,7 +420,7 @@
title: window.deps.translateString('commandMenu.saveAsTemplate', 'Save as a Template'),
content: getContent('Save as a template'),
mdIcon: 'library_add',
handler: async () => {

Check warning on line 423 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Async method 'handler' has no 'await' expression.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa9z&open=AaDug4UAE9wtbLhLwa9z&pullRequest=1048
UI.getSaveAsTemplateLink()?.click();
},
},
Expand Down Expand Up @@ -835,7 +836,7 @@
hotkey: 'ctrl+alt+T',
// mdIcon: 'labs',
icon: icons.labs,
handler: async () => {

Check warning on line 839 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Async method 'handler' has no 'await' expression.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa90&open=AaDug4UAE9wtbLhLwa90&pullRequest=1048
UI.getRunTestsButton()?.click();
},
},
Expand Down Expand Up @@ -902,7 +903,7 @@
_action: INinjaAction,
{ searchString }: { searchString: string; searchRegex: RegExp },
) => key.includes(searchString.toLowerCase()) || lang.includes(searchString),
handler: async () => {

Check warning on line 906 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Async method 'handler' has no 'await' expression.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa91&open=AaDug4UAE9wtbLhLwa91&pullRequest=1048
document
.querySelector<HTMLAnchorElement>('#app-menu-i18n a[data-lang="' + key + '"]')
?.click();
Expand Down Expand Up @@ -968,9 +969,9 @@
content: getContent('Editor Theme'),
mdIcon: 'palette',
handler: () => {
deps.showScreen('editor-settings', {
scrollToSelector: ':has(+ label[data-name^="editorTheme"])',
});

Check warning on line 974 in src/livecodes/UI/command-menu-actions.ts

View check run for this annotation

SonarQubeCloud / SonarCloud Code Analysis

Promises must be awaited, end with a call to .catch, end with a call to .then with a rejection handler or be explicitly marked as ignored with the `void` operator.

See more on https://sonarcloud.io/project/issues?id=live-codes_livecodes&issues=AaDug4UAE9wtbLhLwa92&open=AaDug4UAE9wtbLhLwa92&pullRequest=1048
},
},
],
Expand Down
Binary file added src/livecodes/assets/templates/fanak.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
30 changes: 30 additions & 0 deletions src/livecodes/html/language-info.html
Original file line number Diff line number Diff line change
Expand Up @@ -781,6 +781,36 @@ <h3 data-i18n="language-info:fsharpWasm.name">F# (Wasm)</h3>
</li>
</ul>
</section>
<section data-lang="fanak">
<h3 data-i18n="language-info:fanak.name">Fanak</h3>
<div data-i18n="language-info:fanak.desc" data-i18n-prop="innerHTML">
Fanak is a functional programming language that compiles to CIL (.NET). Its compiler and .NET
WebAssembly runtime run entirely in the browser, fetched from the Fanak project, so the first
run downloads the runtime and can take a moment.
</div>
<ul data-i18n="language-info:fanak.link" data-i18n-prop="innerHTML">
<li>
<a href="https://gitlab.com/AhmedWael216/fanak" target="_blank" rel="noopener"
>Fanak repository</a
>
</li>
<li>
<a href="https://ahmedwael216.gitlab.io/fanak/" target="_blank" rel="noopener"
>Fanak documentation</a
>
</li>
<li>
<a href="{{DOCS_BASE_URL}}languages/fanak" target="_blank" rel="noopener"
>LiveCodes Documentation</a
>
</li>
<li>
<a href="?template=fanak" class="button" target="_parent" data-template="fanak"
>Load starter template</a
>
</li>
</ul>
</section>
<section data-lang="gleam">
<h3 data-i18n="language-info:gleam.name">Gleam</h3>
<div data-i18n="language-info:gleam.desc1">
Expand Down
9 changes: 9 additions & 0 deletions src/livecodes/i18n/locales/ar/language-info.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@
"eta.name": {
"translation": "Eta"
},
"fanak.desc": {
"translation": "Fanak هي لغة برمجة وظيفية تُترجم إلى CIL ‏(.NET). يعمل مُترجمها وبيئة تشغيل .NET WebAssembly بالكامل في المتصفح، ويتم جلبهما من مشروع Fanak، لذا يؤدي التشغيل الأول إلى تنزيل بيئة التشغيل وقد يستغرق بعض الوقت."
},
"fanak.link": {
"translation": "<tag-1> <tag-2>مستودع Fanak</tag-2> </tag-1> <tag-3> <tag-4>وثائق Fanak</tag-4> </tag-3> <tag-5> <tag-6>وثائق LiveCodes</tag-6> </tag-5> <tag-7> <tag-8>تحميل قالب البدء</tag-8> </tag-7>"
},
"fanak.name": {
"translation": "Fanak"
},
"fennel.desc": {
"translation": "فينل هي لغة برمجة تجمع بين سرعة وبساطة ونطاق لوا مع مرونة بناء جملة ليسب ونظام الماكرو."
},
Expand Down
5 changes: 5 additions & 0 deletions src/livecodes/i18n/locales/ar/language-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,11 @@ const languageInfo: I18nLangInfoTranslation = {
link: '<1><2>الموقع الرسمي</2></1> <3> <4>الوثائق</4> </3> <5> <6>وثائق LiveCodes</6> </5>',
name: 'Eta',
},
fanak: {
desc: 'Fanak هي لغة برمجة وظيفية تُترجم إلى CIL ‏(.NET). يعمل مُترجمها وبيئة تشغيل .NET WebAssembly بالكامل في المتصفح، ويتم جلبهما من مشروع Fanak، لذا يؤدي التشغيل الأول إلى تنزيل بيئة التشغيل وقد يستغرق بعض الوقت.',
link: '<1> <2>مستودع Fanak</2> </1> <3> <4>وثائق Fanak</4> </3> <5> <6>وثائق LiveCodes</6> </5> <7> <8>تحميل قالب البدء</8> </7>',
name: 'Fanak',
},
fennel: {
desc: 'فينل هي لغة برمجة تجمع بين سرعة وبساطة ونطاق لوا مع مرونة بناء جملة ليسب ونظام الماكرو.',
link: '<1> <2>الموقع الرسمي لفينل</2> </1> <3> <4>البدء مع فينل</4> </3> <5> <6>وثائق LiveCodes</6> </5> <7> <8>تحميل قالب البداية</8> </7>',
Expand Down
3 changes: 3 additions & 0 deletions src/livecodes/i18n/locales/ar/translation.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -1971,6 +1971,9 @@
"templates.starter.elm": {
"translation": "قالب Elm"
},
"templates.starter.fanak": {
"translation": "قالب Fanak"
},
"templates.starter.fennel": {
"translation": "قالب Fennel"
},
Expand Down
1 change: 1 addition & 0 deletions src/livecodes/i18n/locales/ar/translation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,7 @@ const translation: I18nTranslation = {
daisyui: 'قالب daisyUI',
diagrams: 'قالب الرسوم البيانية',
elm: 'قالب Elm',
fanak: 'قالب Fanak',
fennel: 'قالب Fennel',
fsharp: 'قالب F#',
'fsharp-wasm': 'قالب F# (Wasm)',
Expand Down
9 changes: 9 additions & 0 deletions src/livecodes/i18n/locales/bn/language-info.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@
"eta.name": {
"translation": "Eta"
},
"fanak.desc": {
"translation": "Fanak হলো একটি কার্যকরী প্রোগ্রামিং ভাষা যা CIL (.NET)-এ কম্পাইল হয়। এর কম্পাইলার এবং .NET WebAssembly রানটাইম সম্পূর্ণভাবে ব্রাউজারে চলে, যা Fanak প্রকল্প থেকে আনা হয়, তাই প্রথমবার চালানোর সময় রানটাইমটি ডাউনলোড হয় এবং কিছুটা সময় নিতে পারে।"
},
"fanak.link": {
"translation": "<tag-1> <tag-2>Fanak রেপো</tag-2> </tag-1> <tag-3> <tag-4>Fanak ডকুমেন্টেশন</tag-4> </tag-3> <tag-5> <tag-6>লাইভকোড ডকুমেন্টেশন</tag-6> </tag-5> <tag-7> <tag-8>স্টার্টার টেমপ্লেট লোড করুন</tag-8> </tag-7>"
},
"fanak.name": {
"translation": "Fanak"
},
"fennel.desc": {
"translation": "Fennel একটি প্রোগ্রামিং ভাষা যা Lua-এর গতি, সরলতা এবং পৌঁছানোকে একটি lisp সিনট্যাক্স এবং ম্যাক্রো সিস্টেমের নমনীয়তার সাথে একত্রিত করে।"
},
Expand Down
5 changes: 5 additions & 0 deletions src/livecodes/i18n/locales/bn/language-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -119,6 +119,11 @@ const languageInfo: I18nLangInfoTranslation = {
link: '<1><2>অফিসিয়াল ওয়েবসাইট</2></1> <3> <4>ডকুমেন্টেশন</4> </3> <5> <6>LiveCodes ডকুমেন্টেশন</6> </5>',
name: 'Eta',
},
fanak: {
desc: 'Fanak হলো একটি কার্যকরী প্রোগ্রামিং ভাষা যা CIL (.NET)-এ কম্পাইল হয়। এর কম্পাইলার এবং .NET WebAssembly রানটাইম সম্পূর্ণভাবে ব্রাউজারে চলে, যা Fanak প্রকল্প থেকে আনা হয়, তাই প্রথমবার চালানোর সময় রানটাইমটি ডাউনলোড হয় এবং কিছুটা সময় নিতে পারে।',
link: '<1> <2>Fanak রেপো</2> </1> <3> <4>Fanak ডকুমেন্টেশন</4> </3> <5> <6>লাইভকোড ডকুমেন্টেশন</6> </5> <7> <8>স্টার্টার টেমপ্লেট লোড করুন</8> </7>',
name: 'Fanak',
},
fennel: {
desc: 'Fennel একটি প্রোগ্রামিং ভাষা যা Lua-এর গতি, সরলতা এবং পৌঁছানোকে একটি lisp সিনট্যাক্স এবং ম্যাক্রো সিস্টেমের নমনীয়তার সাথে একত্রিত করে।',
link: '<1> <2>Fennel অফিসিয়াল ওয়েবসাইট</2> </1> <3> <4>Fennel দিয়ে শুরু করা</4> </3> <5> <6>LiveCodes ডকুমেন্টেশন</6> </5> <7> <8>স্টার্টার টেমপ্লেট লোড করুন</8> </7>',
Expand Down
3 changes: 3 additions & 0 deletions src/livecodes/i18n/locales/bn/translation.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -1971,6 +1971,9 @@
"templates.starter.elm": {
"translation": "Elm স্টার্টার"
},
"templates.starter.fanak": {
"translation": "Fanak স্টার্টার"
},
"templates.starter.fennel": {
"translation": "Fennel স্টার্টার"
},
Expand Down
1 change: 1 addition & 0 deletions src/livecodes/i18n/locales/bn/translation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -996,6 +996,7 @@ const translation: I18nTranslation = {
daisyui: 'daisyUI স্টার্টার',
diagrams: 'Diagrams স্টার্টার',
elm: 'Elm স্টার্টার',
fanak: 'Fanak স্টার্টার',
fennel: 'Fennel স্টার্টার',
fsharp: 'F# স্টার্টার',
'fsharp-wasm': 'F# (Wasm) স্টার্টার',
Expand Down
9 changes: 9 additions & 0 deletions src/livecodes/i18n/locales/de/language-info.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,15 @@
"eta.name": {
"translation": "Eta"
},
"fanak.desc": {
"translation": "Fanak ist eine funktionale Programmiersprache, die zu CIL (.NET) kompiliert wird. Ihr Compiler und die .NET-WebAssembly-Laufzeit laufen vollständig im Browser und werden vom Fanak-Projekt abgerufen, sodass beim ersten Start die Laufzeitumgebung heruntergeladen wird und es einen Moment dauern kann."
},
"fanak.link": {
"translation": "<tag-1> <tag-2>Fanak-Repository</tag-2> </tag-1> <tag-3> <tag-4>Fanak-Dokumentation</tag-4> </tag-3> <tag-5> <tag-6>LiveCodes-Dokumentation</tag-6> </tag-5> <tag-7> <tag-8>Startervorlage laden</tag-8> </tag-7>"
},
"fanak.name": {
"translation": "Fanak"
},
"fennel.desc": {
"translation": "Fennel ist eine Programmiersprache, die die Geschwindigkeit, Einfachheit und Reichweite von Lua mit der Flexibilität einer Lisp-Syntax und eines Makrosystems verbindet."
},
Expand Down
5 changes: 5 additions & 0 deletions src/livecodes/i18n/locales/de/language-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -121,6 +121,11 @@ const languageInfo: I18nLangInfoTranslation = {
link: '<1><2>Offizielle Website</2></1> <3> <4>Dokumentation</4> </3> <5> <6>LiveCodes Dokumentation</6> </5>',
name: 'Eta',
},
fanak: {
desc: 'Fanak ist eine funktionale Programmiersprache, die zu CIL (.NET) kompiliert wird. Ihr Compiler und die .NET-WebAssembly-Laufzeit laufen vollständig im Browser und werden vom Fanak-Projekt abgerufen, sodass beim ersten Start die Laufzeitumgebung heruntergeladen wird und es einen Moment dauern kann.',
link: '<1> <2>Fanak-Repository</2> </1> <3> <4>Fanak-Dokumentation</4> </3> <5> <6>LiveCodes-Dokumentation</6> </5> <7> <8>Startervorlage laden</8> </7>',
name: 'Fanak',
},
fennel: {
desc: 'Fennel ist eine Programmiersprache, die die Geschwindigkeit, Einfachheit und Reichweite von Lua mit der Flexibilität einer Lisp-Syntax und eines Makrosystems verbindet.',
link: '<1> <2>Fennel offizielle Website</2> </1> <3> <4>Erste Schritte mit Fennel</4> </3> <5> <6>LiveCodes Dokumentation</6> </5> <7> <8>Starter-Vorlage laden</8> </7>',
Expand Down
3 changes: 3 additions & 0 deletions src/livecodes/i18n/locales/de/translation.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -1971,6 +1971,9 @@
"templates.starter.elm": {
"translation": "Elm-Starter"
},
"templates.starter.fanak": {
"translation": "Fanak-Starter"
},
"templates.starter.fennel": {
"translation": "Fennel-Starter"
},
Expand Down
1 change: 1 addition & 0 deletions src/livecodes/i18n/locales/de/translation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -998,6 +998,7 @@ const translation: I18nTranslation = {
daisyui: 'daisyUI-Starter',
diagrams: 'Diagramm-Starter',
elm: 'Elm-Starter',
fanak: 'Fanak-Starter',
fennel: 'Fennel-Starter',
fsharp: 'F# -Starter',
'fsharp-wasm': 'F# (Wasm)-Starter',
Expand Down
12 changes: 12 additions & 0 deletions src/livecodes/i18n/locales/en/language-info.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -276,6 +276,18 @@
"notes": "",
"translation": "Eta"
},
"fanak.desc": {
"notes": "",
"translation": "Fanak is a functional programming language that compiles to CIL (.NET). Its compiler and .NET WebAssembly runtime run entirely in the browser, fetched from the Fanak project, so the first run downloads the runtime and can take a moment."
},
"fanak.link": {
"notes": "### <tag-1> ###\n<li />\n\n### <tag-2> ###\n<a href=\"https://gitlab.com/AhmedWael216/fanak\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-3> ###\n<li />\n\n### <tag-4> ###\n<a href=\"https://ahmedwael216.gitlab.io/fanak/\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-5> ###\n<li />\n\n### <tag-6> ###\n<a href=\"{{DOCS_BASE_URL}}languages/fanak\" target=\"_blank\" rel=\"noopener\" />\n\n### <tag-7> ###\n<li />\n\n### <tag-8> ###\n<a href=\"?template=fanak\" class=\"button\" target=\"_parent\" data-template=\"fanak\" />\n\n",
"translation": "<tag-1> <tag-2>Fanak repository</tag-2> </tag-1> <tag-3> <tag-4>Fanak documentation</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>"
},
"fanak.name": {
"notes": "",
"translation": "Fanak"
},
"fennel.desc": {
"notes": "",
"translation": "Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system."
Expand Down
5 changes: 5 additions & 0 deletions src/livecodes/i18n/locales/en/language-info.ts
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,11 @@ const languageInfo = {
link: '<1><2>Official website</2></1> <3> <4>Documentation</4> </3> <5> <6>LiveCodes Documentations</6> </5>',
name: 'Eta',
},
fanak: {
desc: 'Fanak is a functional programming language that compiles to CIL (.NET). Its compiler and .NET WebAssembly runtime run entirely in the browser, fetched from the Fanak project, so the first run downloads the runtime and can take a moment.',
link: '<1> <2>Fanak repository</2> </1> <3> <4>Fanak documentation</4> </3> <5> <6>LiveCodes Documentation</6> </5> <7> <8>Load starter template</8> </7>',
name: 'Fanak',
},
fennel: {
desc: 'Fennel is a programming language that brings together the speed, simplicity, and reach of Lua with the flexibility of a lisp syntax and macro system.',
link: '<1> <2>Fennel official website</2> </1> <3> <4>Getting Started with Fennel</4> </3> <5> <6>LiveCodes Documentations</6> </5> <7> <8>Load starter template</8> </7>',
Expand Down
4 changes: 4 additions & 0 deletions src/livecodes/i18n/locales/en/translation.lokalise.json
Original file line number Diff line number Diff line change
Expand Up @@ -2628,6 +2628,10 @@
"notes": "",
"translation": "Elm Starter"
},
"templates.starter.fanak": {
"notes": "",
"translation": "Fanak Starter"
},
"templates.starter.fennel": {
"notes": "",
"translation": "Fennel Starter"
Expand Down
1 change: 1 addition & 0 deletions src/livecodes/i18n/locales/en/translation.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1003,6 +1003,7 @@ const translation = {
daisyui: 'daisyUI Starter',
diagrams: 'Diagrams Starter',
elm: 'Elm Starter',
fanak: 'Fanak Starter',
fennel: 'Fennel Starter',
fsharp: 'F# Starter',
'fsharp-wasm': 'F# (Wasm) Starter',
Expand Down
Loading
Loading