/** * 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 FeatureCard = props => (

{props.title}

{props.content}

); const Features = () => (

Features

{[ { content: "Write types, then code, and benefit from the safety coming from type systems.", image: `${baseUrl}img/strong-type-system.svg`, title: "Strong Type System" }, { 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/syntax-agnostic.svg`, title: "Syntax Agnostic" }, { content: "With Granary, you can use LIGO as a lib from NodeJS.", image: `${baseUrl}img/easy-integration.svg`, title: "Easy Integration" } ].map(FeatureCard)}
); 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 PartnerShowcase = siteConfig.partners .filter(user => user.pinned) .map(user => ( {user.caption} )); return (
{PartnerShowcase} {/*
*/}

Our Partners

We are not alone in this world -- here're some guys who support us

); }; 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;