Revision control

+ # R58 (skill-language-style): a module landing page ({module}-index.qdoc)
+ # must include an Examples section and a Reference section. Modeled directly
+ # on styles/QtSelectors/PageOverview.yml's proven pattern: an `occurrence`
+ # rule with `min: 1` on a `doc(section:has(> h2:contains("...")))` selector
+ # reports once per file, at 1:1, if the required section is absent.
+ # Verified: fires on a page missing the section, stays silent on one that
+ # has it (see styles/Qt/Structure/README.md).
+ #
+ # `:contains()` is case-insensitive and matches substrings (see
+ # SectionSubtree.yml's own warning), so a heading like "Example Gallery"
+ # also satisfies "Examples" -- an accepted false-negative-avoidance
+ # trade-off, not a bug.
+ # APPLICABILITY: this is a whole-file presence check, scoped in
+ # .vale-qdoc.ini to a [*-index.qdoc] section, not the general [*.{qdoc,...}]
+ # section, so it only applies to {module}-index.qdoc files -- the real Qt
+ # filename convention for module landing pages (verified against
+ # qtwidgets-index.qdoc, qtcore-index.qdoc, qtxml-index.qdoc in qtbase/qtdeclarative).
+ extends: occurrence
+ message: "This page has no Examples section (see R58)."
+ link: https://doc.qt.io/qt-6/qdoc-guide-writing.html
+ level: warning
+ scope: 'doc(section:has(> h2:contains("Examples")))'
+ token: '(?s).'
+ min: 1