diff --git a/docs/assets/images/onqc-scopes/repeater-04-cli-standard.webp b/docs/assets/images/onqc-scopes/repeater-04-cli-standard.webp deleted file mode 100644 index c0cebfc5..00000000 Binary files a/docs/assets/images/onqc-scopes/repeater-04-cli-standard.webp and /dev/null differ diff --git a/docs/assets/images/onqc-scopes/repeater-05-ver.webp b/docs/assets/images/onqc-scopes/repeater-05-ver.webp index f1ab304e..48aa0028 100644 Binary files a/docs/assets/images/onqc-scopes/repeater-05-ver.webp and b/docs/assets/images/onqc-scopes/repeater-05-ver.webp differ diff --git a/docs/assets/images/onqc-scopes/repeater-06-send-again.webp b/docs/assets/images/onqc-scopes/repeater-06-send-again.webp deleted file mode 100644 index 0513b70c..00000000 Binary files a/docs/assets/images/onqc-scopes/repeater-06-send-again.webp and /dev/null differ diff --git a/docs/assets/javascripts/scopes-picker.js b/docs/assets/javascripts/scopes-picker.js new file mode 100644 index 00000000..46159eb8 --- /dev/null +++ b/docs/assets/javascripts/scopes-picker.js @@ -0,0 +1,25 @@ +// Show the region commands that match the selected area and firmware version. +(function () { + function setUp(picker) { + var area = picker.querySelector("[data-scp-area]"); + var firmware = picker.querySelector("[data-scp-firmware]"); + var group = picker.closest("[data-scp-picker-group]") || document; + var variants = group.querySelectorAll("[data-scp-variant]"); + + function update() { + variants.forEach(function (variant) { + variant.hidden = !( + variant.getAttribute("data-area") === area.value && + variant.getAttribute("data-firmware") === firmware.value + ); + }); + } + + area.addEventListener("change", update); + firmware.addEventListener("change", update); + picker.hidden = false; + update(); + } + + document.querySelectorAll("[data-scp-picker]").forEach(setUp); +})(); diff --git a/docs/assets/styles/base.css b/docs/assets/styles/base.css index 1822c883..0e5e6455 100644 --- a/docs/assets/styles/base.css +++ b/docs/assets/styles/base.css @@ -137,12 +137,20 @@ summary { } .md-button, -button:not(.md-search__icon), +button:not(.md-search__icon):not(.md-code__button), select, input:not([type="checkbox"]):not([type="radio"]):not(.md-search__input) { min-height: var(--mc-target-size); } +/* Code copy buttons sit inside the code block. The general 44px minimum made + them taller than one-line blocks, so they hung out below and were hard to + tap. A 28px square still meets the WCAG 2.2 24px target size. */ +.md-typeset .md-code__button { + width: 1.75rem; + height: 1.75rem; +} + .md-typeset .md-button { border-radius: var(--mc-radius-sm); padding: 0.6rem 1rem; diff --git a/docs/assets/styles/scopes-proposal.css b/docs/assets/styles/scopes-proposal.css index 7681cc4e..afdb3949 100644 --- a/docs/assets/styles/scopes-proposal.css +++ b/docs/assets/styles/scopes-proposal.css @@ -816,3 +816,126 @@ display: block; border-radius: var(--mc-radius-md); } + +/* ---------- Command picker ---------- */ + +.md-typeset .scp-picker-group { + margin: var(--mc-space-4) 0 var(--mc-space-6); + overflow: hidden; + border: 1px solid var(--mc-color-border); + border-radius: var(--mc-radius-lg); + background: var(--mc-color-surface); + box-shadow: var(--mc-shadow-1); +} + +.scp-picker { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); + gap: var(--mc-space-3); + padding: var(--mc-space-4); + border-bottom: 1px solid var(--mc-color-border); + background: + linear-gradient(135deg, var(--scp-city-bg), transparent 70%), + var(--mc-color-surface-raised); +} + +.scp-picker[hidden] { + display: none; +} + +.scp-picker__field { + display: grid; + gap: 0.35rem; + color: var(--mc-color-text-muted); + font-size: 0.72rem; + font-weight: 760; + letter-spacing: 0.06em; + text-transform: uppercase; +} + +.scp-picker__field select { + width: 100%; + padding: 0 2.2rem 0 var(--mc-space-3); + border: 1px solid var(--mc-color-border); + border-radius: var(--mc-radius-md); + background-color: var(--mc-color-surface); + background-image: linear-gradient(45deg, transparent 50%, currentcolor 50%), + linear-gradient(135deg, currentcolor 50%, transparent 50%); + background-position: calc(100% - 1.1rem) 50%, calc(100% - 0.75rem) 50%; + background-repeat: no-repeat; + background-size: 0.35rem 0.35rem; + color: var(--mc-color-text); + font-size: 0.95rem; + font-weight: 600; + letter-spacing: normal; + text-transform: none; + appearance: none; + cursor: pointer; +} + +.scp-picker__field select:focus-visible { + outline: 3px solid var(--mc-color-focus); + outline-offset: 2px; +} + +.md-typeset .scp-variant { + padding: var(--mc-space-4); + counter-reset: scp-cmd; +} + +.md-typeset .scp-variant + .scp-variant { + border-top: 1px solid var(--mc-color-border); +} + +.md-typeset .scp-variant__label { + display: inline-block; + margin: 0 0 var(--mc-space-3); + padding: 0.2rem 0.65rem; + border-radius: 999px; + background: var(--scp-city-bg); + color: var(--scp-city); + font-size: 0.75rem; + font-weight: 760; +} + +.md-typeset .scp-variant .highlight { + position: relative; + margin: 0 0 var(--mc-space-2) 2rem; + counter-increment: scp-cmd; +} + +.md-typeset .scp-variant .highlight::before { + position: absolute; + top: 50%; + left: -2rem; + display: grid; + width: 1.4rem; + height: 1.4rem; + place-items: center; + border-radius: 999px; + background: var(--mc-color-surface-raised); + border: 1px solid var(--mc-color-border); + color: var(--mc-color-text-muted); + content: counter(scp-cmd); + font-size: 0.7rem; + font-weight: 800; + transform: translateY(-50%); +} + +.md-typeset .scp-variant .highlight pre { + margin: 0; +} + +.md-typeset .scp-variant > p:not(.scp-variant__label) { + margin: var(--mc-space-3) 0 0; + padding: var(--mc-space-3); + border-left: 0.25rem solid var(--mc-color-warning); + border-radius: var(--mc-radius-sm); + background: var(--mc-color-surface-raised); + font-size: 0.82rem; +} + +.md-typeset .scp-variant .highlight code { + padding-right: 2.75rem; + white-space: pre-wrap; +} diff --git a/docs/proposals/onqc-scopes.fr.md b/docs/proposals/onqc-scopes.fr.md index 7aa0b2e6..8d9632f5 100644 --- a/docs/proposals/onqc-scopes.fr.md +++ b/docs/proposals/onqc-scopes.fr.md @@ -17,7 +17,9 @@ destructive: false search: exclude: true page_styles: - - assets/styles/scopes-proposal.css?v=20260924-1 + - assets/styles/scopes-proposal.css?v=20260924-2 +page_scripts: + - assets/javascripts/scopes-picker.js?v=20260924-1 --- # Proposition de portées de région ON/QC @@ -291,26 +293,11 @@ Attendez `OK` avant d’envoyer la suivante. -
OK. Ici, le premier set flood.advert.interval 47 n’en a pas reçu, donc il a été renvoyé.OK? Touchez longuement la commande et choisissez Send Again.region def répond Err - ??, et ver affiche v1.15.0; il utilise donc les étapes pour micrologiciel plus ancien.ver et touchez envoyer. La version du micrologiciel apparaît en dessous, par exemple v1.15.0.Ottawa et environs · Micrologiciel 1.16 ou plus récent
- ```text - region save - ``` +```text +region def yow|* on|* onqc|* can +``` -=== "Gatineau" +```text +region allowf * +``` - ```text - region def yow|* qc|* onqc|* can - ``` +```text +region default yow +``` - ```text - region allowf * - ``` +```text +region save +``` - ```text - region default yow - ``` +Ottawa et environs · Micrologiciel 1.15
- ```text - region def yul|* qc|* onqc|* can - ``` +```text +region put yow +``` - ```text - region allowf * - ``` +```text +region put on +``` - ```text - region default yul - ``` +```text +region put onqc +``` - ```text - region save - ``` +```text +region put can +``` -=== "Ville de Québec" +```text +region allowf * +``` - ```text - region def yqb|* qc|* onqc|* can - ``` +```text +region default yow +``` - ```text - region allowf * - ``` +```text +region save +``` - ```text - region default yqb - ``` +Chaque `region put` répond `OK - (flood allowed)`, et `region default` répond `default scope is now …`. - ```text - region save - ``` +onqc et can.Ottawa et environs · Micrologiciel 1.10 à 1.14
-#### Micrologiciel plus ancien +```text +region put yow +``` -Si `region def` répond `Err - ??`, votre micrologiciel est plus ancien que 1.16. -Ajoutez plutôt chaque code avec `region put`. Ces exemples sont pour Ottawa. -Pour un autre secteur, remplacez `yow` par votre code de ville, et `on` par -`qc` au Québec. +```text +region allowf yow +``` -=== "Micrologiciel 1.15" +```text +region put on +``` - ```text - region put yow - ``` +```text +region allowf on +``` - ```text - region put on - ``` +```text +region put onqc +``` - ```text - region put onqc - ``` +```text +region allowf onqc +``` - ```text - region put can - ``` +```text +region put can +``` - ```text - region allowf * - ``` +```text +region allowf can +``` - ```text - region default yow - ``` +```text +region allowf * +``` - ```text - region save - ``` +```text +region save +``` -=== "Micrologiciel 1.10 à 1.14" +Avec ces versions, une nouvelle région commence avec la diffusion **désactivée**, donc chacune a aussi besoin de `region allowf`. Il n’y a pas de `region default`, donc les annonces du répéteur restent sans portée. Une mise à jour du micrologiciel vaut la peine. - ```text - region put yow - ``` +Gatineau · Micrologiciel 1.16 ou plus récent
- ```text - region allowf on - ``` +```text +region def yow|* qc|* onqc|* can +``` - ```text - region put onqc - ``` +```text +region allowf * +``` - ```text - region allowf onqc - ``` +```text +region default yow +``` - ```text - region put can - ``` +```text +region save +``` - ```text - region allowf can - ``` +Gatineau · Micrologiciel 1.15
+ +```text +region put yow +``` + +```text +region put qc +``` + +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yow +``` + +```text +region save +``` + +Chaque `region put` répond `OK - (flood allowed)`, et `region default` répond `default scope is now …`. + +Gatineau · Micrologiciel 1.10 à 1.14
+ +```text +region put yow +``` + +```text +region allowf yow +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +Avec ces versions, une nouvelle région commence avec la diffusion **désactivée**, donc chacune a aussi besoin de `region allowf`. Il n’y a pas de `region default`, donc les annonces du répéteur restent sans portée. Une mise à jour du micrologiciel vaut la peine. + +Montréal et environs · Micrologiciel 1.16 ou plus récent
+ +```text +region def yul|* qc|* onqc|* can +``` + +```text +region allowf * +``` + +```text +region default yul +``` + +```text +region save +``` + +Montréal et environs · Micrologiciel 1.15
+ +```text +region put yul +``` + +```text +region put qc +``` -Avec **1.15**, chaque `region put` répond `OK - (flood allowed)`, et -`region default yow` répond `default scope is now yow`. Une nouvelle région -relaie tout de suite. Avec **1.10 à 1.14**, -une nouvelle région commence avec la diffusion **désactivée**, donc chacune a -aussi besoin de `region allowf`. Ces versions n’ont pas non plus de -`region default`, donc les annonces du répéteur restent sans portée. Une mise -à jour du micrologiciel vaut la peine. +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yul +``` + +```text +region save +``` + +Chaque `region put` répond `OK - (flood allowed)`, et `region default` répond `default scope is now …`. + +Montréal et environs · Micrologiciel 1.10 à 1.14
+ +```text +region put yul +``` + +```text +region allowf yul +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +Avec ces versions, une nouvelle région commence avec la diffusion **désactivée**, donc chacune a aussi besoin de `region allowf`. Il n’y a pas de `region default`, donc les annonces du répéteur restent sans portée. Une mise à jour du micrologiciel vaut la peine. + +Ville de Québec · Micrologiciel 1.16 ou plus récent
+ +```text +region def yqb|* qc|* onqc|* can +``` + +```text +region allowf * +``` + +```text +region default yqb +``` + +```text +region save +``` + +Ville de Québec · Micrologiciel 1.15
+ +```text +region put yqb +``` + +```text +region put qc +``` + +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yqb +``` + +```text +region save +``` + +Chaque `region put` répond `OK - (flood allowed)`, et `region default` répond `default scope is now …`. + +Ville de Québec · Micrologiciel 1.10 à 1.14
+ +```text +region put yqb +``` + +```text +region allowf yqb +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +Avec ces versions, une nouvelle région commence avec la diffusion **désactivée**, donc chacune a aussi besoin de `region allowf`. Il n’y a pas de `region default`, donc les annonces du répéteur restent sans portée. Une mise à jour du micrologiciel vaut la peine. + +onqc et can.region put répond OK - (flood allowed). region put on a dû être renvoyé.region put répond OK - (flood allowed).OK back. Here, the first set flood.advert.interval 47 never got one, so it was sent again.OK? Tap and hold the command and choose Send Again.region def answers Err - ??, and ver shows v1.15.0, so it uses the older-firmware steps.ver and tap send. The firmware version appears underneath, for example v1.15.0.Ottawa and surrounding areas · Firmware 1.16 or newer
- ```text - region save - ``` +```text +region def yow|* on|* onqc|* can +``` -=== "Gatineau" +```text +region allowf * +``` - ```text - region def yow|* qc|* onqc|* can - ``` +```text +region default yow +``` - ```text - region allowf * - ``` +```text +region save +``` - ```text - region default yow - ``` +Ottawa and surrounding areas · Firmware 1.15
- ```text - region def yul|* qc|* onqc|* can - ``` +```text +region put yow +``` - ```text - region allowf * - ``` +```text +region put on +``` - ```text - region default yul - ``` +```text +region put onqc +``` - ```text - region save - ``` +```text +region put can +``` -=== "Québec City" +```text +region allowf * +``` - ```text - region def yqb|* qc|* onqc|* can - ``` +```text +region default yow +``` - ```text - region allowf * - ``` +```text +region save +``` - ```text - region default yqb - ``` +Each `region put` answers `OK - (flood allowed)`, and `region default` answers `default scope is now …`. - ```text - region save - ``` +onqc and can.Ottawa and surrounding areas · Firmware 1.10 to 1.14
-#### Older firmware +```text +region put yow +``` -If `region def` answers `Err - ??`, your firmware is older than 1.16. Add each -code with `region put` instead. These examples are for Ottawa. For another -area, replace `yow` with your city code, and `on` with `qc` in Québec. +```text +region allowf yow +``` -=== "Firmware 1.15" +```text +region put on +``` - ```text - region put yow - ``` +```text +region allowf on +``` - ```text - region put on - ``` +```text +region put onqc +``` - ```text - region put onqc - ``` +```text +region allowf onqc +``` - ```text - region put can - ``` +```text +region put can +``` - ```text - region allowf * - ``` +```text +region allowf can +``` - ```text - region default yow - ``` +```text +region allowf * +``` - ```text - region save - ``` +```text +region save +``` -=== "Firmware 1.10 to 1.14" +On these versions a new region starts with forwarding **off**, so each one also needs `region allowf`. There is no `region default`, so this repeater's own adverts stay unscoped. Updating the firmware is worth it. - ```text - region put yow - ``` +Gatineau · Firmware 1.16 or newer
- ```text - region allowf on - ``` +```text +region def yow|* qc|* onqc|* can +``` - ```text - region put onqc - ``` +```text +region allowf * +``` - ```text - region allowf onqc - ``` +```text +region default yow +``` - ```text - region put can - ``` +```text +region save +``` - ```text - region allowf can - ``` +Gatineau · Firmware 1.15
+ +```text +region put yow +``` + +```text +region put qc +``` + +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yow +``` + +```text +region save +``` + +Each `region put` answers `OK - (flood allowed)`, and `region default` answers `default scope is now …`. + +Gatineau · Firmware 1.10 to 1.14
+ +```text +region put yow +``` + +```text +region allowf yow +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +On these versions a new region starts with forwarding **off**, so each one also needs `region allowf`. There is no `region default`, so this repeater's own adverts stay unscoped. Updating the firmware is worth it. + +Montréal and surrounding areas · Firmware 1.16 or newer
+ +```text +region def yul|* qc|* onqc|* can +``` + +```text +region allowf * +``` + +```text +region default yul +``` + +```text +region save +``` + +Montréal and surrounding areas · Firmware 1.15
+ +```text +region put yul +``` + +```text +region put qc +``` -On **1.15**, each `region put` answers `OK - (flood allowed)`, and -`region default yow` answers `default scope is now yow`. A new region forwards -straight away. On **1.10 to 1.14**, a new -region starts with forwarding **off**, so each one also needs -`region allowf`. Those versions also have no `region default`, so the -repeater's own adverts stay unscoped. Updating the firmware is worth it. +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yul +``` + +```text +region save +``` + +Each `region put` answers `OK - (flood allowed)`, and `region default` answers `default scope is now …`. + +Montréal and surrounding areas · Firmware 1.10 to 1.14
+ +```text +region put yul +``` + +```text +region allowf yul +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +On these versions a new region starts with forwarding **off**, so each one also needs `region allowf`. There is no `region default`, so this repeater's own adverts stay unscoped. Updating the firmware is worth it. + +Québec City · Firmware 1.16 or newer
+ +```text +region def yqb|* qc|* onqc|* can +``` + +```text +region allowf * +``` + +```text +region default yqb +``` + +```text +region save +``` + +Québec City · Firmware 1.15
+ +```text +region put yqb +``` + +```text +region put qc +``` + +```text +region put onqc +``` + +```text +region put can +``` + +```text +region allowf * +``` + +```text +region default yqb +``` + +```text +region save +``` + +Each `region put` answers `OK - (flood allowed)`, and `region default` answers `default scope is now …`. + +Québec City · Firmware 1.10 to 1.14
+ +```text +region put yqb +``` + +```text +region allowf yqb +``` + +```text +region put qc +``` + +```text +region allowf qc +``` + +```text +region put onqc +``` + +```text +region allowf onqc +``` + +```text +region put can +``` + +```text +region allowf can +``` + +```text +region allowf * +``` + +```text +region save +``` + +On these versions a new region starts with forwarding **off**, so each one also needs `region allowf`. There is no `region default`, so this repeater's own adverts stay unscoped. Updating the firmware is worth it. + +onqc and can.region put answers OK - (flood allowed). region put on needed a second send.region put answers OK - (flood allowed).