Skip to content
This repository has been archived by the owner on Mar 6, 2020. It is now read-only.

strathmeyer/middleman-listpages

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SECURITY ALERT

This repo has been archived because it uses insecure versions of the yard gem and rake gem.

Do NOT run the code in this repo. Use it only as an example.

middleman-listpages

middleman-listpages is an extension for the Middleman static site generator that adds the ability to list the child pages of a given page.

Install

Add middleman-listpages to your Gemfile

gem "middleman-listpages", "~> 0.0.2"

Then open your config.rb and add:

activate :listpages

Usage

To display all pages:

<%= list_pages %>

This will generate HTML like this (assuming "Apples" is the current page):

<ul>
  <li class='active'><a href="/apples/">Apples</a></li>
  <li>
    <a href="/oranges/">Oranges</a>
    <ul>
      <li><a href="/oranges/navel/">Navel Oranges</a></li>
      <li><a href="/oranges/clementine/">Clementine Oranges</a></li>
    </ul>
  </li>
</ul>

To display all children of current page:

<%= list_pages current_page %>

You can use the :depth option to specify how many levels deep to display:

<%= list_pages current_page, :depth => 1 %>

If you want to use options when displaying the root page, pass nil as the first agrument:

<%= list_pages nil, :depth => 1 %>

To display the root page as well:

<%= list_pages nil, :include_root => true %>

This will generate:

<ul>
  <li><a href="/index.html">Index Page Title</a>
  <li class='active'><a href="/apples/">Apples</a></li>
  <li>
    <a href="/oranges/">Oranges</a>
    <ul>
      <li><a href="/oranges/navel/">Navel Oranges</a></li>
      <li><a href="/oranges/clementine/">Clementine Oranges</a></li>
    </ul>
  </li>
</ul>

This will generate HTML like this (assuming "Apples" is the current page):

<ul>
  <li class='active'><a href="/apples/">Apples</a></li>
  <li><a href="/oranges/">Oranges</a></li>
</ul>

To display all children of a specific page:

<%= list_pages sitemap.find_resource_by_destination_path('index.html') %>

CSS

The code will apply an .active class to the LI that represents the current page. Since you might have sub LIs inside that, you'll probably want to reset the CSS of the inner LIs via something like this:

li, li.active li {
    font-weight: normal;
}

li.active {
    font-weight: bold;
}

About

Extension for Middleman to list pages.

Resources

Stars

Watchers

Forks

Packages

No packages published