Skip to content

qgis/QGIS-Planet-Website

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🌐 QGIS Planet Website DPG Badge

Screenshot

πŸ‘‹ Welcome to the QGIS Planet Website!

This repository hosts the source code for the official QGIS Planet Website:
🌍 https://planet.qgis.org

Here you'll find everything you need to build, develop, and contribute to the QGIS Planet Website.

⚠️ Note on Subdomain Websites

This repository is only for the main QGIS Planet Website (planet.qgis.org).

If you are looking for the source code or want to contribute to QGIS subdomain websites, please visit their respective repositories below.
Each subdomain has its own codebase and contribution process:

-----------------------------------------------------

πŸ“– Table of Contents

Table of Contents
  1. πŸš€ Project Overview
  2. 🌟 How to be Referenced
  3. πŸš₯ QA Status
  4. πŸ“œ License
  5. πŸ“‚ Folder Structure
  6. πŸ€– Using 'AI' (Large Language Models)
  7. πŸ› οΈ Scripts Overview
  8. 🧊 Using the Nix Flake
  9. ✨ Contributing
  10. πŸ™‹ Have Questions?
  11. πŸ§‘β€πŸ’»πŸ‘©β€πŸ’» Contributors

-----------------------------------------------------

πŸš€ Project Overview

Overview

-----------------------------------------------------

🌟 How to be Referenced

To make your feed appear on this Planet:

  • A website publishing a public and compliant RSS feed (we use feedparser under the hood) with content about the QGIS project
  • Add your RSS feed in the subscribers list using a Pull Request (or an issue if you don't know how to do a fork + PR). See below for the subscriber model.

NOTE: Only feed items with, at least, the QGIS category (= tag) will be listed. Although there was work done on a mechanism to customize tags per feed, we have disabled this for now. See this discussion.

Subscriber model

The file data/subscribers.json is the main entry to fetch all feeds for the QGIS Planet Website. You can add or update a feed by editing this file and submitting a Pull Request to this repository. Below is the recommended data structure:

  {
    // The RSS Feed URL
    "feed": "https://geotribu.fr/feed_rss_created.xml",
    // Name of the subscriber
    "name": "Geotribu",
    // Shortname of the subscriber
    "shortname": "geotribu_fr",
    // Show on the Website
    "is_active": true,
    // Availables and main language of the feed.
    // The list of supported language is in the file
    // data/languages.json. Please add yours there if not listed.
    "languages": {
      "available": [
        "fr_fr"
      ],
      "main": "fr_fr"
    }
  },

-----------------------------------------------------

πŸš₯ QA Status

πŸͺͺ Badges

Badge Description
E2E Tests End-to-end tests status (Playwright)
Deploy Hugo site to Pages Deployment status to GitHub Pages
Website Status Website availability status
License Repository license
Open issues count
Closed issues count
Open pull requests count
Closed pull requests count

⭐️ Project Stars

Stars

-----------------------------------------------------

πŸ“œ License

This project is licensed under the MIT License. See the LICENSE file for details.

-----------------------------------------------------

πŸ“‚ Folder Structure

QGIS-Planet-Website/
  β”œβ”€β”€ πŸ–ΌοΈ  assets/           # Mainly used to store the schedule.csv file
  β”œβ”€β”€ βš™οΈ  config/           # Hugo configuration files
  β”œβ”€β”€ πŸ“„  content/          # Markdown content files (pages, posts)
  β”œβ”€β”€ πŸ—„οΈ  data/             # Data files (JSON) for site variables (feed, languages, subscribers)
  β”œβ”€β”€ πŸ–ΌοΈ  img/              # Images files used by this README
  β”œβ”€β”€ 🧩  layouts/          # Hugo templates and partials
  β”œβ”€β”€ πŸ§ͺ  playwright/       # Playwright end-to-end test scripts
  β”œβ”€β”€ πŸ“¦  public/           # Generated site output (after `hugo` build)
  β”œβ”€β”€ πŸ—‚οΈ  resources/        # Hugo-generated resources (e.g., minified assets)
  β”œβ”€β”€ πŸ› οΈ  scripts/          # Utility scripts for development/maintenance/harvesting
  β”œβ”€β”€ πŸ“„  static/           # Static files served as-is (e.g., favicon, robots.txt)
  β”œβ”€β”€ 🎨  themes/           # Hugo themes
  β”œβ”€β”€ βš™οΈ  config.toml       # Main Hugo configuration file
  β”œβ”€β”€ 🀝  CONTRIBUTING.md   # Contribution guidelines
  β”œβ”€β”€ 🐍  fetch_feeds.py*   # Script to get sustaining members and other feeds to update the planet website
  β”œβ”€β”€ πŸ“œ  LICENSE           # Project license
  β”œβ”€β”€ βš™οΈ  Makefile          # Build/Deployment automation commands
  β”œβ”€β”€ πŸ“–  README.md         # Project overview and instructions
  β”œβ”€β”€ πŸ“‹  REQUIREMENTS.txt  # Python dependencies (pip)
  β”œβ”€β”€ 🐚  flake.nix         # Nix flake environment definition
  └── πŸ’‘  vscode.sh*        # VSCode helper script for Nix development environment

-----------------------------------------------------

πŸ€– Using 'AI' (Large Language Models)

We are fine with using LLM's and Generative Machine Learning to act as general assistants, but the following three guidelines should be followed:

  1. Repeatability: Although we understand that repeatability is not possible generally, whenever you are verbatim using LLM or Generative Machine Learning outputs in this project, you must also provide the prompt that you used to generate the resource.
  2. Declaration: Sharing the prompt above is implicit declaration that a machine learning assistant was used. If it is not obvious that a piece of work was generated, include the robot (πŸ€–) icon next to a code snippet or text snippet.
  3. Validation: Outputs generated by a virtual assistant should always be validated by a human and you, as contributor, take ultimate responsibility for the correct functionality of any code and the correct expression in any text or media you submit to this project.

-----------------------------------------------------

πŸ› οΈ Scripts Overview

The scripts/ folder contains utility scripts to assist with data loading, and project maintenance. Below is a summary of each script:

Script Name Description
fetch_feeds.py Simple script to get sustaining members and other feeds and update the web site with them
vscode.sh Launch VSCode with all settings and extensions needed to productively work on this project
scripts/get_commit_hash.sh Get the current commit hash of this repository and write it in config/commit.toml for the website version.
scripts/resize_image.py Contains utilities to optimize images (resize, transform to webp, check validity).

✏️ Note: Run each script from the project root. Some scripts may require environment variables or configurationβ€”see comments within each script for usage details.

-----------------------------------------------------

🧊 Using the Nix Flake

The development environment is using Nix flakes. Please visit https://nixos.wiki/wiki/Flakes for more details.

Start the Nix development environment by running:

nix develop # Add  --experimental-features 'nix-command flakes' if you haven't enable Nix flakes
hugo server
# If you want to run VSCode:
./vscode

To build the website:

nix build .#packages.x86_64-linux # Add | cachix push qgis-planet-website to push it to cachix

-----------------------------------------------------

✨ Contributing

We welcome contributions! Please read the CONTRIBUTING.md for guidelines on how to get started.

-----------------------------------------------------

πŸ™‹ Have Questions?

Have questions or feedback? Feel free to open an issue or submit a Pull Request!

-----------------------------------------------------

πŸ§‘β€πŸ’»πŸ‘©β€πŸ’» Contributors

  • Tim Sutton – Original author and lead maintainer of the QGIS Planet Website project
  • Kontur Team – Responsible for the design and development of the current website theme
  • Lova Andriarimalala – Core developer and ongoing maintainer
  • QGIS Contributors – See the full list of amazing contributors who have helped make this website possible.

-----------------------------------------------------

Made with ❀️ by Tim Sutton (@timlinux), Lova Andriarimalala (@Xpirix) and QGIS Contributors.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

  •  

Packages

No packages published

Contributors 5