Generate your entire Perspective navigation from one configuration file — YAML or JSON drives nested menus, icons, breadcrumbs, and page titles that stay in sync on every publish.
Author: EdenOaks Consulting
Maintainer: Matt McPheeters
One session property, configFileMenu.contentSource, drives the docked menu, the top-bar
breadcrumbs, and the page title.
Config File Menu turns your Perspective navigation into data you can generate and maintain outside Designer. Define labels, icons, routes, nested sections, and optional role visibility once in configFileMenu.contentSource; the docked side menu, top-bar breadcrumbs, and sample page titles are built from that same definition at runtime.
Advantages of configuration-file menu generation:
- Single source of truth — One parameter drives the dock, breadcrumbs, and titles; no per-link embeds to keep aligned.
- Fast iteration — Add sites, reorder sections, or change icons by editing text, then publish.
- Version-control friendly — Store menu structure in git alongside your project, or generate it from templates and scripts.
- Portable authoring — Start from sample YAML/JSON, convert between formats in Settings, or produce config from external tooling.
- No runtime dependencies — No database, custom modules, or Python libraries required.
| Capability | Detail |
|---|---|
| Config-driven menu | Edit configFileMenu.contentSource — YAML-lite or JSON |
| Deep nesting | Multi-level children with icons at every level |
| Smart breadcrumbs | Top bar resolves paths from the same menu config |
| Responsive docks | Push/cover modes, pin, hamburger open/close |
| Settings hub | In-session preferences, YAML→JSON converter, built-in help |
| Host integration | Advanced Stylesheet ships with library import (Ignition 8.3+) |
| Site + sample packages | Site zip for production; sample zip for evaluation |
- Download
config-file-menu-library.zipplus one child zip from the latest release. - Import
config-file-menu-library.zipfirst. - Choose a child:
- Import
config-file-menu-sample.zipto learn with a working reference project. - Import
config-file-menu-site.zipto start a blank production site.
- Import
- Set Session Properties theme to
lightordark. - For the sample, launch
/cfm/dashboard.
For zip-first customization, see DEPLOYMENT.md.
Full installation, host-project merge steps, and troubleshooting: Config_File_Menu/README.md
menu:
items:
- label: Dashboard
icon: material/home
target: /cfm/dashboard
- label: Areas
icon: material/account_tree
target: /cfm/areas
children:
- label: Area 01
icon: material/location_city
target: /cfm/areas/area-01
children:
- label: Line 01
icon: material/precision_manufacturing
target: /cfm/areas/area-01/line-01Set contentSourceType to yaml or json. Every target needs a matching route in page-config/config.json. Samples:
menuSampleConfig.yaml · menuSampleConfig.json
Security note: Menu visibility by role is a convenience only. Always enforce access control on destination Perspective pages, views, or actions.
Dock behavior — hamburger open/close, expanding a nested section, breadcrumbs updating on navigation, pin, push/cover, and click-outside close.
Nested menu and breadcrumbs — multi-level tree with icons at every level; the top-bar trail and page title resolve from the same config.
Tag → Menu generator — browse a tag path and generate a menu branch to paste into
contentSource, one of five Settings tabs.
Light and dark — the same page under both session themes.
| Ignition | 8.3.0+ (Perspective 3.3+) |
| Modules | Perspective |
| Database / tags | None |
| Maker Edition | Compatible where Perspective is available |
Evaluate the sample — Import library + sample, set theme to light, explore reference routes and Diagnostics.
Deploy a site — Import library + site zip; customize in the zip before import (DEPLOYMENT.md).
Add to an existing project — Import views, merge shared docks and page routes, confirm Advanced Stylesheet is enabled, set Session Properties theme to light/dark or your custom gateway theme, configure configFileMenu.contentSource.
See DESIGNER_IMPORT_CHECKLIST.md before publishing to production.
| Path | Purpose |
|---|---|
Config_File_Menu/ |
Perspective project source (library manifest in working tree) |
dist/ |
Local build output — zips are built here, then published to Releases |
Import zips are attached to each release, not committed to the repository:
| Release asset | Purpose |
|---|---|
config-file-menu-library.zip |
Inheritable library import (views, docks, Advanced Stylesheet) — import first |
config-file-menu-site.zip |
Site deployment child (empty menu, editable logos) |
config-file-menu-sample.zip |
Sample child (reference routes + menu config) |
To build them yourself: python Config_File_Menu/scripts/build-inheritance-zips.py
Config File Menu is original work by EdenOaks Consulting, maintained by Matt McPheeters, and licensed under MIT.
Inspired by Artek Responsive Navigation (concept only; no Artek source included). Includes an adapted Diagnostics Dashboard by Travis Cox. Details: ATTRIBUTION.md.
| Document | Contents |
|---|---|
| Deployment | Zip-first site deployment, logos, Settings tools |
| Overview | Short introduction for Exchange downloaders |
| Technical README | Configuration, docks, theming, troubleshooting |
| Import checklist | Pre-publish verification |
| Changelog | Release history |




