This repository contains the source code for the Envoy website, built using Pelican, a static site generator written in Python.
.
├── site/ # Main project directory
│ ├── content/ # Site content (data, articles, pages)
│ ├── theme/ # Site theme and templates
│ ├── plugins/ # Pelican plugins
│ ├── pelicanconf.py # Pelican configuration
│ ├── publishconf.py # Production settings
│ └── requirements.txt # Python dependencies
Detailed documentation can be found in the following READMEs:
- Python 3.x
- pip (Python package installer)
-
Clone the repository:
git clone https://github.com/envoyproxy/envoy-site.git cd envoy-site
-
Create and activate a virtual environment (recommended):
python -m venv venv source venv/bin/activate # On Windows, use `venv\Scripts\activate`
-
Install dependencies:
cd site pip install -r requirements.txt
You can run the site locally in three ways:
-
Using the provided script:
cd site chmod +x run.sh # Make the script executable ./run.sh
-
Using Invoke (recommended for development):
cd site invoke devserver
This starts a development server with live-reload capability, automatically rebuilding the site when files are modified.
-
Or manually using Pelican:
cd site pelican --autoreload --listen --bind 0.0.0.0
The site will be available at http://localhost:8000
. Both the invoke devserver
and --autoreload
options enable automatic rebuilding when files are modified.
- Content: Located in
site/content/
, includes YAML files for projects, courses, and community information - Theme: Custom theme files in
site/theme/
- Plugins: Additional functionality through Pelican plugins in
site/plugins/
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Submit a pull request
Key dependencies include:
- Pelican (with Markdown support)
- PyYAML
- Jinja2 content plugin
- YAML metadata plugin
- Web assets plugin
- libsass for SASS processing