Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions docs/assets/javascripts/scopes-picker.js
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,31 @@
});
});

// "Any old regions?" question: show only the branch that matches the answer.
var ask = document.querySelector("[data-scp-ask]");
if (ask) {
var choices = ask.querySelectorAll("[data-scp-choice]");
var branches = document.querySelectorAll("[data-scp-branch]");
branches.forEach(function (branch) {
branch.hidden = true;
});
choices.forEach(function (choice) {
choice.addEventListener("click", function () {
var answer = choice.getAttribute("data-scp-choice");
choices.forEach(function (other) {
other.setAttribute("aria-pressed", String(other === choice));
});
branches.forEach(function (branch) {
branch.hidden = branch.getAttribute("data-scp-branch") !== answer;
});
});
});
ask.hidden = false;
document.querySelectorAll("[data-scp-ask-nojs]").forEach(function (note) {
note.hidden = true;
});
}

if (!picker) return;

var area = picker.querySelector("[data-scp-area]");
Expand Down
90 changes: 89 additions & 1 deletion docs/assets/styles/scopes-proposal.css
Original file line number Diff line number Diff line change
Expand Up @@ -838,10 +838,81 @@
override the hidden attribute. Keep hidden things hidden. */
.md-typeset .scp-picker[hidden],
.md-typeset .scp-picker [hidden],
.md-typeset .scp-card [hidden] {
.md-typeset .scp-card [hidden],
.md-typeset .scp-ask[hidden],
.md-typeset .scp-branch[hidden],
.md-typeset [data-scp-ask-nojs][hidden] {
display: none;
}

/* ---------- Yes/No question (old regions) ---------- */

.md-typeset .scp-ask {
margin: var(--mc-space-4) 0 var(--mc-space-6);
padding: var(--mc-space-4);
border: 1px solid var(--mc-color-border);
border-radius: var(--mc-radius-lg);
background:
linear-gradient(135deg, var(--scp-city-bg), transparent 70%),
var(--mc-color-surface-raised);
box-shadow: var(--mc-shadow-1);
}

.md-typeset .scp-ask__q {
margin: 0 0 var(--mc-space-3);
font-weight: 700;
}

.md-typeset .scp-ask__choices {
display: flex;
flex-wrap: wrap;
gap: var(--mc-space-2);
}

.md-typeset .scp-choice {
flex: 1 1 10rem;
padding: 0.6rem var(--mc-space-3);
border: 1px solid var(--mc-color-border);
border-radius: var(--mc-radius-md);
background: var(--mc-color-surface);
color: var(--mc-color-text);
font: inherit;
font-weight: 650;
cursor: pointer;
}

.md-typeset .scp-choice:hover {
border-color: var(--scp-city);
}

.md-typeset .scp-choice[aria-pressed="true"] {
border-color: var(--scp-city);
background: var(--scp-city-bg);
color: var(--scp-city);
box-shadow: inset 0 0 0 1px var(--scp-city);
}

.md-typeset .scp-choice:focus-visible {
outline: 3px solid var(--mc-color-focus);
outline-offset: 2px;
}

.md-typeset .scp-branch[data-scp-branch="clean"] {
margin: var(--mc-space-4) 0 var(--mc-space-6);
padding: var(--mc-space-3) var(--mc-space-4);
border-left: 0.25rem solid var(--scp-ok);
border-radius: var(--mc-radius-sm);
background: var(--scp-ok-bg);
}

.md-typeset .scp-branch[data-scp-branch="clean"] > :first-child {
margin-top: 0;
}

.md-typeset .scp-branch[data-scp-branch="clean"] > :last-child {
margin-bottom: 0;
}

.scp-picker__field {
display: grid;
gap: 0.35rem;
Expand Down Expand Up @@ -1041,3 +1112,20 @@
grid-template-columns: repeat(3, minmax(0, 1fr));
}
}

/* ---------- Optional explanations (collapsed) ---------- */

.md-typeset details.scp-more {
border-color: var(--mc-color-border);
font-size: inherit;
box-shadow: none;
}

.md-typeset details.scp-more > summary {
background: var(--mc-color-surface-raised);
font-size: 0.85rem;
}

.md-typeset details.scp-more > summary::before {
background-color: var(--mc-color-text-muted);
}
86 changes: 79 additions & 7 deletions docs/proposals/onqc-scopes.fr.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ destructive: false
search:
exclude: true
page_styles:
- assets/styles/scopes-proposal.css?v=20260924-4
- assets/styles/scopes-proposal.css?v=20260925-2
page_scripts:
- assets/javascripts/scopes-picker.js?v=20260924-3
- assets/javascripts/scopes-picker.js?v=20260925-1
---

# Proposition de portées de région ON/QC
Expand Down Expand Up @@ -133,6 +133,9 @@ Quand un message arrive, le répéteur compare le code à sa liste.

## Comment un répéteur décide

<details class="scp-more" markdown>
<summary>Afficher l’explication</summary>

Voici un répéteur d’Ottawa configuré selon cette proposition, et ce qu’il fait
avec cinq messages différents.

Expand Down Expand Up @@ -182,6 +185,9 @@ Quatre détails piègent souvent :
rien d’autre. Les messages avec portée fonctionnent seulement une fois les
répéteurs du trajet configurés.

</details>


## Les quatre niveaux

<figure class="scp-figure">
Expand Down Expand Up @@ -235,6 +241,9 @@ Québec ».

### Pourquoi des codes d’aéroport?

<details class="scp-more" markdown>
<summary>Afficher l’explication</summary>

- Ce sont les mêmes codes que MeshMapper utilise déjà, par exemple
`yow.meshmapper.net`.
- MeshCore utilise déjà les codes d’aéroport ailleurs, par exemple pour le
Expand All @@ -251,12 +260,18 @@ Québec ».
La première fois, écrivez toujours le code avec son secteur, par exemple
`yow` (secteur Ottawa–Gatineau), pour que les gens l’apprennent.

</details>


## Lire `region def yow|* on|* onqc|* can`

Cette section s’adresse aux propriétaires de répéteurs qui veulent comprendre
la commande. Vous pouvez la sauter : l’étape 4 de la phase 1 donne les
commandes exactes à entrer.

<details class="scp-more" markdown>
<summary>Afficher le fonctionnement de la commande</summary>

`region def` construit la liste d’un répéteur en une ligne. La commande garde un
**curseur** qui part du sommet, `*`. Chaque nom est créé sous le curseur, et
`|*` ramène le curseur au sommet.
Expand Down Expand Up @@ -306,6 +321,9 @@ jamais ceux qui existent déjà. Lancez `region` ensuite pour voir la liste
complète.
</div>

</details>


## Ordre de déploiement

Suivez cet ordre. Chaque phase commence seulement quand la précédente est
Expand Down Expand Up @@ -425,14 +443,38 @@ par afficher ce qui s’y trouve :
<ol class="scp-cmds"><li class="scp-cmd"><code>region</code><button type="button" class="scp-copy" title="Copier" aria-label="Copier: region"><svg viewBox="0 0 24 24" aria-hidden="true"><path fill="currentColor" d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z"/></svg></button></li></ol>
</div>

<div class="scp-ask" data-scp-ask hidden>
<p class="scp-ask__q">La réponse affiche-t-elle d’autres noms que <code>*</code>?</p>
<div class="scp-ask__choices" role="group" aria-label="La réponse affiche-t-elle d’autres noms que *?">
<button type="button" class="scp-choice" data-scp-choice="old" aria-pressed="false">Oui, d’autres noms</button>
<button type="button" class="scp-choice" data-scp-choice="clean" aria-pressed="false">Non, seulement <code>*^ F</code></button>
</div>
</div>

<div data-scp-ask-nojs markdown>

Vérifiez ensuite la réponse :

- **Seulement `*^ F` :** le répéteur n’a pas d’anciennes régions. Rien à
effacer, passez à l’étape 3.
- **D’autres noms aussi**, comme `can`, `on-alg` ou `ott` : retirez chacun
sauf `*` avec `region remove <nom>`, un à la fois, en commençant par la ligne
la plus en retrait. Lancez ensuite `region save`, puis `region` de nouveau
pour vérifier. Par exemple, l’ancienne configuration d’Ottawa :
effacer, passez à l’[étape 3](#etape-3-reglages-standard-de-meshcore-canada).
- **D’autres noms aussi**, comme `can`, `on-alg` ou `ott` : retirez-les comme
indiqué ci-dessous.

</div>

<div class="scp-branch" data-scp-branch="clean" hidden markdown>

**Rien à effacer.** Votre répéteur n’a pas d’anciennes régions. Passez
directement à l’[étape 3](#etape-3-reglages-standard-de-meshcore-canada).

</div>

<div class="scp-branch" data-scp-branch="old" markdown>

Retirez chaque nom sauf `*` avec `region remove <nom>`, un à la fois, en
commençant par la ligne la plus en retrait. Lancez ensuite `region save`, puis
`region` de nouveau pour vérifier. Par exemple, l’ancienne configuration
d’Ottawa :

<div class="scp-card">
<p class="scp-variant__label">Exemple : l’ancienne configuration d’Ottawa</p>
Expand All @@ -458,6 +500,8 @@ Quand vous avez terminé, `region` devrait afficher seulement `*^ F`.

</div>

</div>

### Étape 3 : Réglages standard de MeshCore Canada

<div class="scp-card">
Expand All @@ -467,13 +511,18 @@ Quand vous avez terminé, `region` devrait afficher seulement `*^ F`.
<p class="scp-note" data-scp-nojs>Ces commandes sont pour un répéteur de ville du secteur d’Ottawa avec le micrologiciel 1.16 ou plus récent. Activez JavaScript pour les adapter à votre répéteur.</p>
</div>

<details class="scp-more" markdown>
<summary>Que font ces commandes?</summary>

<dl class="scp-explain">
<dt>path.hash.mode 2</dt><dd>Utilise des identifiants de répéteur de 3 octets dans les chemins, pour que moins de répéteurs partagent un identifiant. Exige le micrologiciel 1.14 ou plus récent.</dd>
<dt>advert.interval 240</dt><dd>Annonce ce répéteur à ses voisins directs toutes les 4 heures.</dd>
<dt>flood.advert.interval 47</dt><dd>Annonce ce répéteur dans tout le réseau toutes les 47 heures.</dd>
<dt>flood.max 16</dt><dd>Aucune diffusion ne fait plus de 16 sauts, avec ou sans portée.</dd>
</dl>

</details>

Ces réglages s’enregistrent d’eux-mêmes. Pas besoin de `region save`. Si une
commande répond `Err - ??`, votre micrologiciel n’a pas ce réglage; passez-la.

Expand Down Expand Up @@ -501,13 +550,18 @@ Ces commandes suivent vos réponses de l’étape 1. Lancez-les dans l’ordre.
<p class="scp-note" data-scp-nojs>Ces commandes sont pour un répéteur de ville du secteur d’Ottawa avec le micrologiciel 1.16 ou plus récent. Activez JavaScript pour les adapter à votre répéteur.</p>
</div>

<details class="scp-more" markdown>
<summary>Que font ces commandes?</summary>

<dl class="scp-explain">
<dt>region def / region put</dt><dd>Porter votre ville, votre province, <code>onqc</code> et <code>can</code>.</dd>
<dt>region allowf * / region denyf *</dt><dd>Les répéteurs de ville relaient les messages <strong>sans portée</strong> (déjà permis par défaut, réglé pour que vous le voyiez). Les répéteurs de bordure les rejettent.</dd>
<dt>region default &lt;ville&gt;</dt><dd>Les annonces de ce répéteur utilisent la portée de votre ville, pour rester locales. Absent avant 1.15.</dd>
<dt>region save</dt><dd>Conserve les réglages de région après un redémarrage.</dd>
</dl>

</details>

<div class="scp-shots" markdown>

<figure class="scp-shot" markdown>
Expand Down Expand Up @@ -553,6 +607,9 @@ se place sur `*`. Vous pouvez l’ignorer.

### Permettre ou rejeter : aide-mémoire

<details class="scp-more" markdown>
<summary>Afficher l’aide-mémoire</summary>

| Commande | Effet |
| --- | --- |
| `region allowf <nom>` | Relayer les messages portant ce nom |
Expand All @@ -561,6 +618,9 @@ se place sur `*`. Vous pouvez l’ignorer.
| `set flood.max.unscoped <sauts>` | Une limite de sauts séparée pour les messages sans portée. Elle compte seulement si elle est plus basse que `flood.max`. `0` a le même effet que `region denyf *`. |
| `region save` | À lancer après chaque `allowf` ou `denyf` |

</details>


### Robots et MeshMapper

Ceci se fait à la fin de la phase 1, une fois que les répéteurs autour de vous
Expand Down Expand Up @@ -706,6 +766,9 @@ nom de votre nœud et la version de l’application.

### Pourquoi l’appareil compagnon utilise `onqc` par défaut

<details class="scp-more" markdown>
<summary>Afficher l’explication</summary>

On ne peut pas choisir la portée d’un seul message privé. Quand un MP n’a pas
encore de chemin connu, il est diffusé avec votre **portée par défaut**. La
réponse qui indique le chemin à votre appareil compagnon revient avec la portée par
Expand Down Expand Up @@ -745,6 +808,9 @@ l’étape 2 de la configuration de l’appareil compagnon les règle sur votre
ville.
</div>

</details>


## Phase 3 : Seulement au besoin

Si les messages sans portée sont encore trop bruyants dans une ville après la
Expand All @@ -755,6 +821,9 @@ que c’est annoncé pour votre ville.

## Qui reçoit quoi

<details class="scp-more" markdown>
<summary>Afficher les exemples</summary>

Quand les répéteurs de bordure rejettent les messages sans portée, un nouvel
utilisateur qui n’a pas encore réglé de portée joint quand même tout le monde
dans sa ville. Ses messages ne passent simplement pas dans la ville voisine.
Expand Down Expand Up @@ -813,6 +882,9 @@ C’est pourquoi les robots et MeshMapper devraient avoir la portée de leur vil
ils restent contenus quoi qu’il arrive, et les nouveaux utilisateurs qui n’ont
pas encore réglé de portée fonctionnent quand même localement.

</details>


## À savoir

- **Les messages avec portée ont environ 10 caractères de moins.**
Expand Down
Loading
Loading