Initial community commit

This commit is contained in:
Jef 2024-09-24 14:54:57 +02:00
parent 537bcbc862
commit fc06254474
16440 changed files with 4239995 additions and 2 deletions

View file

@ -0,0 +1,25 @@
import React from 'react';
const Column = ({ children }) =>
<div className="col">
{children}
</div>;
const Container = ({ children, className }) =>
<div className={`container ${className ?? ""}`}>
{children}
</div>;
const Row = ({ children }) =>
<div className="row">
{children}
</div>;
export {
Column,
Container,
Row
};

View file

@ -0,0 +1,23 @@
import React from 'react';
export default function Sponsors() {
const containerRef = React.useRef();
React.useEffect(() => {
const script = document.createElement('script');
script.id = 'opencollective-script';
script.src = 'https://opencollective.com/premake/banner.js';
script.async = true;
containerRef.current.appendChild(script);
return () => {
// Short-circuit "load once" check in OpenCollective script
window.OC = null;
}
}, [containerRef]);
return (
<div ref={containerRef} />
);
}

View file

@ -0,0 +1,102 @@
/* stylelint-disable docusaurus/copyright-header */
/**
* Any CSS included here will be global. The classic template
* bundles Infima by default. Infima is a CSS framework designed to
* work well for content-centric websites.
*/
/* You can override the default Infima variables here. */
:root {
--ifm-color-primary: #2b86cc;
--ifm-color-primary-dark: #2779b8;
--ifm-color-primary-darker: #2572ad;
--ifm-color-primary-darkest: #1e5e8f;
--ifm-color-primary-light: #3a92d6;
--ifm-color-primary-lighter: #4498d8;
--ifm-color-primary-lightest: #63a9de;
--ifm-code-font-size: 95%;
--ifm-navbar-item-padding-horizontal: 8px;
}
.docusaurus-highlight-code-line {
background-color: rgb(72, 77, 91);
display: block;
margin: 0 calc(-1 * var(--ifm-pre-padding));
padding: 0 var(--ifm-pre-padding);
}
/**
* Navbar styles
*/
.navbar .react-toggle {
margin-left: var(--ifm-navbar-item-padding-horizontal)
}
/**
* Home page styles
*/
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.hero-banner {
padding: 4rem 0;
text-align: center;
position: relative;
overflow: hidden;
}
@media screen and (max-width: 966px) {
.hero-banner {
padding: 2rem;
}
}
.features {
display: flex;
align-items: center;
padding: 2rem 0;
width: 100%;
}
.feature-image {
height: 200px;
width: 200px;
}
.buttons {
display: flex;
align-items: center;
justify-content: center;
}
/**
* Download page styles
*/
main.download {
padding: 2rem 0;
}
main.download .card {
padding: 0 1rem;
}
main.download section.sponsors {
margin-top: 1rem;
}
main.download .download-links {
list-style-type: none;
}
main.download .inline-image {
padding-right: 8px;
}

View file

@ -0,0 +1,108 @@
import React from 'react';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import { Column, Container, Row } from '../components/Grid';
import Sponsors from '../components/Sponsors';
const LATEST_VERSION = '5.0.0-beta1';
const DownloadLink = ({ arch }) => {
let filename, label, icon;
switch (arch) {
case 'macos':
filename = 'macosx.tar.gz';
label = 'MacOS';
icon = 'fa-apple';
break;
case 'linux':
filename = 'linux.tar.gz';
label = 'Linux';
icon = 'fa-linux';
break;
case 'src':
filename = 'src.zip';
label = 'Source Code';
icon = 'fa-code';
break;
case 'windows':
filename = 'windows.zip';
label = 'Windows';
icon = 'fa-windows';
break;
}
return (
<li>
<i className={`inline-image fa ${icon}`}></i>
<Link to={`https://github.com/premake/premake-core/releases/download/v${LATEST_VERSION}/premake-${LATEST_VERSION}-${filename}`}>
<b>{label}</b>
</Link>
</li>
);
};
const Download = () =>
<Layout title="Download">
<main className="download">
<Container className="intro">
<Row>
<Column>
<h1>Download Premake</h1>
<p>
Premake is a self-contained, single file command line executable which should build and run pretty much everywhere.
See <Link to="/docs/using-premake">Using Premake</Link> for usage instructions and help getting started.
</p>
<p>
The latest released version is <b>v{LATEST_VERSION}</b>. <Link to="https://github.com/premake/premake-core/releases">See all releases</Link>.
</p>
</Column>
</Row>
</Container>
<Container>
<Row>
<Column>
<h3>Pre-Built Binaries</h3>
<p>Binaries simply need to be unpacked and placed somewhere on the system search path or any other convenient location.</p>
<ul className="download-links">
<DownloadLink arch="windows" />
<DownloadLink arch="linux" />
<DownloadLink arch="macos" />
</ul>
</Column>
<Column>
<h3>Build It Yourself</h3>
<p>
The source code package includes project files for all supported toolsets.
See <Link to="https://github.com/premake/premake-core/blob/master/BUILD.txt">BUILD.txt</Link> for
build instructions.
</p>
<ul className="download-links">
<DownloadLink arch="src" />
</ul>
<p>
The latest sources (without prebuilt project files) are available
on <Link to="https://github.com/premake/premake-core">GitHub</Link>.
See <Link to="https://github.com/premake/premake-core/blob/master/BUILD.txt">BUILD.txt</Link> for
build instructions.
</p>
</Column>
</Row>
<Row>
<Column>
<section className="sponsors">
<h1>Sponsors</h1>
<p>
Continued Premake development is made possible by our <b><Link to="https://opencollective.com/premake">OpenCollective sponsors</Link></b> and <b><Link to="https://github.com/premake/premake-core/graphs/contributors">code contributors</Link></b>. 🙌
</p>
<Sponsors />
</section>
</Column>
</Row>
</Container>
</main>
</Layout>;
export default Download;

View file

@ -0,0 +1,81 @@
import React from 'react';
import Layout from '@theme/Layout';
import Link from '@docusaurus/Link';
import { Container, Column, Row } from '../components/Grid';
const Banner = () =>
<Container className="banner">
<img className="feature-image" src="/img/premake-logo.png" alt="Premake logo" />
<h1 className="hero__title">Premake</h1>
<p className="hero__subtitle">Powerfully simple build configuration</p>
<div className=".buttons">
<Link
className="button button--outline button--primary button--lg"
to="docs/">
Get Started
</Link>
&nbsp;&nbsp;
<Link
className="button button--outline button--primary button--lg"
to="download">
Download
</Link>
</div>
</Container>;
const Feature = ({ title, children }) =>
<Column>
<h3>{title}</h3>
<div>{children}</div>
</Column>;
function Home() {
return (
<Layout>
<header className="hero hero-banner shadow--lw">
<Banner />
</header>
<main className="home">
<section className="features">
<Container>
<Row>
<Feature title="Easy to Learn, Easy to Use">
<p>
Describe your software project just once, using Premake's simple and easy to read
syntax, and build it everywhere.
</p>
<p>
&#8594; <Link to="docs/your-first-script">See an example</Link>
</p>
</Feature>
<Feature title="Script Once, Target Many">
<p>
Generate project files for Visual Studio, GNU Make, Xcode, CodeLite, and more
across Windows, Mac OS X, and Linux.
</p>
<p>
&#8594; <Link to="docs/using-premake">See the full list</Link>
</p>
</Feature>
<Feature title="Full Powered">
<p>
Use the built-in general purpose <Link to="https://www.lua.org">Lua scripting
engine</Link> (plus lots of extras) to make build configuration tasks a breeze.
</p>
<p>
&#8594; <Link to="docs">Learn more</Link>
</p>
</Feature>
</Row>
</Container>
</section>
</main>
</Layout>
);
}
export default Home;