website/pages/en/index.js (118 lines of code) (raw):
/**
 * 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 Container = CompLibrary.Container;
const GridBlock = CompLibrary.GridBlock;
const siteConfig = require(process.cwd() + '/siteConfig.js');
function imgUrl(img) {
  return siteConfig.baseUrl + 'img/' + img;
}
function docUrl(doc, language) {
  return siteConfig.baseUrl + 'docs/' + (language ? language + '/' : '') + doc;
}
class Button extends React.Component {
  render() {
    return (
      <div className="pluginWrapper buttonWrapper">
        <a className="button" href={this.props.href} target={this.props.target}>
          {this.props.children}
        </a>
      </div>
    );
  }
}
Button.defaultProps = {
  target: '_self',
};
const SplashContainer = props => (
  <div className="homeContainer">
    <div className="homeSplashFade">
      <div className="wrapper homeWrapper">{props.children}</div>
    </div>
  </div>
);
const PromoSection = props => (
  <div className="section promoSection">
    <div className="promoRow">
      <div className="pluginRowBlock">{props.children}</div>
    </div>
  </div>
);
class HomeSplash extends React.Component {
  render() {
    let language = this.props.language || '';
    return (
      <SplashContainer>
        <div className="inner">
          <img width="632" height="373" src={imgUrl('print-overall.png')} />
          <h2 className="projectTitle">
            Instant Articles Builder
            <small>
              Set-up <a target="_blank" href="http://instantarticles.fb.com">
              Facebook Instant Articles</a> without coding
            </small>
          </h2>
          <PromoSection>
            <Button
              href={
                'http://github.com/facebook/' +
                'instant-articles-builder' +
                '/releases/latest'
              }
            >
              Download
            </Button>
            <Button href={docUrl('get-started.html', language)}>
              Get Started
            </Button>
          </PromoSection>
        </div>
      </SplashContainer>
    );
  }
}
const Block = props => (
  <Container
    padding={['bottom', 'top']}
    id={props.id}
    background={props.background}>
    <GridBlock align="center" contents={props.children} layout={props.layout} />
  </Container>
);
const Features = props => (
  <Block layout="fourColumn">
    {[
      {
        title: 'Point & Click',
        content: 'Visually select elements from your website',
        image: imgUrl('print-point-and-click.png'),
        imageAlign: 'top',
      },
      {
        content: 'Preview the result as you go',
        image: imgUrl('print-preview.png'),
        imageAlign: 'top',
        title: 'Preview',
      },
      {
        title: 'Refine',
        content: 'Refine your configuration with CSS selectors',
        image: imgUrl('print-css.png'),
        imageAlign: 'top',
      },
    ]}
  </Block>
);
class Index extends React.Component {
  render() {
    let language = this.props.language || '';
    return (
      <div>
        <HomeSplash language={language} />
        <div className="mainContainer">
          <Features />
        </div>
      </div>
    );
  }
}
module.exports = Index;