/** * 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 storage = int 

(* variant defining pseudo multi-entrypoint actions *)

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)
{props.children}
); const Logo = props => (
Project Logo
); const ProjectTitle = () => (

{siteConfig.tagline}

); const PromoSection = props => (
{props.children}
); const Button = props => (
{props.children}
); return (
); } } class Index extends React.Component { render() { const {config: siteConfig, language = ''} = this.props; const {baseUrl} = siteConfig; const Block = props => ( ); const FeatureCallout = () => (

Feature Callout

These are features of this project
); 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', }, ]}
); const Partners = () => { if ((siteConfig.partners || []).length === 0) { return null; } const showcase = siteConfig.partners .filter(user => user.pinned) .map(user => ( {user.caption} )); const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page; return (

Partners

{showcase}
{/*
More {siteConfig.title} Users
*/}
); }; const Team = () => { if ((siteConfig.team || []).length === 0) { return null; } const showcase = siteConfig.team .filter(user => user.pinned) .map(user => ( {user.caption}

{user.caption}

)); const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page; return (

Team

{showcase}
{/*
More {siteConfig.title} Users
*/}
); }; return (
{/* */} {/* */} {/* {/* */} {/* */} {/* */}
); } } module.exports = Index;