Elite Dangerous Field Manual:Page section resolution
EDFM // Operations
How EDFM resolves article header eyebrows from page context instead of page-title duplication.
EDFM article pages use a centralized section resolver so the eyebrow above the page title answers where in EDFM the reader is, while the H1 answers what page the reader is reading.
Normal output should look like:
EDFM // Ships & Equipment Frame Shift Drive
rather than repeating the page title in the eyebrow.
Normal author workflow
Most pages should use:
{{Article header|deck=Optional one-line page summary.}}
Do not normally set an eyebrow manually. The header calls Module:PageContext, which resolves the section automatically from structured data and central rules.
Resolution order
The resolver checks, in order:
- Explicit override —
. Use only when the central resolver cannot reasonably infer the section.EDFM // Combat
- Exact central section mappings — section and hub pages such as Engineering, Mining, Powerplay, and Ships and Equipment.
- Structured page/content type — existing canonical data/index pages, including Engineers, ship modules, mining datasets, and field-procedure datasets.
- Page-family rules — conservative families such as
Unlocking ...andHow to ..., which resolve to Field Procedures. - Limited topic-family rules — documented conservative title-family signals such as Guardian, Thargoid/Xeno, and AX naming.
- Fallback — unknown pages resolve to
Reference.
Structured type mappings
Structured page type mappings live in Module:Data/PageSections. Current mappings include:
- Engineer pages from
Module:Data/Engineers/index→ Engineering - Ship module pages from
Module:Data/ShipModules/indexandModule:Data/Modules/index→ Ships & Equipment - Guardian module pages identified through the module index and Guardian naming → Guardian Technology
- Thargoid/Xeno/AX module pages identified through the module index and xeno naming → Thargoids
- Mining method/equipment/location/commodity datasets → Mining
- Mining procedure dataset pages → Field Procedures
If EDFM adds a new canonical dataset, add a lightweight detector in Module:PageContext and map the resulting type in Module:Data/PageSections. Do not duplicate every individual page into a hand-maintained lookup table.
Page-family rules
Page-family rules are centralized in Module:Data/PageSections. They are for predictable editorial families that may not have a complete structured dataset yet.
Current examples:
Unlocking ...→ Field ProceduresHow to ...→ Field Procedures
Keep these conservative. Do not add fuzzy keyword guessing.
Exceptional overrides
Use an article-level override only when a page is intentionally cross-topic or cannot be identified cleanly from data/rules:
{{Article header
|section=Operations
|deck=Optional one-line summary.
}}
If many pages require overrides, improve the structured data or page-family rules instead.
Adding a primary section
- Add the section name to
exactSectionsin Module:Data/PageSections for its hub page. - If the section corresponds to a structured dataset, add/adjust a page type detector in Module:PageContext.
- Map the new page type in
typeToSection. - Test with
Referenceand a rendered live page.
Public Lua interface
Module:PageContext exposes:
getPageType— returns a semantic type such asengineerorship_modulewhere known.getSection— returns a plain section name such asShips & Equipment.eyebrow— returns rendered eyebrow text such asEDFM // Ships & Equipmentfor Template:Article header.
Testing
Representative parser tests:
{{#invoke:PageContext|getSection|page=Frame Shift Drive}}
{{#invoke:PageContext|getSection|page=Felicity Farseer}}
{{#invoke:PageContext|getSection|page=Unlocking Broo Tarquin}}
{{#invoke:PageContext|getSection|page=Resolver Sandbox Unknown}}
{{#invoke:PageContext|getSection|page=Frame Shift Drive|section=Combat}}
Then verify rendered pages include exactly one visible eyebrow, retain the semantic H1, and do not show Lua/script errors.