From e200aafd836f7b8332290f45f808aa4a9f41fd79 Mon Sep 17 00:00:00 2001 From: mikecarper Date: Fri, 7 Aug 2026 10:26:32 -0700 Subject: [PATCH] Tabulate filter policy selectors --- docs/_stylesheets/filter_tool.css | 58 +++++++++++++++++++++++++++++-- docs/filter_tool.md | 50 ++++++++++++++++++-------- 2 files changed, 90 insertions(+), 18 deletions(-) diff --git a/docs/_stylesheets/filter_tool.css b/docs/_stylesheets/filter_tool.css index a4203eea..c2bbb481 100644 --- a/docs/_stylesheets/filter_tool.css +++ b/docs/_stylesheets/filter_tool.css @@ -82,15 +82,63 @@ background: var(--filter-soft); } -.filter-example-primer p { +.filter-example-primer > p { margin: 0; color: color-mix(in srgb, var(--md-default-fg-color) 76%, transparent); font-size: 0.72rem; line-height: 1.45; } -.filter-example-primer p + p { - margin-top: 0.35rem; +.filter-primer-tables { + display: grid; + grid-template-columns: minmax(0, 0.85fr) minmax(0, 1.15fr); + gap: 0.6rem; + align-items: start; + margin-top: 0.5rem; +} + +.filter-primer-table { + width: 100%; + margin: 0 !important; + border-collapse: collapse; + border: 1px solid var(--filter-border); + background: var(--md-default-bg-color); + font-size: 0.68rem; + line-height: 1.35; +} + +.filter-primer-table caption { + padding: 0 0 0.3rem; + color: var(--md-default-fg-color); + font-size: 0.7rem; + font-weight: 800; + text-align: left; +} + +.filter-primer-table th, +.filter-primer-table td { + padding: 0.32rem 0.4rem; + border: 1px solid var(--filter-border); + text-align: left; + vertical-align: top; +} + +.filter-primer-table th { + background: var(--filter-soft); + font-weight: 800; +} + +.filter-primer-table th:first-child, +.filter-primer-table td:first-child { + width: 38%; +} + +.filter-primer-table code { + white-space: nowrap; +} + +.filter-example-primer > .filter-primer-note { + margin-top: 0.45rem; } .filter-example-grid { @@ -743,6 +791,10 @@ } @media (max-width: 62rem) { + .filter-primer-tables { + grid-template-columns: 1fr; + } + .filter-tool-grid { grid-template-columns: 1fr; } diff --git a/docs/filter_tool.md b/docs/filter_tool.md index 2e5518fe..79d7c7ea 100644 --- a/docs/filter_tool.md +++ b/docs/filter_tool.md @@ -42,22 +42,42 @@ in the simulator below. The examples draw from

Read each summary as when all conditions match, do the actions. A match alone does not stop forwarding. - hops=3+ means the rule applies at a received hop count of - three or more.

-

- type=grp_data matches one payload type. - type=any matches every payload. - type=class:group matches group text and data; - type=class:login matches REQ, RESPONSE, TXT_MSG, ANON_REQ, - and PATH; type=class:other matches everything else. -

-

- channel=, rx.scope=, path=, and - tempradio= further narrow a match. After do, - drop prevents retransmission, scope= sets the - outgoing transport scope, rate= limits matches per minute, - and timing= selects the schedule. +

+ + + + + + + + + + + + +
Payload selectors
type= valueMatches
grp_dataOnly the named payload type
anyEvery payload type
class:groupGRP_TXT and GRP_DATA
class:loginREQ, RESPONSE, TXT_MSG, ANON_REQ, and PATH
class:otherEvery remaining payload type
+ + + + + + + + + + + + + + + + +
Other conditions and actions
FieldMeaning
hops=Received hop count: all, 3+, 2-6, or 3
channel=Group channel
rx.scope=Original incoming transport scope
path=Path prefix, blacklist, bucket, or loop match
tempradio=Temporary-radio state
do dropDo not retransmit
do scope=Set the outgoing transport scope
do rate=Apply a per-minute rate and burst
do timing=Select fast, normal, or slow scheduling
+
+

+ There is no class:txt. Use type=grp_txt for + channel text or type=txt_msg for peer text.