middleman-pagegroups 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/CHANGELOG.md +6 -0
- data/Gemfile +18 -0
- data/LICENSE.md +22 -0
- data/README.md +87 -0
- data/Rakefile +10 -0
- data/bin/middleman-pagegroups +108 -0
- data/documentation_project/.gitignore +25 -0
- data/documentation_project/Gemfile +18 -0
- data/documentation_project/README.md +13 -0
- data/documentation_project/config.rb +109 -0
- data/documentation_project/source/documentation/10_concepts.html.md.erb +111 -0
- data/documentation_project/source/documentation/20_directory_organization.html.md.erb +85 -0
- data/documentation_project/source/documentation/30_frontmatter.html.md.erb +70 -0
- data/documentation_project/source/documentation/40_resources.html.md.erb +79 -0
- data/documentation_project/source/documentation/50_helpers.html.md.erb +252 -0
- data/documentation_project/source/documentation/60_sample_partials.html.md.erb +55 -0
- data/documentation_project/source/documentation/70_sample_layouts.html.md.erb +92 -0
- data/documentation_project/source/documentation/80_config.html.md.erb +98 -0
- data/documentation_project/source/documentation/index.html.md.erb +32 -0
- data/documentation_project/source/documentation/ovum.html.md.erb +27 -0
- data/documentation_project/source/fonts/font-awesome/FontAwesome.otf +0 -0
- data/documentation_project/source/fonts/font-awesome/fontawesome-webfont.eot +0 -0
- data/documentation_project/source/fonts/font-awesome/fontawesome-webfont.svg +655 -0
- data/documentation_project/source/fonts/font-awesome/fontawesome-webfont.ttf +0 -0
- data/documentation_project/source/fonts/font-awesome/fontawesome-webfont.woff +0 -0
- data/documentation_project/source/fonts/font-awesome/fontawesome-webfont.woff2 +0 -0
- data/documentation_project/source/images/middleman-pagegroups-small.png +0 -0
- data/documentation_project/source/images/middleman-pagegroups.png +0 -0
- data/documentation_project/source/index.html.md.erb +39 -0
- data/documentation_project/source/javascripts/all.js +1 -0
- data/documentation_project/source/layouts/layout.haml +11 -0
- data/documentation_project/source/layouts/template-logo-large.haml +25 -0
- data/documentation_project/source/layouts/template-logo-medium.haml +26 -0
- data/documentation_project/source/layouts/template-logo-small.haml +26 -0
- data/documentation_project/source/license.html.md.erb +29 -0
- data/documentation_project/source/partials/_nav_breadcrumbs.haml +11 -0
- data/documentation_project/source/partials/_nav_breadcrumbs_alt.haml +15 -0
- data/documentation_project/source/partials/_nav_brethren.haml +18 -0
- data/documentation_project/source/partials/_nav_brethren_index.haml +14 -0
- data/documentation_project/source/partials/_nav_legitimate_children.haml +16 -0
- data/documentation_project/source/partials/_nav_prev_next.haml +21 -0
- data/documentation_project/source/partials/_nav_toc_index.haml +21 -0
- data/documentation_project/source/stylesheets/_github.scss +61 -0
- data/documentation_project/source/stylesheets/_middlemac_minimal.scss +668 -0
- data/documentation_project/source/stylesheets/_normalize.scss +374 -0
- data/documentation_project/source/stylesheets/breadcrumb-separator-light.png +0 -0
- data/documentation_project/source/stylesheets/style.css.scss +3 -0
- data/documentation_project/source/toc.html.md.erb +26 -0
- data/lib/middleman-pagegroups/extension.rb +431 -0
- data/lib/middleman-pagegroups/partials.rb +173 -0
- data/lib/middleman-pagegroups/version.rb +5 -0
- data/lib/middleman-pagegroups.rb +6 -0
- data/middleman-pagegroups.gemspec +26 -0
- metadata +140 -0
Binary file
|
Binary file
|
@@ -0,0 +1,39 @@
|
|
1
|
+
---
|
2
|
+
title: Welcome to <code>middleman-pagegroups</code>
|
3
|
+
blurb: <em>middleman-pageGroups</em> is a great way to serve organized content.
|
4
|
+
layout: template-logo-large
|
5
|
+
navigate: false
|
6
|
+
---
|
7
|
+
|
8
|
+
# <%= current_page.data.title %>
|
9
|
+
|
10
|
+
Thanks for having a look at `middlemac-pagegroups`! This documentation is an
|
11
|
+
example of “eating your own dog food,” and uses the features of this extension
|
12
|
+
to demonstrate itself.
|
13
|
+
|
14
|
+
`middleman-pagegroups` principally enables **automatic navigation** via the
|
15
|
+
management of **sort order**, **groups** (including nested groups), and making
|
16
|
+
a determination about the **legitimacy** of these relationships.
|
17
|
+
|
18
|
+
It provides sample partials to enable **breadcrumbs**, **previous** and
|
19
|
+
**next** buttons, **tables of contents**, and **related pages**, all using the
|
20
|
+
concepts that enable automatic navigation.
|
21
|
+
|
22
|
+
The extension itself is quite simple; it adds a few methods to each resource
|
23
|
+
(those that you access with `current_page`, as well as several helpers, and if
|
24
|
+
you prefer to use partials, `middleman-pagegroups` can even generate some sample
|
25
|
+
partials for you.
|
26
|
+
|
27
|
+
* * *
|
28
|
+
|
29
|
+
<%= nav_legitimate_children %>
|
30
|
+
|
31
|
+
* * *
|
32
|
+
|
33
|
+
The table of contents above is the result of using the `nav_legitimate_children`
|
34
|
+
helper; all of the data comes automatically from the front matter of the files
|
35
|
+
that are part of this `source` group.
|
36
|
+
|
37
|
+
~~~ erb
|
38
|
+
<%%= nav_legitimate_children %>
|
39
|
+
~~~
|
@@ -0,0 +1 @@
|
|
1
|
+
// This is where it all goes :)
|
@@ -0,0 +1,11 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html
|
3
|
+
%head
|
4
|
+
%title= current_page.data.title || 'middleman-targets'
|
5
|
+
%meta{:content => 'text/html; charset=utf-8', :'http-equiv' => 'Content-Type'}/
|
6
|
+
= stylesheet_link_tag 'style'
|
7
|
+
= javascript_include_tag 'all'
|
8
|
+
%body{:class => "#{page_classes}"}
|
9
|
+
%nav#breadcrumbs
|
10
|
+
= nav_breadcrumbs_alt
|
11
|
+
= yield
|
@@ -0,0 +1,25 @@
|
|
1
|
+
= wrap_layout ('layout'.to_sym) do
|
2
|
+
.container-logo-large
|
3
|
+
%div
|
4
|
+
%div
|
5
|
+
= image_tag 'middleman-pagegroups-small.png', :alt => 'middleman-pagegroups logo'
|
6
|
+
%h1= "#{product_name}"
|
7
|
+
%h2= "version #{product_version}"
|
8
|
+
%a{:href => product_uri}= product_uri
|
9
|
+
|
10
|
+
- if content_for?(:seeAlso)
|
11
|
+
.related_topics
|
12
|
+
%h1 See Also
|
13
|
+
= yield_content :seeAlso
|
14
|
+
|
15
|
+
%div
|
16
|
+
.yield-content
|
17
|
+
~ yield
|
18
|
+
- if current_page.navigator_eligible?
|
19
|
+
%hr
|
20
|
+
= nav_prev_next
|
21
|
+
|
22
|
+
-#
|
23
|
+
This template is suitable for your landing page or major sections, and features
|
24
|
+
a large version of your logo, the application name, and the application URI.
|
25
|
+
It can include optional :seeAlso content below the application URI.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
= wrap_layout ('layout'.to_sym) do
|
2
|
+
.container-logo-medium
|
3
|
+
%div
|
4
|
+
.yield-content
|
5
|
+
~ yield
|
6
|
+
- if current_page.navigator_eligible?
|
7
|
+
%hr
|
8
|
+
= nav_prev_next
|
9
|
+
|
10
|
+
%div
|
11
|
+
%div
|
12
|
+
= image_tag 'middleman-pagegroups-small.png', :alt => 'middleman-pagegroups logo'
|
13
|
+
.related_topics
|
14
|
+
%h1 Related Topics
|
15
|
+
= nav_brethren_index
|
16
|
+
|
17
|
+
- if content_for?(:seeAlso)
|
18
|
+
%h1 See Also
|
19
|
+
= yield_content :seeAlso
|
20
|
+
|
21
|
+
-#
|
22
|
+
This template is suitable for general pages within a group, as it makes
|
23
|
+
navigation between the different pages in the group obvious and easy. It
|
24
|
+
features a medium version of your logo on the right, followed by navigation
|
25
|
+
to the other pages in the group. Optionally :seeAlso content can follow the
|
26
|
+
related pages.
|
@@ -0,0 +1,26 @@
|
|
1
|
+
= wrap_layout ('layout'.to_sym) do
|
2
|
+
.container-logo-small
|
3
|
+
.yield-content
|
4
|
+
= image_tag 'middleman-pagegroups-small.png', :alt => 'middleman-pagegroups logo'
|
5
|
+
~ yield
|
6
|
+
- if current_page.navigator_eligible?
|
7
|
+
%hr
|
8
|
+
= nav_prev_next
|
9
|
+
|
10
|
+
- if !current_page.brethren.to_a.empty? || content_for?(:seeAlso)
|
11
|
+
%hr/
|
12
|
+
|
13
|
+
.related_topics
|
14
|
+
%h1 Related Topics
|
15
|
+
= nav_brethren_index
|
16
|
+
|
17
|
+
- if content_for?(:seeAlso)
|
18
|
+
%h1 See Also
|
19
|
+
= yield_content :seeAlso
|
20
|
+
|
21
|
+
-#
|
22
|
+
This template is suitable for general pages that aren’t meant to participate
|
23
|
+
within a group. It does show related pages followed by :seeAlso content at
|
24
|
+
the bottom on the page, but it’s not as obvious for simple navigation as the
|
25
|
+
template-logo-medium. It features a small version of your help logo in the
|
26
|
+
top left, followed by the title.
|
@@ -0,0 +1,29 @@
|
|
1
|
+
---
|
2
|
+
title: The MIT License
|
3
|
+
blurb: Describes your legal rights and obligations for using these materials.
|
4
|
+
layout: template-logo-medium
|
5
|
+
order: 40
|
6
|
+
navigate: false
|
7
|
+
---
|
8
|
+
|
9
|
+
# <%= current_page.data.title %>
|
10
|
+
|
11
|
+
**Copyright (c) 2016 Jim Derry**
|
12
|
+
|
13
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
14
|
+
of this software and associated documentation files (the "Software"), to deal
|
15
|
+
in the Software without restriction, including without limitation the rights
|
16
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
17
|
+
copies of the Software, and to permit persons to whom the Software is
|
18
|
+
furnished to do so, subject to the following conditions:
|
19
|
+
|
20
|
+
The above copyright notice and this permission notice shall be included in
|
21
|
+
all copies or substantial portions of the Software.
|
22
|
+
|
23
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
24
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
25
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
26
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
27
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
28
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
29
|
+
THE SOFTWARE.
|
@@ -0,0 +1,11 @@
|
|
1
|
+
- pages = current_page.breadcrumbs
|
2
|
+
- unless pages.to_a.empty?
|
3
|
+
%div{:class => (defined?(klass) && klass) || nav_breadcrumbs_class}
|
4
|
+
%ul
|
5
|
+
- pages.each do |p|
|
6
|
+
%li= link_to p.data.title, p
|
7
|
+
|
8
|
+
-#
|
9
|
+
- This partial renders links into an <ul>.
|
10
|
+
- You probably need a class in order to render this properly.
|
11
|
+
- :klass - pass in this local to specify a class for the containing div.
|
@@ -0,0 +1,15 @@
|
|
1
|
+
- pages = current_page.breadcrumbs
|
2
|
+
- unless pages.to_a.empty?
|
3
|
+
%div{:class => (defined?(klass) && klass) || nav_breadcrumbs_alt_class}
|
4
|
+
%ul
|
5
|
+
- pages[0...pages.count-1].each do |p|
|
6
|
+
%li= link_to p.data.title, p
|
7
|
+
%li= (defined?(label) && label) || nav_breadcrumbs_alt_label
|
8
|
+
|
9
|
+
-#
|
10
|
+
- This partial renders links into an <ul>.
|
11
|
+
- You probably need a class in order to render this properly.
|
12
|
+
- This alternate version replaces the last link with the extension's
|
13
|
+
`nav_breadcrumbs_alt_label` value.
|
14
|
+
- :label - pass in this local instead of using the default.
|
15
|
+
- :klass - pass in this local to specify a class for the containing div.
|
@@ -0,0 +1,18 @@
|
|
1
|
+
- commence = (defined?(start) && start) || current_page
|
2
|
+
- pages = commence.brethren
|
3
|
+
- unless pages.to_a.empty?
|
4
|
+
%div{:class => (defined?(klass) && klass) || nav_brethren_class}
|
5
|
+
%dl
|
6
|
+
- pages.each do |p|
|
7
|
+
%dt<
|
8
|
+
= link_to p.data.title, p
|
9
|
+
- if p.data.blurb
|
10
|
+
%dd= p.data.blurb
|
11
|
+
|
12
|
+
-#
|
13
|
+
- This partial renders links with blurbs into a <dl> to serve as
|
14
|
+
a related links table of contents.
|
15
|
+
- You probably need a class in order to render this properly.
|
16
|
+
- For a compact form without blurbs, see also `_nav_brethren_index.haml.
|
17
|
+
- :klass - pass in this local to specify a class for the containing div.
|
18
|
+
- :start - pass in this local to specify a different starting point.
|
@@ -0,0 +1,14 @@
|
|
1
|
+
- commence = (defined?(start) && start) || current_page
|
2
|
+
- pages = commence.brethren
|
3
|
+
- unless pages.to_a.empty?
|
4
|
+
%div{:class => (defined?(klass) && klass) || nav_brethren_index_class}
|
5
|
+
%ul
|
6
|
+
- pages.each do |p|
|
7
|
+
%li= link_to p.data.title, p
|
8
|
+
|
9
|
+
-#
|
10
|
+
This partial renders brethren into an <ul> to serve as a related-pages type
|
11
|
+
of table of contents.
|
12
|
+
- You probably need a class in order to render this properly.
|
13
|
+
- :klass - pass in this local to specify a class for the containing div.
|
14
|
+
- :start - pass in this local to specify a different starting point.
|
@@ -0,0 +1,16 @@
|
|
1
|
+
- commence = (defined?(start) && start) || current_page
|
2
|
+
- pages = commence.legitimate_children
|
3
|
+
- unless pages.to_a.empty?
|
4
|
+
%div{:class => (defined?(klass) && klass) || nav_legitimate_children_class}
|
5
|
+
%dl
|
6
|
+
- pages.each do |p|
|
7
|
+
%dt= link_to p.data.title, p
|
8
|
+
- if p.data.blurb
|
9
|
+
%dd= p.data.blurb
|
10
|
+
|
11
|
+
-#
|
12
|
+
This partial renders links with blurbs into a <dl> to serve as a high-level
|
13
|
+
table of contents.
|
14
|
+
- You probably need a class in order to render this properly.
|
15
|
+
- :klass - pass in this local to specify a class for the containing div.
|
16
|
+
- :start - pass in this local to specify a different starting point.
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- p_prev = current_page.brethren_previous
|
2
|
+
- p_next = current_page.brethren_next
|
3
|
+
- b_prev = (defined?(label_previous) && label_previous) || nav_prev_next_label_prev
|
4
|
+
- b_next = (defined?(label_next) && label_next) || nav_prev_next_label_next
|
5
|
+
%div{:class => (defined?(klass) && klass) || nav_prev_next_class}
|
6
|
+
- if p_prev.nil?
|
7
|
+
%span= b_prev
|
8
|
+
- else
|
9
|
+
= link_to b_prev, p_prev
|
10
|
+
- if p_next.nil?
|
11
|
+
%span= b_next
|
12
|
+
- else
|
13
|
+
= link_to b_next, p_next
|
14
|
+
|
15
|
+
-#
|
16
|
+
This partial renders a div with two spans that are suitable for use as
|
17
|
+
previous and next buttons when properly styled.
|
18
|
+
- You probably need a class in order to render this properly.
|
19
|
+
- :klass - pass in this local to specify a class for the containing div.
|
20
|
+
- :label_previous - the label for the Previous button. Default is "Previous".
|
21
|
+
- :label_next - the label for the Next button. Default is "Next".
|
@@ -0,0 +1,21 @@
|
|
1
|
+
- commence = (defined?(start) && start) || current_page
|
2
|
+
- pages = commence.legitimate_children
|
3
|
+
- if defined?(recurse) && recurse
|
4
|
+
- unless pages.to_a.empty?
|
5
|
+
%ul
|
6
|
+
- pages.each do |p|
|
7
|
+
%li<
|
8
|
+
= link_to p.data.title, p
|
9
|
+
= partial 'partials/toc_index', :locals => { :start => p, :recurse => true }
|
10
|
+
- else
|
11
|
+
%ul{:class => (defined?(klass) && klass) || nav_toc_index_class}
|
12
|
+
%li<
|
13
|
+
= link_to commence.data.title, commence
|
14
|
+
= partial 'partials/toc_index', :locals => { :start => commence, :recurse => true }
|
15
|
+
|
16
|
+
-#
|
17
|
+
- This partial renders nested links into an <ul>. The top level item is the
|
18
|
+
start page followed by the entire directory structure below it.
|
19
|
+
- You probably need a class in order to render this properly.
|
20
|
+
- :start - pass in this local to specify the starting page.
|
21
|
+
- :klass - pass in this local to specify a class for the containing div.
|
@@ -0,0 +1,61 @@
|
|
1
|
+
.hll { background-color: #ffffcc }
|
2
|
+
.c { color: #999988; font-style: italic } /* Comment */
|
3
|
+
.err { color: #a61717; background-color: #e3d2d2 } /* Error */
|
4
|
+
.k { color: #000000; font-weight: bold } /* Keyword */
|
5
|
+
.o { color: #000000; font-weight: bold } /* Operator */
|
6
|
+
.cm { color: #999988; font-style: italic } /* Comment.Multiline */
|
7
|
+
.cp { color: #999999; font-weight: bold; font-style: italic } /* Comment.Preproc */
|
8
|
+
.c1 { color: #999988; font-style: italic } /* Comment.Single */
|
9
|
+
.cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
|
10
|
+
.gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
|
11
|
+
.ge { color: #000000; font-style: italic } /* Generic.Emph */
|
12
|
+
.gr { color: #aa0000 } /* Generic.Error */
|
13
|
+
.gh { color: #999999 } /* Generic.Heading */
|
14
|
+
.gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
|
15
|
+
.go { color: #888888 } /* Generic.Output */
|
16
|
+
.gp { color: #555555 } /* Generic.Prompt */
|
17
|
+
.gs { font-weight: bold } /* Generic.Strong */
|
18
|
+
.gu { color: #aaaaaa } /* Generic.Subheading */
|
19
|
+
.gt { color: #aa0000 } /* Generic.Traceback */
|
20
|
+
.kc { color: #000000; font-weight: bold } /* Keyword.Constant */
|
21
|
+
.kd { color: #000000; font-weight: bold } /* Keyword.Declaration */
|
22
|
+
.kn { color: #000000; font-weight: bold } /* Keyword.Namespace */
|
23
|
+
.kp { color: #000000; font-weight: bold } /* Keyword.Pseudo */
|
24
|
+
.kr { color: #000000; font-weight: bold } /* Keyword.Reserved */
|
25
|
+
.kt { color: #445588; font-weight: bold } /* Keyword.Type */
|
26
|
+
.m { color: #009999 } /* Literal.Number */
|
27
|
+
.s { color: #d01040 } /* Literal.String */
|
28
|
+
.na { color: #008080 } /* Name.Attribute */
|
29
|
+
.nb { color: #0086B3 } /* Name.Builtin */
|
30
|
+
.nc { color: #445588; font-weight: bold } /* Name.Class */
|
31
|
+
.no { color: #008080 } /* Name.Constant */
|
32
|
+
.nd { color: #3c5d5d; font-weight: bold } /* Name.Decorator */
|
33
|
+
.ni { color: #800080 } /* Name.Entity */
|
34
|
+
.ne { color: #990000; font-weight: bold } /* Name.Exception */
|
35
|
+
.nf { color: #990000; font-weight: bold } /* Name.Function */
|
36
|
+
.nl { color: #990000; font-weight: bold } /* Name.Label */
|
37
|
+
.nn { color: #555555 } /* Name.Namespace */
|
38
|
+
.nt { color: #000080 } /* Name.Tag */
|
39
|
+
.nv { color: #008080 } /* Name.Variable */
|
40
|
+
.ow { color: #000000; font-weight: bold } /* Operator.Word */
|
41
|
+
.w { color: #bbbbbb } /* Text.Whitespace */
|
42
|
+
.mf { color: #009999 } /* Literal.Number.Float */
|
43
|
+
.mh { color: #009999 } /* Literal.Number.Hex */
|
44
|
+
.mi { color: #009999 } /* Literal.Number.Integer */
|
45
|
+
.mo { color: #009999 } /* Literal.Number.Oct */
|
46
|
+
.sb { color: #d01040 } /* Literal.String.Backtick */
|
47
|
+
.sc { color: #d01040 } /* Literal.String.Char */
|
48
|
+
.sd { color: #d01040 } /* Literal.String.Doc */
|
49
|
+
.s2 { color: #d01040 } /* Literal.String.Double */
|
50
|
+
.se { color: #d01040 } /* Literal.String.Escape */
|
51
|
+
.sh { color: #d01040 } /* Literal.String.Heredoc */
|
52
|
+
.si { color: #d01040 } /* Literal.String.Interpol */
|
53
|
+
.sx { color: #d01040 } /* Literal.String.Other */
|
54
|
+
.sr { color: #009926 } /* Literal.String.Regex */
|
55
|
+
.s1 { color: #d01040 } /* Literal.String.Single */
|
56
|
+
.ss { color: #990073 } /* Literal.String.Symbol */
|
57
|
+
.bp { color: #999999 } /* Name.Builtin.Pseudo */
|
58
|
+
.vc { color: #008080 } /* Name.Variable.Class */
|
59
|
+
.vg { color: #008080 } /* Name.Variable.Global */
|
60
|
+
.vi { color: #008080 } /* Name.Variable.Instance */
|
61
|
+
.il { color: #009999 } /* Literal.Number.Integer.Long */
|