Welcome to the LearnOverpass, the definitive documentation site for the Overpass API. This file explains how to make contributions.
For minor edits, you can click the "Improve page" link seen in the corresponding documentation page.
Everything in LearnOverpass, from the documentation to the exercises, can be translated, and we hope to make it as internationalized as possible. You can even localize the exercises for your particular country.
This translation guide is divided in to two parts:
If you are not experienced with git, view option A. If you are experienced with git, view option B.
This particular option works for translators unfamiliar with git, and does not require any installation of tools. This should be the easiest way to contribute.
- In case you don't have already, create a Github account!
- Open an issue here on Github. On the title, type in "[LANGUAGE-CODE] translation" where [LANGUAGE-CODE] is the language you are translating to, and type in details (such as the specific section file to be translated) on the "Leave a comment" box.
- Wait for me or any github experienced fellow to contact you back. (We will create a copy of the original document in the new language folder for you).
- Go to the page specified in the issue, where you will be able to translate the page using Github's online editing tools. The translated text will appear once the 'pull request' is authorized.
This particular option is a little bit more involved, but does not require you to wait for us to copy the original document.
*All content can be found under
content/, and the multilingual versions of the files are organized by their corresponding language code (
content/es). If you're language code is not present yet, you can copy/paste the
content/en folder and rename it to your target language code, using that as a base to translate the pages.
Whilst the exercises contain logic to work, creating new ones is easy and does not require any programming knowledge (apart from using the Overpass QL of course) or any special development tools
If you wish to edit existing exercises, feel free to click the 'Improve Page' buttons present in every exercise page.
If you instead wish to create a new exercise module:
- Create a new exercise category in the
- Define your exercises, where every new problem is a unique markdown file. List them in numerical format (
2.md) for simplicity
Each exercise file contains a front matter. Example:
date: "2015-07-01T16:35:50+08:00" title: "Introduction" type: "exercise" code: | node(2681940781); instructions: | 1. `node` queries our node, but what does the number `2681940781` stand for? It's the unique identifier number (ID) of the node we're looking for. 2. The first statement looks (queries) for a specific node. On the second line, type in `out;`, which would print that node. hint: | Make sure to print out your output with `out` answer: | node(2681940781); out;
dateis of the format
YYYY-MD-DD, separated by
HH:MM:SS:+Timezone. The date decides how the exercises will be arranged.
titleis the title that appears in the exercise sidebar.
codeis the initial boiler plate code that shows up in the exercise code editor.
instructionsis the styled, step-by-step instructions for the exercise viewable in the sidebar.
hintis what appears whenever a wrong answer is submitted.
answerthis is the answer query whose result data is matched with the user input
Contributing to site functionality
You are also free to contribute to the functionality by forking this repository and issuing a pull request.
LearnOverpass is built on top of Hugo, a static site generator.
The site itself is hosted using Github Pages. Run the deploy script (
deploy.sh) to automatically push the resulting
public directory from Hugo.