/**
* 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
{/*
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)
{props.children}
);
const Logo = props => (
);
const ProjectTitle = () => (
{siteConfig.tagline}
);
const PromoSection = props => (
);
const Button = props => (
);
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 => (
));
const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page;
return (
Partners
{showcase}
{/*
*/}
);
};
const Team = () => {
if ((siteConfig.team || []).length === 0) {
return null;
}
const showcase = siteConfig.team
.filter(user => user.pinned)
.map(user => (
{user.caption}
));
const pageUrl = page => baseUrl + (language ? `${language}/` : '') + page;
return (
);
};
return (
{/*
*/}
{/*
*/}
{/* {/*
*/}
{/*
*/}
{/*
*/}
);
}
}
module.exports = Index;