Break out community section on website

This commit is contained in:
starkos 2021-03-26 09:53:12 -04:00
parent fdd7550ee1
commit d32e893d47
29 changed files with 209 additions and 203 deletions

View File

@ -1,10 +1,6 @@
name: CI Workflow
on:
push:
paths-ignore: ['website/**']
pull_request:
paths-ignore: ['website/**']
on: [push, pull_request]
jobs:
linux:

View File

@ -16,7 +16,7 @@ npm start
This command starts a local development server and open up a browser window. Most changes are reflected live without having to restart the server.
To see a list of broken links (mistakes happen!), be sure to run `npm run build` before submitting updates.
To see a list of broken links (mistakes happen!), be sure to run `npm run build` before submitting updates. Your changes will be rejected if they contain broken links.
## Build
@ -39,3 +39,5 @@ Target repo for deployment is specified in `docusaurus.config.js`.
* `projectName` is a target repository: github.com/premake/**premake.github.io**
`docusaurus deploy` command is used to automatically build and push static files into [premake.github.io](https://github.com/premake/premake.github.io) repo.
Deployments are authenticated by a key pair. The private key is hosted in `premake-core` in **Settings > Secrets**. The public key is host in `premake.github.io` in **Settings > Deploy Keys**.

View File

@ -2,24 +2,9 @@
title: Modules
---
## Built-In Modules ##
These add-on modules are available from other developers; follow the links for more information. If you've developed a module you would like to share with others, feel free to [add a link](https://github.com/premake/premake-core/edit/master/website/community/modules.md) to the list!
These modules are shipped as part of Premake, and may be used out of the box with any source or binary package.
* [Android](https://github.com/premake/premake-core/tree/master/modules/android) : Android support
* [CodeLite](https://github.com/premake/premake-core/tree/master/modules/codelite) : [CodeLite](http://www.codelite.org) support
* [D](https://github.com/premake/premake-core/tree/master/modules/d) : [D](http://dlang.org) programming language support
* [gmake](https://github.com/premake/premake-core/tree/master/modules/gmake) : Makefile generator (deprecated by gmake2)
* [gmake2](https://github.com/premake/premake-core/tree/master/modules/gmake2) : Makefile generator
* [Raw](https://github.com/premake/premake-core/tree/master/modules/raw) : Generate raw representation of Premake structures
* [Visual Studio](https://github.com/premake/premake-core/tree/master/modules/vstudio) : Visual Studio (2005 - 2019) support
* [XCode](https://github.com/premake/premake-core/tree/master/modules/xcode) : XCode support
## Third-Party Modules ##
These add-on modules are available from other developers; follow the links for more information. If you've developed a module you would like to share with others, feel free to add a link to the list!
### IDE Modules ###
## IDE Modules
* [Android Studio](https://github.com/polymonster/premake-android-studio) : Generate .gradle and CMakeLists for Android Studio
* [Code::Blocks](https://github.com/chris-be/premake-codeblocks) : [Code::Blocks](http://www.codeblocks.org/) support
@ -28,7 +13,7 @@ These add-on modules are available from other developers; follow the links for m
* [SlickEdit](https://github.com/TurkeyMan/premake-slickedit) : [SlickEdit](http://www.slickedit.com) support
* [qmake](https://github.com/Gaztin/premake-qmake) : [QtCreator](https://doc.qt.io/qtcreator/creator-overview.html) and [qmake](http://doc.qt.io/qt-5/qmake-manual.html) support
### Platform Modules ###
## Platform Modules
* [Android.mk](https://github.com/Meoo/premake-androidmk) : Generator for Android NDK's [ndk-build system](https://developer.android.com/ndk/guides/build.html)
* [Emscripten](https://github.com/TurkeyMan/premake-emscripten) : [Emscripten](http://kripken.github.io/emscripten-site/) support
@ -38,12 +23,12 @@ These add-on modules are available from other developers; follow the links for m
* [WinRT](https://github.com/LORgames/premake-winrt) : Windows Runtime support
* [Xbox 360](https://github.com/redorav/premake-xbox360) : Xbox 360 support
### Build System Modules ###
## Build System Modules
* [CMake](https://github.com/Geequlim/premake-modules/tree/master/cmake) : CMakeLists exporter for premake
* [Ninja](https://github.com/jimon/premake-ninja) : [Ninja](https://github.com/martine/ninja) support
### Tool Modules ###
## Tool Modules
* [Autoconf](https://github.com/Blizzard/premake-autoconf) : Autoconf tools for premake
* [CompilationUnit](https://github.com/dcourtois/premake-compilationunit) : [Single compilation unit](https://en.wikipedia.org/wiki/Single_Compilation_Unit) support
@ -54,7 +39,7 @@ These add-on modules are available from other developers; follow the links for m
* [Pkgconfig](https://github.com/Geequlim/premake-modules/tree/master/pkgconfig) : pkg-config loader for premake
* [Platform test](https://github.com/tarruda/premake-platform-test) : Perform platform checks in your premake configuration
### Library Modules ###
## Library Modules
* [Qt](https://github.com/dcourtois/premake-qt) : [Qt](https://www.qt.io) support
* [WIX](https://github.com/mikisch81/premake-wix) : Premake extension to support [WIX](http://wixtoolset.org/) project files on Visual Studio

View File

@ -1,13 +1,16 @@
---
title: Who Uses Premake
title: Showcase
---
If you use Premake, feel free to add your organization or project to the lists below.
A few of the people and projects using Premake. If you're using Premake to do something interesting, [add it to the list](https://github.com/premake/premake-core/edit/master/website/community/showcase.md)!
Be sure to also check out our **[project sponsors](https://opencollective.com/premake)** and **[code contributors](https://github.com/premake/premake-core/graphs/contributors)**!
## Organizations Using Premake ##
* [Air Navigation](http://airnavigation.aero/) (former Xample)
* [Air Navigation](http://airnavigation.aero/)
* [Blizzard Entertainment](http://blizzard.com)
* [CitizenFX Collective](https://github.com/citizenfx)
* [Centaurean](https://github.com/centaurean)
* [Fresh3D](http://www.fresh3d.com/)
* [Kalydo](http://www.kalydo.com/)
@ -17,22 +20,17 @@ If you use Premake, feel free to add your organization or project to the lists b
* [Utomik](https://www.utomik.com/)
* [WhiteMoonDreams](http://www.whitemoondreams.com/)
## Open Source Projects Using Premake ##
## Projects Using Premake ##
* [0 A.D.](https://play0ad.com/)
* [Box2D](http://box2d.org)
* [Bullet Physics Library](http://bulletphysics.org)
* [CppSharp](https://github.com/mono/CppSharp)
* [Decoda Lua IDE](https://github.com/unknownworlds/decoda)
* [Density](https://github.com/centaurean/density)
* [GpuCV](http://picoforge.int-evry.fr/cgi-bin/twiki/view/Gpucv/Web/WebHome)
* [FiveM](https://fivem.net)
* [Multi Theft Auto](https://github.com/multitheftauto/mtasa-blue)
* [OOLua](http://oolua.org/)
* [Open Dynamics Engine](http://www.ode.org/)
* [The Unofficial OpenGL SDK](http://glsdk.sourceforge.net/docs/html/index.html), and the companion [Learning Modern Graphics eBook](http://alfonse.bitbucket.org/oldtut/)
* [TinyXML++](https://github.com/rjpcomputing/ticpp)
* [VDrift](http://vdrift.net/)
* [PacketNgin](https://github.com/packetngin/rtos)
* [Recast Navigation](https://github.com/recastnavigation/recastnavigation)
* [wxFormBuilder](https://github.com/wxFormBuilder/wxFormBuilder)
* [Hazel Game Engine](https://github.com/TheCherno/Hazel)

View File

@ -0,0 +1,25 @@
---
title: Support
---
Ask questions, get help, and join Premake's growing community of developers and users!
## News
For the latest news about Premake, [follow **@premakeapp** on Twitter](https://twitter.com/premakeapp).
## GitHub Discussions
Visit our [Discussions area on GitHub](https://github.com/premake/premake-core/discussions) to ask questions, share your knowledge, and show off your work!
## Stack Overflow
Stack Overflow is a popular developer Q&A site and a great place for questions about scripting with Lua or Premake. Browse the existing questions tagged with **[premake](https://stackoverflow.com/questions/tagged/premake)** or **[lua](https://stackoverflow.com/questions/tagged/lua)**.
## Contributing
Got an idea you want to see in Premake? Great! Check out our [Contributing Guidelines](https://github.com/premake/premake-core/blob/master/CONTRIBUTING.md) and feel free to send questions to the resources above. We look forward to your first pull request!
## Issues & Feature requests
We track issues and feature requests on [our GitHub tracker](https://github.com/premake/premake-core/issues). If you're looking for ways to contribute there are lots of ideas here! Be sure to check our [Contributing Guidelines](https://github.com/premake/premake-core/blob/master/CONTRIBUTING.md) before opening any new issues.

View File

@ -4,7 +4,7 @@ title: Build Settings
Premake provides an ever-growing list of build settings that you can tweak; the following table lists some of the most common configuration tasks with a link to the corresponding functions. For a comprehensive list of available settings and functions, see the [Project API](project-api) and [Lua Library Additions](lua-library-additions).
If you think something should be possible and you can't figure out how to do it, see [Getting Help](getting-help).
If you think something should be possible and you can't figure out how to do it, see [Support](/community/support).
| | |
|-----------------------------------------------|----------------------|

View File

@ -4,7 +4,7 @@ title: Embedding Modules
*This section only applies if you want to embed your module into a custom build of Premake for easier distribution. If you're not doing that, you can skip it.*
Premake includes [a number of modules](modules) as part of the official builds, with more being added regularly. These modules are embedded directly into Premake along with the core scripts to enable easy distribution of a single, self-contained executable.
Premake includes a number of modules as part of the official builds, with more being added regularly. These modules are embedded directly into Premake along with the core scripts to enable easy distribution of a single, self-contained executable.
If you are creating a custom build of Premake, you can easily embed your own modules by following the instructions below. Also take a look at Premake's own set of modules in the `modules/` folder for some real working examples.

View File

@ -8,7 +8,7 @@ We've structured (or are in the process of structuring, with the intention of be
### Use the Source! ###
Before you start hacking away, you should be comfortable browsing through the [source code of Premake](http://github.com/premake/premake-core) or [the third-party module](modules) you wish to modify. You will need to be able to identify the Lua function that emits the markup or otherwise implements the feature you wish to change before you can hook into it.
Before you start hacking away, you should be comfortable browsing through the [source code of Premake](http://github.com/premake/premake-core) or [the third-party module](/community/modules) you wish to modify. You will need to be able to identify the Lua function that emits the markup or otherwise implements the feature you wish to change before you can hook into it.
If you haven't already, you should [grab a source code package, or clone the code repository on GitHub](getting-premake) to use as a reference.

View File

@ -1,11 +0,0 @@
---
title: Getting Help
---
For questions about **using Premake** and **authoring project scripts,** please [ask on StackOverflow, adding the #premake tag to your question](http://stackoverflow.com/questions/tagged/premake). More people (including the Premake developers) will be able to see and respond to your questions, and you will have the opportunity to reward the best answers.
If you found a bug or would like to request a feature, you can open a ticket in [the issue tracker on GitHub](https://github.com/premake/premake-core/issues) (for Premake 5.x; the Premake 4.x issue tracker is [over here](https://github.com/premake/premake-4.x/issues)).
### Frequently Asked Questions ###
* [How do I reuse configuration settings between different projects?](sharing-configuration-settings)

View File

@ -11,8 +11,7 @@ Welcome to the **Premake 5 User Guide**!
* [Getting Premake](Getting-Premake.md)
* [Using Premake](Using-Premake.md)
* [Building Premake](Building-Premake.md)
* [Getting Help](Getting-Help.md)
* [Who Uses Premake?](Who-Uses-Premake.md)
* [Getting Help](/community/support)
## Writing Premake Scripts ##
@ -41,7 +40,7 @@ Welcome to the **Premake 5 User Guide**!
* [Project API](Project-API.md)
* [Lua Library Additions](Lua-Library-Additions.md)
* [Available Modules](Modules.md)
* [Available Modules](/community/modules)
* [Supported Feature Matrix](Feature-Matrix.md)
* [What's New in 5.0](Whats-New-in-5.0.md)
* [Migrating From 4.x](Migrating-From-4.x.md)

View File

@ -87,5 +87,5 @@ local luckyEight = lucky.makeNumberLucky(8)
That's all there to it!
Note that if you decide you want to [share your module](modules) with other people, there are a [few other considerations to make](sharing-your-module).
Note that if you decide you want to [share your module](/community/modules) with other people, there are a [few other considerations to make](sharing-your-module).

View File

@ -22,7 +22,7 @@ When updating your version number between releases, try to follow the convention
## Publishing
If you intend your module to be available to the public, consider creating a new repository on [GitHub](http://github.com/) (where Premake is hosted) for it, and taking a look at some of the [existing third-party modules](modules) for examples. Some tips:
If you intend your module to be available to the public, consider creating a new repository on [GitHub](http://github.com/) (where Premake is hosted) for it, and taking a look at some of the [existing third-party modules](/community/modules) for examples. Some tips:
* Name your repository something like `premake-modulename`
@ -30,4 +30,4 @@ If you intend your module to be available to the public, consider creating a new
* Set up a wiki and briefly document any new features and functions it adds. See [Premake's own documentation](https://github.com/premake/premake-core/wiki) for lots of examples.
Finally, regardless of where you host it, be sure to add a link on the [Available Modules](modules) page to help people find it.
Finally, regardless of where you host it, be sure to add a link on the [Available Modules](/community/modules) page to help people find it.

View File

@ -2,7 +2,7 @@
title: Using Modules
---
Premake can be extended through the use of third-party modules. Modules can add support for new toolsets, languages, and frameworks as well as entirely new features. We keep [a community-maintained list of modules here on the wiki](modules).
Premake can be extended through the use of third-party modules. Modules can add support for new toolsets, languages, and frameworks as well as entirely new features. See [Modules](/community/modules) for some examples of what the community has already created.
To use a module, download or clone the module's repository to [one of Premake's search paths](locating-scripts), making sure that the destination folder has the same name as the module's main script, e.g. **qt/qt.lua**.

View File

@ -68,7 +68,7 @@ Premake 5.0 generated projects can support:
* 32- and 64-bit builds
* Xbox 360 (Visual Studio only)
[Add-on modules](modules) can extend Premake with support for additional languages, frameworks, and toolsets.
[Add-on modules](/community/modules) can extend Premake with support for additional languages, frameworks, and toolsets.
In addition to its project generation capabilities, Premake also provides a complete [Lua](http://lua.org/) scripting environment, enabling the automation of complex configuration tasks such as setting up new source tree checkouts or creating deployment packages. These scripts will run on any platform, ending batch/shell script duplication.

View File

@ -2,6 +2,8 @@
title: What's New in 5.0
---
*We haven't been doing a great job of keeping this up-to-date, but it does still hit the major highlights.*
## Name Changes ##
* The executable is now named **premake5**
@ -16,7 +18,7 @@ title: What's New in 5.0
* [Custom Rules](custom-rules) (still experimental)
* [Makefile Projects](makefile-projects)
* [Modules](modules)
* [Modules](developing-modules)
* [Per-Configuration File Lists](files)
* [Per-File Configurations](configuration)
* [Per-Project Configurations](configurations-and-platforms)

View File

@ -12,8 +12,6 @@ architecture ("value")
* `x86_64`
* `ARM`
More values may be added by [add-on modules](Modules.md).
### Applies To ###
Project configurations.

View File

@ -12,8 +12,6 @@ debugformat "format"
|-------------|---------------------------------------------------------------------------------------------|
| c7 | Specifies that MSVC should store debuginfo in the objects rather than a separate .pdb file. |
More values may be added by [add-on modules](Modules.md).
**Note for Visual Studio Users:** Use [editAndContinue](editAndContinue.md) to control the `/Zi` and `/ZI` switches; see [this discussion](https://github.com/premake/premake-core/issues/1425) for more information.
### Applies To ###

View File

@ -15,8 +15,6 @@ exceptionhandling ("value")
| Off | Turn off exceptions. |
| SEH | Turn on exceptions and use [structured exception handling](https://msdn.microsoft.com/en-us/library/windows/desktop/ms680657(v=vs.85).aspx) when available. |
More values may be added by [add-on modules](Modules.md).
### Applies To ###

View File

@ -41,9 +41,6 @@ flags { "flag_list" }
| C90 | Pass the c90 flag to the gcc/clang compilers (msvc ignores this currently) |
| C99 | Pass the c99 flag to the gcc/clang compilers (msvc ignores this currently) |
Flags are often extended by external modules:
* [D language flags](flags.md)
### Applies To ###
Project and file configurations, though not all flags are yet supported for files across all exporters.

View File

@ -15,8 +15,6 @@ inlining ("value")
| Explicit | Only inline functions explicitly marked with the `inline` keyword. |
| Auto | Allow the compiler to inline functions automatically. |
More values may be added by [add-on modules](Modules.md).
### Applies To ###
Project configurations.

View File

@ -16,7 +16,6 @@ language ("lang")
| `F#` | Built-in; always available |
| `D` | Built-in; always available ([API and support](https://github.com/premake/premake-dlang/wiki)) |
More languages may be available via other [add-on modules](Modules.md).
### Applies To ###

View File

@ -14,8 +14,6 @@ rtti ("value")
| On | Turn on RTTI. |
| Off | Turn off RTTI. |
More values may be added by [add-on modules](Modules.md).
### Applies To ###

View File

@ -20,8 +20,6 @@ If no system is specified, Premake will identify and target the current operatin
* windows
* xbox360
More values may be added by [add-on modules](Modules.md).
### Applies To ###
Project configurations.

View File

@ -8,7 +8,7 @@ If no toolset is specified for a configuration, the system or IDE default will b
### Parameters ###
`identifier` is a string identifier for the toolset. Premake includes the following toolsets by default; others may be added by third-party modules:
`identifier` is a string identifier for the toolset. Premake includes the following toolsets by default.
| **Toolset identifier** | **Description** |
|------------|------------------------------------------------|

View File

@ -1,100 +1,122 @@
module.exports = {
title: 'Premake',
tagline: 'Powerfully simple build configuration',
url: 'https://premake.github.io/',
baseUrl: '/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'throw',
favicon: 'img/premake-logo.png', // FIXME: make actual favicon.ico file
organizationName: 'premake',
projectName: 'premake.github.io',
themeConfig: {
prism: {
additionalLanguages: ['lua'],
},
navbar: {
title: 'Premake',
logo: {
alt: 'Premake Logo',
src: 'img/premake-logo.png',
},
items: [
{
to: 'docs/',
activeBasePath: 'docs',
label: 'Docs',
position: 'left',
},
{
to: '/download',
label: 'Download',
position: 'left'
},
{
href: 'https://github.com/premake/premake-core',
label: 'GitHub',
position: 'left',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Documentation',
items: [
{
label: 'Premake 5.0',
to: 'docs/',
},
{
label: 'Premake 4.x',
to: 'https://github.com/premake/premake-4.x/wiki',
},
],
},
{
title: 'Community',
items: [
{
label: 'Who uses Premake',
href: 'docs/Who-Uses-Premake',
},
{
label: 'StackOverflow',
href: 'https://stackoverflow.com/questions/tagged/premake',
},
{
label: 'Twitter',
href: 'https://twitter.com/premakeapp',
},
],
},
{
title: 'More',
items: [
{
label: 'GitHub',
href: 'https://github.com/premake/premake-core/',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Premake`,
},
},
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
sidebarPath: require.resolve('./sidebars.js'),
editUrl: 'https://github.com/premake/premake-core/edit/master/website/',
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
},
],
]
title: 'Premake',
tagline: 'Powerfully simple build configuration',
url: 'https://premake.github.io/',
baseUrl: '/',
onBrokenLinks: 'throw',
onBrokenMarkdownLinks: 'throw',
favicon: 'img/premake-logo.png', // FIXME: make actual favicon.ico file
organizationName: 'premake',
projectName: 'premake.github.io',
themeConfig: {
prism: {
additionalLanguages: ['lua'],
},
navbar: {
title: 'Premake',
logo: {
alt: 'Premake Logo',
src: 'img/premake-logo.png',
},
items: [
{
to: '/docs/',
activeBasePath: 'docs',
label: 'Docs',
position: 'left',
},
{
to: '/download',
label: 'Download',
position: 'left'
},
{
to: '/community/support',
label: 'Community',
position: 'left',
activeBaseRegex: `/community/`
},
{
href: 'https://github.com/premake/premake-core',
label: 'GitHub',
position: 'left',
},
],
},
footer: {
style: 'dark',
links: [
{
title: 'Documentation',
items: [
{
label: 'Premake 5.0',
to: 'docs/',
},
{
label: 'Premake 4.x',
to: 'https://github.com/premake/premake-4.x/wiki',
},
],
},
{
title: 'Community',
items: [
{
label: 'StackOverflow',
href: 'https://stackoverflow.com/questions/tagged/premake',
},
{
label: 'Twitter',
href: 'https://twitter.com/premakeapp',
},
{
label: 'Help',
to: '/community/support'
}
],
},
{
title: 'More',
items: [
{
label: 'GitHub',
href: 'https://github.com/premake/premake-core/',
},
],
},
],
copyright: `Copyright © ${new Date().getFullYear()} Premake`,
},
},
presets: [
[
'@docusaurus/preset-classic',
{
docs: {
sidebarPath: require.resolve('./sidebars.js'),
editUrl: 'https://github.com/premake/premake-core/edit/master/website/',
showLastUpdateAuthor: true,
showLastUpdateTime: true,
},
theme: {
customCss: require.resolve('./src/css/custom.css'),
},
},
],
],
plugins: [
[
'@docusaurus/plugin-content-docs',
{
id: 'community',
path: 'community',
editUrl: 'https://github.com/premake/premake-core/edit/master/website/',
routeBasePath: 'community',
sidebarPath: require.resolve('./sidebars-community.js'),
showLastUpdateAuthor: true,
showLastUpdateTime: true,
}
]
]
};

View File

@ -0,0 +1,7 @@
module.exports = {
community: [
'support',
'showcase',
'modules'
]
};

View File

@ -1,5 +1,5 @@
module.exports = {
mainSidebar: [
docs: [
{
collapsed: true,
type: 'category',
@ -9,9 +9,7 @@ module.exports = {
'What-Is-Premake',
'Building-Premake',
'Getting-Premake',
'Using-Premake',
'Getting-Help',
'Who-Uses-Premake'
'Using-Premake'
]
},
{

View File

@ -1,21 +1,23 @@
import React from 'react';
const Sponsors = ({ width }) => {
width = width ?? 800;
return (
<div className="sponsors">
<div>
<a href="https://opencollective.com/premake#sponsors" target="_blank">
<img src={`https://opencollective.com/premake/sponsors.svg?width=${width}&avatarHeight=92&button=false`} />
</a>
</div>
<div>
<a href="https://opencollective.com/premake#backers" target="_blank">
<img src={`https://opencollective.com/premake/backers.svg?width=${width}&button=false`} />
</a>
</div>
</div>
);
};
export default Sponsors;
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

@ -90,10 +90,7 @@ const Download = () =>
<section className="sponsors">
<h1>Sponsors</h1>
<p>
Continued Premake development is made possible by our
generous <Link to="https://opencollective.com/premake">OpenCollective</Link> sponsors
and <Link to="https://github.com/premake/premake-core/graphs/contributors">code
contributors</Link>. 🙌
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>