/**
* Copyright (c) 2017-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
const React = require('react');
const CompLibrary = require('../../core/CompLibrary.js');
const MarkdownBlock = CompLibrary.MarkdownBlock; /* Used to read markdown */
const Container = CompLibrary.Container;
const GridBlock = CompLibrary.GridBlock;
class HomeSplash extends React.Component {
render() {
const {siteConfig, language = ''} = this.props;
const {baseUrl, docsUrl} = siteConfig;
const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`;
const langPart = `${language ? `${language}/` : ''}`;
const docUrl = doc => `${baseUrl}${docsPart}${langPart}${doc}`;
const SplashContainer = props => (
PascaLIGO
CameLIGO
ReasonLIGO (coming soon)
{/*
Camligo
*/}
// variant defining pseudo multi-entrypoint actions type action is | Increment of int | Decrement of int
function add (const a : int ; const b : int) : int is block {'{ skip }'} with a + b
function subtract (const a : int ; const b : int) : int is block {'{ skip }'} with a - b
// real entrypoint that re-routes the flow based on the action provided function main (const p : action ; const s : int) : (list(operation) * int) is block {'{ skip }'} with ((nil : list(operation)), case p of | Increment(n) -> add(s, n) | Decrement(n) -> subtract(s, n) end)
type action = | Increment of int | Decrement of int
let add (a: int) (b: int) : int = a + b
let subtract (a: int) (b: int) : int = a - b
(* real entrypoint that re-routes the flow based on the action provided *)
let%entry main (p : action) storage = let storage = match p with | Increment n -> add storage n | Decrement n -> subtract storage n in (([] : operation list), storage)
);
const TryOut = () => (
{[
{
content:
'To make your landing page more attractive, use illustrations! Check out ' +
'[**unDraw**](https://undraw.co/) which provides you with customizable illustrations which are free to use. ' +
'The illustrations you see on this page are from unDraw.',
image: `${baseUrl}img/undraw_code_review.svg`,
imageAlign: 'left',
title: 'Wonderful SVG Illustrations',
},
]}
);
const Description = () => (
{[
{
content:
'This is another description of how this project is useful',
image: `${baseUrl}img/undraw_note_list.svg`,
imageAlign: 'right',
title: 'Description',
},
]}
);
const LearnHow = () => (
{[
{
content:
'Each new Docusaurus project has **randomly-generated** theme colors.',
image: `${baseUrl}img/undraw_youtube_tutorial.svg`,
imageAlign: 'right',
title: 'Randomly Generated Theme Colors',
},
]}
);
const Features = () => (
Features
{[
{
content: 'Write in PascaLIGO (pascal-like syntax) or CameLIGO (caml-like syntax). If you know OCaml, you can also add your own syntax.',
image: `${baseUrl}img/edit.svg`,
imageAlign: 'top',
title: 'Syntax Agnostic',
},
{
content: 'Write types, then code, and benefit from the safety coming from type systems.',
image: `${baseUrl}img/lightning.svg`,
imageAlign: 'top',
title: 'Strong Type System',
},
{
content: 'With Granary, you can use LIGO as a lib from NodeJS.',
image: `${baseUrl}img/puzzle.svg`,
imageAlign: 'top',
title: 'Easy Integration',
}
]}
);
const Roadmap = () => (
{[
{
content:
"
June 2019
" +
"
" +
"
First public release
" +
"
PascaLIGO and CameLIGO syntaxes
" +
"
Docs and Tutorials
" +
"
Integration testing in ReasonML/JS with Granary
" +
"
" +
"
July 2019
" +
"
" +
"
Try LIGO online editor
" +
"
Unit testing toolkit
" +
"
ReasonLIGO syntax support
" +
"
Repository with best practices & patterns for LIGO
" +
"
" +
"
August 2019
" +
"" +
"Long term plans will be announced soon" +
"",
image: ``,
imageAlign: 'right',
title: 'Roadmap',
},
]}