# Organic Maps Website This static website is built with [Zola](https://www.getzola.org/) and Cloudflare Pages. ![Main Website](./static/images/website-main.png) ## Development Download the latest [zola](https://www.getzola.org/documentation/getting-started/installation/) (version 0.17.2 at the time of writing) for your operating system and set up the necessary path variable. Run `zola serve` for a local preview or `zola build` to generate static site in the `public` folder. Run `npm i && npm run format` when you want to pretty-format the Markdown and SCSS files. Upgrade npm dependencies with `npm run upgrade`, make sure that you have installed `npm-check-updates` package. ## Deployment Every PR deploys a preview version of the site at unique url. Every merge into the _master_ branch deploys changes into the production at https://organicmaps.app ### Updating News Run `npm run news` to automatically download news from our [Telegram channel](https://t.me/OrganicMapsApp), then create a git commit and push it. An example of a news post that is related to app updates/releases: ```yaml title: "OpenStreetMap login was fixed in Google Play" date: 2024-03-18T17:45:35+00:00 slug: "openstreetmap-login-was-fixed-in-google-play" taxonomies: news: ["Releases"] ``` For external links and press releases use this taxonomy: ```yaml taxonomies: news: ["Press"] ``` ## Taxonomy and F.A.Q. architecture Each MD page in `/faq/` has one or more taxonomy defined in header. E.g.: ```yaml taxonomies: faq: ["app"] ``` Zola collects all such taxonomies: | File | Taxonomy key | Taxonomy value | |-----------------------------------------| ------------ |--------------------| | map/can-find-position/index.md | `faq` | `Map` | | map/search-cannot-find-a-place/index.md | `faq` | `Map` | | editing/map-errors/index.md | `faq` | `Map Editing` | | app/crash/index.md | `faq` | `App` | | text-to-speech-android-tts/index.md | `faq` | `Voice Directions` | | ... | ... | ... | After that Zola gets all values for `faq` taxonomy: `[app, map, editing, tts, ...]`. And generates pages: - For key `/faq/` with the list of values (see `templates/faq/list.html`) - For each value `/faq/app`, `/faq/map`, etc. (including translated `/es/faq/aplicacion`, `/de/faq/karte/`) with the list of questions (see `templates/faq/single.html`) If you want to add new question then create .md file with header: ```yaml title: A full question that is the title of the page description: More detailed info with necessary keywords for better SEO taxonomies: faq: ["Bookmarks and tracks"] extra: order: 40 ``` Zola will add your question to specific F.A.Q. sub-page. If you need to translate the FAQ to a new language please add next lines to config.toml: ```toml [languages.XX] taxonomies = [ {name = "faq", feed = false}, ] [languages.XX.translations] faq-menu-title = "{Translation of 'F.A.Q.' to a new language}" ``` **Limitation**: F.A.Q. categories (taxonomies) are sorted alphabetically: "app", "bookmarks", "editing", "map", "tts". **Limitation**: Each F.A.Q. category has only a name. No description, no icon. Only name 'App', or 'Bookmarks and Tracks', or 'Map Editing', etc. ## Embedded FAQ A subset of FAQ questions is used to generate static single-page FAQ: [`/faq/embedded-faq/`](https://organicmaps.app/faq/embedded-faq/?lang=en). This page should be used as an embedded offline help page in Organic Maps app on Android and iOS. To see how it looks in different languages use following links: * https://organicmaps.app/faq/embedded-faq/?lang=en * https://organicmaps.app/faq/embedded-faq/?lang=de * https://organicmaps.app/faq/embedded-faq/?lang=ru * etc. List of supported languages could be found in `templates/faq/embedded-faq.html`: `en`, `de`, `es`, `fr`, `pt`, `pt-BR`, `pl`, `ru`, `tr`, `uk`, `zh`. To update embedded FAQ replace [`data/faq.html`](https://github.com/organicmaps/organicmaps/blob/master/data/faq.html) file with the latest version generate by Zola. ## Contribution Any good ideas and help with web site improvement are appreciated. And it's always better to discuss any improvement before implementing it to sync with our vision and plans. ## Translations Please help us with translating this web-site in your language. See [TRANSLATIONS.md](TRANSLATIONS.md) file for detailed instructions.