From 93e3044eb2f19fdedc1a25d2c629c01e6b90ed45 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 15:06:11 -0500 Subject: [PATCH 01/15] update ui and documentation for mr4 --- .DS_Store | Bin 0 -> 8196 bytes .tx/config | 56 +-- 404.html | 15 +- SCREENSHOTS-TODO.md | 47 +++ _config.yaml | 12 +- _data/translations/en-US.json | 1 - .../01-editing-virtual-challenges.en_US.md | 48 +-- .../02-using-keyboard-shortcuts.en_US.md | 73 ++-- .../advanced/03-using-layouts.en_US.md | 85 +++-- .../04-using-mapillary-images.en_US.md | 13 +- ...5-solving-multiple-tasks-together.en_US.md | 48 ++- .../advanced/06-comment-short-codes.en_US.md | 84 +++-- .../07-searchbox-short-commands.en_US.md | 97 +++-- .../basics/01-discovering-challenges.en_US.md | 105 ++++-- ...2-setting-your-default-osm-editor.en_US.md | 28 -- .../basics/02-your-dashboard.en_US.md | 50 +++ .../03-notifications-and-email.en_US.md | 26 -- ...3-setting-your-default-osm-editor.en_US.md | 43 +++ _documentation/basics/04-markdown.en_US.md | 12 - .../basics/04-rapid-editor.en_US.md | 42 +++ .../05-setting-your-map-base-layer.en_US.md | 55 ++- _documentation/basics/06-markdown.en_US.md | 40 ++ .../basics/06-point-scoring.en_US.md | 14 - .../07-notifications-and-email.en_US.md | 59 +++ .../basics/07-reporting-a-challenge.en_US.md | 38 -- ...ing.de_DE.md => 08-point-scoring.de_DE.md} | 0 .../basics/08-point-scoring.en_US.md | 39 ++ ...n_US.md => 09-tag-fix-challenges.en_US.md} | 9 +- .../basics/10-challenge-comments.en_US.md | 34 ++ .../10-challenge-comments.fr_FR.md} | 0 .../10-challenge-comments.nl.md} | 0 .../10-challenge-comments.ru.md} | 0 .../basics/11-reporting-a-challenge.en_US.md | 53 +++ .../basics/12-challenge-flagging.en_US.md | 50 +++ .../12-challenge-flagging.fr_FR.md} | 0 .../12-challenge-flagging.nl.md} | 0 .../12-challenge-flagging.ru.md} | 0 .../13-translate-docs.en_US.md} | 0 .../01-creating-a-challenge.en_US.md | 151 +++++--- ...ing-overpass-to-create-challenges.en_US.md | 12 +- ...hallenge-visibility-and-discovery.en_US.md | 10 +- .../05-setting-basemap-for-challenge.en_US.md | 7 + .../06-styling-task-features.en_US.md | 13 +- ...7-creating-cooperative-challenges.en_US.md | 10 +- .../08-mustache-tag-replacement.en_US.md | 33 +- ...challenge-instructions-templating.en_US.md | 6 + .../10-defining-task-sourced-date.en_US.md | 14 +- ...ering-the-task-list-by-properties.en_US.md | 11 + ...setting-external-task-identifiers.en_US.md | 13 +- .../13-task-priority-rules.en_US.md | 114 +++++- .../14-rebuilding-challenge-tasks.en_US.md | 21 +- .../16-task-attachments.en_US.md | 7 + .../17-exporting-challenge-data.en_US.md | 22 +- .../18-bulk-editing-challenges.en_US.md | 46 +++ .../18-bulk-editing-challenges.fr_FR.md} | 0 .../18-bulk-editing-challenges.nl.md} | 0 .../18-bulk-editing-challenges.ru.md} | 0 .../bulk-editing-challenges.en_US.md | 46 --- .../new-topics/challenge-comments.en_US.md | 18 - .../new-topics/challenge-flagging.en_US.md | 34 -- .../new-topics/rapid-editor.en_US.md | 15 - .../new-topics/your-dashboard.en_US.md | 53 --- .../map-layer-management.en_US.md | 118 +++--- .../runtime-configuration.en_US.md | 60 +++ .../system-notice-management.en_US.md | 12 + _documentation/teams/01-teams.en_US.md | 59 ++- _documentation/teams/02-following.en_US.md | 49 ++- .../03-projects-and-project-managers.en_US.md | 54 ++- .../teams/04-virtual-projects.en_US.md | 7 + _documentation/teams/05-reviewing.en_US.md | 65 +++- .../teams/06-using-maproulette-tags.en_US.md | 83 +++-- _includes/footer.html | 94 ++++- _includes/head.html | 21 +- _includes/header.html | 76 +++- _includes/logomark.html | 10 + _layouts/default.html | 2 +- _layouts/page.html | 97 +++-- _styles/components.scss | 350 ++++++++++++++++++ _styles/highlight.scss | 277 +++++--------- _styles/language-picker.scss | 55 --- _styles/layout.scss | 263 +++++++++++-- _styles/prose.scss | 238 ++++++++++-- _styles/theme.scss | 137 +++++++ _styles/utils.scss | 65 +++- assets/icons/chevron-down.svg | 3 + index.html | 2 +- style.scss | 6 +- 87 files changed, 2976 insertions(+), 1159 deletions(-) create mode 100644 .DS_Store create mode 100644 SCREENSHOTS-TODO.md delete mode 100644 _documentation/basics/02-setting-your-default-osm-editor.en_US.md create mode 100644 _documentation/basics/02-your-dashboard.en_US.md delete mode 100644 _documentation/basics/03-notifications-and-email.en_US.md create mode 100644 _documentation/basics/03-setting-your-default-osm-editor.en_US.md delete mode 100644 _documentation/basics/04-markdown.en_US.md create mode 100644 _documentation/basics/04-rapid-editor.en_US.md create mode 100644 _documentation/basics/06-markdown.en_US.md delete mode 100644 _documentation/basics/06-point-scoring.en_US.md create mode 100644 _documentation/basics/07-notifications-and-email.en_US.md delete mode 100644 _documentation/basics/07-reporting-a-challenge.en_US.md rename _documentation/basics/{06-point-scoring.de_DE.md => 08-point-scoring.de_DE.md} (100%) create mode 100644 _documentation/basics/08-point-scoring.en_US.md rename _documentation/basics/{08-tag-fix-challenges.en_US.md => 09-tag-fix-challenges.en_US.md} (85%) create mode 100644 _documentation/basics/10-challenge-comments.en_US.md rename _documentation/{new-topics/challenge-comments.fr_FR.md => basics/10-challenge-comments.fr_FR.md} (100%) rename _documentation/{new-topics/challenge-comments.nl.md => basics/10-challenge-comments.nl.md} (100%) rename _documentation/{new-topics/challenge-comments.ru.md => basics/10-challenge-comments.ru.md} (100%) create mode 100644 _documentation/basics/11-reporting-a-challenge.en_US.md create mode 100644 _documentation/basics/12-challenge-flagging.en_US.md rename _documentation/{new-topics/challenge-flagging.fr_FR.md => basics/12-challenge-flagging.fr_FR.md} (100%) rename _documentation/{new-topics/challenge-flagging.nl.md => basics/12-challenge-flagging.nl.md} (100%) rename _documentation/{new-topics/challenge-flagging.ru.md => basics/12-challenge-flagging.ru.md} (100%) rename _documentation/{new-topics/translate-docs.en_US.md => basics/13-translate-docs.en_US.md} (100%) create mode 100644 _documentation/creating-challenges/18-bulk-editing-challenges.en_US.md rename _documentation/{new-topics/bulk-editing-challenges.fr_FR.md => creating-challenges/18-bulk-editing-challenges.fr_FR.md} (100%) rename _documentation/{new-topics/bulk-editing-challenges.nl.md => creating-challenges/18-bulk-editing-challenges.nl.md} (100%) rename _documentation/{new-topics/bulk-editing-challenges.ru.md => creating-challenges/18-bulk-editing-challenges.ru.md} (100%) delete mode 100644 _documentation/new-topics/bulk-editing-challenges.en_US.md delete mode 100644 _documentation/new-topics/challenge-comments.en_US.md delete mode 100644 _documentation/new-topics/challenge-flagging.en_US.md delete mode 100644 _documentation/new-topics/rapid-editor.en_US.md delete mode 100644 _documentation/new-topics/your-dashboard.en_US.md create mode 100644 _documentation/server-admin/runtime-configuration.en_US.md create mode 100644 _includes/logomark.html create mode 100644 _styles/components.scss delete mode 100644 _styles/language-picker.scss create mode 100644 _styles/theme.scss create mode 100644 assets/icons/chevron-down.svg diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..fb3ce2033ed1edc1d950b03e5dd4a2ada27b2653 GIT binary patch literal 8196 zcmeI1zl#$=6vy9Y_wobfNEy3Tti=QE;}Nk@?l6Lt+>gY&3nbZS5;(j317c$<7Fq~e z3-=#fb0QXka)OPumKGL%-^^t5W`B8=$T-M!f(B5!rtT_I`^Q5BVK z{S2Cn!hWu)QZhZ4VLgne{_aY<6AebGNY~*Ma0)mDoB~b(r@+6W0N&YLsyXj{?RBkF zz$x%wD!|W&5S4Ay*qOHK(Sb%C0bm1ktAgKk{s9{r+cb8jEj%cm9tx|6dgh4X>EY-P zOlAPbq!r+^dq9_HmwGgj=l7s|d?bB? zsMXr;N89MDKK^p$;LgRvYqq~z=pXGZz6}HoPD_<}UfQE6ZOiOLwF~J8$#8h}#Vf;* zm}d|zNb;j3k9lVK;F-|A&2jS`IE+W;FSq0Tv3HR-?X~l5Vp3Y74eHVsa&Fl=zY1N8@VpN33=+M|eu7E$Tm=Rd_u#+~o4-ZYt11^@?tCw|0{DWsi#X9d(3*y z`JbM?vAvSv*3QBFeiY*+L3V`9?;pSC{H|mx;Op)NpZ~AtfB(-O?0TI7PJvUQfETpd ztyL_=oUK!f;.md -source_file = _documentation/new-topics/bulk-editing-challenges.en_US.md +file_filter = _documentation/creating-challenges/18-bulk-editing-challenges..md +source_file = _documentation/creating-challenges/18-bulk-editing-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-comments] -file_filter = _documentation/new-topics/challenge-comments..md -source_file = _documentation/new-topics/challenge-comments.en_US.md +file_filter = _documentation/basics/10-challenge-comments..md +source_file = _documentation/basics/10-challenge-comments.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-flagging] -file_filter = _documentation/new-topics/challenge-flagging..md -source_file = _documentation/new-topics/challenge-flagging.en_US.md +file_filter = _documentation/basics/12-challenge-flagging..md +source_file = _documentation/basics/12-challenge-flagging.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -138,8 +138,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_markdown] -file_filter = _documentation/basics/04-markdown..md -source_file = _documentation/basics/04-markdown.en_US.md +file_filter = _documentation/basics/06-markdown..md +source_file = _documentation/basics/06-markdown.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -154,16 +154,16 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_notifications-and-email] -file_filter = _documentation/basics/03-notifications-and-email..md -source_file = _documentation/basics/03-notifications-and-email.en_US.md +file_filter = _documentation/basics/07-notifications-and-email..md +source_file = _documentation/basics/07-notifications-and-email.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_point-scoring] -file_filter = _documentation/basics/06-point-scoring..md -source_file = _documentation/basics/06-point-scoring.en_US.md +file_filter = _documentation/basics/08-point-scoring..md +source_file = _documentation/basics/08-point-scoring.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -178,8 +178,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_rapid-editor] -file_filter = _documentation/new-topics/rapid-editor..md -source_file = _documentation/new-topics/rapid-editor.en_US.md +file_filter = _documentation/basics/04-rapid-editor..md +source_file = _documentation/basics/04-rapid-editor.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -194,8 +194,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_reporting-a-challenge] -file_filter = _documentation/basics/07-reporting-a-challenge..md -source_file = _documentation/basics/07-reporting-a-challenge.en_US.md +file_filter = _documentation/basics/11-reporting-a-challenge..md +source_file = _documentation/basics/11-reporting-a-challenge.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -209,6 +209,14 @@ minimum_perc = 0 replace_edited_strings = false keep_translations = false +[o:maproulette:p:mr-docs:r:documentation_runtime-configuration] +file_filter = _documentation/server-admin/runtime-configuration..md +source_file = _documentation/server-admin/runtime-configuration.en_US.md +type = GITHUBMARKDOWN +minimum_perc = 0 +replace_edited_strings = false +keep_translations = false + [o:maproulette:p:mr-docs:r:documentation_searchbox-short-commands] file_filter = _documentation/advanced/07-searchbox-short-commands..md source_file = _documentation/advanced/07-searchbox-short-commands.en_US.md @@ -234,8 +242,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_setting-your-default-osm-editor] -file_filter = _documentation/basics/02-setting-your-default-osm-editor..md -source_file = _documentation/basics/02-setting-your-default-osm-editor.en_US.md +file_filter = _documentation/basics/03-setting-your-default-osm-editor..md +source_file = _documentation/basics/03-setting-your-default-osm-editor.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -274,8 +282,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_tag-fix-challenges] -file_filter = _documentation/basics/08-tag-fix-challenges..md -source_file = _documentation/basics/08-tag-fix-challenges.en_US.md +file_filter = _documentation/basics/09-tag-fix-challenges..md +source_file = _documentation/basics/09-tag-fix-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -306,8 +314,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_translate-docs] -file_filter = _documentation/new-topics/translate-docs..md -source_file = _documentation/new-topics/translate-docs.en_US.md +file_filter = _documentation/basics/13-translate-docs..md +source_file = _documentation/basics/13-translate-docs.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -362,8 +370,8 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_your-dashboard] -file_filter = _documentation/new-topics/your-dashboard..md -source_file = _documentation/new-topics/your-dashboard.en_US.md +file_filter = _documentation/basics/02-your-dashboard..md +source_file = _documentation/basics/02-your-dashboard.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false diff --git a/404.html b/404.html index 4514269..c5ef92d 100644 --- a/404.html +++ b/404.html @@ -5,22 +5,25 @@

404

The requested page could not be found

+

Browse the documentation

- + + + diff --git a/_includes/header.html b/_includes/header.html index 5ba8214..4b85f6e 100644 --- a/_includes/header.html +++ b/_includes/header.html @@ -1,9 +1,25 @@
- - MapRoulette + + {% include logomark.html %} + MapRoulette Docs -
-
+ + + +
+ + {% if page.variants.size > 1 %}
{{ page.variants.size }} languages @@ -17,8 +33,56 @@
{% else %} - Help translate! + Help translate! {% endif %} -
+ + diff --git a/_includes/logomark.html b/_includes/logomark.html new file mode 100644 index 0000000..b100bbc --- /dev/null +++ b/_includes/logomark.html @@ -0,0 +1,10 @@ +{%- comment -%} +The MapRoulette logomark, copied from the app's ui/Logomark component so the +docs header uses the same mark. The inner rings spin on hover, as they do in +the app. +{%- endcomment -%} + diff --git a/_layouts/default.html b/_layouts/default.html index e1ed93c..98bb78a 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -4,7 +4,7 @@ {%- include head.html -%} - skip to main content + {%- include header.html -%} diff --git a/_layouts/page.html b/_layouts/page.html index 657bf5a..ff46858 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -2,40 +2,57 @@ layout: default --- -
@@ -45,3 +62,21 @@

{{ page.title }}

{{ content }}
+ + diff --git a/_styles/components.scss b/_styles/components.scss new file mode 100644 index 0000000..e3c760b --- /dev/null +++ b/_styles/components.scss @@ -0,0 +1,350 @@ +/* Header controls, modelled on the app's ThemeSwitcher, DropdownMenu and + * InputGroup components. */ + +/* ------------------------------------------------------- theme switcher --- */ + +/* A three-position pill (system / light / dark) with a sliding thumb, exactly + * as in the app's user menu. */ +.theme-switcher { + position: relative; + isolation: isolate; + display: inline-flex; + height: 2rem; + padding: 0.25rem; + border: 1px solid var(--mr-border); + border-radius: var(--mr-radius-full); + background: var(--mr-surface-subtle); +} + +.theme-switcher-thumb { + position: absolute; + top: 0.25rem; + left: 0.25rem; + height: 1.5rem; + width: 1.5rem; + border-radius: var(--mr-radius-full); + background: var(--mr-border); + transition: transform 300ms ease-out; +} + +:root.dark .theme-switcher-thumb { + background: var(--mr-surface); +} + +.theme-switcher button { + position: relative; + display: flex; + height: 1.5rem; + width: 1.5rem; + align-items: center; + justify-content: center; + padding: 0; + border: 0; + border-radius: var(--mr-radius-full); + background: none; + color: var(--mr-text-faint); + cursor: pointer; +} + +.theme-switcher button svg { + position: relative; + z-index: 10; + height: 0.75rem; + width: 0.75rem; +} + +.theme-switcher button[aria-pressed="true"] { + color: var(--mr-text-strong); +} + +/* ------------------------------------------------------- language picker --- */ + +/* Trigger looks like the app's ghost Button; the panel like its DropdownMenu. */ +details.language-picker { + display: inline-block; + position: relative; +} + +details.language-picker > summary { + list-style: none; + display: inline-flex; + align-items: center; + gap: 0.5rem; + height: 2rem; + padding: 0 0.625rem; + border-radius: var(--mr-radius); + font-size: 0.875rem; + font-weight: 500; + white-space: nowrap; + cursor: pointer; +} + +details.language-picker > summary::-webkit-details-marker { + display: none; +} + +details.language-picker > summary:hover, +details.language-picker[open] > summary { + background: var(--mr-surface-hover); + color: var(--mr-text-strong); +} + +details.language-picker > summary::before { + content: ""; + height: 1rem; + width: 1rem; + background-color: currentcolor; + mask-image: url(/assets/icons/translate.svg); + mask-size: contain; + mask-repeat: no-repeat; +} + +details.language-picker > summary::after { + content: ""; + height: 0.875rem; + width: 0.875rem; + background-color: currentcolor; + mask-image: url(/assets/icons/chevron-down.svg); + mask-size: contain; + mask-repeat: no-repeat; +} + +details.language-picker[open] > summary::after { + transform: rotate(180deg); +} + +details.language-picker ul { + position: absolute; + right: 0; + z-index: 40; + min-width: 10rem; + margin: 0.375rem 0 0; + padding: 0.25rem; + list-style: none; + border: 1px solid var(--mr-border); + border-radius: var(--mr-radius); + background: var(--mr-surface); + box-shadow: var(--mr-shadow-lg); + font-size: 0.875rem; +} + +:root.dark details.language-picker ul { + box-shadow: 0 0 0 1px var(--mr-border); +} + +details.language-picker li { + margin: 0; +} + +details.language-picker a { + display: block; + padding: 0.375rem 0.5rem; + border-radius: 0.375rem; + color: var(--mr-text); + text-decoration: none; +} + +details.language-picker a:hover { + background: var(--mr-surface-hover); + color: var(--mr-accent); +} + +/* --------------------------------------------------------------- search --- */ + +/* DocSearch mounts its own button here; size the slot like the app's global + * search input so the header keeps the same proportions. */ +.site-search { + flex: 1 1 auto; + min-width: 0; + max-width: 32rem; +} + +.site-search .DocSearch-Button { + width: 100%; + height: 2.5rem; + margin: 0; + padding: 0 0.75rem; + border: 1px solid var(--mr-border-strong); + border-radius: var(--mr-radius); + background: var(--mr-surface); + color: var(--mr-text-muted); + box-shadow: var(--mr-shadow-xs); +} + +.site-search .DocSearch-Button:hover { + box-shadow: var(--mr-shadow-xs); + background: var(--mr-surface); + border-color: var(--mr-text-faint); +} + +.site-search .DocSearch-Button:focus-visible { + outline: 3px solid var(--mr-ring); + outline-offset: 2px; +} + +.site-search .DocSearch-Button-Placeholder { + font-size: 0.875rem; + font-weight: 400; + padding: 0 0.5rem; +} + +.site-search .DocSearch-Search-Icon { + width: 1rem; + height: 1rem; + color: var(--mr-text-muted); +} + +.site-search .DocSearch-Button-Keys { + min-width: auto; +} + +.site-search .DocSearch-Button-Key { + height: 1.25rem; + width: auto; + min-width: 1.25rem; + padding: 0 0.25rem; + margin-right: 0.25rem; + border: 1px solid var(--mr-border); + border-radius: 0.25rem; + background: var(--mr-surface-subtle); + box-shadow: none; + color: var(--mr-text-muted); + font-size: 0.6875rem; + top: 0; +} + +/* ------------------------------------------------- search modal (DocSearch) --- */ + +/* Most of the modal is themed through DocSearch's own custom properties in + * theme.scss. These are the parts those variables don't reach. */ + +.DocSearch-Container { + backdrop-filter: blur(2px); +} + +.DocSearch-Modal { + border: 1px solid var(--mr-border); + border-radius: var(--mr-radius-lg); +} + +.DocSearch-SearchBar { + padding: var(--docsearch-spacing) var(--docsearch-spacing) 0; +} + +.DocSearch-Form { + border-radius: var(--mr-radius); +} + +/* One ring on the wrapper rather than two: the page's global :focus-visible + * outline was landing on the input on top of DocSearch's own box-shadow. */ +.DocSearch-Form:focus-within { + box-shadow: + inset 0 0 0 1px var(--mr-border-strong), + 0 0 0 3px var(--mr-accent-subtle); +} + +.DocSearch-Input:focus, +.DocSearch-Input:focus-visible { + outline: none; +} + +.DocSearch-Input { + font-size: 0.9375rem; + font-weight: 400; +} + +.DocSearch-Input::placeholder { + color: var(--mr-text-muted); + opacity: 1; +} + +.DocSearch-MagnifierLabel, +.DocSearch-Reset, +.DocSearch-LoadingIndicator { + color: var(--mr-text-muted); +} + +.DocSearch-MagnifierLabel svg, +.DocSearch-Reset svg, +.DocSearch-LoadingIndicator svg { + width: 1.125rem; + height: 1.125rem; +} + +.DocSearch-Dropdown { + max-height: min(28rem, 60vh); + padding: 0 var(--docsearch-spacing); +} + +/* Group headings, styled like the sidebar's section labels. */ +.DocSearch-Hit-source { + margin: 0; + padding: 0.875rem 0 0.375rem; + background: var(--mr-surface); + color: var(--mr-text-muted); + font-size: 0.6875rem; + font-weight: 600; + letter-spacing: 0.06em; + line-height: 1.4; + text-transform: uppercase; +} + +.DocSearch-Hit a { + border-radius: var(--mr-radius); + padding: 0 0.75rem; +} + +.DocSearch-Hit-title { + font-size: 0.9375rem; +} + +.DocSearch-Hit-path { + font-size: 0.75rem; + color: var(--mr-text-muted); +} + +.DocSearch-Hit[aria-selected="true"] .DocSearch-Hit-path, +.DocSearch-Hit[aria-selected="true"] mark { + color: var(--docsearch-hit-active-color); +} + +/* Empty and no-result states. */ +.DocSearch-StartScreen, +.DocSearch-NoResults { + padding: 2.5rem 1rem; + color: var(--mr-text-muted); + font-size: 0.875rem; +} + +.DocSearch-Title { + font-size: 0.9375rem; +} + +/* Footer key hints, matching the styling used in the docs themselves. */ +.DocSearch-Footer { + border-top: 1px solid var(--mr-border); + box-shadow: none; + padding: 0 var(--docsearch-spacing); +} + +.DocSearch-Commands { + font-size: 0.75rem; + color: var(--mr-text-muted); +} + +.DocSearch-Commands-Key { + width: auto; + min-width: 1.25rem; + height: 1.25rem; + padding: 0 0.25rem; + margin-right: 0.25rem; + border: 1px solid var(--mr-border); + border-radius: 0.25rem; + background: var(--mr-surface-subtle); + box-shadow: none; + color: var(--mr-text-muted); +} + +.DocSearch-Cancel { + color: var(--mr-text-muted); +} diff --git a/_styles/highlight.scss b/_styles/highlight.scss index 775dce9..049ac72 100644 --- a/_styles/highlight.scss +++ b/_styles/highlight.scss @@ -1,187 +1,96 @@ +/* Rouge syntax highlighting, driven by tokens so code blocks are legible in + * both themes (the previous palette only worked on a dark background). */ + +:root { + --hl-text: #24292f; + --hl-comment: #6e7781; + --hl-keyword: #cf222e; + --hl-string: #0a3069; + --hl-number: #0550ae; + --hl-name: #953800; + --hl-function: #8250df; + --hl-tag: #116329; + --hl-error: #b91c1c; +} + +:root.dark { + --hl-text: #f8f8f2; + --hl-comment: #8b8878; + --hl-keyword: #f92672; + --hl-string: #e6db74; + --hl-number: #ae81ff; + --hl-name: #a6e22e; + --hl-function: #a6e22e; + --hl-tag: #f92672; + --hl-error: #ff6b8a; +} + +.highlight, +.highlight pre { + color: var(--hl-text); +} + .highlight table td { padding: 5px; } .highlight table pre { margin: 0; } -.highlight .gh { - color: #999999; -} -.highlight .sr { - color: #f6aa11; -} -.highlight .go { - color: #888888; -} -.highlight .gp { - color: #555555; -} -.highlight .gs { -} -.highlight .gu { - color: #aaaaaa; -} -.highlight .nb { - color: #f6aa11; -} -.highlight .cm { - color: #75715e; -} -.highlight .cp { - color: #75715e; -} -.highlight .c1 { - color: #75715e; -} -.highlight .cs { - color: #75715e; -} -.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf { - color: #75715e; -} -.highlight .err { - color: #eb4cac; -} -.highlight .gr { - color: #eb4cac; -} -.highlight .gt { - color: #eb4cac; -} -.highlight .gd { - color: #49483e; -} -.highlight .gi { - color: #49483e; -} -.highlight .ge { - color: #49483e; -} -.highlight .kc { - color: #66d9ef; -} -.highlight .kd { - color: #66d9ef; -} -.highlight .kr { - color: #66d9ef; -} -.highlight .no { - color: #66d9ef; -} -.highlight .kt { - color: #66d9ef; -} -.highlight .mf { - color: #ae81ff; -} -.highlight .mh { - color: #ae81ff; -} -.highlight .il { - color: #ae81ff; -} -.highlight .mi { - color: #ae81ff; -} -.highlight .mo { - color: #ae81ff; -} -.highlight .m, .highlight .mb, .highlight .mx { - color: #ae81ff; -} -.highlight .sc { - color: #ae81ff; -} -.highlight .se { - color: #ae81ff; -} -.highlight .ss { - color: #ae81ff; -} -.highlight .sd { - color: #e6db74; -} -.highlight .s2 { - color: #e6db74; -} -.highlight .sb { - color: #e6db74; -} -.highlight .sh { - color: #e6db74; -} -.highlight .si { - color: #e6db74; -} -.highlight .sx { - color: #e6db74; -} -.highlight .s1 { - color: #e6db74; -} -.highlight .s, .highlight .sa, .highlight .dl { - color: #e6db74; -} -.highlight .na { - color: #a6e22e; -} -.highlight .nc { - color: #a6e22e; -} -.highlight .nd { - color: #a6e22e; -} -.highlight .ne { - color: #a6e22e; -} -.highlight .nf, .highlight .fm { - color: #a6e22e; -} -.highlight .vc { - color: #ffffff; -} -.highlight .nn { - color: #ffffff; -} -.highlight .nl { - color: #ffffff; -} -.highlight .ni { - color: #ffffff; -} -.highlight .bp { - color: #ffffff; -} -.highlight .vg { - color: #ffffff; -} -.highlight .vi { - color: #ffffff; -} -.highlight .nv, .highlight .vm { - color: #ffffff; -} -.highlight .w { - color: #ffffff; -} -.highlight { - color: #ffffff; -} -.highlight .n, .highlight .py, .highlight .nx { - color: #ffffff; -} -.highlight .ow { - color: #f92672; -} + +/* comments and generic output */ +.highlight .c, .highlight .ch, .highlight .cd, .highlight .cpf, +.highlight .cm, .highlight .cp, .highlight .c1, .highlight .cs, +.highlight .gh, .highlight .gu, .highlight .gp, .highlight .go { + color: var(--hl-comment); +} + +/* keywords and operators */ +.highlight .k, .highlight .kv, .highlight .kc, .highlight .kd, +.highlight .kn, .highlight .kp, .highlight .kr, .highlight .kt, +.highlight .o, .highlight .ow, .highlight .no { + color: var(--hl-keyword); +} + +/* markup / element names */ .highlight .nt { - color: #f92672; -} -.highlight .k, .highlight .kv { - color: #f92672; -} -.highlight .kn { - color: #f92672; -} -.highlight .kp { - color: #f92672; -} -.highlight .o { - color: #f92672; -} + color: var(--hl-tag); +} + +/* strings */ +.highlight .s, .highlight .sa, .highlight .sb, .highlight .sc, +.highlight .dl, .highlight .sd, .highlight .s1, .highlight .s2, +.highlight .se, .highlight .sh, .highlight .si, .highlight .sx, +.highlight .sr, .highlight .ss { + color: var(--hl-string); +} + +/* numbers */ +.highlight .m, .highlight .mb, .highlight .mf, .highlight .mh, +.highlight .mi, .highlight .mo, .highlight .mx, .highlight .il { + color: var(--hl-number); +} + +/* declarations: attributes, classes, constants */ +.highlight .na, .highlight .nb, .highlight .nc, .highlight .nd, +.highlight .ne, .highlight .nl, .highlight .nn { + color: var(--hl-name); +} + +/* function and method names */ +.highlight .nf, .highlight .fm { + color: var(--hl-function); +} + +/* plain names and variables inherit the body colour */ +.highlight .n, .highlight .py, .highlight .nx, .highlight .ni, +.highlight .nv, .highlight .vm, .highlight .vc, .highlight .vg, +.highlight .vi, .highlight .bp, .highlight .w { + color: var(--hl-text); +} + +/* errors and tracebacks */ +.highlight .err, .highlight .gr, .highlight .gt { + color: var(--hl-error); +} + +/* diffs */ +.highlight .gd { background: rgba(207, 34, 46, 0.12); } +.highlight .gi { background: rgba(22, 163, 74, 0.12); } +.highlight .ge { font-style: italic; } +.highlight .gs { font-weight: 600; } diff --git a/_styles/language-picker.scss b/_styles/language-picker.scss deleted file mode 100644 index 87b2ec5..0000000 --- a/_styles/language-picker.scss +++ /dev/null @@ -1,55 +0,0 @@ -details.language-picker { - display: inline-block; - position: relative; -} - -details.language-picker summary { - list-style: none; - padding: 0.25em; - padding-left: 0.5em; - border-radius: 0.25em; -} - -details.language-picker[open] summary { - background: rgba(255, 255, 255, 0.1); -} - -details.language-picker summary:hover { - background: rgba(255, 255, 255, 0.2) !important; -} - -details.language-picker summary::before { - display: inline-block; - content: ""; - height: 1.25em; - width: 1.25em; - background-color: currentcolor; - mask-image: url(/assets/icons/translate.svg); - mask-size: contain; - transform: translateY(0.25em); - margin-right: 1ch; -} - -details.language-picker summary::after { - display: inline-block; - content: "▼"; - height: 1.25em; - width: 1.25em; - margin-left: 1ch; -} - -details.language-picker[open] summary::after { - content: "▲"; -} - -details.language-picker ul { - margin: 0 0.5em; - padding: 0.5em; - background: #354b65; - list-style: none; - position: absolute; -} - -details.language-picker a { - text-decoration: none; -} diff --git a/_styles/layout.scss b/_styles/layout.scss index 9acf2b1..8592c7a 100644 --- a/_styles/layout.scss +++ b/_styles/layout.scss @@ -1,96 +1,279 @@ +/* Page shell: a sticky header over a sidebar + content grid, matching the + * app's AppLayout (header, then a scrolling region below it). */ + +*, +*::before, +*::after { + box-sizing: border-box; +} + html { - background: #172e51; + background: var(--mr-bg); + -webkit-text-size-adjust: 100%; } body { margin: 0; - background-image: linear-gradient(90deg, #47725f, #172e51); - - color: white; - font-family: sans-serif; - line-height: 1.5; - font-weight: 300; + background: var(--mr-bg); + color: var(--mr-text); + font-family: var(--mr-font-sans); + font-size: 1rem; + line-height: 1.6; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; display: grid; - grid-template-columns: [full-start left-start] 300px [left-end right-start] 1fr [right-end full-end]; - column-gap: 1em; - min-height: 100vh; + grid-template-columns: [full-start left-start] var(--mr-sidebar-width) [left-end right-start] minmax(0, 1fr) [right-end full-end]; grid-template-rows: min-content 1fr min-content; + min-height: 100vh; } -main { - max-width: 100ch; - margin: 1em; +/* The app draws a 3px focus ring on interactive elements; do the same here + * instead of relying on each browser's default outline. */ +/* Outlines follow the element's own border-radius, so don't set one here — + * doing so squared off rounded controls (nav links, search hits) on focus. */ +:focus-visible { + outline: 3px solid var(--mr-ring); + outline-offset: 2px; } +/* ---------------------------------------------------------------- header --- */ + body > header { grid-column: full; - background-image: linear-gradient(90deg, #47725f, #172e51); - box-shadow: rgba(0, 0, 0, 0.3) 0px 2px 4px 0px; + position: sticky; + top: 0; + z-index: 30; + background: var(--mr-bg); + border-bottom: 1px solid var(--mr-border); display: flex; align-items: center; - gap: 1.5em; justify-content: space-between; - padding: 1em 2em; + gap: 1rem; + padding: 0.625rem 0.75rem; } -body > header a, body > footer a { +@media (min-width: 48rem) { + body > header { + gap: 1.5rem; + padding: 0.875rem 1.25rem; + } + + .site-brand svg { + height: 2.25rem; + width: 2.25rem; + } +} + +.site-brand { + display: flex; + align-items: center; + gap: 0.5rem; + color: var(--mr-text-strong); text-decoration: none; + flex-shrink: 0; +} + +.site-brand:hover { + color: var(--mr-text-strong); +} + +.site-brand svg { + height: 2rem; + width: 2rem; +} + +.site-brand-name { + font-size: 1.25rem; + line-height: 1.25rem; + font-weight: 500; + white-space: nowrap; +} + +.site-brand-suffix { + color: var(--mr-text-muted); + font-weight: 400; } -body > header .right { +@media (max-width: 30rem) { + .site-brand-suffix { + display: none; + } +} + +.header-actions { display: flex; align-items: center; - gap: 1.5em; + gap: 0.75rem; + flex-shrink: 0; } +/* --------------------------------------------------------------- sidebar --- */ + body > nav { - margin-left: 1.5em; + grid-column: left; + padding: 1.5rem 0.5rem 1.5rem 1.25rem; + font-size: 0.875rem; + align-self: start; + position: sticky; + top: var(--mr-header-height); + /* Leave room for the footer: pinned at `top`, an element this tall bottoms + out exactly where the footer starts once it scrolls into view, so a long + nav list scrolls inside itself instead of running under the footer. */ + max-height: calc(100vh - var(--mr-header-height) - var(--mr-footer-height)); + overflow-y: auto; + overscroll-behavior: contain; } +nav h2, nav h3 { - margin-top: 2em; - margin-bottom: 0.5em; - font-size: small; - font-weight: bold; + margin: 1.75rem 0 0.5rem; + font-size: 0.6875rem; + font-weight: 600; + letter-spacing: 0.06em; text-transform: uppercase; - color: white; + color: var(--mr-text-muted); +} + +nav ul > li:first-child > h3 { + margin-top: 0; } nav ul { - list-style-type: none; + list-style: none; + margin: 0; padding: 0; } nav ul li { - line-height: 1.25; - margin: 0.25em 0; + line-height: 1.375; } -nav ul a, nav ul a:visited { +nav ul a { + display: block; + padding: 0.3125rem 0.5rem; + margin-left: -0.5rem; + border-radius: var(--mr-radius); + color: var(--mr-text); text-decoration: none; - color: white; + transition: color 150ms, background-color 150ms; } nav ul a:hover { - color: rgb(145, 243, 162); + color: var(--mr-accent); + background: var(--mr-surface-hover); + text-decoration: underline; + text-underline-offset: 4px; } +nav ul a[aria-current="page"] { + color: var(--mr-accent); + background: var(--mr-accent-subtle); + font-weight: 500; +} + +/* The sidebar is a plain list on wide screens; the disclosure summary that + * collapses it only appears on narrow ones. */ +.nav-toggle > summary { + display: none; +} + +@media (max-width: 60rem) { + body { + grid-template-columns: [full-start left-start right-start] minmax(0, 1fr) [left-end right-end full-end]; + } + + body > nav { + position: static; + max-height: none; + overflow: visible; + padding: 0.75rem 1rem 0; + border-bottom: 1px solid var(--mr-border); + } + + .nav-toggle > summary { + list-style: none; + display: flex; + align-items: center; + justify-content: space-between; + gap: 0.5rem; + padding: 0.5rem 0.75rem; + margin-bottom: 0.75rem; + border: 1px solid var(--mr-border-strong); + border-radius: var(--mr-radius); + background: var(--mr-surface); + font-weight: 500; + } + + .nav-toggle > summary::-webkit-details-marker { + display: none; + } + + .nav-toggle > summary::after { + content: ""; + height: 1rem; + width: 1rem; + background-color: currentcolor; + mask-image: url(/assets/icons/chevron-down.svg); + mask-size: contain; + mask-repeat: no-repeat; + transition: transform 150ms; + } + + .nav-toggle[open] > summary::after { + transform: rotate(180deg); + } +} + +/* --------------------------------------------------------------- content --- */ + +main { + grid-column: right; + max-width: 52rem; + padding: 2rem 1.25rem 4rem; +} + +@media (min-width: 60rem) { + main { + padding: 2.5rem 2.5rem 5rem; + } +} + +/* ---------------------------------------------------------------- footer --- */ + body > footer { grid-column: full; - background: #172e51; - color: #B4CBEE; - font-size: small; + /* Opaque and above the sticky sidebar, so the footer always wins the overlap + rather than having nav links show through it. */ + position: relative; + z-index: 20; + background: var(--mr-bg); + min-height: var(--mr-footer-height); + box-sizing: border-box; + border-top: 1px solid var(--mr-border); + color: var(--mr-text-muted); + font-size: 0.8125rem; display: flex; + flex-wrap: wrap; align-items: center; justify-content: center; - gap: 2em; - padding: 1em; + gap: 0.5rem 1.5rem; + padding: 1.5rem 1.25rem; } -body > footer ul { - padding: 0; - list-style-type: none; +body > footer a { + color: var(--mr-text-muted); + text-decoration: none; +} + +body > footer a:hover { + color: var(--mr-accent); + text-decoration: underline; + text-underline-offset: 4px; +} + +body > footer p { + margin: 0; } diff --git a/_styles/prose.scss b/_styles/prose.scss index e16f72c..96c2143 100644 --- a/_styles/prose.scss +++ b/_styles/prose.scss @@ -1,57 +1,247 @@ -h1, h2, h3, h4, h5, h6 { - font-weight: 300; - color: #fffd86; +/* Long-form content styling. Type scale, code, tables and callouts are built + * from the same tokens the app's Card / Table / Alert components use. */ + +h1, +h2, +h3, +h4, +h5, +h6 { + color: var(--mr-text-strong); + font-weight: 600; + letter-spacing: -0.01em; + line-height: 1.25; + scroll-margin-top: calc(var(--mr-header-height) + 1rem); +} + +h1 { + font-size: 2rem; + margin: 0 0 1.5rem; +} + +h2 { + font-size: 1.5rem; + margin: 2.5rem 0 1rem; + padding-bottom: 0.5rem; + border-bottom: 1px solid var(--mr-border); +} + +h3 { + font-size: 1.1875rem; + margin: 2rem 0 0.75rem; +} + +h4, +h5, +h6 { + font-size: 1rem; + margin: 1.5rem 0 0.5rem; +} + +p, +ul, +ol { + margin: 0 0 1rem; +} + +ul, +ol { + padding-left: 1.5rem; } -b, strong { +li { + margin: 0.25rem 0; +} + +li > ul, +li > ol { + margin: 0.25rem 0; +} + +b, +strong { font-weight: 600; + color: var(--mr-text-strong); } -pre, code { - font-size: 1em; +hr { + border: 0; + border-top: 1px solid var(--mr-border); + margin: 2.5rem 0; } -pre { - border: 1px solid rgba(255, 255, 255, 0.1); - background: rgba(0, 0, 0, 0.1); - padding: 1em; +/* ------------------------------------------------------------------ links --- */ + +/* Mirrors the app's `link` utility: underlined with a 4px offset, going green + * on hover, in both themes. Scoped to the content column so it can't reach + * into the header, the sidebar, or DocSearch's own modal. */ +main a, +main a:visited { + color: inherit; + text-decoration: underline; + text-underline-offset: 4px; + text-decoration-thickness: 1px; + transition: color 150ms; +} + +main a:hover { + color: var(--mr-accent); +} + +/* ------------------------------------------------------------------- code --- */ + +pre, +code, +kbd, +samp { + font-family: var(--mr-font-mono); + font-size: 0.875em; } code { - background: rgba(255, 255, 255, 0.15); - padding: 2px; - border-radius: 3px; + background: var(--mr-code-bg); + border: 1px solid var(--mr-code-border); + border-radius: 0.25rem; + padding: 0.1em 0.3em; + white-space: break-spaces; +} + +pre { + background: var(--mr-code-bg); + border: 1px solid var(--mr-code-border); + border-radius: var(--mr-radius-lg); + padding: 1rem; + margin: 0 0 1.25rem; + overflow-x: auto; + line-height: 1.5; } pre > code { background: none; - padding: initial; + border: 0; + padding: 0; + white-space: pre; } -a, a:visited { - color: rgb(145, 243, 162); +/* Keyboard keys, used heavily on the shortcuts page. */ +kbd { + display: inline-block; + min-width: 1.5rem; + padding: 0.125rem 0.375rem; + border: 1px solid var(--mr-border-strong); + border-bottom-width: 2px; + border-radius: 0.375rem; + background: var(--mr-surface); + color: var(--mr-text-strong); + font-size: 0.75rem; + font-family: var(--mr-font-sans); + font-weight: 500; + line-height: 1.25; + text-align: center; + white-space: nowrap; } -a:hover { - color: white; -} +/* ------------------------------------------------------------------ media --- */ -img, video { +img, +video { display: block; max-width: 100%; + border-radius: var(--mr-radius-lg); + border: 1px solid var(--mr-border); + background: var(--mr-surface); } img[width][height] { height: auto; /* Preserve aspect ratio */ } +/* ----------------------------------------------------------------- tables --- */ + +table { + width: 100%; + border-collapse: collapse; + margin: 0 0 1.25rem; + font-size: 0.9375rem; + display: block; + overflow-x: auto; +} + +th, +td { + padding: 0.625rem 0.75rem; + text-align: left; + border-bottom: 1px solid var(--mr-border); +} + +thead th { + color: var(--mr-text-muted); + font-size: 0.8125rem; + font-weight: 500; + white-space: nowrap; +} + +tbody tr:last-child td { + border-bottom: 0; +} + +/* ------------------------------------------------------- callouts / notes --- */ + +/* Kramdown renders `>` blocks as blockquotes; the app's Alert component is the + * closest equivalent, so borrow its shape. Add `{: .warning}` or `{: .legacy}` + * for the other variants. */ +blockquote { + margin: 0 0 1.25rem; + padding: 0.875rem 1rem; + border: 1px solid var(--mr-border); + border-left: 3px solid var(--mr-info); + border-radius: var(--mr-radius); + background: var(--mr-surface); + color: var(--mr-text); +} + +blockquote > :last-child { + margin-bottom: 0; +} + +blockquote.warning { + border-left-color: var(--mr-warning); +} + +blockquote.caution { + border-left-color: var(--mr-caution); +} + +/* Used to flag documentation for behaviour that the current MapRoulette + * frontend no longer provides. */ +blockquote.legacy { + border-left-color: var(--mr-text-faint); + color: var(--mr-text-muted); +} + +/* ------------------------------------------------------------- footnotes --- */ + .footnotes { - border-top: 1px solid color-mix(in srgb, currentColor 30%, transparent); - font-size: small; - margin-top: 2em; - padding-top: 2em; + border-top: 1px solid var(--mr-border); + color: var(--mr-text-muted); + font-size: 0.875rem; + margin-top: 2.5rem; + padding-top: 1.5rem; } .footnotes p { margin: 0.5em 0; } + +/* Side-by-side screenshot rows used on a few pages. */ +.figure-row { + display: flex; + flex-wrap: wrap; + gap: 0.75rem; + margin-bottom: 1.25rem; +} + +.figure-row img { + flex: 1 1 14rem; + min-width: 0; +} diff --git a/_styles/theme.scss b/_styles/theme.scss new file mode 100644 index 0000000..ece5639 --- /dev/null +++ b/_styles/theme.scss @@ -0,0 +1,137 @@ +/* Design tokens mirroring the MapRoulette app (see maproulette3 src/main.css). + * + * The app builds on Tailwind's zinc scale in light mode and its slate scale in + * dark mode, with green as the single accent colour. These variables restate + * those exact values so the docs and the app read as one product. */ + +:root { + color-scheme: light; + + --mr-bg: #f4f4f5; /* zinc-100 — app body background */ + --mr-surface: #ffffff; /* white — app Card background */ + --mr-surface-subtle: #fafafa; /* zinc-50 */ + --mr-surface-hover: #f4f4f5; /* zinc-100 */ + + --mr-text: #3f3f46; /* zinc-700 — app body text */ + --mr-text-strong: #18181b; /* zinc-900 — app Card text / headings */ + --mr-text-muted: #71717a; /* zinc-500 — app CardDescription */ + --mr-text-faint: #a1a1aa; /* zinc-400 */ + + --mr-border: #e4e4e7; /* zinc-200 — app default border */ + --mr-border-strong: #d4d4d8; /* zinc-300 — app outline button border */ + + --mr-accent: #16a34a; /* green-600 — app link hover, success button */ + --mr-accent-hover: #15803d; /* green-700 */ + --mr-accent-subtle: rgba(22, 163, 74, 0.12); + + --mr-info: #2563eb; /* blue-600 */ + --mr-warning: #ca8a04; /* yellow-600 */ + --mr-caution: #ea580c; /* orange-600 */ + --mr-danger: #b91c1c; /* red-700 */ + + --mr-code-bg: #fafafa; + --mr-code-border: #e4e4e7; + + /* The app's --shadow-lg override, plus Tailwind's shadow-sm/xs */ + --mr-shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, 0.05); + --mr-shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1); + --mr-shadow-lg: 0 0 10px rgba(0, 0, 0, 0.15); + + /* rounded-lg / rounded-xl / rounded-full in the app */ + --mr-radius: 0.5rem; + --mr-radius-lg: 0.75rem; + --mr-radius-full: 9999px; + + --mr-ring: rgba(9, 9, 11, 0.5); /* zinc-950/50 — app focus-visible ring */ + + --mr-font-sans: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, + "Helvetica Neue", Arial, sans-serif; + --mr-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, + "Liberation Mono", monospace; + + --mr-sidebar-width: 17.5rem; + --mr-header-height: 4.25rem; + /* Also applied as the footer's min-height, so the space the sticky + * sidebar reserves below itself always matches the real footer. */ + --mr-footer-height: 4.25rem; +} + +:root.dark { + color-scheme: dark; + + --mr-bg: #020617; /* slate-950 — app body background */ + --mr-surface: #1e293b; /* slate-800 — app Card background */ + --mr-surface-subtle: #0f172a; /* slate-900 */ + --mr-surface-hover: #1e293b; /* slate-800 */ + + --mr-text: #fafafa; /* zinc-50 — app body text */ + --mr-text-strong: #fafafa; /* zinc-50 */ + --mr-text-muted: #94a3b8; /* slate-400 — app CardDescription */ + --mr-text-faint: #64748b; /* slate-500 */ + + --mr-border: #334155; /* slate-700 — app default border */ + --mr-border-strong: #334155; /* slate-700 */ + + --mr-accent: #4ade80; /* green-400 — app link hover in dark */ + --mr-accent-hover: #86efac; /* green-300 */ + --mr-accent-subtle: rgba(74, 222, 128, 0.14); + + --mr-info: #60a5fa; /* blue-400 */ + --mr-warning: #facc15; /* yellow-400 */ + --mr-caution: #fb923c; /* orange-400 */ + --mr-danger: #f87171; /* red-400 */ + + --mr-code-bg: #0f172a; + --mr-code-border: #334155; + + --mr-shadow-xs: none; + --mr-shadow-sm: none; + --mr-shadow-lg: none; + + --mr-ring: rgba(212, 212, 216, 0.5); /* zinc-300/50 — app dark focus ring */ +} + +/* Algolia DocSearch, themed with the tokens above so the search button and the + * search modal match the app's Input, Card and Dialog components rather than + * DocSearch's defaults. Driven through DocSearch's own custom properties + * wherever possible, so it survives upgrades; see components.scss for the few + * places a variable doesn't reach. */ +:root { + --docsearch-primary-color: #16a34a; /* green-600 — active hit, highlights */ + --docsearch-highlight-color: var(--docsearch-primary-color); + --docsearch-text-color: var(--mr-text); + --docsearch-muted-color: var(--mr-text-muted); + --docsearch-logo-color: var(--mr-text-faint); + --docsearch-icon-stroke-width: 2; + --docsearch-spacing: 0.75rem; + + --docsearch-container-background: rgba(9, 9, 11, 0.45); + --docsearch-modal-width: 38rem; + --docsearch-modal-height: 32rem; + --docsearch-modal-background: var(--mr-surface); + --docsearch-modal-shadow: var(--mr-shadow-lg); + + --docsearch-searchbox-height: 2.75rem; + --docsearch-searchbox-background: var(--mr-surface-subtle); + --docsearch-searchbox-focus-background: var(--mr-surface-subtle); + --docsearch-searchbox-shadow: inset 0 0 0 1px var(--mr-border-strong); + + --docsearch-hit-height: 3rem; + --docsearch-hit-color: var(--mr-text); + --docsearch-hit-active-color: #ffffff; + --docsearch-hit-background: var(--mr-surface-subtle); + --docsearch-hit-shadow: none; + + --docsearch-key-gradient: var(--mr-surface-subtle); + --docsearch-key-shadow: none; + + --docsearch-footer-height: 3rem; + --docsearch-footer-background: var(--mr-surface); + --docsearch-footer-shadow: 0 -1px 0 0 var(--mr-border); +} + +:root.dark { + --docsearch-primary-color: #22c55e; /* green-500 — white text still reads on it */ + --docsearch-container-background: rgba(2, 6, 23, 0.7); + --docsearch-modal-shadow: 0 0 0 1px var(--mr-border), 0 16px 40px rgba(0, 0, 0, 0.5); +} diff --git a/_styles/utils.scss b/_styles/utils.scss index 27115b9..c12a8bb 100644 --- a/_styles/utils.scss +++ b/_styles/utils.scss @@ -1,28 +1,79 @@ .sr-only:not(:focus):not(:active) { - clip: rect(0 0 0 0); + clip: rect(0 0 0 0); clip-path: inset(50%); height: 1px; overflow: hidden; position: absolute; - white-space: nowrap; + white-space: nowrap; width: 1px; } -a.sr-only[href="#content"] { +/* Skip link: hidden until focused, then shown as a button over the header. */ +.skip-link { position: absolute; - top: 0; + top: 0.5rem; left: 50%; transform: translateX(-50%); + z-index: 50; + padding: 0.5rem 1rem; + border-radius: var(--mr-radius); + background: var(--mr-text-strong); + color: var(--mr-bg); + font-size: 0.875rem; + font-weight: 500; + text-decoration: none; } a[rel="external"]::after { display: inline-block; content: ""; - height: 1em; - width: 1em; + height: 0.875em; + width: 0.875em; background-color: currentcolor; mask-image: url(/assets/icons/external.svg); mask-size: contain; + mask-repeat: no-repeat; transform: translateY(0.125em); - margin-left: 0.5ch; + margin-left: 0.375ch; +} + +/* Applied by the header script only when JS is available, so the theme + * switcher never appears as a dead control. */ +[hidden] { + display: none !important; +} + +/* The app's `link-nav` utility: no underline until hovered. */ +.link-nav, +.link-nav:visited { + color: var(--mr-text); + font-size: 0.875rem; + font-weight: 500; + text-decoration: none; + white-space: nowrap; +} + +.link-nav:hover { + color: var(--mr-accent); + text-decoration: underline; + text-underline-offset: 4px; +} + +/* Logomark rings spin on hover, matching the app's Logomark component. */ +@media (prefers-reduced-motion: no-preference) { + .site-brand:hover .logomark-inner { + transform-origin: center; + animation: logomark-spin 2s linear infinite; + } + + .site-brand:hover .logomark-middle { + transform-origin: center; + animation: logomark-spin 4s linear infinite; + } +} + +@keyframes logomark-spin { + to { + transform: rotate(360deg); + } } diff --git a/assets/icons/chevron-down.svg b/assets/icons/chevron-down.svg new file mode 100644 index 0000000..694be46 --- /dev/null +++ b/assets/icons/chevron-down.svg @@ -0,0 +1,3 @@ + + + diff --git a/index.html b/index.html index 05e6acc..29b5086 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ layout: default --- -
+

Welcome to the MapRoulette documentation and learning site!

Click here if you are not redirected
diff --git a/style.scss b/style.scss index 3aa15e4..388363d 100644 --- a/style.scss +++ b/style.scss @@ -1,9 +1,9 @@ --- --- -@import "highlight"; -@import "language-picker"; +@import "theme"; @import "layout"; @import "prose"; +@import "components"; +@import "highlight"; @import "utils"; - From 8311743ab17c33d6d14480e834badeead44dab68 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 15:25:36 -0500 Subject: [PATCH 02/15] reorganize docs content --- .tx/config | 196 ++++++++--------- SCREENSHOTS-TODO.md | 43 ++-- _config.yaml | 22 +- _data/translations/en-US.json | 14 +- .../01-editing-virtual-challenges.en_US.md | 31 --- ...d => 01-using-keyboard-shortcuts.en_US.md} | 0 .../02-markdown.en_US.md} | 0 ..._US.md => 03-comment-short-codes.en_US.md} | 0 .../01-creating-a-challenge.en_US.md | 0 ...ing-overpass-to-create-challenges.en_US.md | 0 .../03-gists-for-remote-geojson.en_US.md | 0 .../04-line-by-line-geojson.en_US.md} | 0 ...allenge-visibility-and-discovery.en_US.md} | 0 ...-challenge-visibility-and-discovery.ru.md} | 0 .../06-rebuilding-challenge-tasks.en_US.md} | 0 .../07-challenge-comments.en_US.md} | 0 .../07-challenge-comments.fr_FR.md} | 0 .../07-challenge-comments.nl.md} | 0 .../07-challenge-comments.ru.md} | 0 .../08-reporting-a-challenge.en_US.md} | 0 .../09-challenge-flagging.en_US.md} | 0 .../09-challenge-flagging.fr_FR.md} | 0 .../09-challenge-flagging.nl.md} | 0 .../09-challenge-flagging.ru.md} | 0 .../10-exporting-challenge-data.en_US.md} | 0 .../01-translate-docs.en_US.md} | 0 ...7-creating-cooperative-challenges.en_US.md | 202 ------------------ .../01-your-dashboard.en_US.md} | 0 .../02-discovering-challenges.en_US.md} | 0 .../03-searchbox-short-commands.en_US.md} | 0 .../04-point-scoring.de_DE.md} | 0 .../04-point-scoring.en_US.md} | 0 .../01-using-layouts.en_US.md} | 0 .../02-rapid-editor.en_US.md} | 6 +- ...-solving-multiple-tasks-together.en_US.md} | 0 .../01-tag-fix-challenges.en_US.md} | 12 +- .../02-reviewing.en_US.md} | 26 ++- .../03-following.en_US.md} | 0 .../04-using-mapillary-images.en_US.md | 0 .../04-using-mapillary-images.es.md | 0 .../04-using-mapillary-images.ru.md | 0 .../05-setting-basemap-for-challenge.en_US.md | 0 .../06-styling-task-features.en_US.md | 0 ...ring-the-task-list-by-properties.en_US.md} | 0 ...hallenge-instructions-templating.en_US.md} | 0 ...8-challenge-instructions-templating.ru.md} | 0 .../09-system-notice-management.en_US.md} | 0 .../09-system-notice-management.ru.md} | 0 ...01-projects-and-project-managers.en_US.md} | 0 ...S.md => 01-runtime-configuration.en_US.md} | 0 ...US.md => 02-map-layer-management.en_US.md} | 0 .../01-task-priority-rules.en_US.md} | 0 .../02-using-maproulette-tags.en_US.md} | 0 ...etting-external-task-identifiers.en_US.md} | 0 .../04-defining-task-sourced-date.en_US.md} | 0 .../04-defining-task-sourced-date.ru.md} | 0 .../05-mustache-tag-replacement.en_US.md} | 0 .../06-task-attachments.en_US.md} | 0 .../07-bulk-editing-challenges.en_US.md} | 0 .../07-bulk-editing-challenges.fr_FR.md} | 0 .../07-bulk-editing-challenges.nl.md} | 0 .../07-bulk-editing-challenges.ru.md} | 0 .../teams/04-virtual-projects.en_US.md | 41 ---- .../teams/04-virtual-projects.fr_FR.md | 34 --- ...-setting-your-default-osm-editor.en_US.md} | 0 .../02-setting-your-map-base-layer.en_US.md} | 0 .../03-notifications-and-email.en_US.md} | 0 _includes/nav-section.html | 19 ++ _layouts/page.html | 38 ++-- ...connect-2020-5-min-lightning-talk.en_US.md | 5 + 70 files changed, 205 insertions(+), 484 deletions(-) delete mode 100644 _documentation/advanced/01-editing-virtual-challenges.en_US.md rename _documentation/advanced/{02-using-keyboard-shortcuts.en_US.md => 01-using-keyboard-shortcuts.en_US.md} (100%) rename _documentation/{basics/06-markdown.en_US.md => advanced/02-markdown.en_US.md} (100%) rename _documentation/advanced/{06-comment-short-codes.en_US.md => 03-comment-short-codes.en_US.md} (100%) rename _documentation/{creating-challenges => challenges}/01-creating-a-challenge.en_US.md (100%) rename _documentation/{creating-challenges => challenges}/02-using-overpass-to-create-challenges.en_US.md (100%) rename _documentation/{creating-challenges => challenges}/03-gists-for-remote-geojson.en_US.md (100%) rename _documentation/{creating-challenges/15-line-by-line-geojson.en_US.md => challenges/04-line-by-line-geojson.en_US.md} (100%) rename _documentation/{creating-challenges/04-challenge-visibility-and-discovery.en_US.md => challenges/05-challenge-visibility-and-discovery.en_US.md} (100%) rename _documentation/{creating-challenges/04-challenge-visibility-and-discovery.ru.md => challenges/05-challenge-visibility-and-discovery.ru.md} (100%) rename _documentation/{creating-challenges/14-rebuilding-challenge-tasks.en_US.md => challenges/06-rebuilding-challenge-tasks.en_US.md} (100%) rename _documentation/{basics/10-challenge-comments.en_US.md => challenges/07-challenge-comments.en_US.md} (100%) rename _documentation/{basics/10-challenge-comments.fr_FR.md => challenges/07-challenge-comments.fr_FR.md} (100%) rename _documentation/{basics/10-challenge-comments.nl.md => challenges/07-challenge-comments.nl.md} (100%) rename _documentation/{basics/10-challenge-comments.ru.md => challenges/07-challenge-comments.ru.md} (100%) rename _documentation/{basics/11-reporting-a-challenge.en_US.md => challenges/08-reporting-a-challenge.en_US.md} (100%) rename _documentation/{basics/12-challenge-flagging.en_US.md => challenges/09-challenge-flagging.en_US.md} (100%) rename _documentation/{basics/12-challenge-flagging.fr_FR.md => challenges/09-challenge-flagging.fr_FR.md} (100%) rename _documentation/{basics/12-challenge-flagging.nl.md => challenges/09-challenge-flagging.nl.md} (100%) rename _documentation/{basics/12-challenge-flagging.ru.md => challenges/09-challenge-flagging.ru.md} (100%) rename _documentation/{creating-challenges/17-exporting-challenge-data.en_US.md => challenges/10-exporting-challenge-data.en_US.md} (100%) rename _documentation/{basics/13-translate-docs.en_US.md => contributing/01-translate-docs.en_US.md} (100%) delete mode 100644 _documentation/creating-challenges/07-creating-cooperative-challenges.en_US.md rename _documentation/{basics/02-your-dashboard.en_US.md => getting-started/01-your-dashboard.en_US.md} (100%) rename _documentation/{basics/01-discovering-challenges.en_US.md => getting-started/02-discovering-challenges.en_US.md} (100%) rename _documentation/{advanced/07-searchbox-short-commands.en_US.md => getting-started/03-searchbox-short-commands.en_US.md} (100%) rename _documentation/{basics/08-point-scoring.de_DE.md => getting-started/04-point-scoring.de_DE.md} (100%) rename _documentation/{basics/08-point-scoring.en_US.md => getting-started/04-point-scoring.en_US.md} (100%) rename _documentation/{advanced/03-using-layouts.en_US.md => mapping/01-using-layouts.en_US.md} (100%) rename _documentation/{basics/04-rapid-editor.en_US.md => mapping/02-rapid-editor.en_US.md} (87%) rename _documentation/{advanced/05-solving-multiple-tasks-together.en_US.md => mapping/03-solving-multiple-tasks-together.en_US.md} (100%) rename _documentation/{basics/09-tag-fix-challenges.en_US.md => not-implemented/01-tag-fix-challenges.en_US.md} (83%) rename _documentation/{teams/05-reviewing.en_US.md => not-implemented/02-reviewing.en_US.md} (69%) rename _documentation/{teams/02-following.en_US.md => not-implemented/03-following.en_US.md} (100%) rename _documentation/{advanced => not-implemented}/04-using-mapillary-images.en_US.md (100%) rename _documentation/{advanced => not-implemented}/04-using-mapillary-images.es.md (100%) rename _documentation/{advanced => not-implemented}/04-using-mapillary-images.ru.md (100%) rename _documentation/{creating-challenges => not-implemented}/05-setting-basemap-for-challenge.en_US.md (100%) rename _documentation/{creating-challenges => not-implemented}/06-styling-task-features.en_US.md (100%) rename _documentation/{creating-challenges/11-filtering-the-task-list-by-properties.en_US.md => not-implemented/07-filtering-the-task-list-by-properties.en_US.md} (100%) rename _documentation/{creating-challenges/09-challenge-instructions-templating.en_US.md => not-implemented/08-challenge-instructions-templating.en_US.md} (100%) rename _documentation/{creating-challenges/09-challenge-instructions-templating.ru.md => not-implemented/08-challenge-instructions-templating.ru.md} (100%) rename _documentation/{server-admin/system-notice-management.en_US.md => not-implemented/09-system-notice-management.en_US.md} (100%) rename _documentation/{server-admin/system-notice-management.ru.md => not-implemented/09-system-notice-management.ru.md} (100%) rename _documentation/{teams/03-projects-and-project-managers.en_US.md => projects/01-projects-and-project-managers.en_US.md} (100%) rename _documentation/server-admin/{runtime-configuration.en_US.md => 01-runtime-configuration.en_US.md} (100%) rename _documentation/server-admin/{map-layer-management.en_US.md => 02-map-layer-management.en_US.md} (100%) rename _documentation/{creating-challenges/13-task-priority-rules.en_US.md => tasks/01-task-priority-rules.en_US.md} (100%) rename _documentation/{teams/06-using-maproulette-tags.en_US.md => tasks/02-using-maproulette-tags.en_US.md} (100%) rename _documentation/{creating-challenges/12-setting-external-task-identifiers.en_US.md => tasks/03-setting-external-task-identifiers.en_US.md} (100%) rename _documentation/{creating-challenges/10-defining-task-sourced-date.en_US.md => tasks/04-defining-task-sourced-date.en_US.md} (100%) rename _documentation/{creating-challenges/10-defining-task-sourced-date.ru.md => tasks/04-defining-task-sourced-date.ru.md} (100%) rename _documentation/{creating-challenges/08-mustache-tag-replacement.en_US.md => tasks/05-mustache-tag-replacement.en_US.md} (100%) rename _documentation/{creating-challenges/16-task-attachments.en_US.md => tasks/06-task-attachments.en_US.md} (100%) rename _documentation/{creating-challenges/18-bulk-editing-challenges.en_US.md => tasks/07-bulk-editing-challenges.en_US.md} (100%) rename _documentation/{creating-challenges/18-bulk-editing-challenges.fr_FR.md => tasks/07-bulk-editing-challenges.fr_FR.md} (100%) rename _documentation/{creating-challenges/18-bulk-editing-challenges.nl.md => tasks/07-bulk-editing-challenges.nl.md} (100%) rename _documentation/{creating-challenges/18-bulk-editing-challenges.ru.md => tasks/07-bulk-editing-challenges.ru.md} (100%) delete mode 100644 _documentation/teams/04-virtual-projects.en_US.md delete mode 100644 _documentation/teams/04-virtual-projects.fr_FR.md rename _documentation/{basics/03-setting-your-default-osm-editor.en_US.md => user-settings/01-setting-your-default-osm-editor.en_US.md} (100%) rename _documentation/{basics/05-setting-your-map-base-layer.en_US.md => user-settings/02-setting-your-map-base-layer.en_US.md} (100%) rename _documentation/{basics/07-notifications-and-email.en_US.md => user-settings/03-notifications-and-email.en_US.md} (100%) create mode 100644 _includes/nav-section.html diff --git a/.tx/config b/.tx/config index 015c9ea..8b25325 100755 --- a/.tx/config +++ b/.tx/config @@ -2,304 +2,288 @@ host = https://www.transifex.com [o:maproulette:p:mr-docs:r:documentation_bulk-editing-challenges] -file_filter = _documentation/creating-challenges/18-bulk-editing-challenges..md -source_file = _documentation/creating-challenges/18-bulk-editing-challenges.en_US.md +file_filter = _documentation/tasks/07-bulk-editing-challenges..md +source_file = _documentation/tasks/07-bulk-editing-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-comments] -file_filter = _documentation/basics/10-challenge-comments..md -source_file = _documentation/basics/10-challenge-comments.en_US.md +file_filter = _documentation/challenges/07-challenge-comments..md +source_file = _documentation/challenges/07-challenge-comments.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-flagging] -file_filter = _documentation/basics/12-challenge-flagging..md -source_file = _documentation/basics/12-challenge-flagging.en_US.md +file_filter = _documentation/challenges/09-challenge-flagging..md +source_file = _documentation/challenges/09-challenge-flagging.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-instructions-templating] -file_filter = _documentation/creating-challenges/09-challenge-instructions-templating..md -source_file = _documentation/creating-challenges/09-challenge-instructions-templating.en_US.md +file_filter = _documentation/not-implemented/08-challenge-instructions-templating..md +source_file = _documentation/not-implemented/08-challenge-instructions-templating.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_challenge-visibility-and-discovery] -file_filter = _documentation/creating-challenges/04-challenge-visibility-and-discovery..md -source_file = _documentation/creating-challenges/04-challenge-visibility-and-discovery.en_US.md +file_filter = _documentation/challenges/05-challenge-visibility-and-discovery..md +source_file = _documentation/challenges/05-challenge-visibility-and-discovery.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_comment-short-codes] -file_filter = _documentation/advanced/06-comment-short-codes..md -source_file = _documentation/advanced/06-comment-short-codes.en_US.md +file_filter = _documentation/advanced/03-comment-short-codes..md +source_file = _documentation/advanced/03-comment-short-codes.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_creating-a-challenge] -file_filter = _documentation/creating-challenges/01-creating-a-challenge..md -source_file = _documentation/creating-challenges/01-creating-a-challenge.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_creating-cooperative-challenges] -file_filter = _documentation/creating-challenges/07-creating-cooperative-challenges..md -source_file = _documentation/creating-challenges/07-creating-cooperative-challenges.en_US.md +file_filter = _documentation/challenges/01-creating-a-challenge..md +source_file = _documentation/challenges/01-creating-a-challenge.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_defining-task-sourced-date] -file_filter = _documentation/creating-challenges/10-defining-task-sourced-date..md -source_file = _documentation/creating-challenges/10-defining-task-sourced-date.en_US.md +file_filter = _documentation/tasks/04-defining-task-sourced-date..md +source_file = _documentation/tasks/04-defining-task-sourced-date.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_discovering-challenges] -file_filter = _documentation/basics/01-discovering-challenges..md -source_file = _documentation/basics/01-discovering-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_editing-virtual-challenges] -file_filter = _documentation/advanced/01-editing-virtual-challenges..md -source_file = _documentation/advanced/01-editing-virtual-challenges.en_US.md +file_filter = _documentation/getting-started/02-discovering-challenges..md +source_file = _documentation/getting-started/02-discovering-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_exporting-challenge-data] -file_filter = _documentation/creating-challenges/17-exporting-challenge-data..md -source_file = _documentation/creating-challenges/17-exporting-challenge-data.en_US.md +file_filter = _documentation/challenges/10-exporting-challenge-data..md +source_file = _documentation/challenges/10-exporting-challenge-data.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_filtering-the-task-list-by-properties] -file_filter = _documentation/creating-challenges/11-filtering-the-task-list-by-properties..md -source_file = _documentation/creating-challenges/11-filtering-the-task-list-by-properties.en_US.md +file_filter = _documentation/not-implemented/07-filtering-the-task-list-by-properties..md +source_file = _documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_following] -file_filter = _documentation/teams/02-following..md -source_file = _documentation/teams/02-following.en_US.md +file_filter = _documentation/not-implemented/03-following..md +source_file = _documentation/not-implemented/03-following.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_gists-for-remote-geojson] -file_filter = _documentation/creating-challenges/03-gists-for-remote-geojson..md -source_file = _documentation/creating-challenges/03-gists-for-remote-geojson.en_US.md +file_filter = _documentation/challenges/03-gists-for-remote-geojson..md +source_file = _documentation/challenges/03-gists-for-remote-geojson.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_line-by-line-geojson] -file_filter = _documentation/creating-challenges/15-line-by-line-geojson..md -source_file = _documentation/creating-challenges/15-line-by-line-geojson.en_US.md +file_filter = _documentation/challenges/04-line-by-line-geojson..md +source_file = _documentation/challenges/04-line-by-line-geojson.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_map-layer-management] -file_filter = _documentation/server-admin/map-layer-management..md -source_file = _documentation/server-admin/map-layer-management.en_US.md +file_filter = _documentation/server-admin/02-map-layer-management..md +source_file = _documentation/server-admin/02-map-layer-management.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_markdown] -file_filter = _documentation/basics/06-markdown..md -source_file = _documentation/basics/06-markdown.en_US.md +file_filter = _documentation/advanced/02-markdown..md +source_file = _documentation/advanced/02-markdown.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_mustache-tag-replacement] -file_filter = _documentation/creating-challenges/08-mustache-tag-replacement..md -source_file = _documentation/creating-challenges/08-mustache-tag-replacement.en_US.md +file_filter = _documentation/tasks/05-mustache-tag-replacement..md +source_file = _documentation/tasks/05-mustache-tag-replacement.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_notifications-and-email] -file_filter = _documentation/basics/07-notifications-and-email..md -source_file = _documentation/basics/07-notifications-and-email.en_US.md +file_filter = _documentation/user-settings/03-notifications-and-email..md +source_file = _documentation/user-settings/03-notifications-and-email.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_point-scoring] -file_filter = _documentation/basics/08-point-scoring..md -source_file = _documentation/basics/08-point-scoring.en_US.md +file_filter = _documentation/getting-started/04-point-scoring..md +source_file = _documentation/getting-started/04-point-scoring.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_projects-and-project-managers] -file_filter = _documentation/teams/03-projects-and-project-managers..md -source_file = _documentation/teams/03-projects-and-project-managers.en_US.md +file_filter = _documentation/projects/01-projects-and-project-managers..md +source_file = _documentation/projects/01-projects-and-project-managers.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_rapid-editor] -file_filter = _documentation/basics/04-rapid-editor..md -source_file = _documentation/basics/04-rapid-editor.en_US.md +file_filter = _documentation/mapping/02-rapid-editor..md +source_file = _documentation/mapping/02-rapid-editor.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_rebuilding-challenge-tasks] -file_filter = _documentation/creating-challenges/14-rebuilding-challenge-tasks..md -source_file = _documentation/creating-challenges/14-rebuilding-challenge-tasks.en_US.md +file_filter = _documentation/challenges/06-rebuilding-challenge-tasks..md +source_file = _documentation/challenges/06-rebuilding-challenge-tasks.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_reporting-a-challenge] -file_filter = _documentation/basics/11-reporting-a-challenge..md -source_file = _documentation/basics/11-reporting-a-challenge.en_US.md +file_filter = _documentation/challenges/08-reporting-a-challenge..md +source_file = _documentation/challenges/08-reporting-a-challenge.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_reviewing] -file_filter = _documentation/teams/05-reviewing..md -source_file = _documentation/teams/05-reviewing.en_US.md +file_filter = _documentation/not-implemented/02-reviewing..md +source_file = _documentation/not-implemented/02-reviewing.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_runtime-configuration] -file_filter = _documentation/server-admin/runtime-configuration..md -source_file = _documentation/server-admin/runtime-configuration.en_US.md +file_filter = _documentation/server-admin/01-runtime-configuration..md +source_file = _documentation/server-admin/01-runtime-configuration.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_searchbox-short-commands] -file_filter = _documentation/advanced/07-searchbox-short-commands..md -source_file = _documentation/advanced/07-searchbox-short-commands.en_US.md +file_filter = _documentation/getting-started/03-searchbox-short-commands..md +source_file = _documentation/getting-started/03-searchbox-short-commands.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_setting-basemap-for-challenge] -file_filter = _documentation/creating-challenges/05-setting-basemap-for-challenge..md -source_file = _documentation/creating-challenges/05-setting-basemap-for-challenge.en_US.md +file_filter = _documentation/not-implemented/05-setting-basemap-for-challenge..md +source_file = _documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_setting-external-task-identifiers] -file_filter = _documentation/creating-challenges/12-setting-external-task-identifiers..md -source_file = _documentation/creating-challenges/12-setting-external-task-identifiers.en_US.md +file_filter = _documentation/tasks/03-setting-external-task-identifiers..md +source_file = _documentation/tasks/03-setting-external-task-identifiers.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_setting-your-default-osm-editor] -file_filter = _documentation/basics/03-setting-your-default-osm-editor..md -source_file = _documentation/basics/03-setting-your-default-osm-editor.en_US.md +file_filter = _documentation/user-settings/01-setting-your-default-osm-editor..md +source_file = _documentation/user-settings/01-setting-your-default-osm-editor.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_setting-your-map-base-layer] -file_filter = _documentation/basics/05-setting-your-map-base-layer..md -source_file = _documentation/basics/05-setting-your-map-base-layer.en_US.md +file_filter = _documentation/user-settings/02-setting-your-map-base-layer..md +source_file = _documentation/user-settings/02-setting-your-map-base-layer.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_solving-multiple-tasks-together] -file_filter = _documentation/advanced/05-solving-multiple-tasks-together..md -source_file = _documentation/advanced/05-solving-multiple-tasks-together.en_US.md +file_filter = _documentation/mapping/03-solving-multiple-tasks-together..md +source_file = _documentation/mapping/03-solving-multiple-tasks-together.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_styling-task-features] -file_filter = _documentation/creating-challenges/06-styling-task-features..md -source_file = _documentation/creating-challenges/06-styling-task-features.en_US.md +file_filter = _documentation/not-implemented/06-styling-task-features..md +source_file = _documentation/not-implemented/06-styling-task-features.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_system-notice-management] -file_filter = _documentation/server-admin/system-notice-management..md -source_file = _documentation/server-admin/system-notice-management.en_US.md +file_filter = _documentation/not-implemented/09-system-notice-management..md +source_file = _documentation/not-implemented/09-system-notice-management.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_tag-fix-challenges] -file_filter = _documentation/basics/09-tag-fix-challenges..md -source_file = _documentation/basics/09-tag-fix-challenges.en_US.md +file_filter = _documentation/not-implemented/01-tag-fix-challenges..md +source_file = _documentation/not-implemented/01-tag-fix-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_task-attachments] -file_filter = _documentation/creating-challenges/16-task-attachments..md -source_file = _documentation/creating-challenges/16-task-attachments.en_US.md +file_filter = _documentation/tasks/06-task-attachments..md +source_file = _documentation/tasks/06-task-attachments.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_task-priority-rules] -file_filter = _documentation/creating-challenges/13-task-priority-rules..md -source_file = _documentation/creating-challenges/13-task-priority-rules.en_US.md +file_filter = _documentation/tasks/01-task-priority-rules..md +source_file = _documentation/tasks/01-task-priority-rules.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false @@ -314,64 +298,56 @@ replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_translate-docs] -file_filter = _documentation/basics/13-translate-docs..md -source_file = _documentation/basics/13-translate-docs.en_US.md +file_filter = _documentation/contributing/01-translate-docs..md +source_file = _documentation/contributing/01-translate-docs.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_using-keyboard-shortcuts] -file_filter = _documentation/advanced/02-using-keyboard-shortcuts..md -source_file = _documentation/advanced/02-using-keyboard-shortcuts.en_US.md +file_filter = _documentation/advanced/01-using-keyboard-shortcuts..md +source_file = _documentation/advanced/01-using-keyboard-shortcuts.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_using-layouts] -file_filter = _documentation/advanced/03-using-layouts..md -source_file = _documentation/advanced/03-using-layouts.en_US.md +file_filter = _documentation/mapping/01-using-layouts..md +source_file = _documentation/mapping/01-using-layouts.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_using-mapillary-images] -file_filter = _documentation/advanced/04-using-mapillary-images..md -source_file = _documentation/advanced/04-using-mapillary-images.en_US.md +file_filter = _documentation/not-implemented/04-using-mapillary-images..md +source_file = _documentation/not-implemented/04-using-mapillary-images.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_using-maproulette-tags] -file_filter = _documentation/teams/06-using-maproulette-tags..md -source_file = _documentation/teams/06-using-maproulette-tags.en_US.md +file_filter = _documentation/tasks/02-using-maproulette-tags..md +source_file = _documentation/tasks/02-using-maproulette-tags.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_using-overpass-to-create-challenges] -file_filter = _documentation/creating-challenges/02-using-overpass-to-create-challenges..md -source_file = _documentation/creating-challenges/02-using-overpass-to-create-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_virtual-projects] -file_filter = _documentation/teams/04-virtual-projects..md -source_file = _documentation/teams/04-virtual-projects.en_US.md +file_filter = _documentation/challenges/02-using-overpass-to-create-challenges..md +source_file = _documentation/challenges/02-using-overpass-to-create-challenges.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false keep_translations = false [o:maproulette:p:mr-docs:r:documentation_your-dashboard] -file_filter = _documentation/basics/02-your-dashboard..md -source_file = _documentation/basics/02-your-dashboard.en_US.md +file_filter = _documentation/getting-started/01-your-dashboard..md +source_file = _documentation/getting-started/01-your-dashboard.en_US.md type = GITHUBMARKDOWN minimum_perc = 0 replace_edited_strings = false diff --git a/SCREENSHOTS-TODO.md b/SCREENSHOTS-TODO.md index b74037c..fb0b5cc 100644 --- a/SCREENSHOTS-TODO.md +++ b/SCREENSHOTS-TODO.md @@ -13,31 +13,30 @@ the feature used to work — and should only change if the feature returns. | Page | Removed | What a replacement should show | |:-----|:--------|:-------------------------------| -| `basics/01-discovering-challenges` | `sorting-1`…`sorting-8` | The Explore Challenges filter bar: location search, Sort by, Work on, Difficulty, Global, Clear filters, and the three view-mode buttons. Plus the grid-with-map result view. | -| `basics/06-markdown` | `markdown_preview.jpg` | Markdown source beside its rendered output, using only CommonMark features (the old shot used a GFM table, which no longer renders). | -| `basics/05-setting-your-map-base-layer` | `66154078-…`, `setting-default-baselayer2` | The **Map style** control open on a task map, showing the five bundled base layers. | -| `basics/11-reporting-a-challenge` | `screen-shot-2021-03-02-…` ×2 | The challenge header's **Comments** button, and the "by _username_" link through to the owner's OSM profile. | -| `advanced/05-solving-multiple-tasks-together` | `66520790-…`, `66521253-…`, `66521347-…`, `66521469-…` | The **Work on multiple tasks** panel with a few tasks selected, and the bundled task list on the Task tab. | -| `creating-challenges/01-creating-a-challenge` | `create-challenge-1`…`create-challenge-4` | The challenge form (project picker, basic info, challenge image, task data, code-of-conduct agreement), and the challenge page after tasks finish building. | -| `creating-challenges/12-setting-external-task-identifiers` | `setting_external_id_field` | Nothing — the setting has no UI. Leave imageless. | -| `creating-challenges/17-exporting-challenge-data` | `export_challenge_data` | **Export CSV** on a project's actions menu under Manage → Projects. | -| `creating-challenges/18-bulk-editing-challenges` | `bulk-edit-1`…`bulk-edit-4` | Task rows selected in a challenge's task table with the bulk actions toolbar showing, and one of its confirmation dialogs. | -| `basics/10-challenge-comments` | `challenge-comments-2` | The **Comments** button in the challenge header and the Challenge Comments dialog, with **Show task comments** checked. | -| `basics/12-challenge-flagging` | `challenge-flagging-1`…`challenge-flagging-5` | The **Challenge actions** menu with **Report Challenge**, the report dialog, and the **View reported issue on GitHub** state afterwards. | -| `basics/04-rapid-editor` | `rapid-editor-1` | The built-in iD editor open in the task screen, with its Re-Center / Select Tasks / Focus / Close editor bar. | -| `basics/02-your-dashboard` | `dashboard-1`…`dashboard-7` | The three-column dashboard: Saved Challenges, profile and level, Contributions + Locked Tasks + Teams. Plus the Mapper Level System dialog. | -| `teams/03-projects-and-project-managers` | `projects-project-managers-1`, `-2` | Manage → Projects, and a project's page with its challenge list and Project Playbook. | -| `teams/05-reviewing` | `reviewing-1`…`reviewing-6` | Blocked on the review plugin: shoot the review queue and a task's review controls with the plugin enabled, plus the Reviews Received / Reviews Performed blocks on a profile. | -| `teams/06-using-maproulette-tags` | `mr-tags-1`…`mr-tags-13` (kept `bad-imagery`, `mr-tags-10`, `mr-tags-11`) | The **Edit task tags** dialog with "Popular in this challenge" chips, and the **Tags (Optional)** field in the completion dialog. | -| `advanced/01-editing-virtual-challenges` _(legacy)_ | `virtual-challenges2`, `-3`, `-4`, `-6` | Trimmed to one illustrative shot. Nothing to re-shoot unless virtual challenges return. | -| `advanced/03-using-layouts` _(legacy)_ | `all_the_widgets`, `edit_layout_control`, `export_layout`, `import_layout`, `laying_out_workspace.gif`, `layout_dropdown` | The page is now about the task screen's two resizable panels and its four tabs. Needs one shot of that. | +| `getting-started/02-discovering-challenges` | `sorting-1`…`sorting-8` | The Explore Challenges filter bar: location search, Sort by, Work on, Difficulty, Global, Clear filters, and the three view-mode buttons. Plus the grid-with-map result view. | +| `advanced/02-markdown` | `markdown_preview.jpg` | Markdown source beside its rendered output, using only CommonMark features (the old shot used a GFM table, which no longer renders). | +| `user-settings/02-setting-your-map-base-layer` | `66154078-…`, `setting-default-baselayer2` | The **Map style** control open on a task map, showing the five bundled base layers. | +| `challenges/08-reporting-a-challenge` | `screen-shot-2021-03-02-…` ×2 | The challenge header's **Comments** button, and the "by _username_" link through to the owner's OSM profile. | +| `mapping/03-solving-multiple-tasks-together` | `66520790-…`, `66521253-…`, `66521347-…`, `66521469-…` | The **Work on multiple tasks** panel with a few tasks selected, and the bundled task list on the Task tab. | +| `challenges/01-creating-a-challenge` | `create-challenge-1`…`create-challenge-4` | The challenge form (project picker, basic info, challenge image, task data, code-of-conduct agreement), and the challenge page after tasks finish building. | +| `tasks/03-setting-external-task-identifiers` | `setting_external_id_field` | Nothing — the setting has no UI. Leave imageless. | +| `challenges/10-exporting-challenge-data` | `export_challenge_data` | **Export CSV** on a project's actions menu under Manage → Projects. | +| `tasks/07-bulk-editing-challenges` | `bulk-edit-1`…`bulk-edit-4` | Task rows selected in a challenge's task table with the bulk actions toolbar showing, and one of its confirmation dialogs. | +| `challenges/07-challenge-comments` | `challenge-comments-2` | The **Comments** button in the challenge header and the Challenge Comments dialog, with **Show task comments** checked. | +| `challenges/09-challenge-flagging` | `challenge-flagging-1`…`challenge-flagging-5` | The **Challenge actions** menu with **Report Challenge**, the report dialog, and the **View reported issue on GitHub** state afterwards. | +| `mapping/02-rapid-editor` | `rapid-editor-1` | The built-in iD editor open in the task screen, with its Re-Center / Select Tasks / Focus / Close editor bar. | +| `getting-started/01-your-dashboard` | `dashboard-1`…`dashboard-7` | The three-column dashboard: Saved Challenges, profile and level, Contributions + Locked Tasks + Teams. Plus the Mapper Level System dialog. | +| `projects/01-projects-and-project-managers` | `projects-project-managers-1`, `-2` | Manage → Projects, and a project's page with its challenge list and Project Playbook. | +| `not-implemented/02-reviewing` | `reviewing-1`…`reviewing-6` | Nothing to re-shoot while reviewing is unavailable, beyond the Reviews Received / Reviews Performed blocks on a profile. | +| `tasks/02-using-maproulette-tags` | `mr-tags-1`…`mr-tags-13` (kept `bad-imagery`, `mr-tags-10`, `mr-tags-11`) | The **Edit task tags** dialog with "Popular in this challenge" chips, and the **Tags (Optional)** field in the completion dialog. | +| `mapping/01-using-layouts` _(legacy)_ | `all_the_widgets`, `edit_layout_control`, `export_layout`, `import_layout`, `laying_out_workspace.gif`, `layout_dropdown` | The page is now about the task screen's two resizable panels and its four tabs. Needs one shot of that. | ## Pages that could use a screenshot but never had one -- `advanced/02-using-keyboard-shortcuts` — the **Keyboard Shortcuts** dialog (?). -- `basics/07-notifications-and-email` — the Notifications page with its filters, saved views and thread pane. -- `basics/08-point-scoring` — the Mapper Level System dialog. -- `creating-challenges/13-task-priority-rules` — the prioritization editor with its tier tabs, match counts and preview map. +- `advanced/01-using-keyboard-shortcuts` — the **Keyboard Shortcuts** dialog (?). +- `user-settings/03-notifications-and-email` — the Notifications page with its filters, saved views and thread pane. +- `getting-started/04-point-scoring` — the Mapper Level System dialog. +- `tasks/01-task-priority-rules` — the prioritization editor with its tier tabs, match counts and preview map. - `teams/01-teams` — the Teams page with a pending invitation, and a team's page with its members and challenge images. ## Elsewhere diff --git a/_config.yaml b/_config.yaml index c0b26ba..9786fd0 100644 --- a/_config.yaml +++ b/_config.yaml @@ -21,15 +21,25 @@ locales: # - pt-PT # - ru -# specifies the order of sections in the sidebar. each entry should match the -# name of a directory in _docs +# Order of the sidebar sections. Each entry must match a directory name under +# _documentation/. sections: - - basics - - advanced - - creating-challenges + - getting-started + - mapping + - user-settings + - projects + - challenges + - tasks - teams + - advanced - server-admin - + - contributing + +# Sections pinned below the Screencasts and For Developers lists, for reference +# material rather than instructions. +appendix_sections: + - not-implemented + # Pages offered in the search box before anything has been typed. Listed by # slug; the title and section label are looked up from the page itself, so they # stay correct if a page is retitled or moved. diff --git a/_data/translations/en-US.json b/_data/translations/en-US.json index 3228cad..8732d48 100644 --- a/_data/translations/en-US.json +++ b/_data/translations/en-US.json @@ -1,7 +1,13 @@ { - "section.basics": "Basics", - "section.advanced": "Advanced Topics", - "section.creating-challenges": "Creating and Managing Challenges", - "section.teams": "Working as a Team", + "section.getting-started": "Getting Started", + "section.mapping": "Mapping Tasks", + "section.user-settings": "User Settings", + "section.projects": "Projects", + "section.challenges": "Challenges", + "section.tasks": "Tasks", + "section.teams": "Teams", + "section.advanced": "Advanced", "section.server-admin": "Server Admin", + "section.contributing": "Contributing", + "section.not-implemented": "Not Implemented Yet" } diff --git a/_documentation/advanced/01-editing-virtual-challenges.en_US.md b/_documentation/advanced/01-editing-virtual-challenges.en_US.md deleted file mode 100644 index 112e856..0000000 --- a/_documentation/advanced/01-editing-virtual-challenges.en_US.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Virtual Challenges ---- - -> Virtual Challenges are not available in the current MapRoulette frontend. -> There is no lasso control on the explore map for creating one, and existing -> virtual challenges cannot be browsed. This page describes what they were, and -> what to reach for in the meantime. -{: .legacy} - -A Virtual Challenge was a Challenge made up of a custom group of Tasks in a -small area, assembled from the tasks already in MapRoulette. You drew a lasso -around some tasks on the map, gave the result a name, and got a shareable link -that let a group work through exactly those tasks together — handy at a -mapathon, or when you wanted to concentrate on one neighbourhood rather than -take whatever the wheel gave you. - -![](/media/virtual-challenges.png) - -## What to use instead - -- **Filter by location.** On - [Explore Challenges](/en-US/documentation/discovering-challenges/) you can - search for a place and restrict the results to challenges that overlap it, - then pan and zoom the map to narrow further. -- **Work several nearby tasks together.** Within a challenge, the - [multi-task workflow](/en-US/documentation/solving-multiple-tasks-together/) - lets you draw around a cluster of tasks and complete them as one bundle. -- **Save the challenge.** Saving a challenge puts it on your - [Dashboard](/en-US/documentation/your-dashboard/) so you and your teammates - can each pick it back up. diff --git a/_documentation/advanced/02-using-keyboard-shortcuts.en_US.md b/_documentation/advanced/01-using-keyboard-shortcuts.en_US.md similarity index 100% rename from _documentation/advanced/02-using-keyboard-shortcuts.en_US.md rename to _documentation/advanced/01-using-keyboard-shortcuts.en_US.md diff --git a/_documentation/basics/06-markdown.en_US.md b/_documentation/advanced/02-markdown.en_US.md similarity index 100% rename from _documentation/basics/06-markdown.en_US.md rename to _documentation/advanced/02-markdown.en_US.md diff --git a/_documentation/advanced/06-comment-short-codes.en_US.md b/_documentation/advanced/03-comment-short-codes.en_US.md similarity index 100% rename from _documentation/advanced/06-comment-short-codes.en_US.md rename to _documentation/advanced/03-comment-short-codes.en_US.md diff --git a/_documentation/creating-challenges/01-creating-a-challenge.en_US.md b/_documentation/challenges/01-creating-a-challenge.en_US.md similarity index 100% rename from _documentation/creating-challenges/01-creating-a-challenge.en_US.md rename to _documentation/challenges/01-creating-a-challenge.en_US.md diff --git a/_documentation/creating-challenges/02-using-overpass-to-create-challenges.en_US.md b/_documentation/challenges/02-using-overpass-to-create-challenges.en_US.md similarity index 100% rename from _documentation/creating-challenges/02-using-overpass-to-create-challenges.en_US.md rename to _documentation/challenges/02-using-overpass-to-create-challenges.en_US.md diff --git a/_documentation/creating-challenges/03-gists-for-remote-geojson.en_US.md b/_documentation/challenges/03-gists-for-remote-geojson.en_US.md similarity index 100% rename from _documentation/creating-challenges/03-gists-for-remote-geojson.en_US.md rename to _documentation/challenges/03-gists-for-remote-geojson.en_US.md diff --git a/_documentation/creating-challenges/15-line-by-line-geojson.en_US.md b/_documentation/challenges/04-line-by-line-geojson.en_US.md similarity index 100% rename from _documentation/creating-challenges/15-line-by-line-geojson.en_US.md rename to _documentation/challenges/04-line-by-line-geojson.en_US.md diff --git a/_documentation/creating-challenges/04-challenge-visibility-and-discovery.en_US.md b/_documentation/challenges/05-challenge-visibility-and-discovery.en_US.md similarity index 100% rename from _documentation/creating-challenges/04-challenge-visibility-and-discovery.en_US.md rename to _documentation/challenges/05-challenge-visibility-and-discovery.en_US.md diff --git a/_documentation/creating-challenges/04-challenge-visibility-and-discovery.ru.md b/_documentation/challenges/05-challenge-visibility-and-discovery.ru.md similarity index 100% rename from _documentation/creating-challenges/04-challenge-visibility-and-discovery.ru.md rename to _documentation/challenges/05-challenge-visibility-and-discovery.ru.md diff --git a/_documentation/creating-challenges/14-rebuilding-challenge-tasks.en_US.md b/_documentation/challenges/06-rebuilding-challenge-tasks.en_US.md similarity index 100% rename from _documentation/creating-challenges/14-rebuilding-challenge-tasks.en_US.md rename to _documentation/challenges/06-rebuilding-challenge-tasks.en_US.md diff --git a/_documentation/basics/10-challenge-comments.en_US.md b/_documentation/challenges/07-challenge-comments.en_US.md similarity index 100% rename from _documentation/basics/10-challenge-comments.en_US.md rename to _documentation/challenges/07-challenge-comments.en_US.md diff --git a/_documentation/basics/10-challenge-comments.fr_FR.md b/_documentation/challenges/07-challenge-comments.fr_FR.md similarity index 100% rename from _documentation/basics/10-challenge-comments.fr_FR.md rename to _documentation/challenges/07-challenge-comments.fr_FR.md diff --git a/_documentation/basics/10-challenge-comments.nl.md b/_documentation/challenges/07-challenge-comments.nl.md similarity index 100% rename from _documentation/basics/10-challenge-comments.nl.md rename to _documentation/challenges/07-challenge-comments.nl.md diff --git a/_documentation/basics/10-challenge-comments.ru.md b/_documentation/challenges/07-challenge-comments.ru.md similarity index 100% rename from _documentation/basics/10-challenge-comments.ru.md rename to _documentation/challenges/07-challenge-comments.ru.md diff --git a/_documentation/basics/11-reporting-a-challenge.en_US.md b/_documentation/challenges/08-reporting-a-challenge.en_US.md similarity index 100% rename from _documentation/basics/11-reporting-a-challenge.en_US.md rename to _documentation/challenges/08-reporting-a-challenge.en_US.md diff --git a/_documentation/basics/12-challenge-flagging.en_US.md b/_documentation/challenges/09-challenge-flagging.en_US.md similarity index 100% rename from _documentation/basics/12-challenge-flagging.en_US.md rename to _documentation/challenges/09-challenge-flagging.en_US.md diff --git a/_documentation/basics/12-challenge-flagging.fr_FR.md b/_documentation/challenges/09-challenge-flagging.fr_FR.md similarity index 100% rename from _documentation/basics/12-challenge-flagging.fr_FR.md rename to _documentation/challenges/09-challenge-flagging.fr_FR.md diff --git a/_documentation/basics/12-challenge-flagging.nl.md b/_documentation/challenges/09-challenge-flagging.nl.md similarity index 100% rename from _documentation/basics/12-challenge-flagging.nl.md rename to _documentation/challenges/09-challenge-flagging.nl.md diff --git a/_documentation/basics/12-challenge-flagging.ru.md b/_documentation/challenges/09-challenge-flagging.ru.md similarity index 100% rename from _documentation/basics/12-challenge-flagging.ru.md rename to _documentation/challenges/09-challenge-flagging.ru.md diff --git a/_documentation/creating-challenges/17-exporting-challenge-data.en_US.md b/_documentation/challenges/10-exporting-challenge-data.en_US.md similarity index 100% rename from _documentation/creating-challenges/17-exporting-challenge-data.en_US.md rename to _documentation/challenges/10-exporting-challenge-data.en_US.md diff --git a/_documentation/basics/13-translate-docs.en_US.md b/_documentation/contributing/01-translate-docs.en_US.md similarity index 100% rename from _documentation/basics/13-translate-docs.en_US.md rename to _documentation/contributing/01-translate-docs.en_US.md diff --git a/_documentation/creating-challenges/07-creating-cooperative-challenges.en_US.md b/_documentation/creating-challenges/07-creating-cooperative-challenges.en_US.md deleted file mode 100644 index 7cf1de0..0000000 --- a/_documentation/creating-challenges/07-creating-cooperative-challenges.en_US.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: Cooperative Challenges ---- - -> The current MapRoulette frontend recognises cooperative and Tag Fix -> challenges — they are badged as such on the challenge page — but does not yet -> run their workflows: the in-progress change file is not loaded into JOSM, and -> Tag Fix tasks are completed like ordinary tasks rather than by approving a -> proposed tag change. The data formats on this page are unchanged, so -> challenges built with them are still valid. -{: .legacy} - -Cooperative Challenges allow in-progress (uncommitted) mapping work to be packaged with tasks so that mappers don't have to do all the work themselves from scratch. When a mapper chooses to edit the task in MapRoulette, the in-progress work will automatically be loaded into the mapper's editor so that they can verify and complete the work as needed. - -> Note: JOSM was the only supported editor for Cooperative Challenges - -Aside from the initial editing work being automatically loaded into the mapper's editor, the mapping workflow for Cooperative tasks is otherwise identical to normal tasks: the mapper still chooses to Edit the task, they still perform the editing work in their editor, they still upload and commit their work to OSM through their editor, and they still mark the task as Finished or another appropriate status in MapRoulette when complete. - -### Creating Cooperative Challenges - -#### With the `mr-cli` utility (recommended) - -The simplest way to create cooperative challenges is with the [mr-cli](https://www.npmjs.com/package/@maproulette/mr-cli) command-line utility, which can generate challenges from saved JOSM (.osm) or OSM Change (.osc) files. See the tool's documentation for details and examples of use. - -#### With GeoJSON - -Cooperative challenges can also be created by including additional data with each task in the GeoJSON, including an [OSMChange (.osc)](https://wiki.openstreetmap.org/wiki/OsmChange) file that represents the in-progress work that is to be loaded into the mapper's editor for the task. The additional data should be included in a `cooperativeWork` object associated with each task's `FeatureCollection` in the challenge's [line-by-line GeoJSON](/en-US/documentation/line-by-line-geojson/) file. - -> :warning: Only [line-by-line GeoJSON](/en-US/documentation/line-by-line-geojson/) is supported for cooperative challenges. If you use a traditional GeoJSON format, your cooperativeWork section will simply be ignored and you will end up with normal tasks instead of cooperative tasks - -The structure of the `cooperativeWork` object is designed to be flexible to support various options, formats, and encodings in the future, but at the moment only a very specific combination of values is supported. - -The following example demonstrates the structure, shown here over multiple lines for readability. - -```javascript -{ - "type": "FeatureCollection", - "features": [ ... ], // omitted for readability - "cooperativeWork": { // special `cooperativeWork` property - "meta": { - "version": 2, // must be format version `2` - "type": 2 // `2` for change file type - }, - "file": { // represents the change file with in-progress work - "type": "xml", // only `xml` is currently supported - "format": "osc", // only `osc` is currently supported - "encoding": "base64", // only `base64` is currently supported - "content": "..." // the base64-encoded osc file - } - } -} -``` - -> Note: the file contents must be Base64-encoded using the Base 64 Alphabet as specified in table 1 of [RFC 4648](https://www.ietf.org/rfc/rfc4648.txt) (sometimes referred to as "basic" Base64 encoding) - -The `features` for each task are used for all the usual things by MapRoulette (rendering the task on maps, geographical indexing, task prioritization, searching for tasks by feature properties, etc.) but are _not_ incorporated into editing -- only the osc file is sent to the editor. - -### Creating [Tag Fix Challenges](/en-US/documentation/tag-fix-challenges) - -If your changes consist purely of tag fixes, an alternative _Tag Fix_ (formerly quick fix) style cooperative challenge can be created instead. MapRoulette will present the proposed tag changes to mappers during task completion and allow them to approve or reject the changes within MapRoulette, as well as modify the tags if needed. Approved changes are submitted directly to OSM by MapRoulette itself, removing the need for external editors. - -#### With the `mr-cli` utility (recommended) - -As with standard cooperative challenges, the easiest way to create a Tag Fix challenge is with the [mr-cli](https://www.npmjs.com/package/@maproulette/mr-cli) command-line utility. See the tool's documentation for details and examples of use. - -See also [this post on the MapRoulette blog](https://blog.maproulette.org/2022/11/07/tutorial-tagging-parkingsurface-efficiently-with-a-maproulette-tag-fix-challenge/) for a complete example of how to make a tag-fix challenge using the `mr-cli` tool. - -#### With GeoJSON - -To aid with backwards compatibility, the GeoJSON structure of Tag Fix tasks is extremely similar to that of the old quick fix tasks, with only a few minor changes to the data envelope being required. - -```javascript -{ - "type": "FeatureCollection", - "features": [ ... ], // omitted for readability - "cooperativeWork": { // special `cooperativeWork` property - "meta": { - "version": 2, // must be format version `2` - "type": 1 // `1` for tag fix type - }, - "operations": [ // Operations section (see below) - ... - ] - } -} -``` - -#### Supported GeoJSON Operations - -A Tag Fix consists of one _independent_ (or parent) operation which includes one or more embedded _dependent_ (or child) operations. - -> Note: For ease of backward compatibility, the Tag Fix operations are taken from a subset of the old quick fix operations and work (and are structured) identically - -#### Independent Operations - -> Note: Any OSM ids referenced in an operation must be of the form of `elementType/numericId`, e.g. `node/123456789` - -**modifyElement** - -Updates an existing OSM element with a series of dependent operations on tags that will be applied in the order they appear. `data` should consist of an `id` and `operations` array with dependent operations to be performed. - -Example: - -```javascript -{ - "operationType": "modifyElement", - "data": { - "id": "way/12345678", - "operations": [{ - "operation": "setTags", - "data": { - "building": "yes", - } - }] - } -} -``` - -#### Dependent Operations - -**setTags** - -Sets the value of one or more tags on the enclosing OSM element. This operation will add the tag if it does not yet exist on the element, or update the value of an existing tag if it does exist. `data` should be an object with tag names as keys. - -> Unlike an OSM changeset, which often requires a complete snapshot of the element data to be provided, a tag fix is intended to capture only the actual changes required to complete the task - -Example: - -```javascript -{ - "operation": "setTags", - "data": { - "name": "Walgreens", - "amenity": "pharmacy" - } -} -``` - -**unsetTags** - -Removes one or more tags from the enclosing OSM element. This operation will -delete the tag from the OSM element if it exists, or silently do nothing if it -does not. `data` should be an array of tag names to remove. - -Example: - -```javascript -{ - "operation": "unsetTags", - "data": ["sometag", "anothertag"] -} -``` - -### See also - -* [Adding Microsoft Building Footprints To OSM With MapRoulette: Why And How](https://www.openstreetmap.org/user/mvexel/diary/399229) walks you through an example of creating a Cooperative Challenge - -### Full example - -This is a full example of a valid GeoJSON that uses `setTags` for two features. - -```javascript -{ - "type": "FeatureCollection", - "features": [ - { - "type": "Feature", - "properties": { - "id": "point/123", - "otherkeys": "othervalues" - }, - "geometry": { - "type": "Point", - "coordinates": [13.4050, 52.5200] - } - } - ], - "cooperativeWork": { - "meta": { - "version": 2, - "type": 1 - }, - "operations": [ - { - "operationType": "modifyElement", - "data": { - "id": "point/123", // same id as `feature[0].properties.id` above - "operations": [ - { - "operation": "setTags", - "data": { - "nice": "place" - } - } - ] - } - } - ] - } -} -``` - diff --git a/_documentation/basics/02-your-dashboard.en_US.md b/_documentation/getting-started/01-your-dashboard.en_US.md similarity index 100% rename from _documentation/basics/02-your-dashboard.en_US.md rename to _documentation/getting-started/01-your-dashboard.en_US.md diff --git a/_documentation/basics/01-discovering-challenges.en_US.md b/_documentation/getting-started/02-discovering-challenges.en_US.md similarity index 100% rename from _documentation/basics/01-discovering-challenges.en_US.md rename to _documentation/getting-started/02-discovering-challenges.en_US.md diff --git a/_documentation/advanced/07-searchbox-short-commands.en_US.md b/_documentation/getting-started/03-searchbox-short-commands.en_US.md similarity index 100% rename from _documentation/advanced/07-searchbox-short-commands.en_US.md rename to _documentation/getting-started/03-searchbox-short-commands.en_US.md diff --git a/_documentation/basics/08-point-scoring.de_DE.md b/_documentation/getting-started/04-point-scoring.de_DE.md similarity index 100% rename from _documentation/basics/08-point-scoring.de_DE.md rename to _documentation/getting-started/04-point-scoring.de_DE.md diff --git a/_documentation/basics/08-point-scoring.en_US.md b/_documentation/getting-started/04-point-scoring.en_US.md similarity index 100% rename from _documentation/basics/08-point-scoring.en_US.md rename to _documentation/getting-started/04-point-scoring.en_US.md diff --git a/_documentation/advanced/03-using-layouts.en_US.md b/_documentation/mapping/01-using-layouts.en_US.md similarity index 100% rename from _documentation/advanced/03-using-layouts.en_US.md rename to _documentation/mapping/01-using-layouts.en_US.md diff --git a/_documentation/basics/04-rapid-editor.en_US.md b/_documentation/mapping/02-rapid-editor.en_US.md similarity index 87% rename from _documentation/basics/04-rapid-editor.en_US.md rename to _documentation/mapping/02-rapid-editor.en_US.md index a2713eb..62432ac 100644 --- a/_documentation/basics/04-rapid-editor.en_US.md +++ b/_documentation/mapping/02-rapid-editor.en_US.md @@ -37,6 +37,6 @@ Editor](/en-US/documentation/setting-your-default-osm-editor/). > is iD. {: .legacy} -> Cooperative and Tag Fix challenges are not edited this way — see -> [Cooperative Challenges](/en-US/documentation/creating-cooperative-challenges/) -> and [Tag Fix Challenges](/en-US/documentation/tag-fix-challenges/). +> [Tag Fix challenges](/en-US/documentation/tag-fix-challenges/) are not edited +> this way — they were meant to be resolved in MapRoulette itself, without an +> editor. diff --git a/_documentation/advanced/05-solving-multiple-tasks-together.en_US.md b/_documentation/mapping/03-solving-multiple-tasks-together.en_US.md similarity index 100% rename from _documentation/advanced/05-solving-multiple-tasks-together.en_US.md rename to _documentation/mapping/03-solving-multiple-tasks-together.en_US.md diff --git a/_documentation/basics/09-tag-fix-challenges.en_US.md b/_documentation/not-implemented/01-tag-fix-challenges.en_US.md similarity index 83% rename from _documentation/basics/09-tag-fix-challenges.en_US.md rename to _documentation/not-implemented/01-tag-fix-challenges.en_US.md index d0b6457..c45b0af 100644 --- a/_documentation/basics/09-tag-fix-challenges.en_US.md +++ b/_documentation/not-implemented/01-tag-fix-challenges.en_US.md @@ -2,15 +2,15 @@ title: Tag Fix Challenges --- -> The Tag Fix completion workflow is not available in the current MapRoulette -> frontend. Tag Fix challenges are recognised — the challenge page badges them +> The Tag Fix workflow is not available in the current MapRoulette frontend. +> Tag Fix challenges are still recognised — the challenge page badges them > **Tag Fix** — but the proposed tag change is not presented for approval, and -> tasks are completed like ordinary ones. This page describes how the workflow -> works when it is available. +> tasks are completed like ordinary ones. There is also no longer a supported +> way to create one: Tag Fix challenges were a kind of Cooperative Challenge, +> and cooperative challenges have been removed. This page describes the +> workflow for reference. {: .legacy} -[Learn about creating tag fix challenges](/en-US/documentation/creating-cooperative-challenges/#creating-tag-fix-challenges) - MapRoulette serves you quick tasks that make it easy for you anyone to find something meaningful to map. The way that worked until now required loading the data related to the Task into JOSM or iD, fixing it there, and returning to MapRoulette to say you fixed it, and then move on. Now, we’re introducing a new type of Task: the **Tag Fix**. In a Tag Fix Task, MapRoulette will present the suggested fix to you, and all you need to do is click Yes to agree with the fix, and the change will be applied to OSM directly. diff --git a/_documentation/teams/05-reviewing.en_US.md b/_documentation/not-implemented/02-reviewing.en_US.md similarity index 69% rename from _documentation/teams/05-reviewing.en_US.md rename to _documentation/not-implemented/02-reviewing.en_US.md index 528014a..94c895d 100644 --- a/_documentation/teams/05-reviewing.en_US.md +++ b/_documentation/not-implemented/02-reviewing.en_US.md @@ -6,11 +6,17 @@ As you fix things via MapRoulette, you can ask for someone else to review your work; and if you are a more experienced mapper, you can volunteer to review the tasks that your fellow mappers have submitted. -> In the current MapRoulette frontend, the reviewing workflow is provided by -> the **MapRoulette Review plugin** rather than being built into the core -> interface. Some deployments load it for everyone; otherwise you add it -> yourself from **Account Settings → Plugins**. Without it, the review queue -> and the review controls on a task are not shown. +> Reviewing is not available in the current MapRoulette frontend. There is no +> review queue, no way to ask for your own work to be reviewed, and no +> approve/reject controls on a task. This page describes how reviewing works +> for when it returns. +> +> Some review *data* still surfaces, which is why you'll see the word around +> the app: review outcomes arrive as +> [notifications](/en-US/documentation/notifications-and-email/), a mapper's +> profile shows **Reviews Received** and **Reviews Performed** counts, and +> challenge managers can reassign open task reviews in bulk from the task +> table. None of those let you actually review a task. {: .legacy} ### What reviewing is for @@ -46,11 +52,11 @@ Review results reach the mapper as ### Seeing your review history -Your [public profile](/en-US/documentation/your-dashboard/) has two blocks that -summarise reviewing, over a time range you choose: - -- **Reviews Received** — the outcomes of reviews of your own work -- **Reviews Performed** — the outcomes of reviews you carried out +A mapper's public profile has two blocks that summarise reviewing over a time +range you choose — **Reviews Received** (the outcomes of reviews of their own +work) and **Reviews Performed** (the outcomes of reviews they carried out). +These are the one part of reviewing that is present today, populated from +review history recorded earlier. ### Adding tags during review diff --git a/_documentation/teams/02-following.en_US.md b/_documentation/not-implemented/03-following.en_US.md similarity index 100% rename from _documentation/teams/02-following.en_US.md rename to _documentation/not-implemented/03-following.en_US.md diff --git a/_documentation/advanced/04-using-mapillary-images.en_US.md b/_documentation/not-implemented/04-using-mapillary-images.en_US.md similarity index 100% rename from _documentation/advanced/04-using-mapillary-images.en_US.md rename to _documentation/not-implemented/04-using-mapillary-images.en_US.md diff --git a/_documentation/advanced/04-using-mapillary-images.es.md b/_documentation/not-implemented/04-using-mapillary-images.es.md similarity index 100% rename from _documentation/advanced/04-using-mapillary-images.es.md rename to _documentation/not-implemented/04-using-mapillary-images.es.md diff --git a/_documentation/advanced/04-using-mapillary-images.ru.md b/_documentation/not-implemented/04-using-mapillary-images.ru.md similarity index 100% rename from _documentation/advanced/04-using-mapillary-images.ru.md rename to _documentation/not-implemented/04-using-mapillary-images.ru.md diff --git a/_documentation/creating-challenges/05-setting-basemap-for-challenge.en_US.md b/_documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md similarity index 100% rename from _documentation/creating-challenges/05-setting-basemap-for-challenge.en_US.md rename to _documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md diff --git a/_documentation/creating-challenges/06-styling-task-features.en_US.md b/_documentation/not-implemented/06-styling-task-features.en_US.md similarity index 100% rename from _documentation/creating-challenges/06-styling-task-features.en_US.md rename to _documentation/not-implemented/06-styling-task-features.en_US.md diff --git a/_documentation/creating-challenges/11-filtering-the-task-list-by-properties.en_US.md b/_documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md similarity index 100% rename from _documentation/creating-challenges/11-filtering-the-task-list-by-properties.en_US.md rename to _documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md diff --git a/_documentation/creating-challenges/09-challenge-instructions-templating.en_US.md b/_documentation/not-implemented/08-challenge-instructions-templating.en_US.md similarity index 100% rename from _documentation/creating-challenges/09-challenge-instructions-templating.en_US.md rename to _documentation/not-implemented/08-challenge-instructions-templating.en_US.md diff --git a/_documentation/creating-challenges/09-challenge-instructions-templating.ru.md b/_documentation/not-implemented/08-challenge-instructions-templating.ru.md similarity index 100% rename from _documentation/creating-challenges/09-challenge-instructions-templating.ru.md rename to _documentation/not-implemented/08-challenge-instructions-templating.ru.md diff --git a/_documentation/server-admin/system-notice-management.en_US.md b/_documentation/not-implemented/09-system-notice-management.en_US.md similarity index 100% rename from _documentation/server-admin/system-notice-management.en_US.md rename to _documentation/not-implemented/09-system-notice-management.en_US.md diff --git a/_documentation/server-admin/system-notice-management.ru.md b/_documentation/not-implemented/09-system-notice-management.ru.md similarity index 100% rename from _documentation/server-admin/system-notice-management.ru.md rename to _documentation/not-implemented/09-system-notice-management.ru.md diff --git a/_documentation/teams/03-projects-and-project-managers.en_US.md b/_documentation/projects/01-projects-and-project-managers.en_US.md similarity index 100% rename from _documentation/teams/03-projects-and-project-managers.en_US.md rename to _documentation/projects/01-projects-and-project-managers.en_US.md diff --git a/_documentation/server-admin/runtime-configuration.en_US.md b/_documentation/server-admin/01-runtime-configuration.en_US.md similarity index 100% rename from _documentation/server-admin/runtime-configuration.en_US.md rename to _documentation/server-admin/01-runtime-configuration.en_US.md diff --git a/_documentation/server-admin/map-layer-management.en_US.md b/_documentation/server-admin/02-map-layer-management.en_US.md similarity index 100% rename from _documentation/server-admin/map-layer-management.en_US.md rename to _documentation/server-admin/02-map-layer-management.en_US.md diff --git a/_documentation/creating-challenges/13-task-priority-rules.en_US.md b/_documentation/tasks/01-task-priority-rules.en_US.md similarity index 100% rename from _documentation/creating-challenges/13-task-priority-rules.en_US.md rename to _documentation/tasks/01-task-priority-rules.en_US.md diff --git a/_documentation/teams/06-using-maproulette-tags.en_US.md b/_documentation/tasks/02-using-maproulette-tags.en_US.md similarity index 100% rename from _documentation/teams/06-using-maproulette-tags.en_US.md rename to _documentation/tasks/02-using-maproulette-tags.en_US.md diff --git a/_documentation/creating-challenges/12-setting-external-task-identifiers.en_US.md b/_documentation/tasks/03-setting-external-task-identifiers.en_US.md similarity index 100% rename from _documentation/creating-challenges/12-setting-external-task-identifiers.en_US.md rename to _documentation/tasks/03-setting-external-task-identifiers.en_US.md diff --git a/_documentation/creating-challenges/10-defining-task-sourced-date.en_US.md b/_documentation/tasks/04-defining-task-sourced-date.en_US.md similarity index 100% rename from _documentation/creating-challenges/10-defining-task-sourced-date.en_US.md rename to _documentation/tasks/04-defining-task-sourced-date.en_US.md diff --git a/_documentation/creating-challenges/10-defining-task-sourced-date.ru.md b/_documentation/tasks/04-defining-task-sourced-date.ru.md similarity index 100% rename from _documentation/creating-challenges/10-defining-task-sourced-date.ru.md rename to _documentation/tasks/04-defining-task-sourced-date.ru.md diff --git a/_documentation/creating-challenges/08-mustache-tag-replacement.en_US.md b/_documentation/tasks/05-mustache-tag-replacement.en_US.md similarity index 100% rename from _documentation/creating-challenges/08-mustache-tag-replacement.en_US.md rename to _documentation/tasks/05-mustache-tag-replacement.en_US.md diff --git a/_documentation/creating-challenges/16-task-attachments.en_US.md b/_documentation/tasks/06-task-attachments.en_US.md similarity index 100% rename from _documentation/creating-challenges/16-task-attachments.en_US.md rename to _documentation/tasks/06-task-attachments.en_US.md diff --git a/_documentation/creating-challenges/18-bulk-editing-challenges.en_US.md b/_documentation/tasks/07-bulk-editing-challenges.en_US.md similarity index 100% rename from _documentation/creating-challenges/18-bulk-editing-challenges.en_US.md rename to _documentation/tasks/07-bulk-editing-challenges.en_US.md diff --git a/_documentation/creating-challenges/18-bulk-editing-challenges.fr_FR.md b/_documentation/tasks/07-bulk-editing-challenges.fr_FR.md similarity index 100% rename from _documentation/creating-challenges/18-bulk-editing-challenges.fr_FR.md rename to _documentation/tasks/07-bulk-editing-challenges.fr_FR.md diff --git a/_documentation/creating-challenges/18-bulk-editing-challenges.nl.md b/_documentation/tasks/07-bulk-editing-challenges.nl.md similarity index 100% rename from _documentation/creating-challenges/18-bulk-editing-challenges.nl.md rename to _documentation/tasks/07-bulk-editing-challenges.nl.md diff --git a/_documentation/creating-challenges/18-bulk-editing-challenges.ru.md b/_documentation/tasks/07-bulk-editing-challenges.ru.md similarity index 100% rename from _documentation/creating-challenges/18-bulk-editing-challenges.ru.md rename to _documentation/tasks/07-bulk-editing-challenges.ru.md diff --git a/_documentation/teams/04-virtual-projects.en_US.md b/_documentation/teams/04-virtual-projects.en_US.md deleted file mode 100644 index d35fa3a..0000000 --- a/_documentation/teams/04-virtual-projects.en_US.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Virtual Projects ---- - -> Virtual Projects are not available in the current MapRoulette frontend: -> there is no option to create one, and virtual projects cannot be browsed or -> managed. This page describes how they worked, for reference. A challenge -> still belongs to exactly one standard project, which you can change with -> **Move challenge** in the challenge's actions menu. -{: .legacy} - -Virtual Projects provide a flexible means of loosely organizing disparate Challenges into ad-hoc groupings without having to move the challenges from their original projects. Whereas a challenge can only belong to a single standard project, it can be a member of any number of virtual projects. Anyone can create virtual projects and can add any challenge to their virtual project that is either publicly visible or to which they have at least read access (via permissions on the challenge's standard parent project). The admins of a virtual project can add other members to their virtual project, assigning them Read, Write, or Admin access. - -> Note: while you can add existing challenges to virtual projects, you cannot create new challenges within a virtual project. Challenges can only be created in standard projects (but can then be added to virtual projects) - -You can create a Virtual Project just like you would a regular Project. Just indicate that the Project you are creating is a Virtual Project: - -![create project screenshot](/media/70949151-ff40cd00-2054-11ea-981f-fd8fcb52c95d.png) - -Once you have your Virtual Project, you will see the (empty) challenge list in the Project management screen: - -![project manage screenshot](/media/70949413-9efe5b00-2055-11ea-866b-c8efaff441e5.png) - -Use the 'Manage Challenge List' button in the Challenge List widget to add / remove Challenges from this Virtual Project. - -![challenge list manager screenshot](/media/70949537-f00e4f00-2055-11ea-82ac-f5346e562a85.png) - -## Roles in Virtual Projects - -It is worth noting that Read/Write/Admin roles in virtual projects only govern the virtual project itself, and **do not** confer any administrative ability over the challenges in the virtual project. For example, a user who does not have write access to a challenge will not suddenly gain write access to it by adding that challenge to a virtual project in which they have do have write access. Challenge administrative permissions are solely governed by the challenge's standard parent project. - -However, any member of a virtual project will have limited read access to the challenges in that virtual project, even if some of those challenges would not normally be visible to them. For example, they will see the names of those challenges, be able to visit the mapper (not administrative) details page for the challenges, and will be able to see some aggregated data from the challenges such as comments and stats. However, a challenge can only be _added_ to a virtual project by someone who has visibility of the challenge, either because it is public or because they have been explicitly granted read or higher access. **Please be aware that by adding a challenge to a virtual project, you are granting all members of that virtual project limited read access to the challenge.** - -More specifically, the virtual project roles grant the following permissions: - -**Read**: user can view the virtual project; can see the challenges in the virtual project, visit the end-user details pages for those challenges to initiate work on them, and see various aggregated data from the challenges such as comments and stats; can see the usernames and roles of other members of the virtual project. - -**Write**: all permissions of Read; user can add/remove challenges to/from the virtual project; can edit the name and description of the virtual project itself. - -**Admin**: all permissions of Write; user can add/remove users to/from the virtual project and modify their roles. - diff --git a/_documentation/teams/04-virtual-projects.fr_FR.md b/_documentation/teams/04-virtual-projects.fr_FR.md deleted file mode 100644 index 4c41f59..0000000 --- a/_documentation/teams/04-virtual-projects.fr_FR.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Projets Virtuels ---- - -Les Projets Virtuels sont un outil flexible permettant d’organiser différents challenge dans un groupe sans avoir besoin de séparer les challenges de leur projet. Bien qu'un challenge ne puisse dépendre que d'un seul projet standard, il peut être membre de plusieurs projets virtuels. N'importe qui peut créer des projets virtuels et y ajouter n'importe quel challenge publique ou dont il a un accès en lecture (depuis les permissions du projet standard du challenge). Les administrateurs d'un projet virtuel peuvent ajouter d'autres membres à leur projet virtuel, et leur donner des accès de Lecture, Écriture ou d'Administration. - -> Note: bien que vous puissiez ajouter des challenge existant aux projets virtuels, il n'est pas possible de créer de nouveaux challenges dans un projet virtuel. Les challenges ne peuvent être créer uniquement dans des projets standard (mais peuvent ensuite être ajoutés à des projets virtuels) - -Vous pouvez créer un Projet Virtuel comme vous le feriez pour un Projet Standard. Il suffit d'indiquer que le projet que vous créez est un projet virtuel : - -![create project screenshot](/media/70949151-ff40cd00-2054-11ea-981f-fd8fcb52c95d.png) - -Une fois que votre Projet Virtuel est créé, vous verrez une liste (vide) de challenge dans l'écran de gestion du projet : - -![project manage screenshot](/media/70949413-9efe5b00-2055-11ea-866b-c8efaff441e5.png) - -Utiliser le bouton "Gérer la liste des Challenge" dans le widget de la liste des challenges pour ajouter / supprimer des Challenges de ce Projet Virtuel. - -![challenge list manager screenshot](/media/70949537-f00e4f00-2055-11ea-82ac-f5346e562a85.png) - -## Rôles dans les projets virtuels - -Il est important de préciser que les rôles Lecture / Écriture / Administrateur dans les projets virtuels ne régissent que le projet virtuel lui-même et **ne donnent pas** de permissions sur les challenges du projet virtuel. Par exemple, un utilisateur qui n'a pas d'accès en écriture à un challenge n'obtiendra pas d'accès en écriture à ce challenge s'il est ajouté à un projet virtuel dans lequel l'utilisateur a un accès en écriture. Les permissions des challenges sont uniquement définies par le projet standard parent du défi. - -Cependant, tout membre d'un projet virtuel aura un accès limité en lecture aux challenges de ce projet virtuel, même si certains de ces challenges ne lui sont normalement pas visibles. Par exemple, ils verront les noms de ces challenges, pourront visiter la page de détails du challenge (pas celles des permissions), et pourront voir certaines données agrégées des challenges telles que les commentaires et les statistiques. Cependant, un challenge ne peut être _ajouté_ à un projet virtuel que par quelqu'un qui a la visibilité du challenge, soit parce qu'il est public, soit parce qu'il lui a été explicitement accordé un accès en lecture ou un accès supérieur. **Sachez qu'en ajoutant un challenge à un projet virtuel, vous accordez à tous les membres de ce projet virtuel un accès limité en lecture au challenge. - -Plus précisément, les rôles des projets virtuels accordent les autorisations suivantes : - -**Lecture** : l'utilisateur peut voir le projet virtuel ; il peut voir les challenges dans le projet virtuel, visiter les descriptions pour ces challenges afin de commencer à travailler dessus, et voir diverses données agrégées des challenges telles que les commentaires et les statistiques ; il peut voir les noms d'utilisateur et les rôles des autres membres du projet virtuel. - -**Écriture** : toutes les autorisations de lecture ; l'utilisateur peut ajouter/supprimer des challenges au projet virtuel ; il peut modifier le nom et la description du projet virtuel lui-même. - -**Administrateur** : toutes les permissions d'écriture ; l'utilisateur peut ajouter/supprimer des utilisateurs au projet virtuel et modifier leurs permissions. - diff --git a/_documentation/basics/03-setting-your-default-osm-editor.en_US.md b/_documentation/user-settings/01-setting-your-default-osm-editor.en_US.md similarity index 100% rename from _documentation/basics/03-setting-your-default-osm-editor.en_US.md rename to _documentation/user-settings/01-setting-your-default-osm-editor.en_US.md diff --git a/_documentation/basics/05-setting-your-map-base-layer.en_US.md b/_documentation/user-settings/02-setting-your-map-base-layer.en_US.md similarity index 100% rename from _documentation/basics/05-setting-your-map-base-layer.en_US.md rename to _documentation/user-settings/02-setting-your-map-base-layer.en_US.md diff --git a/_documentation/basics/07-notifications-and-email.en_US.md b/_documentation/user-settings/03-notifications-and-email.en_US.md similarity index 100% rename from _documentation/basics/07-notifications-and-email.en_US.md rename to _documentation/user-settings/03-notifications-and-email.en_US.md diff --git a/_includes/nav-section.html b/_includes/nav-section.html new file mode 100644 index 0000000..face6ba --- /dev/null +++ b/_includes/nav-section.html @@ -0,0 +1,19 @@ +{%- comment -%} +One labelled group of documentation links in the sidebar. +Params: section (directory name under _documentation/), current (page.url). +{%- endcomment -%} +{%- assign key = "section." | append: include.section -%} +{%- assign name = site.data.translations[page.lang][key] | default: site.data.translations["en-US"][key] | default: include.section -%} +{%- assign docs = site.documentation | where: "section", include.section | where: "lang", page.lang | sort: "order" -%} +{%- if docs.size > 0 -%} +
  • +

    {{ name }}

    + +
  • +{%- endif -%} diff --git a/_layouts/page.html b/_layouts/page.html index ff46858..639235e 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -4,27 +4,31 @@ {% assign current = page.url %} +{%- comment -%} +Sections named in `sections` / `appendix_sections` render in that order. Any +other directory under _documentation/ is appended after them rather than being +dropped, so adding a section without touching _config.yaml can never make a +whole group of pages silently vanish from the sidebar. +{%- endcomment -%} +{% assign ordered_sections = site.sections %} +{% if site.appendix_sections %} + {% assign ordered_sections = ordered_sections | concat: site.appendix_sections %} +{% endif %} +{% assign present_sections = site.documentation | where: "lang", page.lang | map: "section" | uniq | sort %} + diff --git a/_screencasts/03-connect-2020-5-min-lightning-talk.en_US.md b/_screencasts/03-connect-2020-5-min-lightning-talk.en_US.md index d7988e5..806db80 100644 --- a/_screencasts/03-connect-2020-5-min-lightning-talk.en_US.md +++ b/_screencasts/03-connect-2020-5-min-lightning-talk.en_US.md @@ -2,6 +2,11 @@ title: Create A Cooperative Challenge Lightning Talk --- +> Cooperative Challenges have since been removed from MapRoulette. This +> recording is kept as a record of the talk, but the workflow it demonstrates +> is no longer available. +{: .legacy} + Martijn van Exel's 5 minute lightning talk about creating a Cooperative Challenge From ca8c62a18c3a0f9bbd451bc3e579eb4d79d5a4c8 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 15:52:10 -0500 Subject: [PATCH 03/15] reorganize documentation more and remove translations --- .tx/add-files.sh | 20 - .tx/config | 395 ------------------ 404.html | 15 +- README.md | 1 - SCREENSHOTS-TODO.md | 2 +- _config.yaml | 10 - _data/language_names.json | 22 - _data/sections.json | 12 + _data/translations/en-US.json | 13 - ...n_US.md => 01-using-keyboard-shortcuts.md} | 0 .../{02-markdown.en_US.md => 02-markdown.md} | 2 +- ...des.en_US.md => 03-comment-short-codes.md} | 0 ...ge.en_US.md => 01-creating-a-challenge.md} | 18 +- ...02-using-overpass-to-create-challenges.md} | 2 +- ...n_US.md => 03-gists-for-remote-geojson.md} | 2 +- ...on.en_US.md => 04-line-by-line-geojson.md} | 0 ... 05-challenge-visibility-and-discovery.md} | 0 ...5-challenge-visibility-and-discovery.ru.md | 17 - ...US.md => 06-rebuilding-challenge-tasks.md} | 4 +- .../challenges/07-challenge-comments.fr_FR.md | 18 - ...ents.en_US.md => 07-challenge-comments.md} | 6 +- .../challenges/07-challenge-comments.nl.md | 19 - .../challenges/07-challenge-comments.ru.md | 19 - ...e.en_US.md => 08-reporting-a-challenge.md} | 4 +- .../challenges/09-challenge-flagging.fr_FR.md | 34 -- ...ging.en_US.md => 09-challenge-flagging.md} | 2 +- .../challenges/09-challenge-flagging.nl.md | 34 -- .../challenges/09-challenge-flagging.ru.md | 34 -- ...n_US.md => 10-exporting-challenge-data.md} | 2 +- .../contributing/01-translate-docs.en_US.md | 38 -- ...ashboard.en_US.md => 01-your-dashboard.md} | 6 +- ....en_US.md => 02-discovering-challenges.md} | 2 +- ...n_US.md => 03-searchbox-short-commands.md} | 2 +- .../getting-started/04-point-scoring.de_DE.md | 14 - ...t-scoring.en_US.md => 04-point-scoring.md} | 2 +- ...g-layouts.en_US.md => 01-using-layouts.md} | 2 +- ...pid-editor.en_US.md => 02-rapid-editor.md} | 4 +- ... => 03-solving-multiple-tasks-together.md} | 2 +- ...nges.en_US.md => 01-tag-fix-challenges.md} | 0 ...{02-reviewing.en_US.md => 02-reviewing.md} | 6 +- ...{03-following.en_US.md => 03-following.md} | 4 +- .../04-using-mapillary-images.es.md | 8 - ....en_US.md => 04-using-mapillary-images.md} | 0 .../04-using-mapillary-images.ru.md | 8 - ...md => 05-setting-basemap-for-challenge.md} | 2 +- ...s.en_US.md => 06-styling-task-features.md} | 0 ...-filtering-the-task-list-by-properties.md} | 2 +- ...> 08-challenge-instructions-templating.md} | 4 +- ...08-challenge-instructions-templating.ru.md | 47 --- ...n_US.md => 09-system-notice-management.md} | 2 +- .../09-system-notice-management.ru.md | 35 -- ...md => 01-projects-and-project-managers.md} | 2 +- ...n.en_US.md => 01-runtime-configuration.md} | 3 +- ...nt.en_US.md => 02-map-layer-management.md} | 4 +- ...les.en_US.md => 01-task-priority-rules.md} | 0 ....en_US.md => 02-using-maproulette-tags.md} | 4 +- ...> 03-setting-external-task-identifiers.md} | 2 +- ...US.md => 04-defining-task-sourced-date.md} | 4 +- .../tasks/04-defining-task-sourced-date.ru.md | 10 - ...n_US.md => 05-mustache-tag-replacement.md} | 0 ...hments.en_US.md => 06-task-attachments.md} | 0 .../tasks/07-bulk-editing-challenges.fr_FR.md | 46 -- ...en_US.md => 07-bulk-editing-challenges.md} | 4 +- .../tasks/07-bulk-editing-challenges.nl.md | 49 --- .../tasks/07-bulk-editing-challenges.ru.md | 49 --- .../teams/{01-teams.en_US.md => 01-teams.md} | 6 +- ... => 01-setting-your-default-osm-editor.md} | 2 +- ...S.md => 02-setting-your-map-base-layer.md} | 4 +- ...en_US.md => 03-notifications-and-email.md} | 2 +- _includes/footer.html | 6 +- _includes/header.html | 17 +- _includes/nav-section.html | 5 +- _layouts/page.html | 4 +- _plugins/permalink.rb | 90 +--- ...0-create-a-challenge-with-geojson-data.md} | 0 ...=> 01-create-a-challenge-with-overpass.md} | 0 ...> 03-connect-2020-5-min-lightning-talk.md} | 0 ...tate-of-the-map-africa-november-2021-1.md} | 0 index.es.md | 10 - index.fr_FR.md | 10 - index.html | 22 - index.en_US.md => index.md | 1 + index.nl.md | 10 - index.pt_PT.md | 10 - index.ru.md | 10 - 85 files changed, 93 insertions(+), 1190 deletions(-) delete mode 100755 .tx/add-files.sh delete mode 100755 .tx/config delete mode 100644 _data/language_names.json create mode 100644 _data/sections.json delete mode 100644 _data/translations/en-US.json rename _documentation/advanced/{01-using-keyboard-shortcuts.en_US.md => 01-using-keyboard-shortcuts.md} (100%) rename _documentation/advanced/{02-markdown.en_US.md => 02-markdown.md} (95%) rename _documentation/advanced/{03-comment-short-codes.en_US.md => 03-comment-short-codes.md} (100%) rename _documentation/challenges/{01-creating-a-challenge.en_US.md => 01-creating-a-challenge.md} (88%) rename _documentation/challenges/{02-using-overpass-to-create-challenges.en_US.md => 02-using-overpass-to-create-challenges.md} (98%) rename _documentation/challenges/{03-gists-for-remote-geojson.en_US.md => 03-gists-for-remote-geojson.md} (86%) rename _documentation/challenges/{04-line-by-line-geojson.en_US.md => 04-line-by-line-geojson.md} (100%) rename _documentation/challenges/{05-challenge-visibility-and-discovery.en_US.md => 05-challenge-visibility-and-discovery.md} (100%) delete mode 100644 _documentation/challenges/05-challenge-visibility-and-discovery.ru.md rename _documentation/challenges/{06-rebuilding-challenge-tasks.en_US.md => 06-rebuilding-challenge-tasks.md} (84%) delete mode 100644 _documentation/challenges/07-challenge-comments.fr_FR.md rename _documentation/challenges/{07-challenge-comments.en_US.md => 07-challenge-comments.md} (84%) delete mode 100644 _documentation/challenges/07-challenge-comments.nl.md delete mode 100644 _documentation/challenges/07-challenge-comments.ru.md rename _documentation/challenges/{08-reporting-a-challenge.en_US.md => 08-reporting-a-challenge.md} (94%) delete mode 100644 _documentation/challenges/09-challenge-flagging.fr_FR.md rename _documentation/challenges/{09-challenge-flagging.en_US.md => 09-challenge-flagging.md} (96%) delete mode 100644 _documentation/challenges/09-challenge-flagging.nl.md delete mode 100644 _documentation/challenges/09-challenge-flagging.ru.md rename _documentation/challenges/{10-exporting-challenge-data.en_US.md => 10-exporting-challenge-data.md} (93%) delete mode 100644 _documentation/contributing/01-translate-docs.en_US.md rename _documentation/getting-started/{01-your-dashboard.en_US.md => 01-your-dashboard.md} (90%) rename _documentation/getting-started/{02-discovering-challenges.en_US.md => 02-discovering-challenges.md} (97%) rename _documentation/getting-started/{03-searchbox-short-commands.en_US.md => 03-searchbox-short-commands.md} (97%) delete mode 100644 _documentation/getting-started/04-point-scoring.de_DE.md rename _documentation/getting-started/{04-point-scoring.en_US.md => 04-point-scoring.md} (94%) rename _documentation/mapping/{01-using-layouts.en_US.md => 01-using-layouts.md} (96%) rename _documentation/mapping/{02-rapid-editor.en_US.md => 02-rapid-editor.md} (91%) rename _documentation/mapping/{03-solving-multiple-tasks-together.en_US.md => 03-solving-multiple-tasks-together.md} (96%) rename _documentation/not-implemented/{01-tag-fix-challenges.en_US.md => 01-tag-fix-challenges.md} (100%) rename _documentation/not-implemented/{02-reviewing.en_US.md => 02-reviewing.md} (92%) rename _documentation/not-implemented/{03-following.en_US.md => 03-following.md} (90%) delete mode 100644 _documentation/not-implemented/04-using-mapillary-images.es.md rename _documentation/not-implemented/{04-using-mapillary-images.en_US.md => 04-using-mapillary-images.md} (100%) delete mode 100644 _documentation/not-implemented/04-using-mapillary-images.ru.md rename _documentation/not-implemented/{05-setting-basemap-for-challenge.en_US.md => 05-setting-basemap-for-challenge.md} (94%) rename _documentation/not-implemented/{06-styling-task-features.en_US.md => 06-styling-task-features.md} (100%) rename _documentation/not-implemented/{07-filtering-the-task-list-by-properties.en_US.md => 07-filtering-the-task-list-by-properties.md} (97%) rename _documentation/not-implemented/{08-challenge-instructions-templating.en_US.md => 08-challenge-instructions-templating.md} (86%) delete mode 100644 _documentation/not-implemented/08-challenge-instructions-templating.ru.md rename _documentation/not-implemented/{09-system-notice-management.en_US.md => 09-system-notice-management.md} (96%) delete mode 100644 _documentation/not-implemented/09-system-notice-management.ru.md rename _documentation/projects/{01-projects-and-project-managers.en_US.md => 01-projects-and-project-managers.md} (96%) rename _documentation/server-admin/{01-runtime-configuration.en_US.md => 01-runtime-configuration.md} (93%) rename _documentation/server-admin/{02-map-layer-management.en_US.md => 02-map-layer-management.md} (94%) rename _documentation/tasks/{01-task-priority-rules.en_US.md => 01-task-priority-rules.md} (100%) rename _documentation/tasks/{02-using-maproulette-tags.en_US.md => 02-using-maproulette-tags.md} (95%) rename _documentation/tasks/{03-setting-external-task-identifiers.en_US.md => 03-setting-external-task-identifiers.md} (94%) rename _documentation/tasks/{04-defining-task-sourced-date.en_US.md => 04-defining-task-sourced-date.md} (77%) delete mode 100644 _documentation/tasks/04-defining-task-sourced-date.ru.md rename _documentation/tasks/{05-mustache-tag-replacement.en_US.md => 05-mustache-tag-replacement.md} (100%) rename _documentation/tasks/{06-task-attachments.en_US.md => 06-task-attachments.md} (100%) delete mode 100644 _documentation/tasks/07-bulk-editing-challenges.fr_FR.md rename _documentation/tasks/{07-bulk-editing-challenges.en_US.md => 07-bulk-editing-challenges.md} (91%) delete mode 100644 _documentation/tasks/07-bulk-editing-challenges.nl.md delete mode 100644 _documentation/tasks/07-bulk-editing-challenges.ru.md rename _documentation/teams/{01-teams.en_US.md => 01-teams.md} (91%) rename _documentation/user-settings/{01-setting-your-default-osm-editor.en_US.md => 01-setting-your-default-osm-editor.md} (96%) rename _documentation/user-settings/{02-setting-your-map-base-layer.en_US.md => 02-setting-your-map-base-layer.md} (91%) rename _documentation/user-settings/{03-notifications-and-email.en_US.md => 03-notifications-and-email.md} (97%) rename _screencasts/{00-create-a-challenge-with-geojson-data.en_US.md => 00-create-a-challenge-with-geojson-data.md} (100%) rename _screencasts/{01-create-a-challenge-with-overpass.en_US.md => 01-create-a-challenge-with-overpass.md} (100%) rename _screencasts/{03-connect-2020-5-min-lightning-talk.en_US.md => 03-connect-2020-5-min-lightning-talk.md} (100%) rename _screencasts/{04-maproulette-workshop-at-state-of-the-map-africa-november-2021-1.en_US.md => 04-maproulette-workshop-at-state-of-the-map-africa-november-2021-1.md} (100%) delete mode 100644 index.es.md delete mode 100644 index.fr_FR.md delete mode 100644 index.html rename index.en_US.md => index.md (96%) delete mode 100644 index.nl.md delete mode 100644 index.pt_PT.md delete mode 100644 index.ru.md diff --git a/.tx/add-files.sh b/.tx/add-files.sh deleted file mode 100755 index 29718be..0000000 --- a/.tx/add-files.sh +++ /dev/null @@ -1,20 +0,0 @@ -#!/bin/sh -for FILEPATH in $(find . -type f -name '*.en_US.md'); do - # ./_example/directory/01-filename.en_US.md => _example/directory/01-filename.en_US.md - FILEPATH=$(echo $FILEPATH | sed 's/^\.\///') - - # _example/directory/01-filename.en_US.md => example_filename - RESOURCE_SLUG=$(echo $FILEPATH | sed 's/\/[0-9]\+-/\//g' | sed 's/^_//' | sed 's/\/.\+\//\//g'| sed 's/\.en_US\.md$//'| tr '/' '_') - - # _example/01-filename.en_US.md => example/01-filename..md - FILE_FILTER=$(echo $FILEPATH | sed 's/\.en_US\.md$/..md/') - - tx add \ - --organization maproulette \ - --project mr-docs \ - --resource "$RESOURCE_SLUG" \ - --file-filter "$FILE_FILTER" \ - --type GITHUBMARKDOWN \ - $FILEPATH -done - diff --git a/.tx/config b/.tx/config deleted file mode 100755 index 8b25325..0000000 --- a/.tx/config +++ /dev/null @@ -1,395 +0,0 @@ -[main] -host = https://www.transifex.com - -[o:maproulette:p:mr-docs:r:documentation_bulk-editing-challenges] -file_filter = _documentation/tasks/07-bulk-editing-challenges..md -source_file = _documentation/tasks/07-bulk-editing-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_challenge-comments] -file_filter = _documentation/challenges/07-challenge-comments..md -source_file = _documentation/challenges/07-challenge-comments.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_challenge-flagging] -file_filter = _documentation/challenges/09-challenge-flagging..md -source_file = _documentation/challenges/09-challenge-flagging.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_challenge-instructions-templating] -file_filter = _documentation/not-implemented/08-challenge-instructions-templating..md -source_file = _documentation/not-implemented/08-challenge-instructions-templating.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_challenge-visibility-and-discovery] -file_filter = _documentation/challenges/05-challenge-visibility-and-discovery..md -source_file = _documentation/challenges/05-challenge-visibility-and-discovery.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_comment-short-codes] -file_filter = _documentation/advanced/03-comment-short-codes..md -source_file = _documentation/advanced/03-comment-short-codes.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_creating-a-challenge] -file_filter = _documentation/challenges/01-creating-a-challenge..md -source_file = _documentation/challenges/01-creating-a-challenge.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_defining-task-sourced-date] -file_filter = _documentation/tasks/04-defining-task-sourced-date..md -source_file = _documentation/tasks/04-defining-task-sourced-date.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_discovering-challenges] -file_filter = _documentation/getting-started/02-discovering-challenges..md -source_file = _documentation/getting-started/02-discovering-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_exporting-challenge-data] -file_filter = _documentation/challenges/10-exporting-challenge-data..md -source_file = _documentation/challenges/10-exporting-challenge-data.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_filtering-the-task-list-by-properties] -file_filter = _documentation/not-implemented/07-filtering-the-task-list-by-properties..md -source_file = _documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_following] -file_filter = _documentation/not-implemented/03-following..md -source_file = _documentation/not-implemented/03-following.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_gists-for-remote-geojson] -file_filter = _documentation/challenges/03-gists-for-remote-geojson..md -source_file = _documentation/challenges/03-gists-for-remote-geojson.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_line-by-line-geojson] -file_filter = _documentation/challenges/04-line-by-line-geojson..md -source_file = _documentation/challenges/04-line-by-line-geojson.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_map-layer-management] -file_filter = _documentation/server-admin/02-map-layer-management..md -source_file = _documentation/server-admin/02-map-layer-management.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_markdown] -file_filter = _documentation/advanced/02-markdown..md -source_file = _documentation/advanced/02-markdown.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_mustache-tag-replacement] -file_filter = _documentation/tasks/05-mustache-tag-replacement..md -source_file = _documentation/tasks/05-mustache-tag-replacement.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_notifications-and-email] -file_filter = _documentation/user-settings/03-notifications-and-email..md -source_file = _documentation/user-settings/03-notifications-and-email.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_point-scoring] -file_filter = _documentation/getting-started/04-point-scoring..md -source_file = _documentation/getting-started/04-point-scoring.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_projects-and-project-managers] -file_filter = _documentation/projects/01-projects-and-project-managers..md -source_file = _documentation/projects/01-projects-and-project-managers.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_rapid-editor] -file_filter = _documentation/mapping/02-rapid-editor..md -source_file = _documentation/mapping/02-rapid-editor.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_rebuilding-challenge-tasks] -file_filter = _documentation/challenges/06-rebuilding-challenge-tasks..md -source_file = _documentation/challenges/06-rebuilding-challenge-tasks.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_reporting-a-challenge] -file_filter = _documentation/challenges/08-reporting-a-challenge..md -source_file = _documentation/challenges/08-reporting-a-challenge.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_reviewing] -file_filter = _documentation/not-implemented/02-reviewing..md -source_file = _documentation/not-implemented/02-reviewing.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_runtime-configuration] -file_filter = _documentation/server-admin/01-runtime-configuration..md -source_file = _documentation/server-admin/01-runtime-configuration.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_searchbox-short-commands] -file_filter = _documentation/getting-started/03-searchbox-short-commands..md -source_file = _documentation/getting-started/03-searchbox-short-commands.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_setting-basemap-for-challenge] -file_filter = _documentation/not-implemented/05-setting-basemap-for-challenge..md -source_file = _documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_setting-external-task-identifiers] -file_filter = _documentation/tasks/03-setting-external-task-identifiers..md -source_file = _documentation/tasks/03-setting-external-task-identifiers.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_setting-your-default-osm-editor] -file_filter = _documentation/user-settings/01-setting-your-default-osm-editor..md -source_file = _documentation/user-settings/01-setting-your-default-osm-editor.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_setting-your-map-base-layer] -file_filter = _documentation/user-settings/02-setting-your-map-base-layer..md -source_file = _documentation/user-settings/02-setting-your-map-base-layer.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_solving-multiple-tasks-together] -file_filter = _documentation/mapping/03-solving-multiple-tasks-together..md -source_file = _documentation/mapping/03-solving-multiple-tasks-together.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_styling-task-features] -file_filter = _documentation/not-implemented/06-styling-task-features..md -source_file = _documentation/not-implemented/06-styling-task-features.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_system-notice-management] -file_filter = _documentation/not-implemented/09-system-notice-management..md -source_file = _documentation/not-implemented/09-system-notice-management.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_tag-fix-challenges] -file_filter = _documentation/not-implemented/01-tag-fix-challenges..md -source_file = _documentation/not-implemented/01-tag-fix-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_task-attachments] -file_filter = _documentation/tasks/06-task-attachments..md -source_file = _documentation/tasks/06-task-attachments.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_task-priority-rules] -file_filter = _documentation/tasks/01-task-priority-rules..md -source_file = _documentation/tasks/01-task-priority-rules.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_teams] -file_filter = _documentation/teams/01-teams..md -source_file = _documentation/teams/01-teams.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_translate-docs] -file_filter = _documentation/contributing/01-translate-docs..md -source_file = _documentation/contributing/01-translate-docs.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_using-keyboard-shortcuts] -file_filter = _documentation/advanced/01-using-keyboard-shortcuts..md -source_file = _documentation/advanced/01-using-keyboard-shortcuts.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_using-layouts] -file_filter = _documentation/mapping/01-using-layouts..md -source_file = _documentation/mapping/01-using-layouts.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_using-mapillary-images] -file_filter = _documentation/not-implemented/04-using-mapillary-images..md -source_file = _documentation/not-implemented/04-using-mapillary-images.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_using-maproulette-tags] -file_filter = _documentation/tasks/02-using-maproulette-tags..md -source_file = _documentation/tasks/02-using-maproulette-tags.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_using-overpass-to-create-challenges] -file_filter = _documentation/challenges/02-using-overpass-to-create-challenges..md -source_file = _documentation/challenges/02-using-overpass-to-create-challenges.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:documentation_your-dashboard] -file_filter = _documentation/getting-started/01-your-dashboard..md -source_file = _documentation/getting-started/01-your-dashboard.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:index] -file_filter = index..md -source_file = index.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:screencasts_connect-2020-5-min-lightning-talk] -file_filter = _screencasts/03-connect-2020-5-min-lightning-talk..md -source_file = _screencasts/03-connect-2020-5-min-lightning-talk.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:screencasts_create-a-challenge-with-geojson-data] -file_filter = _screencasts/00-create-a-challenge-with-geojson-data..md -source_file = _screencasts/00-create-a-challenge-with-geojson-data.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:screencasts_create-a-challenge-with-overpass] -file_filter = _screencasts/01-create-a-challenge-with-overpass..md -source_file = _screencasts/01-create-a-challenge-with-overpass.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - -[o:maproulette:p:mr-docs:r:screencasts_maproulette-workshop-at-state-of-the-map-africa-november-2021-1] -file_filter = _screencasts/04-maproulette-workshop-at-state-of-the-map-africa-november-2021-1..md -source_file = _screencasts/04-maproulette-workshop-at-state-of-the-map-africa-november-2021-1.en_US.md -type = GITHUBMARKDOWN -minimum_perc = 0 -replace_edited_strings = false -keep_translations = false - diff --git a/404.html b/404.html index c5ef92d..2b8a442 100644 --- a/404.html +++ b/404.html @@ -23,16 +23,15 @@

    404

    The requested page could not be found

    -

    Browse the documentation

    +

    Browse the documentation

    diff --git a/README.md b/README.md index 4f57f13..e79b883 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ Documentation site for MapRoulette.org If you would like to contribute to this documentation, thank you! * If you want to fix a typo, update something that's out-of-date, or add a page or section on a new topic, please feel free to open a PR. Though if you want to add a new page or make large changes to existing content, you should probably open an issue first to gather feedback on your proposed changes. -* If you'd like to help translate existing documentation into other languages, have a look at our [guide on how to contribute translations](https://learn.maproulette.org/en-US/documentation/translate-docs/). * If you have a video or article we should link to, feel free to open an issue and we will look at the best way to include it. ## Technical Details diff --git a/SCREENSHOTS-TODO.md b/SCREENSHOTS-TODO.md index fb0b5cc..5d2d08f 100644 --- a/SCREENSHOTS-TODO.md +++ b/SCREENSHOTS-TODO.md @@ -41,6 +41,6 @@ the feature used to work — and should only change if the feature returns. ## Elsewhere -- `index.en_US.md` (the landing page) still uses `welcome-index.png`, which +- `index.md` (the landing page) still uses `welcome-index.png`, which shows the previous interface. Replace with a shot of the current Explore Challenges page. diff --git a/_config.yaml b/_config.yaml index 9786fd0..8369940 100644 --- a/_config.yaml +++ b/_config.yaml @@ -11,15 +11,6 @@ collections: output: true -# list of enabled (translated) locales -locales: - - en-US - # - de-DE - # - es - # - fr-FR - # - nl - # - pt-PT - # - ru # Order of the sidebar sections. Each entry must match a directory name under # _documentation/. @@ -33,7 +24,6 @@ sections: - teams - advanced - server-admin - - contributing # Sections pinned below the Screencasts and For Developers lists, for reference # material rather than instructions. diff --git a/_data/language_names.json b/_data/language_names.json deleted file mode 100644 index 28a4af7..0000000 --- a/_data/language_names.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "af": "Afrikaans", - "cs-CZ": "Čeština", - "de": "Deutsch", - "en-US": "English (U.S.)", - "es": "Español", - "fa-IR": "فارسی", - "fr": "Français", - "it": "Italiano", - "ja": "日本語", - "ko": "한국어", - "nl": "Nederlands", - "pl": "Polski", - "pt-BR": "Português Brasileiro", - "pt-PT": "Português Portugal", - "ru-RU": "Русский", - "sr": "Српски", - "tr": "Türkçe", - "uk": "Українська", - "vi": "tiếng Việt", - "zh-TW": "國語", -} diff --git a/_data/sections.json b/_data/sections.json new file mode 100644 index 0000000..b61f52a --- /dev/null +++ b/_data/sections.json @@ -0,0 +1,12 @@ +{ + "getting-started": "Getting Started", + "mapping": "Mapping Tasks", + "user-settings": "User Settings", + "projects": "Projects", + "challenges": "Challenges", + "tasks": "Tasks", + "teams": "Teams", + "advanced": "Advanced", + "server-admin": "Server Admin", + "not-implemented": "Not Implemented Yet" +} diff --git a/_data/translations/en-US.json b/_data/translations/en-US.json deleted file mode 100644 index 8732d48..0000000 --- a/_data/translations/en-US.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "section.getting-started": "Getting Started", - "section.mapping": "Mapping Tasks", - "section.user-settings": "User Settings", - "section.projects": "Projects", - "section.challenges": "Challenges", - "section.tasks": "Tasks", - "section.teams": "Teams", - "section.advanced": "Advanced", - "section.server-admin": "Server Admin", - "section.contributing": "Contributing", - "section.not-implemented": "Not Implemented Yet" -} diff --git a/_documentation/advanced/01-using-keyboard-shortcuts.en_US.md b/_documentation/advanced/01-using-keyboard-shortcuts.md similarity index 100% rename from _documentation/advanced/01-using-keyboard-shortcuts.en_US.md rename to _documentation/advanced/01-using-keyboard-shortcuts.md diff --git a/_documentation/advanced/02-markdown.en_US.md b/_documentation/advanced/02-markdown.md similarity index 95% rename from _documentation/advanced/02-markdown.en_US.md rename to _documentation/advanced/02-markdown.md index 995a40a..4df532d 100644 --- a/_documentation/advanced/02-markdown.en_US.md +++ b/_documentation/advanced/02-markdown.md @@ -37,4 +37,4 @@ That covers the everyday things: ## Mentions Writing `@username` in a comment links to that user and notifies them. See -[Short-codes in Comments](/en-US/documentation/comment-short-codes/). +[Short-codes in Comments](/documentation/comment-short-codes/). diff --git a/_documentation/advanced/03-comment-short-codes.en_US.md b/_documentation/advanced/03-comment-short-codes.md similarity index 100% rename from _documentation/advanced/03-comment-short-codes.en_US.md rename to _documentation/advanced/03-comment-short-codes.md diff --git a/_documentation/challenges/01-creating-a-challenge.en_US.md b/_documentation/challenges/01-creating-a-challenge.md similarity index 88% rename from _documentation/challenges/01-creating-a-challenge.en_US.md rename to _documentation/challenges/01-creating-a-challenge.md index c2b4df6..314ba7f 100644 --- a/_documentation/challenges/01-creating-a-challenge.en_US.md +++ b/_documentation/challenges/01-creating-a-challenge.md @@ -47,7 +47,7 @@ Which project the challenge belongs to. You can only pick projects you manage. USA*. A good title describes what the challenge is about in a few words. At least 3 characters. - **Description** — some text describing in more words what the challenge is - about. This field supports [Markdown](/en-US/documentation/markdown/) and + about. This field supports [Markdown](/documentation/markdown/) and appears on the challenge page when mappers browse for interesting challenges. I used *Motorway junction nodes are not commonly tagged with name. This challenge asks mappers to review those nodes, removing the name where it's not @@ -64,7 +64,7 @@ Description and Instructions are both required. ### Challenge image An optional image shown on this challenge's card. The images available to you -are the ones your [teams](/en-US/documentation/teams/) have had approved: any +are the ones your [teams](/documentation/teams/) have had approved: any team member can request an image from the team's page, and a super admin reviews it before it can be used here. @@ -74,19 +74,19 @@ Choose one of three sources for the challenge's tasks: - **I want to provide an Overpass query** — Overpass QL that generates the tasks. See [Using Overpass to create - Challenges](/en-US/documentation/using-overpass-to-create-challenges/) for + Challenges](/documentation/using-overpass-to-create-challenges/) for important details and common pitfalls; in particular, don't use Overpass Turbo-specific syntax such as `{% raw %}{{geocodeArea:...}}{% endraw %}`, and test your query in Overpass Turbo first. - **I want to upload a GeoJSON file** — a GeoJSON file from your computer. Standard GeoJSON and [line-by-line - GeoJSON](/en-US/documentation/line-by-line-geojson/) are both supported. + GeoJSON](/documentation/line-by-line-geojson/) are both supported. - **I have a URL to the GeoJSON data** — a URL pointing directly at the raw GeoJSON file, not at a page linking to it. See [Hosting Remote GeoJSON with - Gists](/en-US/documentation/gists-for-remote-geojson/). + Gists](/documentation/gists-for-remote-geojson/). You can also record the [date the data was -sourced](/en-US/documentation/defining-task-sourced-date/) here. +sourced](/documentation/defining-task-sourced-date/) here. Make sure that your query or file only returns the features that you want mappers to review, and ideally the number of objects should be no more than a @@ -94,7 +94,7 @@ couple of thousand. > The data source is fixed once the challenge is created. Editing a challenge > shows the source read-only; to regenerate tasks from updated data, use -> [Rebuild Tasks](/en-US/documentation/rebuilding-challenge-tasks/). +> [Rebuild Tasks](/documentation/rebuilding-challenge-tasks/). ### Automated Edits code of conduct @@ -117,8 +117,8 @@ From there you can: - **Start challenge** to try it out yourself - **Configure prioritization** to decide which tasks get served first — see - [Prioritizing Tasks](/en-US/documentation/task-priority-rules/) + [Prioritizing Tasks](/documentation/task-priority-rules/) - Use **Make discoverable** in the challenge's actions menu when you're ready for it to appear in search results — a challenge is discoverable only when both it and its project are. See [Challenge Visibility and - Discovery](/en-US/documentation/challenge-visibility-and-discovery/) + Discovery](/documentation/challenge-visibility-and-discovery/) diff --git a/_documentation/challenges/02-using-overpass-to-create-challenges.en_US.md b/_documentation/challenges/02-using-overpass-to-create-challenges.md similarity index 98% rename from _documentation/challenges/02-using-overpass-to-create-challenges.en_US.md rename to _documentation/challenges/02-using-overpass-to-create-challenges.md index 7b80613..c95eb52 100644 --- a/_documentation/challenges/02-using-overpass-to-create-challenges.en_US.md +++ b/_documentation/challenges/02-using-overpass-to-create-challenges.md @@ -67,7 +67,7 @@ out geom; A challenge's Overpass query is set when the challenge is created and is shown read-only when you edit the challenge afterwards. To change what the query -returns, use [Rebuild Tasks](/en-US/documentation/rebuilding-challenge-tasks/), +returns, use [Rebuild Tasks](/documentation/rebuilding-challenge-tasks/), which re-runs it against current data. ### Timeouts diff --git a/_documentation/challenges/03-gists-for-remote-geojson.en_US.md b/_documentation/challenges/03-gists-for-remote-geojson.md similarity index 86% rename from _documentation/challenges/03-gists-for-remote-geojson.en_US.md rename to _documentation/challenges/03-gists-for-remote-geojson.md index 04d4df3..e8b514d 100644 --- a/_documentation/challenges/03-gists-for-remote-geojson.en_US.md +++ b/_documentation/challenges/03-gists-for-remote-geojson.md @@ -15,5 +15,5 @@ to: ``` https://gist.githubusercontent.com/youruser/abcd123/raw/yourTasks.json ``` -* Github caches the latest version of your gist, so you may need to wait 5-10 mins after editing your gist before the cache is updated and the latest raw content is served. If you're planning to [rebuild your challenge tasks](/en-US/documentation/rebuilding-challenge-tasks/) from updated data, make sure the latest version is being served before asking MapRoulette to rebuild your challenge. +* Github caches the latest version of your gist, so you may need to wait 5-10 mins after editing your gist before the cache is updated and the latest raw content is served. If you're planning to [rebuild your challenge tasks](/documentation/rebuilding-challenge-tasks/) from updated data, make sure the latest version is being served before asking MapRoulette to rebuild your challenge. diff --git a/_documentation/challenges/04-line-by-line-geojson.en_US.md b/_documentation/challenges/04-line-by-line-geojson.md similarity index 100% rename from _documentation/challenges/04-line-by-line-geojson.en_US.md rename to _documentation/challenges/04-line-by-line-geojson.md diff --git a/_documentation/challenges/05-challenge-visibility-and-discovery.en_US.md b/_documentation/challenges/05-challenge-visibility-and-discovery.md similarity index 100% rename from _documentation/challenges/05-challenge-visibility-and-discovery.en_US.md rename to _documentation/challenges/05-challenge-visibility-and-discovery.md diff --git a/_documentation/challenges/05-challenge-visibility-and-discovery.ru.md b/_documentation/challenges/05-challenge-visibility-and-discovery.ru.md deleted file mode 100644 index 34da3e0..0000000 --- a/_documentation/challenges/05-challenge-visibility-and-discovery.ru.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Challenge Visibility and Discovery ---- - -Задачи доступны для публичного обнаружения (например, в результатах поиска) только в том случае, если и для задачи *и* для связанного с ней исходного проекта включен видимый режим. Если для первого или для второго видимый режим не включён, задача не будет отображаться и не появится в результатах поиска. - -Видимость влияет только на возможность обнаружения: картографы по-прежнему могут получить прямой доступ к задаче, если у них есть общедоступный URL-адрес этой задачи. Это позволяет делиться задачами, которые иначе невозможно обнаружить. - -| Настройка видимости проекта | Настройка видимости задачи | Можно ли найти задачу? | -|:------------------------|:--------------------------|:---------------------------| -| Да | Да | Да | -| Да | Нет | Нет | -| Нет | Да | Нет | -| Нет | Нет | Нет | - -> Примечание: виртуальные проекты не влияют на видимость содержащихся в них задач. При определении возможности обнаружения задачи учитывается только стандартный исходный проект, с которым связана задача. - diff --git a/_documentation/challenges/06-rebuilding-challenge-tasks.en_US.md b/_documentation/challenges/06-rebuilding-challenge-tasks.md similarity index 84% rename from _documentation/challenges/06-rebuilding-challenge-tasks.en_US.md rename to _documentation/challenges/06-rebuilding-challenge-tasks.md index 239b2bc..796111e 100644 --- a/_documentation/challenges/06-rebuilding-challenge-tasks.en_US.md +++ b/_documentation/challenges/06-rebuilding-challenge-tasks.md @@ -6,7 +6,7 @@ As a challenge owner, you may wish to occasionally rebuild the tasks in your cha **In order for your challenge to rebuild successfully, each task feature must contain a supported id field with a unique id (within the challenge) so that existing tasks can be matched up with updated feature data. If tasks aren't matched up properly they will likely be duplicated.** -You can either explicitly [specify an id property](/en-US/documentation/setting-external-task-identifiers) on your challenge, or rely on a supported field/property that will be automatically detected. Automatically supported id fields are: `id`, `@id`, `osmid`, `osm_id`, and `name` (checked in that order). If your features contain one of those automatically-supported fields and you do *not* wish to use it (or the order of detection would pick up the wrong field first), then you must explicitly [specify](/en-US/documentation/setting-external-task-identifiers) on the challenge which field/property is to be used. +You can either explicitly [specify an id property](/documentation/setting-external-task-identifiers) on your challenge, or rely on a supported field/property that will be automatically detected. Automatically supported id fields are: `id`, `@id`, `osmid`, `osm_id`, and `name` (checked in that order). If your features contain one of those automatically-supported fields and you do *not* wish to use it (or the order of detection would pick up the wrong field first), then you must explicitly [specify](/documentation/setting-external-task-identifiers) on the challenge which field/property is to be used. Challenge tasks generated from Overpass queries automatically contain ids (including exported GeoJSON files from Overpass Turbo), so nothing more is required. But for challenges with tasks generated from other local or remote GeoJSON data, you will need to ensure these ids are included if you wish your challenge to rebuild successfully. Id fields can be on the features themselves (preferable) or the feature properties. @@ -53,7 +53,7 @@ challenge built from an uploaded file — asks you for a new GeoJSON file to upload. The dialog says which of the three applies before you proceed. You can also record the [date the data was -sourced](/en-US/documentation/defining-task-sourced-date/) as part of the +sourced](/documentation/defining-task-sourced-date/) as part of the rebuild. While the rebuild runs, the challenge page shows **Tasks Updating…** with an diff --git a/_documentation/challenges/07-challenge-comments.fr_FR.md b/_documentation/challenges/07-challenge-comments.fr_FR.md deleted file mode 100644 index b672e36..0000000 --- a/_documentation/challenges/07-challenge-comments.fr_FR.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Commentaires de défis ---- - -Dans le but de fournir plus d'outils aux utilisateurs et utilisatrices pour contacter les propriétaires des défis, les **commentaires de défis** ont été ajoutés en tant que fonctionnalité complémentaire aux commentaires de tâches. Cela permet d'aborder des questions ou des analyses qui pourraient être systémiques au-delà d'une seule tâche, et d'obtenir des éclaircissements de la part du ou de la propriétaire du défi, ou de recommander des changements sans avoir besoin de marquer ou de signaler un défi. - -Pour accéder aux commentaires d'un défi et publier un commentaire, il suffit de se rendre sur la page de présentation du défi, comme [celle-ci](https://maproulette.org/browse/challenges/40609). Cliquez ensuite sur le lien "Prendre contact". - -![](/media/challenge-comments-2.png){:width="700"} - -## Envoyer un commentaire - -Le ou la propriétaire du défi sera automatiquement informé des messages que vous envoyez ici. Il n'est donc pas nécessaire de l'identifier dans le commentaire. Cependant, les personnes qui ne sont pas propriétaires du défi devront être identifiées dans le commentaire si vous souhaitez qu'elles soient informées. - -## Commentaires spécifiques aux tâches - -Les commentaires spécifiques aux tâches peuvent être consultés ici et seront inclus dans le fil de commentaires du défi en cliquant simplement sur la case à cocher "Commentaires sur les tâches". - diff --git a/_documentation/challenges/07-challenge-comments.en_US.md b/_documentation/challenges/07-challenge-comments.md similarity index 84% rename from _documentation/challenges/07-challenge-comments.en_US.md rename to _documentation/challenges/07-challenge-comments.md index d376050..c32443d 100644 --- a/_documentation/challenges/07-challenge-comments.en_US.md +++ b/_documentation/challenges/07-challenge-comments.md @@ -6,7 +6,7 @@ title: Challenge Comments issues or observations that apply to the whole challenge rather than to one task — a chance to get clarity from the owner, or suggest a change, without having to [report the -challenge](/en-US/documentation/challenge-flagging/). +challenge](/documentation/challenge-flagging/). To read or post one, open a challenge page — like [this one](https://maproulette.org/browse/challenges/40609) — and select @@ -16,12 +16,12 @@ challenge already has, and opens the **Challenge Comments** dialog. ## Submitting a comment Type your comment and choose **Send**. Comments support -[Markdown](/en-US/documentation/markdown/) and show a character counter as you +[Markdown](/documentation/markdown/) and show a character counter as you type. Messages you submit here automatically notify the challenge owner, so there's no need to tag them. Other mappers still need to be -[mentioned](/en-US/documentation/comment-short-codes/#mention-other-users) by +[mentioned](/documentation/comment-short-codes/#mention-other-users) by name if you want them to be notified. You need to be signed in to comment. Comments from the challenge's owner are diff --git a/_documentation/challenges/07-challenge-comments.nl.md b/_documentation/challenges/07-challenge-comments.nl.md deleted file mode 100644 index b25ce74..0000000 --- a/_documentation/challenges/07-challenge-comments.nl.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Challenge Comments ---- - -In een poging om meer manieren te voorzien die gebruikers toelaten de eigenaars van de missies te contacteren, werd **Missie Opmerkingen** toegevoegd als een functie, naast de reeds bestaande Taak Opmerkingen. Dit laat gebruikers toe om problemen of opmerkingen te bespreken die meer systemisch zijn dan louter één taak. Ook laat het toe om verduidelijking of aangeraden wijzigingen van de eigenaar te krijgen, zonder hiervoor een missie te moeten rapporteren. - -Om naar de opmerkingen van een missie te gaan en een opmerking te plaatsen, ga je naar de overzichtspagina van een missie, zoals [deze](https://maproulette.org/browse/challenges/40609). Vervolgens klik je op "Neem contact met ons op". - -![](/media/challenge-comments-2.png){:width="700"} - - -## Een opmerking indienen - -Berichten die je hier indient zullen automatisch voor een melding bij de eigenaar van de missie zorgen. Het is dus niet nodig de tag van de eigenaar van de missie toe te voegen. Echter niet-eigenaars moeten nog steeds getagd worden als je wil dat deze ook een melding krijgen. - -## Taakspecifieke opmerkingen - -Taakspecifieke opmerkingen kunnen hier bekeken worden en zullen toegevoegd worden in het opmerkingenvenster door het selectievakje "Taak Opmerkingen" aan te klikken. - diff --git a/_documentation/challenges/07-challenge-comments.ru.md b/_documentation/challenges/07-challenge-comments.ru.md deleted file mode 100644 index c0e092e..0000000 --- a/_documentation/challenges/07-challenge-comments.ru.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Challenge Comments ---- - -Чтобы предоставить пользователям больше инструментов для связи с владельцами задач, были добавлены **Комментарии к задачам** в дополнение к уже существующим Комментариям к заданиям. Это позволяет пользователям решать возникающие вопросы, которые могут носить системный характер, выходя за рамки одного задания, а также получать разъяснения от владельца или рекомендовать изменения без необходимости отмечать задачу или сообщать о ней. - -Чтобы перейти к комментариям к задаче и опубликовать комментарий, просто перейдите на страницу обзора задания, например [эту](https://maproulette.org/browse/challenges/40609). Затем нажмите на ссылку "Связаться с нами". - -![](/media/challenge-comments-2.png){:width="700"} - - -## Отправка комментария - -Владелец задачи автоматически получит уведомление, как только вы отправите своё сообщение здесь, поэтому нет необходимости добавлять тэг владельца задачи. Однако тех, кто не является владельцем, все равно необходимо будет отметить в комментарии, если вы хотите, чтобы они были уведомлены. - -## Комментарии по конкретным заданиям - -Комментарии по конкретным заданиям можно просмотреть здесь, а, если вы хотите добавить их в список коментариев к задаче, тогда просто установите флажок «Комментарии к заданию». - diff --git a/_documentation/challenges/08-reporting-a-challenge.en_US.md b/_documentation/challenges/08-reporting-a-challenge.md similarity index 94% rename from _documentation/challenges/08-reporting-a-challenge.en_US.md rename to _documentation/challenges/08-reporting-a-challenge.md index 3483ba2..e07aa26 100644 --- a/_documentation/challenges/08-reporting-a-challenge.en_US.md +++ b/_documentation/challenges/08-reporting-a-challenge.md @@ -18,7 +18,7 @@ Start on the challenge page and open **Comments**. Anything you post there notifies the challenge owner automatically, and is visible to other mappers working the same challenge, so it is both the quickest way to reach the owner and the most useful place for the conversation to happen. See -[Challenge Comments](/en-US/documentation/challenge-comments/). +[Challenge Comments](/documentation/challenge-comments/). Remember to assume good intent on the part of the Challenge owner and be respectful in your language. Most of the time you can have a constructive @@ -35,7 +35,7 @@ through OSM's own messaging system if the discussion is better held privately. If reaching out to the challenge owner is proving unsuccessful, and there is continued concern about a challenge's integrity, use the **Report Challenge** action. See [Reporting a Challenge on -GitHub](/en-US/documentation/challenge-flagging/) for what that does and what +GitHub](/documentation/challenge-flagging/) for what that does and what you'll be asked for. ### 4. Contact us via email diff --git a/_documentation/challenges/09-challenge-flagging.fr_FR.md b/_documentation/challenges/09-challenge-flagging.fr_FR.md deleted file mode 100644 index fe2a24f..0000000 --- a/_documentation/challenges/09-challenge-flagging.fr_FR.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Signalement des défis ---- - -La signalement d'un défi permet aux cartographes de reporter toute situation discutable concernant un défi qui n'a pas respecté les normes de qualité. - -Voir l'article original et les notes sur notre blog [ici](https://blog.maproulette.org/2023/01/23/introducing-our-flag-report-a-challenge-feature/) ! - -**Veuillez noter que le signalement des défis fait partie d'un ensemble de fonctionnalités qui aident les cartographes à contacter les propriétaires des défis. Il n'est pas forcément nécessaire de signaler un défi, c'est pourquoi nous vous invitons à consulter la liste des fonctionnalités et nos recommandations pour [Signaler un défi](/documentation/reporting-a-challenge) en fonction de vos besoins spécifiques**. - -Lorsque vous constatez une anomalie que vous souhaitez signaler dans un défi, rendez-vous sur la page des détails du défi, où vous trouverez une icône en forme de drapeau à côté du nom du défi. - -![](/media/challenge-flagging-1.png) - -Il vous suffit de cliquer sur l'icône en forme de drapeau et un formulaire de saisie apparaîtra pour vous permettre de signaler ce défi. Veuillez indiquer votre adresse électronique, une description du signalement, et assurez-vous de cocher la case \[J'ai tenté de contacter le créateur du défi\] avant de continuer. Cliquez sur le bouton \[Signaler le défi\] pour envoyer le signalement. Cela ouvrira un ticket dans le répertoire [challenge-reports repository](https://github.com/maproulette/challenge-reports/issues) de MapRoulette sur GitHub et génèrera un message dans la section commentaire de ce défi. - -![](/media/challenge-flagging-2.png) - -Une fois que le challenge a été signalé avec succès, l'icône de signalement sera remplie de rouge. - -![](/media/challenge-flagging-3.png) - -Cliquer sur l'icône de signalement vous redirigera vers la page GitHub du signalement. - -![](/media/challenge-flagging-4.png) - -Vous pouvez aussi voir les informations liées au problème dans la partie commentaire de ce challenge (en cliquant sur "Entrer en contact") - -![](/media/challenge-flagging-5.png) - -Veuillez noter que seules les personnes connectées peuvent signaler un problème. Et si un problème a déjà été signalé, il ne sera possible de signaler à nouveau le même défi qu'une fois que le problème aura été résolu. - -Nous espérons que cette fonctionnalité permettra de maintenir et d'améliorer la qualité générale des défis sur MapRoulette en donnant à nos utilisateurs la possibilité de mieux les réguler. - diff --git a/_documentation/challenges/09-challenge-flagging.en_US.md b/_documentation/challenges/09-challenge-flagging.md similarity index 96% rename from _documentation/challenges/09-challenge-flagging.en_US.md rename to _documentation/challenges/09-challenge-flagging.md index 07e3f4d..d9e1af6 100644 --- a/_documentation/challenges/09-challenge-flagging.en_US.md +++ b/_documentation/challenges/09-challenge-flagging.md @@ -11,7 +11,7 @@ See the original post and credits on our blog > Reporting is one of a set of features for reaching out to challenge owners, > and it is rarely the first one to reach for. Please review the recommended > order of steps in [Reporting A -> Challenge](/en-US/documentation/reporting-a-challenge/) first. +> Challenge](/documentation/reporting-a-challenge/) first. ## Filing a report diff --git a/_documentation/challenges/09-challenge-flagging.nl.md b/_documentation/challenges/09-challenge-flagging.nl.md deleted file mode 100644 index 03e1c1e..0000000 --- a/_documentation/challenges/09-challenge-flagging.nl.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Challenge Flagging ---- - -Door het rapporteren van missies kunnen mappers melding maken van missies met een gebrekkige kwaliteit. - -Bekijk de originele post op onze blog [hierover](https://blog.maproulette.org/2023/01/23/introducing-our-flag-report-a-challenge-feature/)! - -**Houd er rekening mee dat het rapporteren van een missie één van de functies is die mappers helpen om beheerders van missies te bereiken. Het rapporteren van een missie is misschien niet nodig, dus bekijk de lijst met functies en onze aanbevelingen voor [het melden van een missie](/documentation/reporting-a-challenge) afhankelijk van je specifieke behoeften.** - -Als je iets tegenkomt dat je wilt markeren in een missie, ga je naar de pagina met de details van de missie. Daar zie je een vlagpictogram naast de naam van de missie. - -![](/media/challenge-flagging-1.png) - -Klink op het vlagpictogram, een pop-upvenster zal verschijnen om de missie te rapporteren. Gelieve je e-mailadres en reden van rapportering toe te voegen. Je dient ook de optie [ Ik heb geprobeerd de beheerder van de missie te contacteren ] aan te klikken voordat je kan rapporteren. Een rapportering zal een github issue openen in [een repository van Maproulette](https://github.com/maproulette/challenge-reports/issues). Ook zal een bericht in de commentarensectie van de missie verschijnen. - -![](/media/challenge-flagging-2.png) - -Als het rapporteren succesvol verlopen is, zal het vlagpictogram rood kleuren. - -![](/media/challenge-flagging-3.png) - -Als je dan opnieuw op het vlagpictogram drukt, zal je doorverwezen worden naar de issue-pagina op GitHub. - -![](/media/challenge-flagging-4.png) - -Je kunt ook informatie over deze kwestie bekijken in het commentaardeel van deze uitdaging (door te klikken op Neem contact op). - -![](/media/challenge-flagging-5.png) - -Alleen ingelogde gebruikers kunnen een probleem met een missie melden. Als er een probleem is gemeld, kan een probleem alleen nogmaals worden gemeld nadat het eerdere probleem is opgelost. - -We hopen dat de mogelijkheid om problemen te melden bijdraagt aan het bijhouden en verbeteren van de algehele kwaliteit van missies op MapRoulette. - diff --git a/_documentation/challenges/09-challenge-flagging.ru.md b/_documentation/challenges/09-challenge-flagging.ru.md deleted file mode 100644 index e7882f1..0000000 --- a/_documentation/challenges/09-challenge-flagging.ru.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Challenge Flagging ---- - -Помечание задач позволяет картографам сообщать о любых сомнительных моментах в задаче, которые не соответствуют стандартам качества. - -Вы можете ознакомиться с исходной публикацией и информацией об авторах в нашем блоге [здесь] (https://blog.maproulette.org/2023/01/23/introducing-our-flag-report-a-challenge-feature/)! - -**Пожалуйста, обратите внимание, что Помечание Задач - это одна из функций, которые помогают картографам связываться с владельцами задач. Может не быть необходимости помечать задачу, поэтому ознакомьтесь со списком функций и нашими рекомендациями для [Сообщения о проблеме](/documentation/reporting-a-challenge) в зависимости от вашего конкретного случая.** - -Если вы обнаружили что-то, что вы бы хотели пометить, перейдите на страницу сведений об этой задаче - там вы сможете увидеть значок пометки рядом с названием задачи. - -![](/media/challenge-flagging-1.png) - -Просто нажмите на значок пометки, и появится модальное сообщение электронной почты, чтобы отметить эту задачу. Прежде чем продолжить, укажите свой адрес электронной почты, описание для пометки и убедитесь, что вы отметили [Я пытался связаться с создателем задачи]. Нажмите кнопку [Пометить Задачу], чтобы отправить пометку. Это создаст тему в [хранилище отчетов о вызовах] Maproulette (https://github.com/maproulette/challenge-reports/issues) на GitHub и создаст сообщение в разделе комментариев к этой задаче. - -![](/media/challenge-flagging-2.png) - -Как только задание будет успешно помечено, значок пометки станет красным. - -![](/media/challenge-flagging-3.png) - -Нажатие на значок пометки, перенаправит вас на страницу проблемы на GitHub. - -![](/media/challenge-flagging-4.png) - -Вы также можете просмотреть информацию, связанную с этой проблемой, в разделе комментариев к этому заданию (нажав «Связаться с нами»). - -![](/media/challenge-flagging-5.png) - -Обратите внимание, что только зарегистрированный пользователь может пометить задачу. А, в случае, если данная проблема уже была помечена ранее другим пользователем, вы сможете пометить задачу снова только после того, как предыдущая проблема решена. - -Мы надеемся, что функция пометки поможет поддерживать и улучшать общее качество задач в MapRoulette, предоставляя нашим пользователям возможности регулирования. - diff --git a/_documentation/challenges/10-exporting-challenge-data.en_US.md b/_documentation/challenges/10-exporting-challenge-data.md similarity index 93% rename from _documentation/challenges/10-exporting-challenge-data.en_US.md rename to _documentation/challenges/10-exporting-challenge-data.md index 08094ad..4195db2 100644 --- a/_documentation/challenges/10-exporting-challenge-data.en_US.md +++ b/_documentation/challenges/10-exporting-challenge-data.md @@ -11,7 +11,7 @@ management page. The export covers the tasks of every challenge in that project, and downloads as `project--tasks.csv`. Among other things the export carries each task's -[MR Tags](/en-US/documentation/using-maproulette-tags/), which is what makes +[MR Tags](/documentation/using-maproulette-tags/), which is what makes asking mappers for tags worthwhile in the first place. > Per-challenge exports, GeoJSON exports and the per-export timezone selector diff --git a/_documentation/contributing/01-translate-docs.en_US.md b/_documentation/contributing/01-translate-docs.en_US.md deleted file mode 100644 index a3f2739..0000000 --- a/_documentation/contributing/01-translate-docs.en_US.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Help Us Translate Our Documentation ---- - -Are you multilingual? Then you can help us make MapRoulette's Documentation available in more languages. - -There are two ways you can help us translate this documentation website: using the Transifex website, or using a text editor and submitting your changes on GitHub. - -## Using Transifex - -You can use the Transifex website to add translations for parts of the MapRoulette documentation. The documentation has its own [Transifex Page](https://explore.transifex.com/maproulette/mr-docs/). You will need to create a Transifex account to submit translations using this method. - -![](/media/translate1.png){:width="700"} - -### Requesting a new language - -Go to the [Languages Page](https://app.transifex.com/maproulette/mr-docs/languages/) and click **Edit Languages**. Select the language you wish to add and click **Apply**. - -![](/media/translate2.png){:width="600"} - -### Adding translations - -Go to the [Translate Page](https://app.transifex.com/maproulette/mr-docs/translate) and in the header, select the target language you would like to help translate. - -![](/media/translate3.png){:width="800"} - -Translations added through Transifex don't appear on the website immediately. Once your contributions are submitted and reviewed, the development team will update the documentation site. - -## Using GitHub - -You can also help translate the MapRoulette Documentation by directly translating the Markdown text files that are used to generate the pages of this website. - -The documentation lives in the [maproulette/docs](https://github.com/maproulette/docs) repository. To translate a page, make a copy of the existing page's Markdown source file, and change the ISO language code in the file extension to the language you're translating to. For example, you'd rename `some-page.en_US.md` to `some-page.pt_BR.md` when translating "Some Page" from American English to Brazilian Portuguese. - -Next, open the file in a text editor and rewrite the content in the target language. You should translate all prose, including headings, alt text, and page metadata like the `title` and `slug`. But don't translate text in URLs or code examples, as this will probably break them. - -When you're done, open a [Pull Request](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-a-pull-request) to submit your changes. Once we've reviewed and merged them, the new translated page will appear here on the website. - diff --git a/_documentation/getting-started/01-your-dashboard.en_US.md b/_documentation/getting-started/01-your-dashboard.md similarity index 90% rename from _documentation/getting-started/01-your-dashboard.en_US.md rename to _documentation/getting-started/01-your-dashboard.md index f6a6d72..0c936d4 100644 --- a/_documentation/getting-started/01-your-dashboard.en_US.md +++ b/_documentation/getting-started/01-your-dashboard.md @@ -15,7 +15,7 @@ controls to **Browse challenge**, **Manage challenge** if you're one of its managers, and **Unsave challenge**. If the list is empty, save a challenge from -[Explore Challenges](/en-US/documentation/discovering-challenges/) to have +[Explore Challenges](/documentation/discovering-challenges/) to have somewhere to pick up from next time. ## Your profile and level @@ -24,7 +24,7 @@ The middle column shows your mapper level, your point total, and how far you are through the current level. Selecting it opens the **Mapper Level System** dialog, which explains how levelling works and lists the level milestones and the score each one requires. See -[Earning Points and Levelling Up](/en-US/documentation/point-scoring/) for the +[Earning Points and Levelling Up](/documentation/point-scoring/) for the formula and the point value of each task status. The column also badges your account as **Verified** or a **Guest**, depending @@ -47,4 +47,4 @@ jump straight to a locked task from here to finish or unlock it. The last block lists the teams you belong to — selecting one opens its page — and has a **+** control for starting a new one. Any pending team invitations show here too, with **Accept** and **Decline**. See -[Managing Teams](/en-US/documentation/teams/). +[Managing Teams](/documentation/teams/). diff --git a/_documentation/getting-started/02-discovering-challenges.en_US.md b/_documentation/getting-started/02-discovering-challenges.md similarity index 97% rename from _documentation/getting-started/02-discovering-challenges.en_US.md rename to _documentation/getting-started/02-discovering-challenges.md index d63f004..a7f13fd 100644 --- a/_documentation/getting-started/02-discovering-challenges.en_US.md +++ b/_documentation/getting-started/02-discovering-challenges.md @@ -83,7 +83,7 @@ Free-text search lives in the search box in the header rather than on the filter bar. Press K (or Ctrl K) from anywhere to open it, then search challenges, projects, tasks, comments, or jump straight to something by its ID. See -[Search prefixes](/en-US/documentation/searchbox-short-commands/) for the full +[Search prefixes](/documentation/searchbox-short-commands/) for the full list of what it can do. ## Clearing filters diff --git a/_documentation/getting-started/03-searchbox-short-commands.en_US.md b/_documentation/getting-started/03-searchbox-short-commands.md similarity index 97% rename from _documentation/getting-started/03-searchbox-short-commands.en_US.md rename to _documentation/getting-started/03-searchbox-short-commands.md index b62a886..4f50314 100644 --- a/_documentation/getting-started/03-searchbox-short-commands.en_US.md +++ b/_documentation/getting-started/03-searchbox-short-commands.md @@ -92,6 +92,6 @@ tc:bad imagery > search box to move the map to a bounding box, run a Nominatim search, or > filter by project. `p/` is now `p:`, the Nominatim search has become the > location filter on -> [Explore Challenges](/en-US/documentation/discovering-challenges/), and there +> [Explore Challenges](/documentation/discovering-challenges/), and there > is no longer a command for moving the map to a raw bounding box. {: .legacy} diff --git a/_documentation/getting-started/04-point-scoring.de_DE.md b/_documentation/getting-started/04-point-scoring.de_DE.md deleted file mode 100644 index 2825aa8..0000000 --- a/_documentation/getting-started/04-point-scoring.de_DE.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Earning Points and the Leaderboard ---- - -Für jede abgeschlossene Aufgabe werden wie folgt Punkte vergeben: - -| Aufgaben Status | vergebene Punkte | -| ----------------- | :------------: | -| Fixed | 5 | -| Not an Issue | 3 | -| Already Fixed | 3 | -| Too Hard | 1 | -| Skipped | 0 | - diff --git a/_documentation/getting-started/04-point-scoring.en_US.md b/_documentation/getting-started/04-point-scoring.md similarity index 94% rename from _documentation/getting-started/04-point-scoring.en_US.md rename to _documentation/getting-started/04-point-scoring.md index 687e1f5..0a48915 100644 --- a/_documentation/getting-started/04-point-scoring.en_US.md +++ b/_documentation/getting-started/04-point-scoring.md @@ -32,7 +32,7 @@ needs 1,000, and level 50 needs 25,000. Your current level, the points you've earned within it, and how many are left until the next one, are shown in the middle column of your -[Dashboard](/en-US/documentation/your-dashboard/). Selecting it opens the +[Dashboard](/documentation/your-dashboard/). Selecting it opens the **Mapper Level System** dialog, which lists every milestone level and its title — from *New Recruit* at level 1 through *Rising Scout*, *Dedicated Mapper*, *Master Navigator* and *Legendary Cartographer* up to *Transcendent diff --git a/_documentation/mapping/01-using-layouts.en_US.md b/_documentation/mapping/01-using-layouts.md similarity index 96% rename from _documentation/mapping/01-using-layouts.en_US.md rename to _documentation/mapping/01-using-layouts.md index fde622b..74a2923 100644 --- a/_documentation/mapping/01-using-layouts.en_US.md +++ b/_documentation/mapping/01-using-layouts.md @@ -24,7 +24,7 @@ and collapse to suit your screen. bottom of this panel. - **Right — the map, or the editor.** The task map, which the - [inline iD editor](/en-US/documentation/rapid-editor/) replaces while you're + [inline iD editor](/documentation/rapid-editor/) replaces while you're editing. ### Resizing diff --git a/_documentation/mapping/02-rapid-editor.en_US.md b/_documentation/mapping/02-rapid-editor.md similarity index 91% rename from _documentation/mapping/02-rapid-editor.en_US.md rename to _documentation/mapping/02-rapid-editor.md index 62432ac..f23de32 100644 --- a/_documentation/mapping/02-rapid-editor.en_US.md +++ b/_documentation/mapping/02-rapid-editor.md @@ -30,13 +30,13 @@ MapRoulette as usual. The editor button in the task actions opens the task in whichever editor you've set as your default — iD, JOSM, level0 or Rapid — in a separate tab or application. See [Setting your default OSM -Editor](/en-US/documentation/setting-your-default-osm-editor/). +Editor](/documentation/setting-your-default-osm-editor/). > Earlier versions of MapRoulette embedded the **Rapid** editor in the task > screen. Rapid is now offered as an external editor only; the embedded editor > is iD. {: .legacy} -> [Tag Fix challenges](/en-US/documentation/tag-fix-challenges/) are not edited +> [Tag Fix challenges](/documentation/tag-fix-challenges/) are not edited > this way — they were meant to be resolved in MapRoulette itself, without an > editor. diff --git a/_documentation/mapping/03-solving-multiple-tasks-together.en_US.md b/_documentation/mapping/03-solving-multiple-tasks-together.md similarity index 96% rename from _documentation/mapping/03-solving-multiple-tasks-together.en_US.md rename to _documentation/mapping/03-solving-multiple-tasks-together.md index 23304ce..9cfc0fb 100644 --- a/_documentation/mapping/03-solving-multiple-tasks-together.en_US.md +++ b/_documentation/mapping/03-solving-multiple-tasks-together.md @@ -41,7 +41,7 @@ A few map controls help while you work: - **Show tasks from other challenges** brings in task markers that don't belong to this challenge, so you can see what else is around -If you're editing with the [inline iD editor](/en-US/documentation/rapid-editor/), +If you're editing with the [inline iD editor](/documentation/rapid-editor/), **Select All** in the bundled task list selects every bundled task's features in iD at once. diff --git a/_documentation/not-implemented/01-tag-fix-challenges.en_US.md b/_documentation/not-implemented/01-tag-fix-challenges.md similarity index 100% rename from _documentation/not-implemented/01-tag-fix-challenges.en_US.md rename to _documentation/not-implemented/01-tag-fix-challenges.md diff --git a/_documentation/not-implemented/02-reviewing.en_US.md b/_documentation/not-implemented/02-reviewing.md similarity index 92% rename from _documentation/not-implemented/02-reviewing.en_US.md rename to _documentation/not-implemented/02-reviewing.md index 94c895d..27a4bc7 100644 --- a/_documentation/not-implemented/02-reviewing.en_US.md +++ b/_documentation/not-implemented/02-reviewing.md @@ -13,7 +13,7 @@ tasks that your fellow mappers have submitted. > > Some review *data* still surfaces, which is why you'll see the word around > the app: review outcomes arrive as -> [notifications](/en-US/documentation/notifications-and-email/), a mapper's +> [notifications](/documentation/notifications-and-email/), a mapper's > profile shows **Reviews Received** and **Reviews Performed** counts, and > challenge managers can reassign open task reviews in bulk from the task > table. None of those let you actually review a task. @@ -41,7 +41,7 @@ without some help. ### Review outcomes and notifications Review results reach the mapper as -[notifications](/en-US/documentation/notifications-and-email/) in the +[notifications](/documentation/notifications-and-email/) in the **Reviews** category: - **Task Approved** — the work was accepted @@ -61,7 +61,7 @@ review history recorded earlier. ### Adding tags during review Challenge managers can nominate a separate set of -[MR Tags](/en-US/documentation/using-maproulette-tags/) for reviewers, distinct +[MR Tags](/documentation/using-maproulette-tags/) for reviewers, distinct from the ones suggested to mappers. ### Tools that come in handy diff --git a/_documentation/not-implemented/03-following.en_US.md b/_documentation/not-implemented/03-following.md similarity index 90% rename from _documentation/not-implemented/03-following.en_US.md rename to _documentation/not-implemented/03-following.md index 44ca7ec..2de648a 100644 --- a/_documentation/not-implemented/03-following.en_US.md +++ b/_documentation/not-implemented/03-following.md @@ -33,7 +33,7 @@ No in their User Settings. - A mapper's public profile — reachable from their name on a comment or from the header of a challenge they own — shows their task statistics, reviews and top challenges. -- Your own [Dashboard](/en-US/documentation/your-dashboard/) collects your +- Your own [Dashboard](/documentation/your-dashboard/) collects your recent contributions. -- [Teams](/en-US/documentation/teams/) are the supported way to group mappers +- [Teams](/documentation/teams/) are the supported way to group mappers who are working together. diff --git a/_documentation/not-implemented/04-using-mapillary-images.es.md b/_documentation/not-implemented/04-using-mapillary-images.es.md deleted file mode 100644 index 2222f06..0000000 --- a/_documentation/not-implemented/04-using-mapillary-images.es.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Using Mapillary Images ---- - -La integración con Mapillary muestra ubicaciones de imágenes relevantes a la zona de la tarea, y dado a que usamos los controles nativos del visor de Mapillary, puede hacer acercamientos y saltar a la imagen anterior o siguiente de una secuencia con facilidad. - -![](/media/mapillary-integration.png) - diff --git a/_documentation/not-implemented/04-using-mapillary-images.en_US.md b/_documentation/not-implemented/04-using-mapillary-images.md similarity index 100% rename from _documentation/not-implemented/04-using-mapillary-images.en_US.md rename to _documentation/not-implemented/04-using-mapillary-images.md diff --git a/_documentation/not-implemented/04-using-mapillary-images.ru.md b/_documentation/not-implemented/04-using-mapillary-images.ru.md deleted file mode 100644 index d2a2ffd..0000000 --- a/_documentation/not-implemented/04-using-mapillary-images.ru.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -title: Using Mapillary Images ---- - -Интеграция с Mapillary позволет отображать геометки изображений Mapillary, соответствующие местоположению задачи, и мы используем собственные виджеты просмотра Mapillary, поэтому вы можете увеличивать масштаб и легко переходить к следующему или предыдущему изображению Mapillary в последовательности. - -![](/media/mapillary-integration.png) - diff --git a/_documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md b/_documentation/not-implemented/05-setting-basemap-for-challenge.md similarity index 94% rename from _documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md rename to _documentation/not-implemented/05-setting-basemap-for-challenge.md index 8ff01de..3abfb50 100644 --- a/_documentation/not-implemented/05-setting-basemap-for-challenge.en_US.md +++ b/_documentation/not-implemented/05-setting-basemap-for-challenge.md @@ -6,7 +6,7 @@ title: Setting The Basemap Layer For Your Challenge > challenge form, and the rebuilt map does not apply a challenge's stored > basemap. Mappers pick their base layer with the **Map style** control on the > map instead — see [Setting your Map Base -> Layer](/en-US/documentation/setting-your-map-base-layer/). +> Layer](/documentation/setting-your-map-base-layer/). {: .legacy} One of the customizations you can apply to your own Challenges is a custom basemap layer. This basemap layer will override whatever basemap MapRoulette users have defined as their default. This is useful in those cases where you know that a certain basemap is needed to successfully complete the tasks in your Challenge. diff --git a/_documentation/not-implemented/06-styling-task-features.en_US.md b/_documentation/not-implemented/06-styling-task-features.md similarity index 100% rename from _documentation/not-implemented/06-styling-task-features.en_US.md rename to _documentation/not-implemented/06-styling-task-features.md diff --git a/_documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md b/_documentation/not-implemented/07-filtering-the-task-list-by-properties.md similarity index 97% rename from _documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md rename to _documentation/not-implemented/07-filtering-the-task-list-by-properties.md index 2841a69..a179119 100644 --- a/_documentation/not-implemented/07-filtering-the-task-list-by-properties.en_US.md +++ b/_documentation/not-implemented/07-filtering-the-task-list-by-properties.md @@ -9,7 +9,7 @@ title: 'Challenge Managers: filtering tasks by properties' > for reference. > > Property rules themselves are still very much alive in -> [task prioritization](/en-US/documentation/task-priority-rules/), which uses +> [task prioritization](/documentation/task-priority-rules/), which uses > the same kind of AND/OR rule builder described below. {: .legacy} diff --git a/_documentation/not-implemented/08-challenge-instructions-templating.en_US.md b/_documentation/not-implemented/08-challenge-instructions-templating.md similarity index 86% rename from _documentation/not-implemented/08-challenge-instructions-templating.en_US.md rename to _documentation/not-implemented/08-challenge-instructions-templating.md index 26fa702..a0011e9 100644 --- a/_documentation/not-implemented/08-challenge-instructions-templating.en_US.md +++ b/_documentation/not-implemented/08-challenge-instructions-templating.md @@ -8,11 +8,11 @@ title: Templating in Challenge Instructions > for challenges that still contain them. {: .legacy} -MapRoulette supports [mustache-tag replacement](/en-US/documentation/mustache-tag-replacement/) in Challenge Instructions, as well as special short codes that can be used to embed basic form fields, make data easily copyable to the user's clipboard, etc. +MapRoulette supports [mustache-tag replacement](/documentation/mustache-tag-replacement/) in Challenge Instructions, as well as special short codes that can be used to embed basic form fields, make data easily copyable to the user's clipboard, etc. ## Basic Form Fields -It may occasionally be useful to allow mappers to provide to challenge managers some additional information as they work through tasks. MapRoulette supports special short codes that offer the ability to embed very basic form fields in Challenge Instructions, which mappers can optionally complete for each task. Responses are included in CSV and GeoJSON [exports](/en-US/documentation/exporting-challenge-data/) of the challenge. +It may occasionally be useful to allow mappers to provide to challenge managers some additional information as they work through tasks. MapRoulette supports special short codes that offer the ability to embed very basic form fields in Challenge Instructions, which mappers can optionally complete for each task. Responses are included in CSV and GeoJSON [exports](/documentation/exporting-challenge-data/) of the challenge. ![](/media/basic_template.gif){:width="500"} diff --git a/_documentation/not-implemented/08-challenge-instructions-templating.ru.md b/_documentation/not-implemented/08-challenge-instructions-templating.ru.md deleted file mode 100644 index 711630b..0000000 --- a/_documentation/not-implemented/08-challenge-instructions-templating.ru.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Templating in Challenge Instructions ---- - -MapRoulette поддерживает [замену mustache-тегов](/documentation/mustache-tag-replacement/) в Инструкциях к Задаче, а также специальные короткие коды, используемые для встраивания основных полей формы, упрощения копирования данных в буфер обмена пользователя и т. д. - -## Основные поля формы - -Иногда может быть полезно разрешить картографам предоставлять менеджерам задачи некоторую дополнительную информацию во время работы над заданиями. MapRoulette поддерживает специальные короткие коды, которые позволяют встраивать самые простые поля формы в Инструкции по выполнению задач, которые картографы могут при желании заполнять для каждой задачи. Ответы включаются в CSV и GeoJSON [экспорт](/documentation/exporting-challenge-data/) задачи. - -![](/media/basic_template.gif){:width="500"} - - -Чтобы добавить поля формы, просто используйте один или несколько коротких кодов, описанных ниже в Инструкциях к задаче. Короткие коды будут заменены встраевыми полями формы. - -> Примечание. Раньше поля формы обозначались тремя фигурными скобками, а не короткими кодами с использованием квадратных скобок. Эта старая нотация по-прежнему поддерживается для обратной совместимости с существующими задачами, но считается устаревшей и больше не должна использоваться. - -Ответы форм для каждого задания будут автоматически добавляться в экспортируемый CSV и GeoJSON, содержащий задания к задаче из управления задачей. Имя, которое вы назначаете каждому полю формы, будет использоваться в качестве имени столбца в экспортированном CSV-файле или имени свойства в экспортированном GeoJSON. - -### Тестовое поле: - -``` -[checkbox "Your checkbox label" name="myCheckbox"] -``` - -Это создаст тестовое поле с именем myCheckbox. - -Метка также может включать маркдаун, включая mustache-тэги, ссылающиеся на свойства задания или рабочей области. - -### Применение поля (множественного выбора): - -``` -[select "Your select label" name="myDropdown" values="foo,bar,baz"] -``` - -Создает поле выбора с именем myDropdown с тремя вариантами выбора (foo, bar или baz) и вариантом пустого выбора. - -Метка также может включать маркдаун, включая mustahce-теги, ссылающиеся на свойства задания или рабочей области. - -## Другие полезные короткие коды - -``` -[copyable "some useful text"] -``` - -Вызывает отображение кнопки буфера обмена сразу за указанным текстом, которая при нажатии копирует текст в буфер обмена пользователя. Текст также может включать mustahce-теги, ссылающиеся на свойства задания или рабочей области, которые будут заменены, но **не может** включать в себя маркдаун. - diff --git a/_documentation/not-implemented/09-system-notice-management.en_US.md b/_documentation/not-implemented/09-system-notice-management.md similarity index 96% rename from _documentation/not-implemented/09-system-notice-management.en_US.md rename to _documentation/not-implemented/09-system-notice-management.md index 6730ec8..1f21a9f 100644 --- a/_documentation/not-implemented/09-system-notice-management.en_US.md +++ b/_documentation/not-implemented/09-system-notice-management.md @@ -11,7 +11,7 @@ title: System-Notice Management > > In the meantime, **System Message** notifications still exist as a > notification type, so the backend can reach users that way — see -> [Notifications and Email](/en-US/documentation/notifications-and-email/). +> [Notifications and Email](/documentation/notifications-and-email/). {: .legacy} MapRoulette supports the display of system notices -- such as notice of upcoming maintenance -- through a simple external JSON file that can be hosted anywhere (including a GitHub repo). You simply need to specify the URL to the file in the `REACT_APP_SYSTEM_NOTICES_URL` .env configuration variable. diff --git a/_documentation/not-implemented/09-system-notice-management.ru.md b/_documentation/not-implemented/09-system-notice-management.ru.md deleted file mode 100644 index a8f6477..0000000 --- a/_documentation/not-implemented/09-system-notice-management.ru.md +++ /dev/null @@ -1,35 +0,0 @@ ---- -title: System-Notice Management ---- - -MapRoulette поддерживает отображение системных уведомлений, например, уведомлений о предстоящем техобслуживании, через простой внешний файл JSON, который можно разместить где угодно (включая репозиторий GitHub). Вам просто нужно указать URL-адрес файла в переменной конфигурации `REACT_APP_SYSTEM_NOTICES_URL` .env. - -Файл JSON должен представлять собой один объект с массивом `notices` объектов верхнего уровня. Любые другие поля верхнего уровня игнорируются. - -Каждый объект уведомления должен содержать поле `message`, поле `expirationTimestamp` в формате [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) в формате UTC и поле `uuid`, которое создаёт уникальный идентификатор для уведомления. - -Пример JSON: - -```json -{ - "notices": [ - { - "message": "A first notice. Maintenance is planned.", - "expirationTimestamp": "2019-08-01T17:00:00Z", - "uuid": "b98da355-a5e9-44b4-8a20-a5034d704de5" - }, - { - "message": "A second notice. Important things are happening", - "expirationTimestamp": "2019-08-04T15:00:00Z", - "uuid": "94aef98e-bf9f-46a6-a860-85e62498ae3d" - } - ] -} -``` - -Пользователям отображаются только предстоящие уведомления в зависимости от `expirationTimestamp` каждого уведомления. Вошедшим в систему пользователям предоставляется возможность подтвердить/отклонить каждое уведомление, и после подтверждения уведомление больше не будет отображаться. - -Сообщение может содержать маркдаун. - -Если вы создаете уведомление вручную, вы можете воспользоваться онлайн-генератором UUID, например, https://www.guidgenerator.com/online-guid-generator.aspx. - diff --git a/_documentation/projects/01-projects-and-project-managers.en_US.md b/_documentation/projects/01-projects-and-project-managers.md similarity index 96% rename from _documentation/projects/01-projects-and-project-managers.en_US.md rename to _documentation/projects/01-projects-and-project-managers.md index 67e61f0..db5181b 100644 --- a/_documentation/projects/01-projects-and-project-managers.en_US.md +++ b/_documentation/projects/01-projects-and-project-managers.md @@ -17,7 +17,7 @@ there you can: - **Create challenge** inside it - **Edit project**, **Pin project**, **Archive project**, **Enable** or **Disable** it (see [Challenge Visibility and - Discovery](/en-US/documentation/challenge-visibility-and-discovery/)), + Discovery](/documentation/challenge-visibility-and-discovery/)), **Export CSV** of its tasks, or **Delete project** Deleting a project deletes all of its challenges and their tasks, and cannot be diff --git a/_documentation/server-admin/01-runtime-configuration.en_US.md b/_documentation/server-admin/01-runtime-configuration.md similarity index 93% rename from _documentation/server-admin/01-runtime-configuration.en_US.md rename to _documentation/server-admin/01-runtime-configuration.md index c0bbb66..ee65919 100644 --- a/_documentation/server-admin/01-runtime-configuration.en_US.md +++ b/_documentation/server-admin/01-runtime-configuration.md @@ -31,12 +31,13 @@ deployment without rebuilding. | `VITE_OSM_SERVER` | Base URL of the OpenStreetMap website, used for user and changeset links. Defaults to `https://www.openstreetmap.org` | | `VITE_OSM_API_SERVER` | Base URL of the OpenStreetMap API, used by the built-in iD editor. Defaults to `https://api.openstreetmap.org` | | `VITE_SHORT_URL` | Base URL for the short links embedded in OSM changeset comments (e.g. `https://mpr.lt`). Short links are omitted if unset | +| `VITE_DOCS_BASE_URL` | Root URL of the documentation site the app's help links point at. Defaults to `https://learn.maproulette.org` | | `VITE_EMAIL_ENFORCEMENT` | `required`, `encouraged` (the default) or `none`. Whether users must set an email address before performing management actions, or are merely prompted to | | `VITE_DEPLOYMENT_PLUGIN_URLS` | Comma-separated URLs of [plugin](#plugins) bundles to load for every user at login | ### Challenge reporting -[Reporting a challenge](/en-US/documentation/challenge-flagging/) files a GitHub +[Reporting a challenge](/documentation/challenge-flagging/) files a GitHub issue, which needs a repository and a token that can open issues in it: | Variable | Purpose | diff --git a/_documentation/server-admin/02-map-layer-management.en_US.md b/_documentation/server-admin/02-map-layer-management.md similarity index 94% rename from _documentation/server-admin/02-map-layer-management.en_US.md rename to _documentation/server-admin/02-map-layer-management.md index dd68d6d..0b4f86f 100644 --- a/_documentation/server-admin/02-map-layer-management.en_US.md +++ b/_documentation/server-admin/02-map-layer-management.md @@ -16,7 +16,7 @@ with the frontend: Mappers switch between them with the **Map style** control on any map; the choice is remembered in their browser. See [Setting your Map Base -Layer](/en-US/documentation/setting-your-map-base-layer/). +Layer](/documentation/setting-your-map-base-layer/). ## Changing the available layers @@ -61,5 +61,5 @@ saved selection. > the current frontend, so there is nothing to configure. {: .legacy} -See also [Runtime Configuration](/en-US/documentation/runtime-configuration/) +See also [Runtime Configuration](/documentation/runtime-configuration/) for the settings that *are* configurable per deployment. diff --git a/_documentation/tasks/01-task-priority-rules.en_US.md b/_documentation/tasks/01-task-priority-rules.md similarity index 100% rename from _documentation/tasks/01-task-priority-rules.en_US.md rename to _documentation/tasks/01-task-priority-rules.md diff --git a/_documentation/tasks/02-using-maproulette-tags.en_US.md b/_documentation/tasks/02-using-maproulette-tags.md similarity index 95% rename from _documentation/tasks/02-using-maproulette-tags.en_US.md rename to _documentation/tasks/02-using-maproulette-tags.md index a2f4d99..d1a0b6c 100644 --- a/_documentation/tasks/02-using-maproulette-tags.en_US.md +++ b/_documentation/tasks/02-using-maproulette-tags.md @@ -12,7 +12,7 @@ manager will typically say so in the challenge or task instructions. If you have a challenge in an area where there may not be enough high-quality imagery for mappers to complete all the tasks successfully, you can ask mappers to add a tag like `bad-imagery` when they encounter that situation. Later, when -you download the [tasks export](/en-US/documentation/exporting-challenge-data/), +you download the [tasks export](/documentation/exporting-challenge-data/), you can analyse the tags to find out which areas lacked good imagery, and potentially use that information to start something like an OpenDroneMap + OpenAerialMap project 🙂. @@ -44,7 +44,7 @@ A challenge can nominate the tags it would rather mappers used. Those appear above the tag box as **Popular in this challenge:**, as chips you can click to add rather than typing. There are two sets: one recommended during task completion, and one recommended during -[review](/en-US/documentation/reviewing/). +[review](/documentation/reviewing/). ### Restricting MR Tags diff --git a/_documentation/tasks/03-setting-external-task-identifiers.en_US.md b/_documentation/tasks/03-setting-external-task-identifiers.md similarity index 94% rename from _documentation/tasks/03-setting-external-task-identifiers.en_US.md rename to _documentation/tasks/03-setting-external-task-identifiers.md index 0a2d623..024979d 100644 --- a/_documentation/tasks/03-setting-external-task-identifiers.en_US.md +++ b/_documentation/tasks/03-setting-external-task-identifiers.md @@ -36,7 +36,7 @@ name If none of those are found on either the feature fields or its properties, then a [random UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier#Version_4_(random)) is generated and assigned as an external identifier. -> Note: if you subsequently edit your challenge and set (or change) which feature field or property to treat as the OSM id, you must [rebuild your tasks](/en-US/documentation/rebuilding-challenge-tasks/) for that change to take effect. As mentioned above, you must be very careful to ensure that each feature will have a unique value for the field/property +> Note: if you subsequently edit your challenge and set (or change) which feature field or property to treat as the OSM id, you must [rebuild your tasks](/documentation/rebuilding-challenge-tasks/) for that change to take effect. As mentioned above, you must be very careful to ensure that each feature will have a unique value for the field/property > Note: A Tag Fix consists of one independent (or parent) operation which includes one or more embedded dependent (or child) operations. Any OSM ids referenced in an operation must be of the form of `elementType/numericId`, e.g. `node/123456789` diff --git a/_documentation/tasks/04-defining-task-sourced-date.en_US.md b/_documentation/tasks/04-defining-task-sourced-date.md similarity index 77% rename from _documentation/tasks/04-defining-task-sourced-date.en_US.md rename to _documentation/tasks/04-defining-task-sourced-date.md index 5ce5097..b6c555f 100644 --- a/_documentation/tasks/04-defining-task-sourced-date.en_US.md +++ b/_documentation/tasks/04-defining-task-sourced-date.md @@ -10,9 +10,9 @@ it. The field is **Date data was sourced (optional)** and appears in two places: - in the **Task data** section when you - [create a challenge](/en-US/documentation/creating-a-challenge/) + [create a challenge](/documentation/creating-a-challenge/) - in the dialog when you - [rebuild a challenge's tasks](/en-US/documentation/rebuilding-challenge-tasks/), + [rebuild a challenge's tasks](/documentation/rebuilding-challenge-tasks/), so the date keeps up with the data ![](/media/task-sourced-date.png) diff --git a/_documentation/tasks/04-defining-task-sourced-date.ru.md b/_documentation/tasks/04-defining-task-sourced-date.ru.md deleted file mode 100644 index 42c7a91..0000000 --- a/_documentation/tasks/04-defining-task-sourced-date.ru.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Defining A Sourced Date For Your Tasks ---- - -Если вы создаете Задания на основании GeoJSON, MapRoulette попросит вас указать дату создания заданий. Это позволяит вам сообщить картографам версию исходных данных, на основе которых было создано задание. - -![](/media/task-sourced-date.png) - -Если вы создаете Задания на основании GeoJSON, MapRoulette попросит вас указать дату создания заданий. Это позволяит вам сообщить картографам версию исходных данных, на основе которых было создано задание. - diff --git a/_documentation/tasks/05-mustache-tag-replacement.en_US.md b/_documentation/tasks/05-mustache-tag-replacement.md similarity index 100% rename from _documentation/tasks/05-mustache-tag-replacement.en_US.md rename to _documentation/tasks/05-mustache-tag-replacement.md diff --git a/_documentation/tasks/06-task-attachments.en_US.md b/_documentation/tasks/06-task-attachments.md similarity index 100% rename from _documentation/tasks/06-task-attachments.en_US.md rename to _documentation/tasks/06-task-attachments.md diff --git a/_documentation/tasks/07-bulk-editing-challenges.fr_FR.md b/_documentation/tasks/07-bulk-editing-challenges.fr_FR.md deleted file mode 100644 index b336e52..0000000 --- a/_documentation/tasks/07-bulk-editing-challenges.fr_FR.md +++ /dev/null @@ -1,46 +0,0 @@ ---- -title: Modification des défis en masse ---- - -Les propriétaires de projets peuvent désormais **éditer en bloc** des défis au sein d'un même projet. Bien que cette fonctionnalité ne soit pas aussi robuste que l'édition de chaque défi individuellement, il y a quelques champs qui vous permettent d'éditer plusieurs défis pour des raisons de confort personnel. - -**Gardez à l'esprit que cette fonction, pour la plupart des champs, écrasera les données originales de chaque défi si vous choisissez d'utiliser le champ. Étant donné que chaque défi peut avoir des données différentes, vous n'aurez pas de visibilité sur cette page quant à ce que vous écrasez. Vous l'utiliserez à vos risques et périls. Les champs que vous ne modifiez pas laisseront les données d'origine telles qu'elles sont. - -## Aller sur la page d'administration de votre projet et sélectionner les défis - -Il suffit de se rendre sur la page d'administration d'un projet. Dans le widget des défis, sélectionnez l'icône à droite de chaque défi que vous souhaitez modifier simultanément. - -![](/media/bulk-edit-1.png){:width="500"} - -Vous pouvez également choisir de "sélectionner tout" en cliquant sur l'icône graphique en haut de la liste. - -## Page Édition en bloc - -Ensuite, cliquez sur l'icône en forme de roue crantée en haut à droite et sélectionnez "Modifier la sélection" - -![](/media/bulk-edit-2.png){:width="500"} - -Vous serez redirigé vers la page d'édition en bloc. - -## Retirer un défi de l'édition en bloc - -Vous devriez voir une liste des défis que vous allez modifier simultanément. Si vous changez d'avis sur l'un des défis, mais que vous ne souhaitez pas revenir en arrière et le sélectionner à nouveau, vous pouvez cliquer sur le symbole "X" à droite du nom du défi. - -![](/media/bulk-edit-3.png){:width="700"} - -## Principes de l'édition en bloc - -1. Tous les champs que vous choisissez d'utiliser pour l'édition en masse seront réutilisés pour **écraser** les données qui se trouvent sur chaque défi. - -2. Tous les champs que vous ne modifiez pas sur la page d'édition en bloc ne changeront rien aux données existantes du défi. - -## Soumettre une modification en bloc - -Une fois que vous avez proposé toutes les modifications dont vous avez besoin sur le formulaire, cliquez sur Soumettre et vous verrez apparaître une fenêtre de confirmation qui indique toutes les modifications qui seront apportées à chaque défi. - -![](/media/bulk-edit-4.png) - -**Annuler les modifications** vous permettra de revenir au formulaire et d'y apporter les modifications que vous souhaitez. En outre, vous pouvez choisir d'abandonner toutes les modifications en cliquant sur "Annuler les modifications" sur la page d'édition en bloc. - -**Soumettre les modifications en bloc** vous permettra de soumettre les modifications pour chaque défi. - diff --git a/_documentation/tasks/07-bulk-editing-challenges.en_US.md b/_documentation/tasks/07-bulk-editing-challenges.md similarity index 91% rename from _documentation/tasks/07-bulk-editing-challenges.en_US.md rename to _documentation/tasks/07-bulk-editing-challenges.md index 7418977..a17f4f7 100644 --- a/_documentation/tasks/07-bulk-editing-challenges.en_US.md +++ b/_documentation/tasks/07-bulk-editing-challenges.md @@ -23,7 +23,7 @@ build a selection. A toolbar appears showing **_n_ selected**. | Action | What it does | | ----------------- | ------------ | | **Change status** | Sets every selected task to a status you pick (Created, Fixed, False Positive, Skipped, Already Fixed, Can't Complete, Disabled) | -| **Tag** | Applies the [MR Tags](/en-US/documentation/using-maproulette-tags/) you enter to every selected task | +| **Tag** | Applies the [MR Tags](/documentation/using-maproulette-tags/) you enter to every selected task | | **Archive** / **Unarchive** | Archives the selected tasks, or brings them back | | **Reassign** | Reassigns the selected tasks' reviews to a reviewer you search for. Only tasks whose reviews are still open are updated | | **Clear lock** | Releases any active locks. Mappers currently working on those tasks may lose their in-progress session | @@ -42,5 +42,5 @@ Editing a batch of challenges through a single form is not part of the current frontend. Instead, each challenge row — on **Manage → Challenges** and on a project's page — has an actions menu with the per-challenge operations: pause/resume, archive/unarchive, pin, make discoverable, edit, move, clone, -[rebuild tasks](/en-US/documentation/rebuilding-challenge-tasks/), enable or +[rebuild tasks](/documentation/rebuilding-challenge-tasks/), enable or disable, and delete. diff --git a/_documentation/tasks/07-bulk-editing-challenges.nl.md b/_documentation/tasks/07-bulk-editing-challenges.nl.md deleted file mode 100644 index 317e706..0000000 --- a/_documentation/tasks/07-bulk-editing-challenges.nl.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Bulk Editing Challenges ---- - -Projecteigenaars kunnen nu missies **bewerken in bulk** binnen hetzelfde project. Hoewel deze functie niet zo robuust is als het bewerken van een individuele missie, zijn er enkele velden die je toelaten meerdere missies te bewerken. Dit om het je gemakkelijker te maken. - -**Wees gewaarschuwd: deze functie zal, voor de meeste velden, de originele data van elke missie overschrijven wanneer je ervoor kiest het veld te gebruiken. Aangezien elke missie andere data kan hebben, krijg je geen context op deze pagina over wat je aan het overschrijven bent. Gebruik is op eigen risico. Velden die je niet gebruikt zullen de originele data behouden.** - -## Ga naar de beheerpagina van je project en selecteer missies - -Ga naar de beheerpagina van een project. Selecteer in het missies-widget het grafiek icoontje rechts van elke missie die je simultaan wil bewerken. - -![](/media/bulk-edit-1.png){:width="500"} - - -Je kan er ook voor kiezen om allen te selecteren door op het grafiek icoontje bovenaan de lijst te klikken. - -## Bulkbewerkingspagina - -Selecteer vervolgens het tandwiel icoontje bovenaan rechts, en klik op "Geselecteerd Bewerken" - -![](/media/bulk-edit-2.png){:width="500"} - - -Je zal worden doorgestuurd naar de bulkbewerkingspagina. - -## Een uitdaging verwijderen uit bulk bewerken - -Je ziet nu een lijst met missies die je tegelijkertijd gaat bewerken. Als je van gedachten verandert over een van de missies, maar niet terug wilt gaan en ze opnieuw wilt selecteren, kun je op het "X"-symbool rechts van de naam van de uitdaging klikken . - -![](/media/bulk-edit-3.png){:width="700"} - - -## Bulkbewerking richtlijnen - -1. Elk veld dat je kiest om te gebruiken voor bulkbewerkingen zal de originele data van elke missie **overschrijven**. - -2. Elk veld dat je niet aanpast op de bulkbewerkingspagina, zal niets veranderen aan de oorspronkelijke data van elke missie. - -## Een bulkbewerking uitvoeren - -Nadat je alle wijzigingen die je wenst hebt ingevuld op het formulier, klik je op 'Dien in'. Je krijgt dan een bevestigingsmelding die alle wijzigingen voor alle missies samenvat. - -![](/media/bulk-edit-4.png) - -**Annuleer Bewerking** laat je toe om terug te gaan naar het formulier en aan te passen wat je wil. Bijkomend kan je ervoor kiezen om te stoppen met het opstellen van de bulkbewerking door op '"Annuleer Bewerking" op de bulkbewerkingspagina te drukken. - -**Dien bulkbewerking in** zal verdergaan met het indienen van de wijzigingen van elke missie. - diff --git a/_documentation/tasks/07-bulk-editing-challenges.ru.md b/_documentation/tasks/07-bulk-editing-challenges.ru.md deleted file mode 100644 index 8c77491..0000000 --- a/_documentation/tasks/07-bulk-editing-challenges.ru.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Bulk Editing Challenges ---- - -Владельцы проектов теперь могут осуществлять **Массовое редактирование** задач в рамках одного проекта. Хотя данная функция не так эффективна, как редактирование отдельной задачи, благодаря ей есть несколько полей, которые позволяют редактировать сразу много задач - это облегчит вам жизнь. - -**Помните, что для большинства полей данная функция перезапишет исходные данные каждой отдельной задачи, если вы решите использовать это поле. Поскольку каждое задание может иметь разные данные, на этой странице вы не увидите контекста того, что вы перезаписываете. Используйте эту функцию на свой страх и риск. Поля, которые вы не будете трогать, сохранят исходные данные такими, какие они есть.** - -## Перейдите на страницу администрирования вашего Проекта и выберите задачи. - -Просто перейдите на страницу администрирования проекта. В виджете задач выберите значок графика справа от каждой задачи, которую вы хотите редактировать одновременно. - -![](/media/bulk-edit-1.png){:width="500"} - - -Вы также можете выбрать "выделить все", нажав на значок графика вверху списка. - -## Страница массового редактирования - -Далее, выберите значок передач справа вверху и отметьте "Изменить Выбранные" - -![](/media/bulk-edit-2.png){:width="500"} - - -Вы будете перенаправлены на страницу массового редактирования. - -## Удалить задачу из массового редактирования - -Осмотрите список задач, которые вы будете редактировать одновременно. Если вы передумали по какой-либо из них, но не хотите возвращаться и выбирать их повторно, вы можете нажать на символ "X" справа от названия задачи. - -![](/media/bulk-edit-3.png){:width="700"} - - -## Руководство по массовому редактированию - -1. Любые поля, которые вы выбираете для массового редактирования будут использованы для **перезаписи** данных, которые есть в каждой из задач. - -2. Любые поля, которые вы не используете на странице массового редактирования, не повлияют на существующие данные внутри задач. - -## Отправка массового редактирования - -Как только вы внесли все необходимые изменения в форму, нажмите Отправить, и вам будет представлено модальное окно подтверждения, в котором будут указаны все изменения, вносимые в каждую из задач. - -![](/media/bulk-edit-4.png) - -**Отменить редактирование** позволяет вернуться к форме и внести любые дополнительные изменения, которые вы бы хотели. Кроме того, вы можете отказаться от всех изменений, нажав "Отменить редактирование" на странице массового редактирования. - -**Отправить массовое редактирование** продолжит отправку изменений по каждой из задач. - diff --git a/_documentation/teams/01-teams.en_US.md b/_documentation/teams/01-teams.md similarity index 91% rename from _documentation/teams/01-teams.en_US.md rename to _documentation/teams/01-teams.md index 60506fe..7fc91bf 100644 --- a/_documentation/teams/01-teams.en_US.md +++ b/_documentation/teams/01-teams.md @@ -7,7 +7,7 @@ local mapping club or the attendees at a mapathon. Anyone can start a new team and invite other users to join. Teams live in the **Teams** block on your -[Dashboard](/en-US/documentation/your-dashboard/), which lists the teams you +[Dashboard](/documentation/your-dashboard/), which lists the teams you belong to and any pending invitations. Selecting a team opens its own page. > Note: Teams and their membership are public. Private teams are not supported. @@ -55,11 +55,11 @@ on your Dashboard, each with **Accept** and **Decline**. A team can hold a set of images that its members may put on their challenges. Anyone on the team can **Request image** from the team's page; a super admin reviews it, and once **Approved** it becomes selectable in the -[challenge form](/en-US/documentation/creating-a-challenge/) for everyone on +[challenge form](/documentation/creating-a-challenge/) for everyone on that team. Images awaiting review show as **Awaiting review**, and can be withdrawn by whoever requested them or by a team admin. > Adding a team to a project — so that project permissions flow to every team > member — is not available in the current frontend. See [Projects and Project -> Managers](/en-US/documentation/projects-and-project-managers/). +> Managers](/documentation/projects-and-project-managers/). {: .legacy} diff --git a/_documentation/user-settings/01-setting-your-default-osm-editor.en_US.md b/_documentation/user-settings/01-setting-your-default-osm-editor.md similarity index 96% rename from _documentation/user-settings/01-setting-your-default-osm-editor.en_US.md rename to _documentation/user-settings/01-setting-your-default-osm-editor.md index 4f97da4..5400b0a 100644 --- a/_documentation/user-settings/01-setting-your-default-osm-editor.en_US.md +++ b/_documentation/user-settings/01-setting-your-default-osm-editor.md @@ -40,4 +40,4 @@ choice as your new default. A checkmark marks the current default. ![](/media/editors-1.png){:width="600"} Some tasks can also be edited without leaving MapRoulette at all — see -[Editing inside MapRoulette](/en-US/documentation/rapid-editor/). +[Editing inside MapRoulette](/documentation/rapid-editor/). diff --git a/_documentation/user-settings/02-setting-your-map-base-layer.en_US.md b/_documentation/user-settings/02-setting-your-map-base-layer.md similarity index 91% rename from _documentation/user-settings/02-setting-your-map-base-layer.en_US.md rename to _documentation/user-settings/02-setting-your-map-base-layer.md index 41d8992..490ef3a 100644 --- a/_documentation/user-settings/02-setting-your-map-base-layer.en_US.md +++ b/_documentation/user-settings/02-setting-your-map-base-layer.md @@ -25,7 +25,7 @@ loads, so you only have to pick your preferred imagery once. Individual maps add their own buttons alongside these — the task map, for example, adds controls for task markers and for -[working several tasks together](/en-US/documentation/solving-multiple-tasks-together/). +[working several tasks together](/documentation/solving-multiple-tasks-together/). ## Your default basemap @@ -39,7 +39,7 @@ Basemap URL** field below it for your own tile template. Remember to press > The rebuilt map does not read this preference yet: it always opens on the map > style you last picked in the **Map style** control. The same is true of the > [basemap a challenge owner sets on their -> challenge](/en-US/documentation/setting-basemap-for-challenge/) — the setting +> challenge](/documentation/setting-basemap-for-challenge/) — the setting > is stored, but the map does not apply it. {: .legacy} diff --git a/_documentation/user-settings/03-notifications-and-email.en_US.md b/_documentation/user-settings/03-notifications-and-email.md similarity index 97% rename from _documentation/user-settings/03-notifications-and-email.en_US.md rename to _documentation/user-settings/03-notifications-and-email.md index cd07432..928e65a 100644 --- a/_documentation/user-settings/03-notifications-and-email.en_US.md +++ b/_documentation/user-settings/03-notifications-and-email.md @@ -43,7 +43,7 @@ The Notifications page is a list with a filter bar and a reading pane: ## Email Your email address is set on the **Notifications** tab of your -[account settings](/en-US/documentation/setting-your-default-osm-editor/) +[account settings](/documentation/setting-your-default-osm-editor/) (user menu → **Account Settings**). If you ask for notifications by email, they are sent there. diff --git a/_includes/footer.html b/_includes/footer.html index 1f6f0f9..e73e2f2 100644 --- a/_includes/footer.html +++ b/_includes/footer.html @@ -5,7 +5,6 @@

    Site last updated: {{ site.time | date: "%Y-%m-%d" }}

    -{%- assign lang = page.lang | default: "en-US" -%} diff --git a/index.en_US.md b/index.md similarity index 96% rename from index.en_US.md rename to index.md index d80cbb3..be94547 100644 --- a/index.en_US.md +++ b/index.md @@ -1,4 +1,5 @@ --- +permalink: / --- Welcome to the MapRoulette documentation and learning site! diff --git a/index.nl.md b/index.nl.md deleted file mode 100644 index 8ba90cf..0000000 --- a/index.nl.md +++ /dev/null @@ -1,10 +0,0 @@ ---- ---- - -Welkom op de documentatie- en leeromgeving van MapRoulette! - -![](/media/welcome-index.png) - -Als je wil beginnen karteren, ga dan naar de webpagina van onze applicatie [MapRoulette.org](https://maproulette.org/) - -Onze gemeenschap blijft snel groeien! Als je graag zou bijdragen aan de documentatie van Maproulette, kan je [deze pagina](https://github.com/maproulette/docs) bezoeken voor instructies. Dank bij voorbaat. diff --git a/index.pt_PT.md b/index.pt_PT.md deleted file mode 100644 index 9ff5df9..0000000 --- a/index.pt_PT.md +++ /dev/null @@ -1,10 +0,0 @@ ---- ---- - -Bem-vindo à página de documentação e aprendizagem do MapRoulette! - -![](/media/welcome-index.png) - -Se gostaria de começar a mapear, visite a nossa página da aplicação em [MapRoulette.org](https://maproulette.org/) - -A nossa comunidade continua a crescer rapidamente! Se gostaria de ajudar ao contribuir para a documentação do MapRoulette, por favor visite o nosso [Repositório](https://github.com/maproulette/docs) para obter instruções. Obrigado desde já. diff --git a/index.ru.md b/index.ru.md deleted file mode 100644 index a34a5f8..0000000 --- a/index.ru.md +++ /dev/null @@ -1,10 +0,0 @@ ---- ---- - -Добро пожаловать на сайт с документацией и обучающими материалами MapRoulette! - -![](/media/welcome-index.png) - -Если вы хотите заняться картированием, посетите страницу нашего приложения [MapRoulette.org](https://maproulette.org/) - -Наше сообщество продолжает быстро расти! Если вы хотите помочь и внести свой вклад в документацию MapRoulette, пожалуйста, посетите наш [Репозиторий] (https://github.com/maproulette/docs) для получения инструкций. Заранее благодарим вас. From 1136784766e959095e30c94ef370169582ba9a77 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 16:43:33 -0500 Subject: [PATCH 04/15] Retire or relocate the not-implemented pages Remove the pages for features that are not coming back, and move the four whose features have now been built into the sections they belong to: Setting The Basemap Layer For Your Challenge -> User Settings Challenge Managers: filtering tasks by properties -> Challenges Templating in Challenge Instructions -> Challenges System-Notice Management -> Server Admin Each moved page drops its "not implemented" notice and is rewritten to describe what the frontend actually does now, rather than what MapRoulette 3 used to do: - The challenge basemap page covers the bundled base layers and custom XYZ templates, and spells out the challenge > user > last-picked precedence. - The property filtering page describes the AND/OR rule builder and the operators the backend can search on, replacing the old data-type-first flow and comma-separated values. - The templating page notes that answers are saved against the task, and how short codes are told apart from Markdown links. - The system-notice page describes the backend-served notices file rather than the REACT_APP_SYSTEM_NOTICES_URL frontend setting, which no longer exists. Deleted: Reviewing, Using Mapillary Images, Styling Task Features. The one link to Reviewing, in Using MapRoulette Tags, becomes plain text. Permalinks are slug-based, so moving pages between sections keeps every inbound link working. "Not Implemented Yet" is down to Tag Fix Challenges and Following. --- ...1-filtering-the-task-list-by-properties.md | 50 +++++++++++ .../12-challenge-instructions-templating.md | 74 ++++++++++++++++ .../{03-following.md => 02-following.md} | 0 .../not-implemented/02-reviewing.md | 72 ---------------- .../04-using-mapillary-images.md | 19 ----- .../05-setting-basemap-for-challenge.md | 17 ---- .../06-styling-task-features.md | 85 ------------------- ...7-filtering-the-task-list-by-properties.md | 44 ---------- .../08-challenge-instructions-templating.md | 53 ------------ .../09-system-notice-management.md | 47 ---------- .../03-system-notice-management.md | 55 ++++++++++++ .../tasks/02-using-maproulette-tags.md | 3 +- .../02-setting-your-map-base-layer.md | 10 +-- .../04-setting-basemap-for-challenge.md | 45 ++++++++++ 14 files changed, 229 insertions(+), 345 deletions(-) create mode 100644 _documentation/challenges/11-filtering-the-task-list-by-properties.md create mode 100644 _documentation/challenges/12-challenge-instructions-templating.md rename _documentation/not-implemented/{03-following.md => 02-following.md} (100%) delete mode 100644 _documentation/not-implemented/02-reviewing.md delete mode 100644 _documentation/not-implemented/04-using-mapillary-images.md delete mode 100644 _documentation/not-implemented/05-setting-basemap-for-challenge.md delete mode 100644 _documentation/not-implemented/06-styling-task-features.md delete mode 100644 _documentation/not-implemented/07-filtering-the-task-list-by-properties.md delete mode 100644 _documentation/not-implemented/08-challenge-instructions-templating.md delete mode 100644 _documentation/not-implemented/09-system-notice-management.md create mode 100644 _documentation/server-admin/03-system-notice-management.md create mode 100644 _documentation/user-settings/04-setting-basemap-for-challenge.md diff --git a/_documentation/challenges/11-filtering-the-task-list-by-properties.md b/_documentation/challenges/11-filtering-the-task-list-by-properties.md new file mode 100644 index 0000000..6e1684d --- /dev/null +++ b/_documentation/challenges/11-filtering-the-task-list-by-properties.md @@ -0,0 +1,50 @@ +--- +title: 'Challenge Managers: filtering tasks by properties' +--- + +When analyzing your challenges as a manager, it can be useful to filter tasks by +property values (such as OSM tags) rather than only by status and priority. + +Open the **Filter by property** control above the task table on a challenge's +management page. It opens the same AND/OR rule builder used by [task +prioritization](/documentation/task-priority-rules/). + +## Building a rule + +Each rule is a property name, a value type (text or number), a comparison +operator, and a value to compare against. For example, to find motorways you +would enter the `highway` property, leave the type as Text, choose the `equals` +operator, and enter `motorway` as the value. + +The operators on offer depend on the value type: + +| Value type | Operators | +|:-----------|:----------| +| Text | `equals`, `does not equal`, `contains`, `exists`, `is missing` | +| Number | `equals`, `does not equal`, `greater than`, `less than` | + +> Note: it's important to choose the correct value type for the properties +> you're filtering against. If you have numeric data represented as strings in +> your GeoJSON (e.g. `population: "500"`), choosing Number will still compare +> numerically. + +Press **Apply** to filter the table and the map down to matching tasks. The +control is highlighted while a filter is active. **Clear** removes it, as does +the **Clear** control that resets all of the table's filters and sorting. + +## Combining rules + +To filter against several properties at once, add more rules to the group and +choose whether the group ANDs or ORs them together. With AND, every rule in the +group must match for a task to be included; with OR, any one of them is enough. + +A group holds as many rules as you need — you are not limited to two at a time — +and **Add group** nests a sub-group with its own AND/OR setting when you need +something more involved, such as "this property AND either of those two". + +For example, to find motorways with at least 6 lanes, add a Text rule with +`highway` `equals` `motorway` and a Number rule with `lanes` `greater than` `5`, +and leave the group set to AND. + +> Task properties live on the server, so the filter is evaluated there. Very +> large challenges are filtered to the first 10,000 matching tasks. diff --git a/_documentation/challenges/12-challenge-instructions-templating.md b/_documentation/challenges/12-challenge-instructions-templating.md new file mode 100644 index 0000000..1d54263 --- /dev/null +++ b/_documentation/challenges/12-challenge-instructions-templating.md @@ -0,0 +1,74 @@ +--- +title: Templating in Challenge Instructions +--- + +MapRoulette supports [mustache-tag +replacement](/documentation/mustache-tag-replacement/) in Challenge +Instructions, as well as special short codes that can be used to embed basic +form fields, make data easily copyable to the user's clipboard, etc. + +## Basic Form Fields + +It may occasionally be useful to allow mappers to provide to challenge managers +some additional information as they work through tasks. MapRoulette supports +special short codes that offer the ability to embed very basic form fields in +Challenge Instructions, which mappers can optionally complete for each task. +Responses are included in CSV and GeoJSON +[exports](/documentation/exporting-challenge-data/) of the challenge. + +![](/media/basic_template.gif){:width="500"} + +To add form fields, simply use one or more of the short codes documented below +in your Challenge Instructions. The short codes will be replaced with inline +form fields. + +Responses are saved against the task when the mapper completes it, so a mapper +who returns to a task they have already answered sees their previous answers. +The name you assign to each form field is used as the column name in the +exported CSV or the property name in the exported GeoJSON. + +> Note: form fields used to be represented by three curly braces instead of as +> short codes using square brackets. That older notation is still supported for +> backwards compatibility with existing challenges, but is considered deprecated +> and should no longer be used. + +### Checkbox field: + +``` +[checkbox "Your checkbox label" name="myCheckbox"] +``` + +This will create a checkbox field named myCheckbox + +The label can also include basic markdown, including mustache tags referencing +task properties + +### Select (multiple-choice) field: + +``` +[select "Your select label" name="myDropdown" values="foo,bar,baz"] +``` + +Creates a select field named myDropdown with three choices (foo or bar or baz) + +The label can also include basic markdown, including mustache tags referencing +task properties + +## Other Useful Short Codes + +``` +[copyable "some useful text"] +``` + +Causes a clipboard button to be rendered immediately after the specified text +that, when clicked, will copy the text to the user's clipboard. The text can +also include mustache tags referencing task properties, which will be +substituted, but **cannot** include markdown. + +## Short codes and Markdown + +Short codes are recognised only when the bracketed text matches one of the forms +above and is not immediately followed by `(`, so ordinary Markdown links — +`[the wiki](https://wiki.osm.org)` — and bracketed prose are left alone. Text +that looks like a short code but isn't one of the supported forms is shown +exactly as written. diff --git a/_documentation/not-implemented/03-following.md b/_documentation/not-implemented/02-following.md similarity index 100% rename from _documentation/not-implemented/03-following.md rename to _documentation/not-implemented/02-following.md diff --git a/_documentation/not-implemented/02-reviewing.md b/_documentation/not-implemented/02-reviewing.md deleted file mode 100644 index 27a4bc7..0000000 --- a/_documentation/not-implemented/02-reviewing.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: Reviewing ---- - -As you fix things via MapRoulette, you can ask for someone else to review your -work; and if you are a more experienced mapper, you can volunteer to review the -tasks that your fellow mappers have submitted. - -> Reviewing is not available in the current MapRoulette frontend. There is no -> review queue, no way to ask for your own work to be reviewed, and no -> approve/reject controls on a task. This page describes how reviewing works -> for when it returns. -> -> Some review *data* still surfaces, which is why you'll see the word around -> the app: review outcomes arrive as -> [notifications](/documentation/notifications-and-email/), a mapper's -> profile shows **Reviews Received** and **Reviews Performed** counts, and -> challenge managers can reassign open task reviews in bulk from the task -> table. None of those let you actually review a task. -{: .legacy} - -### What reviewing is for - -When you review a task, your job is to determine whether the mapper solved the -task the way they said they would. If it is marked fixed, check that the -problem described in the task was indeed fixed. If the mapper marked it as -**Not an Issue** or **Already Fixed**, verify that there was in fact nothing to -do in OSM. - -If the original mapper's work looks fine, you can **Approve** the task. You can -also make additional edits to complete or fix their work and mark the task -approved with fixes. Finally, if you want to give the task back to the original -mapper, you can **Reject** it. Whatever you choose, you can leave a comment -that will be visible to the original mapper. - -Especially when you reject a task, a comment telling the original mapper what -they need to improve is very important. If they didn't fix the task in the -first place, chances are that they won't be able to fix it a second time -without some help. - -### Review outcomes and notifications - -Review results reach the mapper as -[notifications](/documentation/notifications-and-email/) in the -**Reviews** category: - -- **Task Approved** — the work was accepted -- **Revision Requested** — the reviewer asked for the work to be revised -- **Review Requested** — a review has been requested of you -- **Review Revised** — the work was accepted, but the reviewer made some edits -- **Meta-Review** — a review has itself been reviewed - -### Seeing your review history - -A mapper's public profile has two blocks that summarise reviewing over a time -range you choose — **Reviews Received** (the outcomes of reviews of their own -work) and **Reviews Performed** (the outcomes of reviews they carried out). -These are the one part of reviewing that is present today, populated from -review history recorded earlier. - -### Adding tags during review - -Challenge managers can nominate a separate set of -[MR Tags](/documentation/using-maproulette-tags/) for reviewers, distinct -from the ones suggested to mappers. - -### Tools that come in handy - -The **OSM** tab in the task panel links out to the task's changeset on -OpenStreetMap, to [OSMCha](https://osmcha.org/) for detailed changeset -analysis, and to Overpass Turbo to query the changeset's data — plus the -history of the task's own OSM element and recent edits in the surrounding area. diff --git a/_documentation/not-implemented/04-using-mapillary-images.md b/_documentation/not-implemented/04-using-mapillary-images.md deleted file mode 100644 index f5bb72c..0000000 --- a/_documentation/not-implemented/04-using-mapillary-images.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Using Mapillary Images ---- - -> Mapillary imagery is not available in the current MapRoulette frontend. The -> integration described below was part of an earlier version, and is documented -> here for reference until it returns. -{: .legacy} - -The Mapillary integration showed Mapillary image locations relevant to the task -location, using the native Mapillary viewer widgets, so you could zoom in and -easily skip to the next or previous images in a Mapillary sequence. - -![](/media/mapillary-integration.png) - -In the meantime, the **OSM** tab in the task panel links out to -OpenStreetMap, OSMCha and Overpass Turbo for the task's location, and street -level imagery can be consulted in [Mapillary](https://www.mapillary.com/) or -[KartaView](https://kartaview.org/) directly. diff --git a/_documentation/not-implemented/05-setting-basemap-for-challenge.md b/_documentation/not-implemented/05-setting-basemap-for-challenge.md deleted file mode 100644 index 3abfb50..0000000 --- a/_documentation/not-implemented/05-setting-basemap-for-challenge.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Setting The Basemap Layer For Your Challenge ---- - -> Setting a basemap on your challenge is not possible from the current -> challenge form, and the rebuilt map does not apply a challenge's stored -> basemap. Mappers pick their base layer with the **Map style** control on the -> map instead — see [Setting your Map Base -> Layer](/documentation/setting-your-map-base-layer/). -{: .legacy} - -One of the customizations you can apply to your own Challenges is a custom basemap layer. This basemap layer will override whatever basemap MapRoulette users have defined as their default. This is useful in those cases where you know that a certain basemap is needed to successfully complete the tasks in your Challenge. - -All the default global basemap layers from OSM's [editor layer index](https://github.com/osmlab/editor-layer-index), the same ones that you would find in the iD editor, are available as presets. You can also add your own custom XYZ layer using the common pattern: - -`https://some.imagerylayer.com/tile/{z}/{x}/{y}` - diff --git a/_documentation/not-implemented/06-styling-task-features.md b/_documentation/not-implemented/06-styling-task-features.md deleted file mode 100644 index a0c050c..0000000 --- a/_documentation/not-implemented/06-styling-task-features.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Styling Task Features ---- - -> Custom task-feature styling is not applied by the current MapRoulette -> frontend. Task geometries are drawn in MapRoulette's own colours, simplestyle -> properties in your GeoJSON are ignored, there is no style-rule editor on the -> challenge form, and the Feature Style Legend is not shown. This page -> documents the data format, which challenges still carry, for when styling -> returns. -{: .legacy} - -MapRoulette offers two different approaches to styling tasks: - -1. A subset of the [simplestyle](https://github.com/mapbox/simplestyle-spec/blob/master/1.1.0/README.md) specification can be used to customize the appearance of features within a Task by including special feature properties in your task's GeoJSON - -2. Styling rules can be setup in your challenge that style task features based on the values of task properties, such as OSM tags - -## Styling tasks directly with GeoJSON properties - -To style tasks via GeoJSON, simply include the simplestyle properties directly on your feature. This provides you with complete flexibility in determining which tasks are to be styled, and how. - -The following simplestyle properties can be used on task features: - -| Property | Description | Supported Geometries -|:-----------------|:--------------------------------|:----------------------------------- -| stroke | Outline color | LineStrings, Polygons -| stroke-width | Thickness of outline | LineStrings, Polygons -| stroke-opacity | Translucency of outline | LineStrings, Polygons -| fill | Fill color (inside the outline) | Polygons -| fill-opacity | Translucency of the fill | Polygons -| marker-color | Map marker color | Points -| marker-size | Map marker size | Points - -Some notes and caveats: -* colors need to be expressed as [web hex colors](https://en.wikipedia.org/wiki/Web_colors) or (slightly riskier) [common web color names](https://en.wikipedia.org/wiki/Web_colors#X11_color_names) -* opacities need to be decimal numbers between 0.0 (transparent) and 1.0 (opaque) -* marker-size must be one of `small`, `medium`, or `large` (medium is the normal size) -* fill colors can obscure OSM labels, so be careful about high fill-opacity values -* use of colors used by OSM or MapRoulette to convey special meaning could confuse your mappers - - -### Example - -The following set of properties results in a Way being rendered with a purple stroke (outline) and 50%-opaque fuschia fill, as shown below: - - -```json -"properties": { - "@id": "way/258145134", - "amenity": "community_centre", - "building": "yes", - "stroke": "#800080", - "fill": "#FF00FF", - "fill-opacity": "0.5" -} -``` - -![](/media/simplestyled_way.png){:width="500"} - - -## Customizing task styling during challenge setup - -Challenges could also carry styling rules of their own, set up on the -"Configure property-based behavior" step when creating or editing a challenge. - -![](/media/configure_custom_styles.png){:width="544"} - - -You'll be presented with the ability to specify one or more task styles that should be applied when a property filter/search matches on a task. In the screenshot below, roads with more than 2 lanes are being setup to be rendered as thick purple lines. You can setup multiple filters with their own styles to capture various scenarios. - -![](/media/custom_task_styling.png){:width="1024"} - - -Note that if a task matches multiple filters -- or if the task also contains simplestyle GeoJSON properties (see above) -- all of the matching styles will be merged and applied. - -A Feature Style Legend was available alongside the map as a reminder of what the custom styles indicate. - -![](/media/style_legend.png){:width="500"} - - -## Video - -HOT has produced [a video](https://youtu.be/gj8MRgiIV-I?t=849) that goes into styling features in MapRoulette. Check it out! - diff --git a/_documentation/not-implemented/07-filtering-the-task-list-by-properties.md b/_documentation/not-implemented/07-filtering-the-task-list-by-properties.md deleted file mode 100644 index a179119..0000000 --- a/_documentation/not-implemented/07-filtering-the-task-list-by-properties.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 'Challenge Managers: filtering tasks by properties' ---- - -> Filtering the task table by feature property values is not part of the -> current MapRoulette frontend. The task table on a challenge's management page -> filters by **status** and **priority** and sorts by ID, status or priority — -> but there is no property filter or compound rule builder. This page is kept -> for reference. -> -> Property rules themselves are still very much alive in -> [task prioritization](/documentation/task-priority-rules/), which uses -> the same kind of AND/OR rule builder described below. -{: .legacy} - -When analyzing your challenges as a manager, it can sometimes be useful to filter tasks by property values (such as OSM tags). It has been possible since v3.4.4 of MapRoulette to filter tasks by the value of a single task property, but v3.5.3 brings the ability to create compound filtering rules that can AND and OR together multiple properties to achieve fine-grained filtering. - -When managing a challenge, you can get started by clicking the "Filter by Property" control on the tasks table. You'll be asked to select the data type of the property: text, number, or a special "compound rule" if you wish to do a compound search involving multiple properties. - -If you chose text or number, you'll then be asked to choose the property name, a comparison operator, and a value to compare against. - -> Note: To help with choosing a property name, MapRoulette offers a dropdown of all property names it discovered on tasks in the challenge. It does **not** restrict the offered properties based on the data type you chose. - -For example, if you were looking for motorways, you might choose the `highway` property, the `equals` operator, and then enter `motorway` for the value. - -The comparison operators on offer depend on the data type you choose. Text properties can use textual operators like `equals` and `contains` while numeric properties can use operators like `=` and `>` or `<` for comparison. - -> Note: it's important to choose the correct data types for the properties you're filtering against. However, if you have numeric data represented as strings in your GeoJSON (e.g. `population: "500"`), MapRoulette will attempt to perform numeric comparisons if you choose a Number type for the property despite it technically being a string/text. - -If you wish to filter against multiple properties simultaneously, choose "compound rule" for the type. This will present you with boxes for two properties along with an option to AND or OR them together. If you choose AND then _both_ property comparisons must match on a task for the task to be included in your filter results. If you choose OR then the task will be included if _either_ of the property comparisons match. - -> As of v3.5.7, MapRoulette offers an option for including multiple, comma-separated filter values for a single property so that compound rules can be avoided for the common case of matching any one of multiple values. These values will be OR'ed together. - -For example, if you wanted motorways with at least 6 lanes, you would choose "compound rule", set the first rule to Text with `highway` `equals` `motorway`, set the second rule to Number with `lanes` `>` `5`, and choose to AND them together. - -If you wish to filter against more than 2 properties, then you'll need to nest multiple compound rules. - -As of v3.5.5, you no longer need to setup a compound rule if you simply wish to compare a property against multiple values (e.g. `highway` `equals` `motorway` or `trunk`). You can click the "Add Value" control to add multiple values to include in the comparison. - -The screenshow below shows the setup of a compound search for tasks with a `name` property of `TransCanada Highway` and the `highway` property set to either `motorway` or `trunk`. - - -![compound property rule](/media/compound_property_rule.png) - diff --git a/_documentation/not-implemented/08-challenge-instructions-templating.md b/_documentation/not-implemented/08-challenge-instructions-templating.md deleted file mode 100644 index a0011e9..0000000 --- a/_documentation/not-implemented/08-challenge-instructions-templating.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Templating in Challenge Instructions ---- - -> The short codes on this page — embedded form fields and the `copyable` -> control — are not rendered by the current MapRoulette frontend; they appear as -> literal text in challenge instructions. The page is kept for reference and -> for challenges that still contain them. -{: .legacy} - -MapRoulette supports [mustache-tag replacement](/documentation/mustache-tag-replacement/) in Challenge Instructions, as well as special short codes that can be used to embed basic form fields, make data easily copyable to the user's clipboard, etc. - -## Basic Form Fields - -It may occasionally be useful to allow mappers to provide to challenge managers some additional information as they work through tasks. MapRoulette supports special short codes that offer the ability to embed very basic form fields in Challenge Instructions, which mappers can optionally complete for each task. Responses are included in CSV and GeoJSON [exports](/documentation/exporting-challenge-data/) of the challenge. - -![](/media/basic_template.gif){:width="500"} - - -To add form fields, simply use one or more of the short codes documented below in your Challenge Instructions. The short-codes will be replaced with inline form fields. - -> Note: form fields used to be represented by three curly braces instead of as short codes using square brackets. That older notation is still supported for backwards compatibility with existing challenges, but is considered deprecated and should no longer be used - -Form responses for each task will be automatically included in CSV and GeoJSON exports of challenge tasks from challenge management. The name you assign to each form field will be used as the column name in the exported CSV or property name in the exported GeoJSON. - -### Checkbox field: - -``` -[checkbox "Your checkbox label" name="myCheckbox"] -``` - -This will create a checkbox field named myCheckbox - -The label can also include basic markdown, including mustache tags referencing task or workspace properties - -### Select (multiple-choice) field: - -``` -[select "Your select label" name="myDropdown" values="foo,bar,baz"] -``` - -Creates a select field named myDropdown with three choices (foo or bar or baz) plus an empty choice - -The label can also include basic markdown, including mustache tags referencing task or workspace properties - -## Other Useful Short Codes - -``` -[copyable "some useful text"] -``` - -Causes a clipboard button to be rendered immediately after the specified text that, when clicked, will copy the text to the user's clipboard. The text can also include mustache tags referencing task or workspace properties, which will be substituted, but **cannot** include markdown. - diff --git a/_documentation/not-implemented/09-system-notice-management.md b/_documentation/not-implemented/09-system-notice-management.md deleted file mode 100644 index 1f21a9f..0000000 --- a/_documentation/not-implemented/09-system-notice-management.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: System-Notice Management ---- - -> System notices are not available in the current MapRoulette frontend. There -> is no `REACT_APP_SYSTEM_NOTICES_URL` setting (and no `VITE_` equivalent), and -> nothing fetches a notices file. The frontend does show one built-in -> dismissible banner announcing that this is a beta version; it is part of the -> app rather than something you configure. This page describes how system -> notices worked, for reference. -> -> In the meantime, **System Message** notifications still exist as a -> notification type, so the backend can reach users that way — see -> [Notifications and Email](/documentation/notifications-and-email/). -{: .legacy} - -MapRoulette supports the display of system notices -- such as notice of upcoming maintenance -- through a simple external JSON file that can be hosted anywhere (including a GitHub repo). You simply need to specify the URL to the file in the `REACT_APP_SYSTEM_NOTICES_URL` .env configuration variable. - -The JSON file should represent a single object with a top-level `notices` array of notice objects. Any other top-level fields are ignored. - -Each notice object should contain a `message` field, [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) formatted `expirationTimestamp` field in UTC, and a `uuid` field that uniquely identifies the notice. - -Example JSON: - -```json -{ - "notices": [ - { - "message": "A first notice. Maintenance is planned.", - "expirationTimestamp": "2019-08-01T17:00:00Z", - "uuid": "b98da355-a5e9-44b4-8a20-a5034d704de5" - }, - { - "message": "A second notice. Important things are happening", - "expirationTimestamp": "2019-08-04T15:00:00Z", - "uuid": "94aef98e-bf9f-46a6-a860-85e62498ae3d" - } - ] -} -``` - -Only future notices are displayed to users, based on each notice's `expirationTimestamp`. Logged-in users are given the option of acknowledging/dismissing each notice, and will not be shown the notice again once acknowledged. - -The message may contain markdown. - -If you are creating a notice by hand, you may wish to take advantage of an online UUID generator such as https://www.guidgenerator.com/online-guid-generator.aspx - diff --git a/_documentation/server-admin/03-system-notice-management.md b/_documentation/server-admin/03-system-notice-management.md new file mode 100644 index 0000000..f9674bd --- /dev/null +++ b/_documentation/server-admin/03-system-notice-management.md @@ -0,0 +1,55 @@ +--- +title: System-Notice Management +--- + +MapRoulette can display system notices — such as notice of upcoming +maintenance — as a banner across the top of every page. Notices come from a +simple JSON file that can be hosted anywhere (including a GitHub repo). The +backend fetches that file and serves it to the frontend at +`/api/v2/user/announcements`; the URL of the file is configured on the +**backend**, not on the frontend. + +The JSON file should represent a single object with a top-level `notices` +array of notice objects. Any other top-level fields are ignored. + +Each notice object should contain a `message` field, an [ISO +8601](https://en.wikipedia.org/wiki/ISO_8601) formatted `expirationTimestamp` +field in UTC, and a `uuid` field that uniquely identifies the notice. + +Example JSON: + +```json +{ + "notices": [ + { + "message": "A first notice. Maintenance is planned.", + "expirationTimestamp": "2019-08-01T17:00:00Z", + "uuid": "b98da355-a5e9-44b4-8a20-a5034d704de5" + }, + { + "message": "A second notice. Important things are happening", + "expirationTimestamp": "2019-08-04T15:00:00Z", + "uuid": "94aef98e-bf9f-46a6-a860-85e62498ae3d" + } + ] +} +``` + +Only notices that have not yet passed their `expirationTimestamp` are shown. A +notice whose timestamp cannot be parsed is skipped rather than displayed +indefinitely. + +Signed-in users can dismiss each notice, and it will not be shown to them +again — the acknowledgement is stored on their MapRoulette account, so it +follows them between browsers and devices. Signed-out visitors see notices too, +but dismissing one only lasts for that browsing session. + +The message may contain markdown. + +If you are creating a notice by hand, you may wish to take advantage of an +online UUID generator such as +. + +Removing the hosted file (or leaving none configured) simply means no banners +are shown — the frontend treats an empty or unavailable response as "no +notices" rather than an error. diff --git a/_documentation/tasks/02-using-maproulette-tags.md b/_documentation/tasks/02-using-maproulette-tags.md index d1a0b6c..4a32ebf 100644 --- a/_documentation/tasks/02-using-maproulette-tags.md +++ b/_documentation/tasks/02-using-maproulette-tags.md @@ -43,8 +43,7 @@ complete), and while its review is still in play. A challenge can nominate the tags it would rather mappers used. Those appear above the tag box as **Popular in this challenge:**, as chips you can click to add rather than typing. There are two sets: one recommended during task -completion, and one recommended during -[review](/documentation/reviewing/). +completion, and one recommended during review. ### Restricting MR Tags diff --git a/_documentation/user-settings/02-setting-your-map-base-layer.md b/_documentation/user-settings/02-setting-your-map-base-layer.md index 490ef3a..7f27cd5 100644 --- a/_documentation/user-settings/02-setting-your-map-base-layer.md +++ b/_documentation/user-settings/02-setting-your-map-base-layer.md @@ -36,12 +36,10 @@ Basemap URL** field below it for your own tile template. Remember to press ![](/media/setting-default-baselayer.png) -> The rebuilt map does not read this preference yet: it always opens on the map -> style you last picked in the **Map style** control. The same is true of the -> [basemap a challenge owner sets on their -> challenge](/documentation/setting-basemap-for-challenge/) — the setting -> is stored, but the map does not apply it. -{: .legacy} +Maps open on this layer unless the challenge you are working on sets [a basemap +of its own](/documentation/setting-basemap-for-challenge/), which takes +precedence. If neither is set, the map opens on whichever layer you last picked +with the **Map style** control. > Choosing arbitrary layers from the OSM [editor layer > index](https://github.com/osmlab/editor-layer-index), adding your own custom diff --git a/_documentation/user-settings/04-setting-basemap-for-challenge.md b/_documentation/user-settings/04-setting-basemap-for-challenge.md new file mode 100644 index 0000000..f813c24 --- /dev/null +++ b/_documentation/user-settings/04-setting-basemap-for-challenge.md @@ -0,0 +1,45 @@ +--- +title: Setting The Basemap Layer For Your Challenge +--- + +One of the customizations you can apply to your own Challenges is a custom +basemap layer. This basemap layer will override whatever basemap MapRoulette +users have defined as their default. This is useful in those cases where you +know that a certain basemap is needed to successfully complete the tasks in +your Challenge. + +## Choosing the basemap + +When creating or editing a challenge, the **Basemap** section offers: + +- **Don't override — mappers use their own.** The default. Each mapper sees + their own preferred base layer. +- One of the base layers bundled with MapRoulette — the same list offered by + the **Map style** control on any map. See [Map Layer + Management](/documentation/map-layer-management/) for that list and how a + server administrator changes it. +- **Custom tile layer…**, which reveals a **Custom basemap URL** field for your + own XYZ layer using the common pattern: + + `https://some.imagerylayer.com/tile/{z}/{x}/{y}` + +Leaving the custom URL blank is treated the same as not overriding the basemap +at all. + +## Which basemap a mapper actually sees + +When a map opens, MapRoulette picks the first of these that is set: + +1. The challenge's basemap, if its owner set one. +2. The mapper's own default basemap, from [their account + settings](/documentation/setting-your-map-base-layer/). +3. Whichever base layer they last picked with the **Map style** control. + +A mapper can still switch layers with the **Map style** control after the map +opens — the challenge basemap decides where they start, not where they must +stay. + +> Challenges created in older versions of MapRoulette stored their basemap as +> one of a small set of numbered layers. Those still work: they resolve to the +> closest bundled base layer. OpenCycleMap has no bundled equivalent, so a +> challenge that asked for it falls back to the mapper's own preference. From fcf533a49e6a91c3a86ae193693fed218cd0d3c3 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 17:30:21 -0500 Subject: [PATCH 05/15] Add a Migrating from MR3 section Two pages for people arriving from MapRoulette 3, in a new sidebar section placed after Getting Started. "Moving from MapRoulette 3 to MapRoulette 4" is a checklist of what to expect, grouped by who is affected: mappers, challenge managers and server administrators. Each row says what you did in MR3 and where that stands now, linking to the page that covers it. It leads with the reassurance that the server is the same one, so nothing anybody created needs migrating, and points at the HTTP API for the cases where a feature left the frontend but not the data model. Content is drawn from the notices already scattered through the site, so the two stay consistent. "What changed in these docs" covers the documentation itself: the move off the /en-US/ URL prefix, how the six old sections were redistributed, the seven pages that were removed and why, the pages that graduated out of Not Implemented Yet, and why the partial translations were dropped rather than carried forward. The `{{#mapZoom}}` example is wrapped in raw tags, as on the mustache page, so Liquid does not try to parse it. --- _config.yaml | 1 + _data/sections.json | 1 + .../migrating/01-maproulette-3-to-4.md | 78 +++++++++++++++ .../migrating/02-documentation-changes.md | 97 +++++++++++++++++++ 4 files changed, 177 insertions(+) create mode 100644 _documentation/migrating/01-maproulette-3-to-4.md create mode 100644 _documentation/migrating/02-documentation-changes.md diff --git a/_config.yaml b/_config.yaml index 8369940..1485e0a 100644 --- a/_config.yaml +++ b/_config.yaml @@ -16,6 +16,7 @@ collections: # _documentation/. sections: - getting-started + - migrating - mapping - user-settings - projects diff --git a/_data/sections.json b/_data/sections.json index b61f52a..0f69cb6 100644 --- a/_data/sections.json +++ b/_data/sections.json @@ -1,5 +1,6 @@ { "getting-started": "Getting Started", + "migrating": "Migrating from MR3", "mapping": "Mapping Tasks", "user-settings": "User Settings", "projects": "Projects", diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md new file mode 100644 index 0000000..4ec875c --- /dev/null +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -0,0 +1,78 @@ +--- +title: Moving from MapRoulette 3 to MapRoulette 4 +--- + +MapRoulette 4 is a rebuilt frontend. Your account, projects, challenges and +tasks are unchanged — the server behind both versions is the same one, so +nothing you have created needs migrating. What changed is the interface, and a +number of features that have not been rebuilt yet. + +This page is a checklist of what to expect. If a feature you rely on is listed +as gone, the [HTTP +API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none) +usually still exposes it, because the data model did not change. + +## For mappers + +| What you did in MR3 | Where it stands in MR4 | +|:--------------------|:-----------------------| +| Picked any imagery from the OSM editor layer index | The base layers are now a fixed set bundled with the frontend. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | +| Added your own XYZ or WMS layer from inside the map | Not available. Your account's default basemap can still be a custom URL. | +| Turned on Mapillary, KartaView or OSM data overlays | Not available. | +| Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | +| Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | +| Followed other mappers | Not available. See [Following](/documentation/following/). | +| Worked Tag Fix / cooperative challenges | The challenge page still badges them, but the proposed tag change is not presented for approval and tasks complete like ordinary ones. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | +| Reviewed tasks | Not available. | +| Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | +| Wrote `[@example user]` to mention a name with spaces | Only unbracketed mentions of letters, digits, underscores and hyphens are recognised. See [Comment Short Codes](/documentation/comment-short-codes/). | +| Set per-notification email preferences | The Notifications tab currently holds only your email address. See [Notifications and Email](/documentation/notifications-and-email/). | + +## For challenge managers + +| What you did in MR3 | Where it stands in MR4 | +|:--------------------|:-----------------------| +| Set a challenge basemap | Available again, over the bundled base layers or a custom XYZ template. See [Setting The Basemap Layer For Your Challenge](/documentation/setting-basemap-for-challenge/). | +| Filtered the task table by feature property | Available again, with an AND/OR rule builder. See [filtering tasks by properties](/documentation/filtering-the-task-list-by-properties/). | +| Embedded form fields in challenge instructions | Available again. See [Templating in Challenge Instructions](/documentation/challenge-instructions-templating/). | +| Styled task features by property | Not available. | +| Created cooperative (including Tag Fix) challenges | Not available. | +| Created virtual challenges, or virtual projects | Not surfaced in the frontend. Both still exist in the API. | +| Added or removed project managers, or gave a team a project role | Not available in the frontend; the roles still govern access and can be granted through the API. See [Projects and Project Managers](/documentation/projects-and-project-managers/). | +| Set Preferred MR Tags, or restricted tags to that list | Honoured where already set, but not editable from the challenge form. See [Using MapRoulette Tags](/documentation/using-maproulette-tags/). | +| Named the OSM/External Id property explicitly | The form setting is gone; detection is automatic. See [Setting External Task Identifiers](/documentation/setting-external-task-identifiers/). | +| Used `#`-prefixed workspace mustache tags, e.g. {% raw %}`{{#mapZoom}}`{% endraw %} | Not substituted. Task feature properties still are, in challenge instructions. See [Mustache Tag Replacement](/documentation/mustache-tag-replacement/). | +| Attached reference layers to tasks | Attachments still travel through the API but nothing in the frontend consumes them. See [Task Attachments](/documentation/task-attachments/). | +| Exported a single challenge, exported GeoJSON, or chose an export timezone | Not available. CSV timestamps are UTC. See [Exporting Challenge Data](/documentation/exporting-challenge-data/). | + +## For server administrators + +The biggest change is how the frontend is configured. + +- Settings are now **runtime**, not build-time. They are prefixed `VITE_` + rather than `REACT_APP_`, and are written into an `env.json` that the browser + loads before the app boots — so one built image can be reconfigured per + deployment without rebuilding. See [Runtime + Configuration](/documentation/runtime-configuration/). +- Base layers are no longer pulled from the editor layer index at build time. + `REACT_APP_ADDITIONAL_INDEX_LAYERS`, `REACT_APP_DEFAULT_MAP_LAYERS`, + `REACT_APP_DEFAULT_MAP_LAYER_ID` and `REACT_APP_MAP_LAYER_API_KEYS` are gone, + as are `src/customLayers.json` and the generated `src/defaultLayers.json`. + See [Map Layer Management](/documentation/map-layer-management/). +- The imagery overlay settings — `REACT_APP_IMAGERY_OPENSTREETCAM`, + `REACT_APP_MAPILLARY_API_KEY` and `REACT_APP_OSM_DATA_OVERLAY` — are gone + with the overlays themselves. +- `REACT_APP_SYSTEM_NOTICES_URL` is gone. System notices are now served by the + backend, which is where the URL of the notices file is configured. See + [System-Notice Management](/documentation/system-notice-management/). +- Parts of MapRoulette now ship as plugins, loaded at runtime from a URL. + Reviewing is the main example. `VITE_DEPLOYMENT_PLUGIN_URLS` loads them for + every user of a deployment. + +## Reading the rest of these docs + +Pages that describe something MapRoulette 3 did but MapRoulette 4 does not +carry a highlighted note saying so, so you can tell at a glance whether what +you are reading applies today. Features that are documented only for reference +— because nothing in the current frontend uses them — are collected under +**Not Implemented Yet** at the bottom of the sidebar. diff --git a/_documentation/migrating/02-documentation-changes.md b/_documentation/migrating/02-documentation-changes.md new file mode 100644 index 0000000..beea900 --- /dev/null +++ b/_documentation/migrating/02-documentation-changes.md @@ -0,0 +1,97 @@ +--- +title: What changed in these docs +--- + +These docs were reorganised and rewritten alongside MapRoulette 4. If you have +read them before, or have links saved, this page summarises what moved and what +went away. + +At a glance: **46 English pages became 42**, arranged in **10 sections instead +of 6**, and every page was reviewed against the current frontend. + +## URLs changed + +Pages used to live under a locale segment: + +``` +old: /en-US/documentation/your-dashboard/ +new: /documentation/your-dashboard/ +``` + +Old links still work — anything under `/en-US/` is redirected to the flat +address — so bookmarks and links from elsewhere are safe. A page's slug is +unchanged by which section it sits in, so pages that moved between sections +kept their address. + +## Sections were reorganised + +The old grouping put beginner and expert material for the same topic in +different places. The new one is organised by what you are doing. + +| Old section | Became | +|:------------|:-------| +| Basics | Getting Started, User Settings, Mapping Tasks, Challenges | +| Advanced | Mapping Tasks, Getting Started, Advanced | +| Creating Challenges | Challenges, Tasks | +| New Topics | Getting Started, Challenges, Mapping Tasks | +| Teams | Teams, Projects, Tasks | +| Server Admin | Server Admin | +| — | Migrating from MR3 (new) | + +The sections now are Getting Started, Migrating from MR3, Mapping Tasks, User +Settings, Projects, Challenges, Tasks, Teams, Advanced and Server Admin, plus a +**Not Implemented Yet** appendix. + +## Pages that went away + +Seven pages were removed. None of them have redirects, so a saved link to one +will 404. + +| Removed page | Why | +|:-------------|:----| +| Reviewing | Not available in the current frontend | +| Using Mapillary Images | The Mapillary overlay is not part of the current frontend | +| Styling Task Features | Not part of the current frontend | +| Creating Cooperative Challenges | Cooperative challenges cannot be created | +| Editing Virtual Challenges | Not surfaced in the frontend | +| Virtual Projects | Not surfaced in the frontend | +| Translating the Docs | The docs are English-only for now — see below | + +Three pages were added: **Runtime Configuration**, describing the `VITE_*` +settings that replaced MapRoulette 3's `REACT_APP_*` ones, and the two pages of +this Migrating from MR3 section. + +## Pages that moved rather than went + +Four pages describe features that were missing when MapRoulette 4 was first +documented and have since been built. They have moved out of **Not Implemented +Yet** and into the sections they belong to, and their notices are gone: + +| Page | Now in | +|:-----|:-------| +| Setting The Basemap Layer For Your Challenge | User Settings | +| Challenge Managers: filtering tasks by properties | Challenges | +| Templating in Challenge Instructions | Challenges | +| System-Notice Management | Server Admin | + +Two remain under **Not Implemented Yet**: Tag Fix Challenges and Following. + +## Translations were removed + +The docs used to carry partial translations into German, Spanish, French, Dutch +and Russian. Those files covered a small and uneven fraction of the site, and +had drifted badly out of date against the English pages — which were themselves +being rewritten. Rather than ship translations describing a version of +MapRoulette that no longer exists, they were removed along with the Transifex +setup and the page explaining how to contribute one. + +## Every page was checked against the app + +The largest change is not structural. Every page was re-read against the current +frontend, and anything that no longer matched was either corrected or marked. + +Where MapRoulette 3 did something MapRoulette 4 does not, the page now says so +in a highlighted note rather than quietly describing behaviour you cannot find. +There are 19 such notes across the site. If you want the whole picture in one +place instead of page by page, see [Moving from MapRoulette 3 to MapRoulette +4](/documentation/maproulette-3-to-4/). From 8b37ea08ea9c5e7d40a7299b5e022ef7fc482b60 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 17:42:28 -0500 Subject: [PATCH 06/15] Update docs for the features that now exist Nine "not implemented" notices came off pages whose features have been built: project managers and team project roles, preferred MapRoulette tags, the OSM/External Id property, task reference layers, challenge exports, bracketed mentions, per-notification email preferences, custom base layers, and workspace mustache tags. Following moves out of Not Implemented Yet into Teams, keeping a narrower notice: the follow relationships, lists and privacy setting all work, but the combined activity timeline of everyone you follow does not exist. The base layer and map layer management pages describe adding your own XYZ or WMS layer, including that such layers live in the browser rather than on the server, so they do not follow a mapper between devices and nobody else sees them. The migration guide's tables are rewritten to match, since ten of its rows described these as missing. --- .../advanced/03-comment-short-codes.md | 5 ----- .../challenges/10-exporting-challenge-data.md | 8 -------- .../migrating/01-maproulette-3-to-4.md | 20 +++++++++---------- .../migrating/02-documentation-changes.md | 5 +++-- .../01-projects-and-project-managers.md | 7 ------- .../server-admin/02-map-layer-management.md | 4 +++- .../tasks/02-using-maproulette-tags.md | 6 ------ .../03-setting-external-task-identifiers.md | 8 -------- .../tasks/05-mustache-tag-replacement.md | 7 ------- _documentation/tasks/06-task-attachments.md | 7 ------- _documentation/teams/01-teams.md | 4 ---- .../02-following.md | 11 +++++----- .../02-setting-your-map-base-layer.md | 16 +++++++++------ .../03-notifications-and-email.md | 5 ----- 14 files changed, 32 insertions(+), 81 deletions(-) rename _documentation/{not-implemented => teams}/02-following.md (83%) diff --git a/_documentation/advanced/03-comment-short-codes.md b/_documentation/advanced/03-comment-short-codes.md index 6105baf..c8cd43a 100644 --- a/_documentation/advanced/03-comment-short-codes.md +++ b/_documentation/advanced/03-comment-short-codes.md @@ -22,11 +22,6 @@ them that they've been mentioned in a comment. Depending on their notification settings, they may also receive an email notification, or the notification may be ignored completely. -> Mentions match usernames made of letters, digits, underscores and hyphens. -> The older bracketed form for names with spaces or punctuation — -> `[@example user]` — is no longer recognised. -{: .legacy} - ## Reference OSM elements and map viewports > The bracketed short-codes below — `[n123456789]` for an OSM node, way or diff --git a/_documentation/challenges/10-exporting-challenge-data.md b/_documentation/challenges/10-exporting-challenge-data.md index 4195db2..63c93eb 100644 --- a/_documentation/challenges/10-exporting-challenge-data.md +++ b/_documentation/challenges/10-exporting-challenge-data.md @@ -14,11 +14,3 @@ Among other things the export carries each task's [MR Tags](/documentation/using-maproulette-tags/), which is what makes asking mappers for tags worthwhile in the first place. -> Per-challenge exports, GeoJSON exports and the per-export timezone selector -> are not part of the current frontend. Timestamps in the CSV are in UTC. For -> anything more specific, the [HTTP -> API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none) -> exposes the same task data — as do the -> [Python](https://github.com/osmlab/maproulette-python-client) and -> [Java](https://github.com/osmlab/maproulette-java-client) clients. -{: .legacy} diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index 4ec875c..584b1ec 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -17,16 +17,16 @@ usually still exposes it, because the data model did not change. | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| | Picked any imagery from the OSM editor layer index | The base layers are now a fixed set bundled with the frontend. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | -| Added your own XYZ or WMS layer from inside the map | Not available. Your account's default basemap can still be a custom URL. | +| Added your own XYZ or WMS layer from inside the map | Available again, from the **Map style** control. Layers are stored in your browser rather than on the server. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | | Turned on Mapillary, KartaView or OSM data overlays | Not available. | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | -| Followed other mappers | Not available. See [Following](/documentation/following/). | +| Followed other mappers | Available again, from a mapper's profile. The combined activity timeline of everyone you follow is still missing. See [Following](/documentation/following/). | | Worked Tag Fix / cooperative challenges | The challenge page still badges them, but the proposed tag change is not presented for approval and tasks complete like ordinary ones. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | -| Wrote `[@example user]` to mention a name with spaces | Only unbracketed mentions of letters, digits, underscores and hyphens are recognised. See [Comment Short Codes](/documentation/comment-short-codes/). | -| Set per-notification email preferences | The Notifications tab currently holds only your email address. See [Notifications and Email](/documentation/notifications-and-email/). | +| Wrote `[@example user]` to mention a name with spaces | Works again. See [Comment Short Codes](/documentation/comment-short-codes/). | +| Set per-notification email preferences | Available again, on their own **Subscriptions** tab in account settings. See [Notifications and Email](/documentation/notifications-and-email/). | ## For challenge managers @@ -38,12 +38,12 @@ usually still exposes it, because the data model did not change. | Styled task features by property | Not available. | | Created cooperative (including Tag Fix) challenges | Not available. | | Created virtual challenges, or virtual projects | Not surfaced in the frontend. Both still exist in the API. | -| Added or removed project managers, or gave a team a project role | Not available in the frontend; the roles still govern access and can be granted through the API. See [Projects and Project Managers](/documentation/projects-and-project-managers/). | -| Set Preferred MR Tags, or restricted tags to that list | Honoured where already set, but not editable from the challenge form. See [Using MapRoulette Tags](/documentation/using-maproulette-tags/). | -| Named the OSM/External Id property explicitly | The form setting is gone; detection is automatic. See [Setting External Task Identifiers](/documentation/setting-external-task-identifiers/). | -| Used `#`-prefixed workspace mustache tags, e.g. {% raw %}`{{#mapZoom}}`{% endraw %} | Not substituted. Task feature properties still are, in challenge instructions. See [Mustache Tag Replacement](/documentation/mustache-tag-replacement/). | -| Attached reference layers to tasks | Attachments still travel through the API but nothing in the frontend consumes them. See [Task Attachments](/documentation/task-attachments/). | -| Exported a single challenge, exported GeoJSON, or chose an export timezone | Not available. CSV timestamps are UTC. See [Exporting Challenge Data](/documentation/exporting-challenge-data/). | +| Added or removed project managers, or gave a team a project role | Available again, from the project's page. See [Projects and Project Managers](/documentation/projects-and-project-managers/). | +| Set Preferred MR Tags, or restricted tags to that list | Available again, in the challenge form's **Task settings**. See [Using MapRoulette Tags](/documentation/using-maproulette-tags/). | +| Named the OSM/External Id property explicitly | Available again, in the challenge form's **Task settings**. Leave it blank for automatic detection. See [Setting External Task Identifiers](/documentation/setting-external-task-identifiers/). | +| Used `#`-prefixed workspace mustache tags, e.g. {% raw %}`{{#mapZoom}}`{% endraw %} | Substituted again in challenge instructions. See [Mustache Tag Replacement](/documentation/mustache-tag-replacement/). | +| Attached reference layers to tasks | Reference layers are handed to JOSM again when you open a task in it. See [Task Attachments](/documentation/task-attachments/). | +| Exported a single challenge, exported GeoJSON, or chose an export timezone | All available again, from the **Export** control on a challenge's task table. See [Exporting Challenge Data](/documentation/exporting-challenge-data/). | ## For server administrators diff --git a/_documentation/migrating/02-documentation-changes.md b/_documentation/migrating/02-documentation-changes.md index beea900..c996fcf 100644 --- a/_documentation/migrating/02-documentation-changes.md +++ b/_documentation/migrating/02-documentation-changes.md @@ -74,7 +74,8 @@ Yet** and into the sections they belong to, and their notices are gone: | Templating in Challenge Instructions | Challenges | | System-Notice Management | Server Admin | -Two remain under **Not Implemented Yet**: Tag Fix Challenges and Following. +Following has since joined them in the Teams section, leaving one page under +**Not Implemented Yet**: Tag Fix Challenges. ## Translations were removed @@ -92,6 +93,6 @@ frontend, and anything that no longer matched was either corrected or marked. Where MapRoulette 3 did something MapRoulette 4 does not, the page now says so in a highlighted note rather than quietly describing behaviour you cannot find. -There are 19 such notes across the site. If you want the whole picture in one +There are a dozen or so such notes across the site. If you want the whole picture in one place instead of page by page, see [Moving from MapRoulette 3 to MapRoulette 4](/documentation/maproulette-3-to-4/). diff --git a/_documentation/projects/01-projects-and-project-managers.md b/_documentation/projects/01-projects-and-project-managers.md index db5181b..e2f3bab 100644 --- a/_documentation/projects/01-projects-and-project-managers.md +++ b/_documentation/projects/01-projects-and-project-managers.md @@ -40,13 +40,6 @@ the ability to add and remove other managers and change their privileges. A project always requires at least one Admin, so an admin can only be demoted or removed once another user holds the Admin role. -> Adding and removing project managers is not available in the current -> MapRoulette frontend — there is no Project Managers panel on the project -> page, and teams cannot be granted project roles. The roles themselves still -> govern what you can do, and can be granted through the [HTTP -> API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none). -{: .legacy} - ## Tips - **Define scope early.** Use a stable naming pattern (region, theme, version) diff --git a/_documentation/server-admin/02-map-layer-management.md b/_documentation/server-admin/02-map-layer-management.md index 0b4f86f..051e979 100644 --- a/_documentation/server-admin/02-map-layer-management.md +++ b/_documentation/server-admin/02-map-layer-management.md @@ -15,7 +15,9 @@ with the frontend: | Esri World Imagery (Clarity) | Esri World Imagery (Clarity) | Mappers switch between them with the **Map style** control on any map; the -choice is remembered in their browser. See [Setting your Map Base +choice is remembered in their browser. They can also add their own XYZ or WMS +layer from that control, which is stored in their browser rather than on the +server and so is visible only to them. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). ## Changing the available layers diff --git a/_documentation/tasks/02-using-maproulette-tags.md b/_documentation/tasks/02-using-maproulette-tags.md index 4a32ebf..569fb26 100644 --- a/_documentation/tasks/02-using-maproulette-tags.md +++ b/_documentation/tasks/02-using-maproulette-tags.md @@ -51,9 +51,3 @@ A challenge can also be set to accept *only* its preferred tags. When it is, anything you type that isn't in the challenge's list is refused, so the tags that come back in the export stay consistent. -> Preferred MR Tags and the tag restriction are properties of the challenge, -> but they cannot be set from the current challenge form — it has no MR Tag -> fields. Challenges that already carry them are honoured, and they can be set -> through the [HTTP -> API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none). -{: .legacy} diff --git a/_documentation/tasks/03-setting-external-task-identifiers.md b/_documentation/tasks/03-setting-external-task-identifiers.md index 024979d..2e0cd29 100644 --- a/_documentation/tasks/03-setting-external-task-identifiers.md +++ b/_documentation/tasks/03-setting-external-task-identifiers.md @@ -6,14 +6,6 @@ When possible, MapRoulette will assign your tasks unique external identifiers ba > Note: id fields in MapRoulette must always be represented as strings in GeoJSON, even if they are purely numerical -> Naming the field explicitly is not possible from the current challenge form -> — the "OSM/External Id Property" setting is absent, so MapRoulette relies on -> the automatic detection described below. The setting still exists on the -> challenge itself and can be set through the [HTTP -> API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none) -> if you need it. -{: .legacy} - Historically the field or property to be used for this purpose was chosen during challenge creation, on the "OSM/External Id Property" setting. diff --git a/_documentation/tasks/05-mustache-tag-replacement.md b/_documentation/tasks/05-mustache-tag-replacement.md index db29d13..522ae97 100644 --- a/_documentation/tasks/05-mustache-tag-replacement.md +++ b/_documentation/tasks/05-mustache-tag-replacement.md @@ -26,13 +26,6 @@ mustache tag is left in place as literal text. ## Workspace Properties -> Workspace properties — the `#`-prefixed tags below, such as `{{#mapZoom}}` — -> are not substituted by the current MapRoulette frontend, and neither is the -> Custom URLs widget they were most often used with. They are documented here -> for reference. Only task feature properties are substituted today, and only -> in challenge instructions. -{: .legacy} - Some workspaces made additional properties available for substitution that were specific to the workspace state rather than the task itself. These "workspace" properties always begin with a hash (`#`), e.g. `#mapZoom`, to avoid confusion diff --git a/_documentation/tasks/06-task-attachments.md b/_documentation/tasks/06-task-attachments.md index c91f32a..e4abda7 100644 --- a/_documentation/tasks/06-task-attachments.md +++ b/_documentation/tasks/06-task-attachments.md @@ -2,13 +2,6 @@ title: Task Attachments --- -> Task attachments are carried through by the API but are not consumed by the -> current MapRoulette frontend: reference layers are not passed to JOSM, and no -> attachment kind is surfaced during task completion. Attachments intended for -> external processes (the `blob` kind) are unaffected, since nothing in the -> frontend needs to read those. This page documents the format. -{: .legacy} - MapRoulette offers the ability to attach data to tasks. That data may simply travel along with the task, perhaps to be consumed by external processes, or -- depending on the kind of data -- it may be utilized during task completion to present mappers with additional information or context. The initial implementation allows various kinds of data to be attached, but only reference layers (to be shown in JOSM) are specially supported during task completion. Special handling of other kinds of data, such as automatic display of attached street-level imagery, will be coming in future releases. diff --git a/_documentation/teams/01-teams.md b/_documentation/teams/01-teams.md index 7fc91bf..db68018 100644 --- a/_documentation/teams/01-teams.md +++ b/_documentation/teams/01-teams.md @@ -59,7 +59,3 @@ reviews it, and once **Approved** it becomes selectable in the that team. Images awaiting review show as **Awaiting review**, and can be withdrawn by whoever requested them or by a team admin. -> Adding a team to a project — so that project permissions flow to every team -> member — is not available in the current frontend. See [Projects and Project -> Managers](/documentation/projects-and-project-managers/). -{: .legacy} diff --git a/_documentation/not-implemented/02-following.md b/_documentation/teams/02-following.md similarity index 83% rename from _documentation/not-implemented/02-following.md rename to _documentation/teams/02-following.md index 2de648a..79a5144 100644 --- a/_documentation/not-implemented/02-following.md +++ b/_documentation/teams/02-following.md @@ -2,11 +2,6 @@ title: Following other Users --- -> Following is not available in the current MapRoulette frontend. There is no -> Follow widget, no combined activity timeline, and no **Allow Following** -> setting. This page describes how following worked, for reference. -{: .legacy} - MapRoulette supported basic Following capability whereby users could follow other users to easily keep abreast of their MapRoulette activity. While all MapRoulette activity is public, the activity of users you followed was pulled @@ -37,3 +32,9 @@ No in their User Settings. recent contributions. - [Teams](/documentation/teams/) are the supported way to group mappers who are working together. + +> The combined activity timeline of everyone you follow is not part of the +> current frontend. Follow relationships, the follower and following lists, and +> the **Allow other mappers to follow me** setting all work; what is missing is +> the single feed of their recent activity. +{: .legacy} diff --git a/_documentation/user-settings/02-setting-your-map-base-layer.md b/_documentation/user-settings/02-setting-your-map-base-layer.md index 7f27cd5..3c81b01 100644 --- a/_documentation/user-settings/02-setting-your-map-base-layer.md +++ b/_documentation/user-settings/02-setting-your-map-base-layer.md @@ -41,9 +41,13 @@ of its own](/documentation/setting-basemap-for-challenge/), which takes precedence. If neither is set, the map opens on whichever layer you last picked with the **Map style** control. -> Choosing arbitrary layers from the OSM [editor layer -> index](https://github.com/osmlab/editor-layer-index), adding your own custom -> XYZ or WMS layer from within the map, and the Mapillary / KartaView / OSM -> data overlays are all absent from the current frontend. The base layers -> listed above are the full set. -{: .legacy} +## Adding your own layer + +The **Map style** control also offers **Add your own layer**, for imagery +MapRoulette doesn't bundle. Choose **XYZ tiles** and give a tile template like +`https://example.org/tile/{z}/{x}/{y}.png`, or choose **WMS** and give the +endpoint URL plus the layer names to request. + +Layers you add are stored in your browser, so they follow you between +challenges but not between devices, and nobody else sees them. Remove one with +the bin icon beside it in the list. diff --git a/_documentation/user-settings/03-notifications-and-email.md b/_documentation/user-settings/03-notifications-and-email.md index 928e65a..91e7ce1 100644 --- a/_documentation/user-settings/03-notifications-and-email.md +++ b/_documentation/user-settings/03-notifications-and-email.md @@ -52,8 +52,3 @@ address you enter is valid and yours. Some management actions require an email address to be set, so MapRoulette will prompt you for one if you own challenges without having set it. -> Per-notification-type email preferences — ignore / receive without email / -> email immediately / daily digest — are not yet part of the rebuilt settings -> screen. Until they return, the Notifications tab holds only the address -> itself. -{: .legacy} From 9a08a1f9b98e5c497be6f33031aa120f938e3a3b Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 18:00:46 -0500 Subject: [PATCH 07/15] Trim the migration guide to actual differences MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Nine rows described features that behave exactly as they did in MapRoulette 3 — bracketed mentions, per-notification email preferences, challenge basemaps, project managers and team roles, preferred MapRoulette tags, the OSM/External Id property, workspace mustache tags, task reference layers and challenge exports. A row saying "available again" tells a migrating user nothing, and a long table of non-differences hides the real ones, so they are gone. Three rows said "available again" where that was not quite true, and now name the remaining difference instead: custom map layers are stored per browser rather than on the account, the property filter has no comma-separated "Add Value" shortcut, and instruction templating still does not render the OSM element and viewport short codes. The introduction now says the page lists only what differs, so a reader who cannot find their feature knows that means nothing has changed rather than that the page is incomplete. --- .../migrating/01-maproulette-3-to-4.md | 24 +++++++------------ 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index 584b1ec..d74427e 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -7,8 +7,11 @@ tasks are unchanged — the server behind both versions is the same one, so nothing you have created needs migrating. What changed is the interface, and a number of features that have not been rebuilt yet. -This page is a checklist of what to expect. If a feature you rely on is listed -as gone, the [HTTP +This page lists only what actually differs. Anything you did in MapRoulette 3 +that isn't mentioned here works the same way, so if a feature you rely on is +absent from these tables, there is nothing to learn about it. + +Where a feature is listed as gone, the [HTTP API](https://maproulette.org/docs/swagger-ui/index.html?url=/assets/swagger.json&docExpansion=none) usually still exposes it, because the data model did not change. @@ -17,33 +20,24 @@ usually still exposes it, because the data model did not change. | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| | Picked any imagery from the OSM editor layer index | The base layers are now a fixed set bundled with the frontend. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | -| Added your own XYZ or WMS layer from inside the map | Available again, from the **Map style** control. Layers are stored in your browser rather than on the server. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | +| Added your own XYZ or WMS layer from inside the map | Works, but the layers you add are stored in your browser rather than on your account, so they no longer follow you between devices. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | | Turned on Mapillary, KartaView or OSM data overlays | Not available. | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | -| Followed other mappers | Available again, from a mapper's profile. The combined activity timeline of everyone you follow is still missing. See [Following](/documentation/following/). | +| Followed other mappers | Works, from a mapper's profile, but there is no combined activity timeline of everyone you follow. See [Following](/documentation/following/). | | Worked Tag Fix / cooperative challenges | The challenge page still badges them, but the proposed tag change is not presented for approval and tasks complete like ordinary ones. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | -| Wrote `[@example user]` to mention a name with spaces | Works again. See [Comment Short Codes](/documentation/comment-short-codes/). | -| Set per-notification email preferences | Available again, on their own **Subscriptions** tab in account settings. See [Notifications and Email](/documentation/notifications-and-email/). | ## For challenge managers | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| -| Set a challenge basemap | Available again, over the bundled base layers or a custom XYZ template. See [Setting The Basemap Layer For Your Challenge](/documentation/setting-basemap-for-challenge/). | -| Filtered the task table by feature property | Available again, with an AND/OR rule builder. See [filtering tasks by properties](/documentation/filtering-the-task-list-by-properties/). | -| Embedded form fields in challenge instructions | Available again. See [Templating in Challenge Instructions](/documentation/challenge-instructions-templating/). | +| Filtered the task table by feature property | Works, except for the comma-separated "Add Value" shortcut for matching one property against several values — use an OR group instead. See [filtering tasks by properties](/documentation/filtering-the-task-list-by-properties/). | +| Embedded form fields in challenge instructions | Works. The OSM element and map viewport short codes that could also appear in instructions are still not rendered. See [Templating in Challenge Instructions](/documentation/challenge-instructions-templating/). | | Styled task features by property | Not available. | | Created cooperative (including Tag Fix) challenges | Not available. | | Created virtual challenges, or virtual projects | Not surfaced in the frontend. Both still exist in the API. | -| Added or removed project managers, or gave a team a project role | Available again, from the project's page. See [Projects and Project Managers](/documentation/projects-and-project-managers/). | -| Set Preferred MR Tags, or restricted tags to that list | Available again, in the challenge form's **Task settings**. See [Using MapRoulette Tags](/documentation/using-maproulette-tags/). | -| Named the OSM/External Id property explicitly | Available again, in the challenge form's **Task settings**. Leave it blank for automatic detection. See [Setting External Task Identifiers](/documentation/setting-external-task-identifiers/). | -| Used `#`-prefixed workspace mustache tags, e.g. {% raw %}`{{#mapZoom}}`{% endraw %} | Substituted again in challenge instructions. See [Mustache Tag Replacement](/documentation/mustache-tag-replacement/). | -| Attached reference layers to tasks | Reference layers are handed to JOSM again when you open a task in it. See [Task Attachments](/documentation/task-attachments/). | -| Exported a single challenge, exported GeoJSON, or chose an export timezone | All available again, from the **Export** control on a challenge's task table. See [Exporting Challenge Data](/documentation/exporting-challenge-data/). | ## For server administrators From 3f6bae7b396faf691737699ba1ff4ae3b086b0dc Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 18:11:10 -0500 Subject: [PATCH 08/15] Document the four restored behaviours Custom map layers save to the account rather than the browser, following a mapper between devices; the base layer and map layer management pages say so, noting the signed-out case still falls back to the browser. The property filter page documents the comma-separated values shortcut, the Following page mentions the combined activity feed, and the comment short codes page drops its notice now that OSM element and viewport codes render in comments as well as instructions. The migration guide loses those four rows. Nothing about them differs from MapRoulette 3 any more, so there is nothing for a migrating user to learn. --- _documentation/advanced/03-comment-short-codes.md | 7 ------- .../challenges/11-filtering-the-task-list-by-properties.md | 4 ++++ _documentation/migrating/01-maproulette-3-to-4.md | 4 ---- _documentation/server-admin/02-map-layer-management.md | 3 +-- _documentation/teams/02-following.md | 5 ----- .../user-settings/02-setting-your-map-base-layer.md | 6 +++--- 6 files changed, 8 insertions(+), 21 deletions(-) diff --git a/_documentation/advanced/03-comment-short-codes.md b/_documentation/advanced/03-comment-short-codes.md index c8cd43a..45020f6 100644 --- a/_documentation/advanced/03-comment-short-codes.md +++ b/_documentation/advanced/03-comment-short-codes.md @@ -24,13 +24,6 @@ be ignored completely. ## Reference OSM elements and map viewports -> The bracketed short-codes below — `[n123456789]` for an OSM node, way or -> relation, and `[v17/37.11777/126.99754]` for a map viewport — are not -> rendered by the current MapRoulette frontend. They appear as literal text in -> comments. This section is kept for reference and for reading older comments -> that use them. -{: .legacy} - Short-codes were always surrounded by brackets (`[` and `]`). ### Reference an OpenStreetMap element (node, way, or relation) diff --git a/_documentation/challenges/11-filtering-the-task-list-by-properties.md b/_documentation/challenges/11-filtering-the-task-list-by-properties.md index 6e1684d..edeee1e 100644 --- a/_documentation/challenges/11-filtering-the-task-list-by-properties.md +++ b/_documentation/challenges/11-filtering-the-task-list-by-properties.md @@ -23,6 +23,10 @@ The operators on offer depend on the value type: | Text | `equals`, `does not equal`, `contains`, `exists`, `is missing` | | Number | `equals`, `does not equal`, `greater than`, `less than` | +Tick **Comma-separated values** on a rule to match one property against +several values at once — `highway` `equals` `motorway, trunk` matches either — +rather than building an OR group by hand. + > Note: it's important to choose the correct value type for the properties > you're filtering against. If you have numeric data represented as strings in > your GeoJSON (e.g. `population: "500"`), choosing Number will still compare diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index d74427e..253e708 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -20,11 +20,9 @@ usually still exposes it, because the data model did not change. | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| | Picked any imagery from the OSM editor layer index | The base layers are now a fixed set bundled with the frontend. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | -| Added your own XYZ or WMS layer from inside the map | Works, but the layers you add are stored in your browser rather than on your account, so they no longer follow you between devices. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | | Turned on Mapillary, KartaView or OSM data overlays | Not available. | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | -| Followed other mappers | Works, from a mapper's profile, but there is no combined activity timeline of everyone you follow. See [Following](/documentation/following/). | | Worked Tag Fix / cooperative challenges | The challenge page still badges them, but the proposed tag change is not presented for approval and tasks complete like ordinary ones. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | @@ -33,8 +31,6 @@ usually still exposes it, because the data model did not change. | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| -| Filtered the task table by feature property | Works, except for the comma-separated "Add Value" shortcut for matching one property against several values — use an OR group instead. See [filtering tasks by properties](/documentation/filtering-the-task-list-by-properties/). | -| Embedded form fields in challenge instructions | Works. The OSM element and map viewport short codes that could also appear in instructions are still not rendered. See [Templating in Challenge Instructions](/documentation/challenge-instructions-templating/). | | Styled task features by property | Not available. | | Created cooperative (including Tag Fix) challenges | Not available. | | Created virtual challenges, or virtual projects | Not surfaced in the frontend. Both still exist in the API. | diff --git a/_documentation/server-admin/02-map-layer-management.md b/_documentation/server-admin/02-map-layer-management.md index 051e979..c4ec54c 100644 --- a/_documentation/server-admin/02-map-layer-management.md +++ b/_documentation/server-admin/02-map-layer-management.md @@ -16,8 +16,7 @@ with the frontend: Mappers switch between them with the **Map style** control on any map; the choice is remembered in their browser. They can also add their own XYZ or WMS -layer from that control, which is stored in their browser rather than on the -server and so is visible only to them. See [Setting your Map Base +layer from that control, saved to their own account and visible only to them. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). ## Changing the available layers diff --git a/_documentation/teams/02-following.md b/_documentation/teams/02-following.md index 79a5144..50c05f3 100644 --- a/_documentation/teams/02-following.md +++ b/_documentation/teams/02-following.md @@ -33,8 +33,3 @@ No in their User Settings. - [Teams](/documentation/teams/) are the supported way to group mappers who are working together. -> The combined activity timeline of everyone you follow is not part of the -> current frontend. Follow relationships, the follower and following lists, and -> the **Allow other mappers to follow me** setting all work; what is missing is -> the single feed of their recent activity. -{: .legacy} diff --git a/_documentation/user-settings/02-setting-your-map-base-layer.md b/_documentation/user-settings/02-setting-your-map-base-layer.md index 3c81b01..ed6ce76 100644 --- a/_documentation/user-settings/02-setting-your-map-base-layer.md +++ b/_documentation/user-settings/02-setting-your-map-base-layer.md @@ -48,6 +48,6 @@ MapRoulette doesn't bundle. Choose **XYZ tiles** and give a tile template like `https://example.org/tile/{z}/{x}/{y}.png`, or choose **WMS** and give the endpoint URL plus the layer names to request. -Layers you add are stored in your browser, so they follow you between -challenges but not between devices, and nobody else sees them. Remove one with -the bin icon beside it in the list. +Layers you add are saved to your account, so they follow you between browsers +and devices. Nobody else sees them. Remove one with the bin icon beside it in +the list. If you are signed out they are remembered by your browser alone. From b7a302ce0a07cf9537728896adc507b78e6507b5 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 18:21:14 -0500 Subject: [PATCH 09/15] Document tag fixes and retire Not Implemented Yet MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tag Fix Challenges moves into Mapping Tasks and describes what the editor now does: the proposed tags are applied in iD as unsaved edits for the mapper to review, correct or undo and then save as their own. It keeps one notice, for the part that is still true — cooperative challenges, and so tag fix challenges, cannot be created from the interface. That empties the Not Implemented Yet section, so it is removed along with the appendix_sections config it was the only member of. The layout already guarded on that key, so nothing else changes. The migration guide's tag fix row and both pages' references to the retired section are updated to match. --- _config.yaml | 5 ---- _data/sections.json | 3 +-- .../04-tag-fix-challenges.md} | 27 ++++++++++++------- .../migrating/01-maproulette-3-to-4.md | 7 +++-- .../migrating/02-documentation-changes.md | 7 +++-- 5 files changed, 25 insertions(+), 24 deletions(-) rename _documentation/{not-implemented/01-tag-fix-challenges.md => mapping/04-tag-fix-challenges.md} (70%) diff --git a/_config.yaml b/_config.yaml index 1485e0a..c38079d 100644 --- a/_config.yaml +++ b/_config.yaml @@ -26,11 +26,6 @@ sections: - advanced - server-admin -# Sections pinned below the Screencasts and For Developers lists, for reference -# material rather than instructions. -appendix_sections: - - not-implemented - # Pages offered in the search box before anything has been typed. Listed by # slug; the title and section label are looked up from the page itself, so they # stay correct if a page is retitled or moved. diff --git a/_data/sections.json b/_data/sections.json index 0f69cb6..48c1e74 100644 --- a/_data/sections.json +++ b/_data/sections.json @@ -8,6 +8,5 @@ "tasks": "Tasks", "teams": "Teams", "advanced": "Advanced", - "server-admin": "Server Admin", - "not-implemented": "Not Implemented Yet" + "server-admin": "Server Admin" } diff --git a/_documentation/not-implemented/01-tag-fix-challenges.md b/_documentation/mapping/04-tag-fix-challenges.md similarity index 70% rename from _documentation/not-implemented/01-tag-fix-challenges.md rename to _documentation/mapping/04-tag-fix-challenges.md index c45b0af..f94319e 100644 --- a/_documentation/not-implemented/01-tag-fix-challenges.md +++ b/_documentation/mapping/04-tag-fix-challenges.md @@ -2,15 +2,6 @@ title: Tag Fix Challenges --- -> The Tag Fix workflow is not available in the current MapRoulette frontend. -> Tag Fix challenges are still recognised — the challenge page badges them -> **Tag Fix** — but the proposed tag change is not presented for approval, and -> tasks are completed like ordinary ones. There is also no longer a supported -> way to create one: Tag Fix challenges were a kind of Cooperative Challenge, -> and cooperative challenges have been removed. This page describes the -> workflow for reference. -{: .legacy} - MapRoulette serves you quick tasks that make it easy for you anyone to find something meaningful to map. The way that worked until now required loading the data related to the Task into JOSM or iD, fixing it there, and returning to MapRoulette to say you fixed it, and then move on. Now, we’re introducing a new type of Task: the **Tag Fix**. In a Tag Fix Task, MapRoulette will present the suggested fix to you, and all you need to do is click Yes to agree with the fix, and the change will be applied to OSM directly. @@ -36,3 +27,21 @@ I invite you to try it out and leave feedback here or email at [maproulette@mapr For this to work, MapRoulette needs additional permissions from your OSM account, to modify the map on your behalf. You may need to log out and log back in if you have trouble. +## How tag fixes work in MapRoulette + +Opening a Tag Fix task takes you straight to the built-in **iD** editor, whatever +editor you normally use — it is the one MapRoulette can drive on your behalf. +The challenge's proposed tags are applied there for you as unsaved edits. + +Nothing is submitted on your behalf. The changes sit in iD exactly as though +you had typed them, so you can look them over on the map, correct a value, +undo one you disagree with, or add something the challenge missed, then save +them as your own edit. + +Elements the challenge proposes creating or deleting are not applied +automatically — only tag changes to existing elements are. + +> There is no longer a supported way to create a Tag Fix challenge from the +> MapRoulette interface. Tag Fix challenges are a kind of Cooperative +> Challenge, and cooperative challenges cannot be created here. +{: .legacy} diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index 253e708..145ece4 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -23,7 +23,7 @@ usually still exposes it, because the data model did not change. | Turned on Mapillary, KartaView or OSM data overlays | Not available. | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | -| Worked Tag Fix / cooperative challenges | The challenge page still badges them, but the proposed tag change is not presented for approval and tasks complete like ordinary ones. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | +| Worked Tag Fix challenges | The proposed tags are applied for you in the built-in iD editor to review and save, rather than approved through a separate panel. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | @@ -63,6 +63,5 @@ The biggest change is how the frontend is configured. Pages that describe something MapRoulette 3 did but MapRoulette 4 does not carry a highlighted note saying so, so you can tell at a glance whether what -you are reading applies today. Features that are documented only for reference -— because nothing in the current frontend uses them — are collected under -**Not Implemented Yet** at the bottom of the sidebar. +you are reading applies today. Every page otherwise describes the current +frontend. diff --git a/_documentation/migrating/02-documentation-changes.md b/_documentation/migrating/02-documentation-changes.md index c996fcf..e43098e 100644 --- a/_documentation/migrating/02-documentation-changes.md +++ b/_documentation/migrating/02-documentation-changes.md @@ -39,8 +39,7 @@ different places. The new one is organised by what you are doing. | — | Migrating from MR3 (new) | The sections now are Getting Started, Migrating from MR3, Mapping Tasks, User -Settings, Projects, Challenges, Tasks, Teams, Advanced and Server Admin, plus a -**Not Implemented Yet** appendix. +Settings, Projects, Challenges, Tasks, Teams, Advanced and Server Admin. ## Pages that went away @@ -74,8 +73,8 @@ Yet** and into the sections they belong to, and their notices are gone: | Templating in Challenge Instructions | Challenges | | System-Notice Management | Server Admin | -Following has since joined them in the Teams section, leaving one page under -**Not Implemented Yet**: Tag Fix Challenges. +Both have since left it — Following for Teams and Tag Fix Challenges for +Mapping Tasks — so the **Not Implemented Yet** section is gone entirely. ## Translations were removed From ade293a465f0338019305c6c6cde1bcb0bb53f07 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 19:50:19 -0500 Subject: [PATCH 10/15] Document the tag fix workflow and the editor controls MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Tag Fix page still described MapRoulette 3's flow — a suggested change presented at the top of the screen with Yes and No buttons — which has not existed for some time. It now describes what actually happens: the editor opens on lock with the suggestion applied as unsaved edits, the task panel shows the suggestion before the editor opens and your own pending edits after, and Reset restores the suggestion. Bundling and the create/delete limitation are covered too. The editing page gains the controls that came with the floating panel: that it can be dragged and remembers where you put it, that the unsaved-changes count opens a list of what is actually pending, and that Focus now hides the surrounding features rather than dimming them — including from clicks, which is the point of it. The task screen page and the migration guide's tag fix row are updated to match. --- _documentation/mapping/01-using-layouts.md | 4 +- _documentation/mapping/02-rapid-editor.md | 30 ++++++-- .../mapping/04-tag-fix-challenges.md | 76 +++++++++++++------ .../migrating/01-maproulette-3-to-4.md | 2 +- 4 files changed, 80 insertions(+), 32 deletions(-) diff --git a/_documentation/mapping/01-using-layouts.md b/_documentation/mapping/01-using-layouts.md index 74a2923..bc82de3 100644 --- a/_documentation/mapping/01-using-layouts.md +++ b/_documentation/mapping/01-using-layouts.md @@ -35,7 +35,9 @@ stack, and the task information becomes a drawer you pull up over the map. The map has its own space-saving controls: the control stack collapses out of the way, task markers can be hidden with H, and marker clustering -can be toggled. The challenge page also has a **Show Map** / **Hide Map** +can be toggled. While the [built-in editor](/documentation/rapid-editor/) is +open, MapRoulette's controls float over it in a panel you can drag wherever you +like. The challenge page also has a **Show Map** / **Hide Map** toggle, for when you'd rather browse without one. > Saved, named, importable and exportable widget layouts — and the **Edit diff --git a/_documentation/mapping/02-rapid-editor.md b/_documentation/mapping/02-rapid-editor.md index f23de32..99d6cd7 100644 --- a/_documentation/mapping/02-rapid-editor.md +++ b/_documentation/mapping/02-rapid-editor.md @@ -12,15 +12,29 @@ of the task map. The task's OSM features are pre-selected for you, and the changeset comment is pre-filled from the challenge, exactly as it would be if you had opened iD in a new tab. -The bar above the editor adds a few MapRoulette-specific controls: +### MapRoulette's controls +A small panel floats over the editor with MapRoulette's own controls. Drag it +by the grip on its left edge to move it anywhere on screen — it starts just +below iD's toolbar, and wherever you put it is remembered for next time. The +chevron beside the grip collapses it down to just the MapRoulette logo. + +- **Unsaved changes** — how many elements you have pending. Click it to see + exactly what they are: every element created, modified or deleted, with each + modified element's tags shown against how they looked before you started - **Re-Center** — reset the view back to the task location - **Select Tasks** — re-select this task's features in iD, handy after you've clicked elsewhere on the map -- **Focus** / **Show All** — dim everything except the task features, or bring - the rest of the map back -- **Close editor** — return to the task map. If you have unsaved edits, the - count is shown next to the button and you'll be asked to confirm +- **Focus** / **Show All** — hide everything except the task's features, or + bring the rest of the map back. Hidden features can't be clicked either, so + it's a good way to work on a crowded map without selecting a neighbour by + accident +- **Close editor** — return to the task map. If you have unsaved edits you'll + be asked to confirm + +The task panel on the left also lists your unsaved edits as you work, so you +can see what you're about to submit without opening the editor's own save +dialog. You still save your work through iD itself, and then set the task status in MapRoulette as usual. @@ -37,6 +51,6 @@ Editor](/documentation/setting-your-default-osm-editor/). > is iD. {: .legacy} -> [Tag Fix challenges](/documentation/tag-fix-challenges/) are not edited -> this way — they were meant to be resolved in MapRoulette itself, without an -> editor. +[Tag Fix challenges](/documentation/tag-fix-challenges/) always use the +built-in iD editor, whatever your default is, because MapRoulette applies the +challenge's suggested tags there for you. diff --git a/_documentation/mapping/04-tag-fix-challenges.md b/_documentation/mapping/04-tag-fix-challenges.md index f94319e..bb01454 100644 --- a/_documentation/mapping/04-tag-fix-challenges.md +++ b/_documentation/mapping/04-tag-fix-challenges.md @@ -2,44 +2,76 @@ title: Tag Fix Challenges --- -MapRoulette serves you quick tasks that make it easy for you anyone to find something meaningful to map. The way that worked until now required loading the data related to the Task into JOSM or iD, fixing it there, and returning to MapRoulette to say you fixed it, and then move on. +Most MapRoulette tasks ask you to go and fix something yourself. A **Tag Fix** +task is different: the challenge already knows what it thinks the change should +be, and hands it to you ready-made. Your job is to judge whether it's right. -Now, we’re introducing a new type of Task: the **Tag Fix**. In a Tag Fix Task, MapRoulette will present the suggested fix to you, and all you need to do is click Yes to agree with the fix, and the change will be applied to OSM directly. - -Let’s look at an example. Consider this aerial image of a Wendy’s restaurant: +Consider this aerial image of a Wendy's restaurant: ![](/media/tagfix.png){:width="500"} +You can see from the aerial imagery that this restaurant has a `drive_through`: +cars snake around the structure on a dedicated lane. But the restaurant does not +have `drive_through=yes` in OSM. That is exactly the kind of small, verifiable +change a Tag Fix challenge is built for. + +## Working a Tag Fix task + +When you lock a Tag Fix task, MapRoulette opens the built-in **iD** editor for +you automatically and applies the challenge's suggested tags there as unsaved +edits. It uses iD whatever editor you normally prefer, because iD is the one +MapRoulette can drive on your behalf. + +Nothing is submitted for you. The changes sit in iD exactly as though you had +typed them, so you can: + +- look them over on the map, with the affected element already selected +- correct a value the challenge got slightly wrong +- undo one you disagree with +- add something the challenge missed + +and then save them as your own edit, through iD, and set the task status as +usual. -You can see from the aerial imagery that this restaurant has a `drive_through`: you can see cars snaking around the structure on a dedicated lane. +## Seeing what changed -However, this restaurant does not have `drive_through=yes` in OSM. A simple fix that MapRoulette Tag Fixes are ideally suited for. +The task panel on the left shows the change in two stages. -As an example, I created a [Tag Fix Challenge](https://maproulette.org/browse/challenges/9411) to add the `drive_through=yes` tag to Wendy’s restaurants that have drive-through lanes but are not tagged as such in OSM yet. When you go to the Challenge and get your first Task, you will see a screen much like this one: +**Before the editor opens** it lists what the challenge suggests, compared +against the element's current tags in OpenStreetMap — so a suggestion the +element already satisfies is shown as such rather than as a change. -![](/media/tagfix2.png) +**Once the editor is open** it switches to your unsaved edits: everything +currently pending, whether the challenge suggested it or you did it yourself. +Each modified element's tags are shown against how they looked before you +started. -At the top is the suggested change to OSM tags. By default you only see what will be changed. In this case there is a blue ➕ indicating that a new tag is proposed. You have the option to see all tags as well. +### Reset -The Completion options are different. You can click YES to accept the tag change, which will then be applied to OSM. If you click NO, nothing happens and you will be given a new task. +While a Tag Fix task is open in the editor, the panel offers a **Reset**. It +restores the challenge's suggestion exactly: the element's original tags with +the suggested change applied, discarding anything else you did to that element. -I invite you to try it out and leave feedback here or email at [maproulette@maproulette.org](mailto:maproulette@maproulette.org). Thanks and happy mapping! +The panel tells you which state you're in — whether the elements still match +what the challenge suggests, or how many have drifted from it because you undid +something, mistyped a value, or edited further. -For this to work, MapRoulette needs additional permissions from your OSM account, to modify the map on your behalf. You may need to log out and log back in if you have trouble. +Reset only touches the elements the challenge names. Edits you made to other +elements are yours and are left alone. -## How tag fixes work in MapRoulette +## Working several at once -Opening a Tag Fix task takes you straight to the built-in **iD** editor, whatever -editor you normally use — it is the one MapRoulette can drive on your behalf. -The challenge's proposed tags are applied there for you as unsaved edits. +If you [bundle tasks together](/documentation/solving-multiple-tasks-together/), +every bundled Tag Fix task's suggestion is applied. Adding a task to the bundle +applies its suggestion; removing one takes its suggestion back out again, +leaving any editing you did to that element yourself in place. -Nothing is submitted on your behalf. The changes sit in iD exactly as though -you had typed them, so you can look them over on the map, correct a value, -undo one you disagree with, or add something the challenge missed, then save -them as your own edit. +## Limits -Elements the challenge proposes creating or deleting are not applied -automatically — only tag changes to existing elements are. +Only tag changes to existing elements are applied for you. A challenge can also +describe creating or deleting elements, and those are deliberately left for you +to do by hand — applying them automatically would be a much larger claim than +"these tags look wrong". > There is no longer a supported way to create a Tag Fix challenge from the > MapRoulette interface. Tag Fix challenges are a kind of Cooperative diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index 145ece4..f5e3c92 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -23,7 +23,7 @@ usually still exposes it, because the data model did not change. | Turned on Mapillary, KartaView or OSM data overlays | Not available. | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | -| Worked Tag Fix challenges | The proposed tags are applied for you in the built-in iD editor to review and save, rather than approved through a separate panel. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | +| Worked Tag Fix challenges | The editor opens automatically with the proposed tags applied, for you to review and save as your own edit, rather than approved with a Yes/No panel. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | From 37038aef68253819aa513c36770963b7abb3de63 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 20:00:22 -0500 Subject: [PATCH 11/15] Drop the plugins page Plugins are not ready to be documented yet, so the page added in the last commit is removed. Nothing linked to it. Two mentions I had added elsewhere go with it: the migration guide's server-administrator bullet, which also named Reviewing as a plugin, and "plugin management" in the Super Admin page's list of placeholder screens. --- .../challenges/01-creating-a-challenge.md | 16 ++++++++++++ .../challenges/10-exporting-challenge-data.md | 23 ++++++++++++++-- .../migrating/01-maproulette-3-to-4.md | 3 --- .../01-projects-and-project-managers.md | 14 ++++++++++ _documentation/server-admin/04-super-admin.md | 26 +++++++++++++++++++ .../tasks/02-using-maproulette-tags.md | 5 +++- .../03-setting-external-task-identifiers.md | 9 +++++-- .../03-notifications-and-email.md | 20 ++++++++++++++ 8 files changed, 108 insertions(+), 8 deletions(-) create mode 100644 _documentation/server-admin/04-super-admin.md diff --git a/_documentation/challenges/01-creating-a-challenge.md b/_documentation/challenges/01-creating-a-challenge.md index 314ba7f..0e34858 100644 --- a/_documentation/challenges/01-creating-a-challenge.md +++ b/_documentation/challenges/01-creating-a-challenge.md @@ -68,6 +68,22 @@ are the ones your [teams](/documentation/teams/) have had approved: any team member can request an image from the team's page, and a super admin reviews it before it can be used here. +### Basemap + +Optionally force a base layer for this challenge's maps, overriding whatever +each mapper has chosen for themselves — useful when the tasks can only be +judged against particular imagery. See [Setting The Basemap Layer For Your +Challenge](/documentation/setting-basemap-for-challenge/). + +### Task settings + +- **OSM/External Id Property** — the feature property holding each task's + identifier. Leave it blank to let MapRoulette detect it. See [Setting + External Task Identifiers](/documentation/setting-external-task-identifiers/). +- **Preferred MR Tags**, for task completion and for review, each with an + option to accept only those tags. See [Using MapRoulette + Tags](/documentation/using-maproulette-tags/). + ### Task data Choose one of three sources for the challenge's tasks: diff --git a/_documentation/challenges/10-exporting-challenge-data.md b/_documentation/challenges/10-exporting-challenge-data.md index 63c93eb..eed2dcc 100644 --- a/_documentation/challenges/10-exporting-challenge-data.md +++ b/_documentation/challenges/10-exporting-challenge-data.md @@ -2,8 +2,27 @@ title: Exporting Challenge Data --- -MapRoulette lets managers download the task data for a whole project as a CSV -file, suitable for spreadsheet applications. +MapRoulette lets managers download task data, either for a single challenge or +for a whole project. + +## Exporting one challenge + +Open the challenge's management page and choose **Export** above the task +table. You can pick: + +- **Format** — CSV, one row per task, or GeoJSON, carrying the task geometries + and their properties +- **Timestamp timezone** — the offset that timestamp columns are rendered in. + It starts on your own browser's timezone; leave it on UTC±00:00 for GMT + +The filters currently applied to the task table — status, priority and any +[property filter](/documentation/filtering-the-task-list-by-properties/) — +are applied to the export as well, so what you see in the table is what you +get in the file. + +> Very large challenges export the first 10,000 matching tasks. + +## Exporting a whole project Go to **Manage → Projects** (from the user menu), find the project, and choose **Export CSV** from its actions menu — it's also on the project's own diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index f5e3c92..bbfedcf 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -55,9 +55,6 @@ The biggest change is how the frontend is configured. - `REACT_APP_SYSTEM_NOTICES_URL` is gone. System notices are now served by the backend, which is where the URL of the notices file is configured. See [System-Notice Management](/documentation/system-notice-management/). -- Parts of MapRoulette now ship as plugins, loaded at runtime from a URL. - Reviewing is the main example. `VITE_DEPLOYMENT_PLUGIN_URLS` loads them for - every user of a deployment. ## Reading the rest of these docs diff --git a/_documentation/projects/01-projects-and-project-managers.md b/_documentation/projects/01-projects-and-project-managers.md index e2f3bab..1ff5248 100644 --- a/_documentation/projects/01-projects-and-project-managers.md +++ b/_documentation/projects/01-projects-and-project-managers.md @@ -40,6 +40,20 @@ the ability to add and remove other managers and change their privileges. A project always requires at least one Admin, so an admin can only be demoted or removed once another user holds the Admin role. +### Adding and removing managers + +The **Project managers** panel on the project's management page lists everyone +with a role on the project, and the teams granted one. From there you can: + +- search for a mapper by their OpenStreetMap username, pick the role to give + them, and add them +- change an existing manager's role from the dropdown beside their name +- remove a manager, or a team, with the bin icon + +Granting a [team](/documentation/teams/) a role gives that role to every +member, which is usually easier than adding people one at a time. A grantee who +somehow holds more than one role is shown as the strongest of them. + ## Tips - **Define scope early.** Use a stable naming pattern (region, theme, version) diff --git a/_documentation/server-admin/04-super-admin.md b/_documentation/server-admin/04-super-admin.md new file mode 100644 index 0000000..5d6f480 --- /dev/null +++ b/_documentation/server-admin/04-super-admin.md @@ -0,0 +1,26 @@ +--- +title: Super Admin +--- + +Users flagged as super users on the server get a **Super Admin** entry in the +user menu, with tools that apply across the whole installation rather than to a +single project or challenge. + +Super user status is granted on the server, not from within MapRoulette. + +## User management + +Lists every account on the installation, searchable by name or email, showing +each user's role and when they joined. + +## Team images + +Manages the images teams can use for their avatars. Images uploaded by teams +are reviewed here before they can be used, so an installation isn't hosting +arbitrary uploads. See [Teams](/documentation/teams/). + +> The remaining Super Admin screens — the overview dashboard, challenge and +> project administration, analytics and platform settings — +> are placeholders in the current frontend, badged **Coming Soon**. They are +> visible but do nothing yet. +{: .legacy} diff --git a/_documentation/tasks/02-using-maproulette-tags.md b/_documentation/tasks/02-using-maproulette-tags.md index 569fb26..4673554 100644 --- a/_documentation/tasks/02-using-maproulette-tags.md +++ b/_documentation/tasks/02-using-maproulette-tags.md @@ -40,7 +40,10 @@ complete), and while its review is still in play. ### Preferred MR Tags -A challenge can nominate the tags it would rather mappers used. Those appear +A challenge can nominate the tags it would rather mappers used. Set them in +**Task settings** when creating or editing the challenge: **Preferred MR Tags +(task completion)** and **Preferred MR Tags (review)**, each a comma-separated +list, with a checkbox beside it to accept only those tags. Those appear above the tag box as **Popular in this challenge:**, as chips you can click to add rather than typing. There are two sets: one recommended during task completion, and one recommended during review. diff --git a/_documentation/tasks/03-setting-external-task-identifiers.md b/_documentation/tasks/03-setting-external-task-identifiers.md index 2e0cd29..dbf2b8d 100644 --- a/_documentation/tasks/03-setting-external-task-identifiers.md +++ b/_documentation/tasks/03-setting-external-task-identifiers.md @@ -14,7 +14,12 @@ Be sure that your external ids are **unique for each feature in your data**. It > Note: MapRoulette always inspects external identifiers to determine if they match the format of OSM ids before treating them as such, so a UUID will not get treated as an OSM id during task editing or other processes -If you do not specify which field or property to use during challenge creation, MapRoulette will automatically scan your task features looking for certain special fields and properties to use as a unique external identifier. +You can name the property explicitly in **Task settings → OSM/External Id +Property** when creating or editing a challenge. + +If you leave it blank, MapRoulette will automatically scan your task features +looking for certain special fields and properties to use as a unique external +identifier. MapRoulette looks for external identifiers first on the feature fields and then within the feature's properties. It stops as soon as it finds a matching field or property. It looks for the following, in this order: @@ -39,6 +44,6 @@ While most MapRoulette tasks use OSM ids when specifying external ids, it's poss * Make sure your ids don't look like OSM ids. MapRoulette does not provide a way to distinguish OSM ids from non-OSM ids except by their formatting. For example, MapRoulette itself uses UUIDs if it needs to generate ids. If your ids look like OSM ids, then they may be treated as OSM ids in some situations. * Make sure your ids are represented as strings in your GeoJSON. External task ids must be strings in MapRoulette. * Do not reuse one of the traditional osm id fields mentioned above (such as `id`). Instead, give your external id field a different name, like `externalId`. -* Because the id field can't be named from the challenge form, keep your ids out of the automatically-detected fields' way: don't reuse `id`, `@id`, `osmid`, `osm_id` or `name` unless you want that field treated as the external id +* If you leave the property unnamed and rely on automatic detection, keep your ids out of the detected fields' way: don't reuse `id`, `@id`, `osmid`, `osm_id` or `name` unless you want that field treated as the external id * If you want your external id to show up in the task properties when someone clicks on a task feature, then put your id field inside the feature properties in your GeoJSON. If you do *not* want your id to be displayed in the task properties, then put it on the feature itself in your GeoJSON diff --git a/_documentation/user-settings/03-notifications-and-email.md b/_documentation/user-settings/03-notifications-and-email.md index 91e7ce1..cdd230a 100644 --- a/_documentation/user-settings/03-notifications-and-email.md +++ b/_documentation/user-settings/03-notifications-and-email.md @@ -52,3 +52,23 @@ address you enter is valid and yours. Some management actions require an email address to be set, so MapRoulette will prompt you for one if you own challenges without having set it. +## Choosing what you're told about + +The **Subscriptions** tab of your account settings controls each kind of +notification separately. For most kinds you choose one of: + +- **Ignore** — don't tell me at all +- **Notify in app** — a notification in MapRoulette, but no email +- **Notify and email immediately** — an email as soon as it happens +- **Notify and include in daily digest** — an email, batched into one a day + +The kinds you can set are system messages, mentions, review approved, review +rejected, review requested again, meta review, challenge completed, teams and +following. + +Two further settings are periodic summaries rather than one-off events — tasks +awaiting your review, and tasks awaiting your revision. Those take a frequency +instead: off, a daily email, or a weekly one. + +Each of these has its own **Submit** button, separate from the rest of your +account settings. From fdf6933899304f8ed894c4174fd2c86ea9d9ab58 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 20:10:33 -0500 Subject: [PATCH 12/15] Restore information lost from the pre-MR4 documentation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Comparing every surviving page against the version on main turned up three things worth having back. The comment short-codes page was still written in the past tense — "were displayed as links", "could be fully spelled out" — left from when it documented something the frontend did not do. It does now, so the page describes it in the present, notes that short codes work in challenge instructions as well as comments, and says that ordinary Markdown links are left alone. The bracketed mention form for usernames with spaces is written up for the first time. The old teams page made a point that survived nowhere: a member's role on a team has no bearing on the permissions that team confers on a project. Every member gets the same project permissions whatever their team role, which is not obvious and is easy to get wrong. Following gains the blocking section, matching the feature added alongside this, including that blocking only removes someone from your followers' activity feed rather than hiding your editing from them. The rest of what shrank — the widget workspace, editor-layer-index configuration, the old property-filter flow — describes MapRoulette 3 behaviour that is genuinely gone and already noted as such. --- .../advanced/03-comment-short-codes.md | 32 +++++++++++-------- _documentation/teams/01-teams.md | 6 ++++ _documentation/teams/02-following.md | 12 +++++++ 3 files changed, 36 insertions(+), 14 deletions(-) diff --git a/_documentation/advanced/03-comment-short-codes.md b/_documentation/advanced/03-comment-short-codes.md index 45020f6..25001f2 100644 --- a/_documentation/advanced/03-comment-short-codes.md +++ b/_documentation/advanced/03-comment-short-codes.md @@ -15,6 +15,9 @@ Mention user "abc": `Hello @abc` Mention user "example_user": `Hello @example_user` +A username containing spaces or punctuation can't be matched that way, so wrap +it in brackets instead: `Hello [@example user]` + **Behavior:** By default, the mentioned user will receive an in-app notification informing @@ -24,39 +27,40 @@ be ignored completely. ## Reference OSM elements and map viewports -Short-codes were always surrounded by brackets (`[` and `]`). +Short-codes are surrounded by brackets (`[` and `]`). They work in comments and +in challenge instructions alike. ### Reference an OpenStreetMap element (node, way, or relation) To reference a node, way, or relation, use `n`, `w`, or `r` followed by an optional space or slash, followed by the OSM id. `node`, `way`, or `relation` -could also be fully spelled out. +can also be fully spelled out. Reference node 123456789: `[n123456789]` (or, equivalently, `[n 123456789]` or `[n/123456789]`) Reference way 24681012: `[w24681012]` -Multiple elements could be combined in a single short-code by separating them +Multiple elements can be combined in a single short-code by separating them with commas: `[n123456789, w24681012]` -These were displayed as links to an Overpass Turbo page rendering the -referenced element(s) — or, for readers with JOSM configured as their editor, -loaded the elements straight into JOSM. +Each is rendered as a link to the element on OpenStreetMap. ### Reference a map viewport To reference a specific location, use `v` followed by an optional space or slash, followed by slash-separated zoom, latitude, and longitude: -`[v17/37.11777/126.99754]`. A complete OSM map URL could be used instead, e.g. +`[v17/37.11777/126.99754]`. A complete OSM map URL can be used instead, e.g. `[https://www.openstreetmap.org/#map=17/37.11777/126.99754]`. -These were displayed as links to OpenStreetMap at the referenced location and -zoom — or zoomed JOSM to that viewport for readers using JOSM. +These are rendered as links to OpenStreetMap at the referenced location and +zoom. -## In the meantime +> Ordinary Markdown links are left alone: `[the wiki](https://wiki.osm.org)` is +> still a link, not a short-code. So is bracketed prose that doesn't match one +> of the forms above. -A plain Markdown link to -`https://www.openstreetmap.org/node/123456789` or to an OSM map URL works -everywhere and reads clearly. The **OSM** tab in the task panel also links out -to OpenStreetMap, OSMCha and Overpass Turbo for the task at hand. +> Earlier versions of MapRoulette could load a referenced element straight into +> JOSM, or zoom a running JOSM to a referenced viewport, for readers who had it +> configured as their editor. References now always open OpenStreetMap. +{: .legacy} diff --git a/_documentation/teams/01-teams.md b/_documentation/teams/01-teams.md index db68018..559fb9d 100644 --- a/_documentation/teams/01-teams.md +++ b/_documentation/teams/01-teams.md @@ -38,6 +38,12 @@ The team page lists **Admins** and **Members** separately, with **Promote** and Teams must have at least one Admin. If you wish to leave a team you created, you will first need to promote another team member to Admin. +> A member's role on the team affects only what they can do to the team itself. +> It has no bearing on the permissions a team confers when it is +> [given a role on a project](/documentation/projects-and-project-managers/): +> every member gets the same project permissions through the team, whatever +> their role on it. + ### Inviting members **Invite** opens a dialog where you search for a mapper by OSM username and diff --git a/_documentation/teams/02-following.md b/_documentation/teams/02-following.md index 50c05f3..3a20ba4 100644 --- a/_documentation/teams/02-following.md +++ b/_documentation/teams/02-following.md @@ -33,3 +33,15 @@ No in their User Settings. - [Teams](/documentation/teams/) are the supported way to group mappers who are working together. +## Blocking a follower + +Your own profile lists your followers, each with a **Block** control. Blocking +stops someone receiving your activity. They are not told: from their side they +still appear to be following you, they simply stop seeing what you do. + +A blocked follower stays in the list, greyed out and marked as blocked, so you +can **Unblock** them again. + +> MapRoulette activity is public regardless. Blocking removes someone from your +> followers' activity feed; it does not hide your editing from them or from +> anyone else. From bb7e6e6fb9b3c53114e39e3a855d72193e375e76 Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Wed, 2 Sep 2026 20:32:37 -0500 Subject: [PATCH 13/15] fix list scroll position issue --- _layouts/page.html | 57 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/_layouts/page.html b/_layouts/page.html index 15aed68..e8700d9 100644 --- a/_layouts/page.html +++ b/_layouts/page.html @@ -87,4 +87,61 @@

    {{ page.title }}

    wide.addEventListener("change", sync); sync(); })(); + + // Every link here is a full page load, so the sidebar's own scroll box would + // otherwise snap back to the top on each navigation. Carry the offset across + // pages, then make sure the current page's link ended up visible. + (function () { + var sidebar = document.querySelector("body > nav"); + if (!sidebar) return; + + var KEY = "mr-nav-scroll"; + + function saved() { + try { + return parseInt(sessionStorage.getItem(KEY), 10); + } catch (e) { + return NaN; + } + } + + function save() { + // Below the sidebar breakpoint the nav is a plain static block, so don't + // let its permanent 0 overwrite the wide-screen offset. + if (sidebar.scrollHeight <= sidebar.clientHeight) return; + + try { + sessionStorage.setItem(KEY, String(sidebar.scrollTop)); + } catch (e) { + /* private mode, storage full: scroll restoring is not worth failing over */ + } + } + + function restore() { + var top = saved(); + if (top > 0) sidebar.scrollTop = top; + + // A deep link or an outdated offset can leave the current page's entry + // off-screen; nudge it back without scrolling the window itself. + var current = sidebar.querySelector('a[aria-current="page"]'); + if (!current) return; + + var box = sidebar.getBoundingClientRect(); + var link = current.getBoundingClientRect(); + var margin = 24; + + if (link.top < box.top + margin) { + sidebar.scrollTop -= box.top + margin - link.top; + } else if (link.bottom > box.bottom - margin) { + sidebar.scrollTop += link.bottom - (box.bottom - margin); + } + } + + restore(); + // Web fonts and images can resize the list after first paint. + window.addEventListener("load", restore); + + sidebar.addEventListener("scroll", save, { passive: true }); + window.addEventListener("pagehide", save); + })(); From d9a7ceec0a5e73a95f115f4044e07449d49190ae Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Thu, 3 Sep 2026 20:44:17 -0500 Subject: [PATCH 14/15] Follow the frontend's task screen, tags and reporting changes - Drop the review MR tags, which the challenge form no longer offers, and describe the single task-completion list that remains - Move Task data up under Basic information, matching the form's order - Replace the Properties and OSM tabs with the Data tab and its Properties, GeoJSON and OSM feature sections, and call the first tab Instructions, which is what it has always been labelled - Rewrite challenge reporting: reports now go to the MapRoulette administrators and are triaged under Super Admin, not filed as public GitHub issues, so the VITE_GITHUB_ISSUES_API_* settings are gone --- SCREENSHOTS-TODO.md | 2 +- .../challenges/01-creating-a-challenge.md | 46 ++++++------ .../challenges/08-reporting-a-challenge.md | 6 +- .../challenges/09-challenge-flagging.md | 75 +++++++++++++------ _documentation/mapping/01-using-layouts.md | 17 +++-- .../03-solving-multiple-tasks-together.md | 2 +- .../migrating/01-maproulette-3-to-4.md | 6 ++ .../server-admin/01-runtime-configuration.md | 15 +--- _documentation/server-admin/04-super-admin.md | 19 +++++ .../tasks/02-using-maproulette-tags.md | 14 ++-- 10 files changed, 122 insertions(+), 80 deletions(-) diff --git a/SCREENSHOTS-TODO.md b/SCREENSHOTS-TODO.md index 5d2d08f..7c3717d 100644 --- a/SCREENSHOTS-TODO.md +++ b/SCREENSHOTS-TODO.md @@ -23,7 +23,7 @@ the feature used to work — and should only change if the feature returns. | `challenges/10-exporting-challenge-data` | `export_challenge_data` | **Export CSV** on a project's actions menu under Manage → Projects. | | `tasks/07-bulk-editing-challenges` | `bulk-edit-1`…`bulk-edit-4` | Task rows selected in a challenge's task table with the bulk actions toolbar showing, and one of its confirmation dialogs. | | `challenges/07-challenge-comments` | `challenge-comments-2` | The **Comments** button in the challenge header and the Challenge Comments dialog, with **Show task comments** checked. | -| `challenges/09-challenge-flagging` | `challenge-flagging-1`…`challenge-flagging-5` | The **Challenge actions** menu with **Report Challenge**, the report dialog, and the **View reported issue on GitHub** state afterwards. | +| `challenges/09-challenge-flagging` | `challenge-flagging-1`…`challenge-flagging-5` | The **Challenge actions** menu with **Report Challenge**, the report dialog, the **Challenge Reported** state afterwards, and the Super Admin → Challenge Reports queue. | | `mapping/02-rapid-editor` | `rapid-editor-1` | The built-in iD editor open in the task screen, with its Re-Center / Select Tasks / Focus / Close editor bar. | | `getting-started/01-your-dashboard` | `dashboard-1`…`dashboard-7` | The three-column dashboard: Saved Challenges, profile and level, Contributions + Locked Tasks + Teams. Plus the Mapper Level System dialog. | | `projects/01-projects-and-project-managers` | `projects-project-managers-1`, `-2` | Manage → Projects, and a project's page with its challenge list and Project Playbook. | diff --git a/_documentation/challenges/01-creating-a-challenge.md b/_documentation/challenges/01-creating-a-challenge.md index 0e34858..d6241b9 100644 --- a/_documentation/challenges/01-creating-a-challenge.md +++ b/_documentation/challenges/01-creating-a-challenge.md @@ -61,29 +61,6 @@ Which project the challenge belongs to. You can only pick projects you manage. Description and Instructions are both required. -### Challenge image - -An optional image shown on this challenge's card. The images available to you -are the ones your [teams](/documentation/teams/) have had approved: any -team member can request an image from the team's page, and a super admin -reviews it before it can be used here. - -### Basemap - -Optionally force a base layer for this challenge's maps, overriding whatever -each mapper has chosen for themselves — useful when the tasks can only be -judged against particular imagery. See [Setting The Basemap Layer For Your -Challenge](/documentation/setting-basemap-for-challenge/). - -### Task settings - -- **OSM/External Id Property** — the feature property holding each task's - identifier. Leave it blank to let MapRoulette detect it. See [Setting - External Task Identifiers](/documentation/setting-external-task-identifiers/). -- **Preferred MR Tags**, for task completion and for review, each with an - option to accept only those tags. See [Using MapRoulette - Tags](/documentation/using-maproulette-tags/). - ### Task data Choose one of three sources for the challenge's tasks: @@ -112,6 +89,29 @@ couple of thousand. > shows the source read-only; to regenerate tasks from updated data, use > [Rebuild Tasks](/documentation/rebuilding-challenge-tasks/). +### Challenge image + +An optional image shown on this challenge's card. The images available to you +are the ones your [teams](/documentation/teams/) have had approved: any +team member can request an image from the team's page, and a super admin +reviews it before it can be used here. + +### Basemap + +Optionally force a base layer for this challenge's maps, overriding whatever +each mapper has chosen for themselves — useful when the tasks can only be +judged against particular imagery. See [Setting The Basemap Layer For Your +Challenge](/documentation/setting-basemap-for-challenge/). + +### Task settings + +- **OSM/External Id Property** — the feature property holding each task's + identifier. Leave it blank to let MapRoulette detect it. See [Setting + External Task Identifiers](/documentation/setting-external-task-identifiers/). +- **Preferred MR Tags (task completion)** — the tags the challenge suggests to + mappers, with an option to accept only those tags. See [Using MapRoulette + Tags](/documentation/using-maproulette-tags/). + ### Automated Edits code of conduct Before creating a challenge you must confirm that you have read and understand diff --git a/_documentation/challenges/08-reporting-a-challenge.md b/_documentation/challenges/08-reporting-a-challenge.md index e07aa26..c133a65 100644 --- a/_documentation/challenges/08-reporting-a-challenge.md +++ b/_documentation/challenges/08-reporting-a-challenge.md @@ -34,9 +34,9 @@ through OSM's own messaging system if the discussion is better held privately. If reaching out to the challenge owner is proving unsuccessful, and there is continued concern about a challenge's integrity, use the **Report Challenge** -action. See [Reporting a Challenge on -GitHub](/documentation/challenge-flagging/) for what that does and what -you'll be asked for. +action. That sends the report to the MapRoulette administrators for review. See +[Filing a Challenge Report](/documentation/challenge-flagging/) for what you'll +be asked for and what happens next. ### 4. Contact us via email diff --git a/_documentation/challenges/09-challenge-flagging.md b/_documentation/challenges/09-challenge-flagging.md index d9e1af6..b4e379b 100644 --- a/_documentation/challenges/09-challenge-flagging.md +++ b/_documentation/challenges/09-challenge-flagging.md @@ -1,12 +1,10 @@ --- -title: Reporting a Challenge on GitHub +title: Filing a Challenge Report --- Reporting a challenge lets mappers escalate a challenge that did not meet -quality standards, when talking to its owner hasn't resolved things. - -See the original post and credits on our blog -[here](https://blog.maproulette.org/2023/01/23/introducing-our-flag-report-a-challenge-feature/)! +quality standards, when talking to its owner hasn't resolved things. The report +goes to the MapRoulette administrators, who decide what to do about it. > Reporting is one of a set of features for reaching out to challenge owners, > and it is rarely the first one to reach for. Please review the recommended @@ -15,36 +13,65 @@ See the original post and credits on our blog ## Filing a report -Open the challenge page and select the **Challenge actions** menu (the ⋯ -button beside the challenge title), then **Report Challenge**. +Open the challenge page and select the **Challenge actions** menu (the ⋮ +button beside the challenge title), then **Report Challenge**. You need to be +signed in. The report dialog asks for: -- **Email** (optional) — so we can reach you about the report -- **A description of the issue** — please explain in detail what your issue is - with this challenge, linking to specific OSM changesets where you can +- **Email (optional)** — so the administrators can reach you about the report. + It is prefilled with the address in your own settings, and is only ever + shown to administrators +- **A description of the issue** — between 100 and 1000 characters, so explain + in detail what your issue is with this challenge, linking to specific OSM + changesets where you can. The field supports + [Markdown](/documentation/markdown/), with **Write** and **Preview** tabs and + a character counter - Confirmation that **you have attempted to contact the Challenge creator** -Submitting the report: +Choose **Submit Report**. Submitting the report: -1. opens an issue in MapRoulette's - [challenge-reports repository](https://github.com/maproulette/challenge-reports/issues) - on GitHub, containing a link to the challenge, who reported it, and your - description; and -2. posts a comment on the challenge itself pointing everyone at that issue, so - the owner and other mappers can find the discussion. +1. files the report with the MapRoulette administrators for review; and +2. posts a comment on the challenge, naming you as the reporter, so the owner + and other mappers know the concern was raised and can join the discussion. -Any follow-up discussion should take place in the GitHub issue. Reporting a -challenge does **not** disable it immediately. +Reporting a challenge does **not** disable it immediately, and it does not +archive or hide it. Any follow-up discussion happens in the [challenge +comments](/documentation/challenge-comments/). ## After reporting -Once a challenge has been reported, the actions menu shows **Challenge -Reported** instead, and the challenge page offers a **View reported issue on -GitHub** link. A challenge can only be reported again once the open issue has -been resolved. +While your report is awaiting review, the actions menu shows **Challenge +Reported** with a red flag instead of **Report Challenge**, and the item is +disabled — there is nothing more for you to do until an administrator has +looked at it. You can report the same challenge again once your earlier report +has been dealt with. + +You only ever see your own reports. Other mappers' reports on the same +challenge are not shown to you. + +## What administrators do with it + +Reports land in a review queue under **Super Admin → Challenge Reports**, where +an administrator reads the report, can jump straight to the challenge or its +management page, and closes the report out as either: + +- **Actioned** — the concern was valid and something was done about it, such as + archiving the challenge or asking the owner to change it +- **Dismissed** — no change was warranted + +Either decision can carry a short note recording what was decided. See [Super +Admin](/documentation/super-admin/) for the administrator's side of the queue. -Only signed-in users can report a challenge. +> Reports used to be filed as public issues in a GitHub repository, and the +> challenge actions menu offered a **View reported issue on GitHub** link +> afterwards. Reports are now held in MapRoulette itself, which keeps the +> reporter's email address private and puts the triage in the hands of the +> administrators of the installation you are using. The [blog post that +> introduced the +> feature](https://blog.maproulette.org/2023/01/23/introducing-our-flag-report-a-challenge-feature/) +> describes that original GitHub-based version. +{: .legacy} We hope the report feature helps maintain and improve the overall quality of challenges on MapRoulette by giving our users the ability to regulate them. diff --git a/_documentation/mapping/01-using-layouts.md b/_documentation/mapping/01-using-layouts.md index bc82de3..7c18c36 100644 --- a/_documentation/mapping/01-using-layouts.md +++ b/_documentation/mapping/01-using-layouts.md @@ -9,16 +9,17 @@ and collapse to suit your screen. ### The two panels -- **Left — the task panel.** Everything about the task, in four tabs: - - **Task** — the challenge and task instructions, the task's MR Tags, and, - when you're working on several tasks together, the list of bundled tasks - - **Properties** — the task feature's properties (its OSM tags and anything - else carried in the challenge's GeoJSON) +- **Left — the task panel.** Everything about the task, in three tabs: + - **Instructions** — the challenge and task instructions, the task's MR Tags, + and, when you're working on several tasks together, the list of bundled + tasks + - **Data** — the task's own data, in three collapsible sections: + **Properties** (the task feature's properties: its OSM tags and anything + else carried in the challenge's GeoJSON), **GeoJSON** (the raw geometry, + with a button to copy it) and **OSM feature** (the OSM element the task + points at, linked out to OpenStreetMap) - **Comments** — the task's comment and status history, and the box to add your own comment - - **OSM** — the linked changeset once the task is complete, the history of - the task's OSM element, and links out to OpenStreetMap, OSMCha and Overpass - Turbo The task actions — lock, editor, and the completion buttons — sit at the bottom of this panel. diff --git a/_documentation/mapping/03-solving-multiple-tasks-together.md b/_documentation/mapping/03-solving-multiple-tasks-together.md index 9cfc0fb..ab3b0cd 100644 --- a/_documentation/mapping/03-solving-multiple-tasks-together.md +++ b/_documentation/mapping/03-solving-multiple-tasks-together.md @@ -23,7 +23,7 @@ taken back out again with **Remove from Bundle**. A bundle can hold up to 50 tasks; the panel says so and stops accepting more once you reach the limit. The task you started from is the **primary** task of the bundle, and is marked -as such in the bundled task list on the **Task** tab. +as such in the bundled task list on the **Instructions** tab. ### Working the bundle diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index bbfedcf..725ba50 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -25,6 +25,7 @@ usually still exposes it, because the data model did not change. | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | | Worked Tag Fix challenges | The editor opens automatically with the proposed tags applied, for you to review and save as your own edit, rather than approved with a Yes/No panel. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | | Reviewed tasks | Not available. | +| Reported a challenge | The report goes to the MapRoulette administrators inside the app, rather than opening a public issue in a GitHub repository. See [Filing a Challenge Report](/documentation/challenge-flagging/). | | Typed `m/`, `n/` or `p/` in the search box | `p/` is now `p:`; the Nominatim search became the location filter on [Explore Challenges](/documentation/discovering-challenges/); there is no bounding-box command. See [Searchbox Short Commands](/documentation/searchbox-short-commands/). | ## For challenge managers @@ -55,6 +56,11 @@ The biggest change is how the frontend is configured. - `REACT_APP_SYSTEM_NOTICES_URL` is gone. System notices are now served by the backend, which is where the URL of the notices file is configured. See [System-Notice Management](/documentation/system-notice-management/). +- `REACT_APP_GITHUB_ISSUES_API_OWNER`, `REACT_APP_GITHUB_ISSUES_API_REPO` and + `REACT_APP_GITHUB_ISSUES_API_TOKEN` are gone. Challenge reports are stored by + the backend and triaged by a super user, so the frontend no longer needs a + repository or a token that can open issues in it. See [Filing a Challenge + Report](/documentation/challenge-flagging/). ## Reading the rest of these docs diff --git a/_documentation/server-admin/01-runtime-configuration.md b/_documentation/server-admin/01-runtime-configuration.md index ee65919..957e964 100644 --- a/_documentation/server-admin/01-runtime-configuration.md +++ b/_documentation/server-admin/01-runtime-configuration.md @@ -37,18 +37,9 @@ deployment without rebuilding. ### Challenge reporting -[Reporting a challenge](/documentation/challenge-flagging/) files a GitHub -issue, which needs a repository and a token that can open issues in it: - -| Variable | Purpose | -|:---------|:--------| -| `VITE_GITHUB_ISSUES_API_OWNER` | GitHub owner (user or organisation) of the reports repository | -| `VITE_GITHUB_ISSUES_API_REPO` | Name of the reports repository | -| `VITE_GITHUB_ISSUES_API_TOKEN` | Token used to create the issue | - -If these are unset, reporting still records a comment on the challenge but no -GitHub issue is created. Note the caveat above about secrets: this token is -visible to anyone using the site. +[Filing a challenge report](/documentation/challenge-flagging/) needs no +configuration. Reports are stored by the backend and triaged in-app by a super +user, so the GitHub repository and token the frontend used to require are gone. ## Plugins diff --git a/_documentation/server-admin/04-super-admin.md b/_documentation/server-admin/04-super-admin.md index 5d6f480..72e9532 100644 --- a/_documentation/server-admin/04-super-admin.md +++ b/_documentation/server-admin/04-super-admin.md @@ -13,6 +13,25 @@ Super user status is granted on the server, not from within MapRoulette. Lists every account on the installation, searchable by name or email, showing each user's role and when they joined. +## Challenge reports + +The queue of [challenge reports](/documentation/challenge-flagging/) — mappers' +reports that a challenge is poorly designed and is causing incorrect edits. + +Each report shows the challenge and its project, who reported it and when, the +report text, and the reporter's email address if they volunteered one. That +address is only ever shown here. + +Filter the queue by status — **open**, **actioned** or **dismissed** — and, +with **Only challenges that are still active**, hide reports against challenges +that have already been archived. It opens on the open reports for still-active +challenges, which is the set worth working through. + +An open report can be opened in the challenge browser or its management page, +and is closed out as either **Mark actioned** — the concern was valid and +something was done about it — or **Dismiss**. Either decision takes an optional +note, and the report then records who decided it and when. + ## Team images Manages the images teams can use for their avatars. Images uploaded by teams diff --git a/_documentation/tasks/02-using-maproulette-tags.md b/_documentation/tasks/02-using-maproulette-tags.md index 4673554..0a1faff 100644 --- a/_documentation/tasks/02-using-maproulette-tags.md +++ b/_documentation/tasks/02-using-maproulette-tags.md @@ -25,9 +25,9 @@ OpenAerialMap project 🙂. ### Adding MR Tags -Mappers and reviewers add MR Tags in two places: +Mappers add MR Tags in two places: -- On the task panel's **Task** tab, the task's tags are listed with an **Edit +- On the task panel's **Instructions** tab, the task's tags are listed with an **Edit tags** control (or **No tags** if it has none yet). That opens the **Edit task tags** dialog, where you type a tag and press Enter or , to add it, and Backspace to remove the last one. As @@ -36,17 +36,15 @@ Mappers and reviewers add MR Tags in two places: separated by commas, so you can tag and complete a task in one go. Tags can be edited while a task is still open (created, skipped or can't -complete), and while its review is still in play. +complete). ### Preferred MR Tags A challenge can nominate the tags it would rather mappers used. Set them in **Task settings** when creating or editing the challenge: **Preferred MR Tags -(task completion)** and **Preferred MR Tags (review)**, each a comma-separated -list, with a checkbox beside it to accept only those tags. Those appear -above the tag box as **Popular in this challenge:**, as chips you can click to -add rather than typing. There are two sets: one recommended during task -completion, and one recommended during review. +(task completion)**, a comma-separated list, with a checkbox beside it to +accept only those tags. They appear above the tag box as **Popular in this +challenge:**, as chips you can click to add rather than typing. ### Restricting MR Tags From d7568968cbe4069fcb6e15ee551623d255d3a52c Mon Sep 17 00:00:00 2001 From: Collin Beczak Date: Thu, 3 Sep 2026 20:47:26 -0500 Subject: [PATCH 15/15] Point the imagery overlays at the iD editor The Mapillary, KartaView and OSM data overlays are gone from the task map, but mappers can still reach them from inside iD, so say that instead of leaving both pages at "not available". --- _documentation/migrating/01-maproulette-3-to-4.md | 2 +- _documentation/server-admin/02-map-layer-management.md | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/_documentation/migrating/01-maproulette-3-to-4.md b/_documentation/migrating/01-maproulette-3-to-4.md index 725ba50..8cdda17 100644 --- a/_documentation/migrating/01-maproulette-3-to-4.md +++ b/_documentation/migrating/01-maproulette-3-to-4.md @@ -20,7 +20,7 @@ usually still exposes it, because the data model did not change. | What you did in MR3 | Where it stands in MR4 | |:--------------------|:-----------------------| | Picked any imagery from the OSM editor layer index | The base layers are now a fixed set bundled with the frontend. See [Setting your Map Base Layer](/documentation/setting-your-map-base-layer/). | -| Turned on Mapillary, KartaView or OSM data overlays | Not available. | +| Turned on Mapillary, KartaView or OSM data overlays | Not part of the task map. Turn them on inside the iD editor instead, which carries its own photo and OSM data overlays. See [Editing inside MapRoulette](/documentation/rapid-editor/). | | Edited with the embedded **Rapid** editor | Rapid is now an external editor. The embedded editor is iD. See [Rapid Editor](/documentation/rapid-editor/). | | Saved, named, imported or exported widget layouts | Not available, and layouts exported from MR3 cannot be imported. See [Using Layouts](/documentation/using-layouts/). | | Worked Tag Fix challenges | The editor opens automatically with the proposed tags applied, for you to review and save as your own edit, rather than approved with a Yes/No panel. See [Tag Fix Challenges](/documentation/tag-fix-challenges/). | diff --git a/_documentation/server-admin/02-map-layer-management.md b/_documentation/server-admin/02-map-layer-management.md index c4ec54c..e90428d 100644 --- a/_documentation/server-admin/02-map-layer-management.md +++ b/_documentation/server-admin/02-map-layer-management.md @@ -59,7 +59,9 @@ saved selection. > The Mapillary, OpenStreetCam/KartaView and OSM data overlays — and the > `REACT_APP_IMAGERY_OPENSTREETCAM`, `REACT_APP_MAPILLARY_API_KEY` and > `REACT_APP_OSM_DATA_OVERLAY` settings that controlled them — are not part of -> the current frontend, so there is nothing to configure. +> the current frontend, so there is nothing to configure. Mappers reach these +> overlays through the iD editor's own layer panel instead. See [Editing inside +> MapRoulette](/documentation/rapid-editor/). {: .legacy} See also [Runtime Configuration](/documentation/runtime-configuration/)