<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://edfieldmanual.com/index.php?action=history&amp;feed=atom&amp;title=Elite_Dangerous_Field_Manual%3APage_section_resolution</id>
	<title>Elite Dangerous Field Manual:Page section resolution - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://edfieldmanual.com/index.php?action=history&amp;feed=atom&amp;title=Elite_Dangerous_Field_Manual%3APage_section_resolution"/>
	<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;action=history"/>
	<updated>2026-08-25T13:01:19Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2124&amp;oldid=prev</id>
		<title>Sythan: Document linked primary secondary content-type eyebrow resolver</title>
		<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2124&amp;oldid=prev"/>
		<updated>2026-08-24T22:04:03Z</updated>

		<summary type="html">&lt;p&gt;Document linked primary secondary content-type eyebrow resolver&lt;/p&gt;
&lt;a href=&quot;https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;amp;diff=2124&amp;amp;oldid=2116&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Sythan</name></author>
	</entry>
	<entry>
		<id>https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2116&amp;oldid=prev</id>
		<title>Sythan: Document two-dimensional article eyebrow context resolution</title>
		<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2116&amp;oldid=prev"/>
		<updated>2026-08-24T21:43:28Z</updated>

		<summary type="html">&lt;p&gt;Document two-dimensional article eyebrow context resolution&lt;/p&gt;
&lt;a href=&quot;https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;amp;diff=2116&amp;amp;oldid=2108&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Sythan</name></author>
	</entry>
	<entry>
		<id>https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2108&amp;oldid=prev</id>
		<title>Sythan: Document centralized article eyebrow section resolution</title>
		<link rel="alternate" type="text/html" href="https://edfieldmanual.com/index.php?title=Elite_Dangerous_Field_Manual:Page_section_resolution&amp;diff=2108&amp;oldid=prev"/>
		<updated>2026-08-24T21:31:32Z</updated>

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