This repo uses yarn workspaces with node 16, and watchman.
The main website source files are located in packages/lingua-franca/src/templates/pages and the documentation files are located in packages/documentation/copy/en.
(Windows users can install watchman via chocolatey)
For switching to Node Version 16, consult this repo for Linux and Mac and this repo for Windows.
With set up done on your local machine, clone this repo and run the following commands.
git submodule update --init
yarn install
code .
# Then:
yarn bootstrap
# Now you can start up the website
yarn start
Working on this repo is done by running yarn start
- this starts up the website on port 8000
and creates a
builder worker for every package in the repo, so if you make a change outside of the site it will compile and lint etc.
Some useful knowledge you need to know:
- All packages have:
yarn build
andyarn test
- All packages use debug - which means you can do
env DEBUG="*" yarn test
to get verbose logs
Working on this repo is done by running yarn start
-- this starts up the website on port 8000
and creates a
builder worker for every package in the repo, so if you make a change outside of the site it will compile.
Deployment is done automatically through a GitHub Pages Action. Feel free to look at .github/workflows/deploy-website.yml to see how it works!
If you want to know in-depth how the framework behind this website was originally architected, see this YouTube video.
The Lingua-Franca website is organized under three packages whose purposes are outlined below.
The main website for Lingua Franca, a Gatsby website which is statically deployed. You can run it via:
yarn start
Generic Pages (i.e., pages tied solely to the website and not to the documentation handbook) are handled solely by the lingua-franca package.
To add yourself to the list of community contributors, simply add your information to the Community.tsx
file.
For more information on adding pages and contributors, consult the README in the lingua-franca
package.
The Documentation package serves as the primary point for adding documentation on the Lingua Franca language. Markdown pages defined in this packages are automatically added to the Website Handbook. The Handbook is organized hierarchically by rules defined within the Documentation package.
For more info on how to add/modify handbook pages, consult the README under the documentation
package.
The handbook-epub package converts the handbook defined in documentation into an Epub/PDF friendly version for viewing.
An epub file is automatically generated from the handbook files and is published here. You can also access a PDF version of the handbook here.
The original code base of this website is based on the TypeScript website which is licenced under the MIT License (see the LICENSE-CODE file). Other content in this repository is licened under the Creative Commons Attribution 4.0 International Public License (see the LICENSE file). Copyright of changes in this repository after 01/12/2021 is held by the Lingua Franca contributors.