npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@nera-static/plugin-navigation

v2.1.0

Published

A plugin for Nera static site generator to generate navigations with optional templates and mixins.

Readme

@nera-static/plugin-navigation

A plugin for the Nera static site generator to create navigations from config files. Supports mixins and templates for easy rendering.

✨ Features

  • Flexible Navigation Structure: Define one or more navigations via YAML config
  • Template Integration: Access navigation data in your templates (app.nav)
  • Multi-Level Support: Support for multi-level navigations (e.g. main, footer)
  • Built-in Templates: Includes ready-to-use Pug templates and mixins:
    • Pipe-separated links
    • Link lists
    • Mixin-powered flexible layout
  • Active State Management: Automatic active/path highlighting support
  • Zero Runtime: Static navigation structure, no client-side processing
  • Nera v4.1.0 Compatible: Optimized for the latest Nera architecture

🚀 Installation

You can install this plugin by running the following in the root folder of your Nera project:

npm install @nera-static/plugin-navigation

Then create a navigation.yaml file inside your project’s config/ directory:

config/
└── navigation.yaml

Nera will automatically detect the plugin and load your navigation configuration. No additional setup or imports are required.

⚙️ Configuration

Single Navigation

Example navigation/config/navigation.yaml:

elements:
    - href: /index.html
      name: Home
    - href: /service/service.html
      name: Service
    - href: /prices.html
      name: Prices
    - href: /contact.html
      name: Contact
    - href: /about-us/index.html
      name: About us

Access it in your templates via:

app.nav.elements

Multiple Navigations

elements:
    main:
        - href: /index.html
          name: Home
        - href: /service/service.html
          name: Service
    footer:
        - href: /imprint.html
          name: Imprint

Use:

app.nav.main.elements
app.nav.footer.elements

Each element has: href, name, path.

🧩 Rendering Options

Custom Rendering

Use the app.nav.*.elements arrays in your templates manually or via your own loops.

Built-in Templates

If you like to, include one of the built-in templates in views/:

include ../../src/plugins/navigation/views/simple-navigation

Other available templates:

  • pipe-separated-navigation.pug
  • link-list-navigation.pug

Built-in Mixins

If using multiple navigations, use the mixins in views/mixins/:

include ../../src/plugins/navigation/views/mixins/pipe-separated-navigation

+pipeSeparatedNav(app.nav.main.elements, app.nav.main.className)

The optional nav_class value can be set in the YAML config.

🧪 Development

npm install
npm run test

🎨 CSS Classes (BEM Methodology)

The generated HTML uses BEM (Block Element Modifier) CSS classes for consistent styling:

/* Navigation Block */
.nav {
    /* Main navigation container */
}

/* Navigation Elements */
.nav__list {
    /* Navigation list container */
}
.nav__item {
    /* Individual navigation item */
}
.nav__item--inline {
    /* Inline item modifier */
}
.nav__link {
    /* Navigation link */
}
.nav__separator {
    /* Pipe separator element */
}

/* Navigation Modifiers */
.nav__link--active {
    /* Currently active link */
}
.nav__link--active-path {
    /* Parent path link */
}

📋 Version History

All changes are documented in CHANGELOG.md.

🧑‍💻 Author

Michael Becker
https://github.com/seebaermichi

🔗 Links

📦 License

MIT