jasper2 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +113 -0
  4. data/_data/authors.yml +76 -0
  5. data/_data/tags.yml +16 -0
  6. data/_includes/analytics.html +11 -0
  7. data/_includes/author_pagination.html +13 -0
  8. data/_includes/dynamic_tag_info.html +8 -0
  9. data/_includes/dynamic_title.html +16 -0
  10. data/_includes/facebook.html +1 -0
  11. data/_includes/floating-header.html +28 -0
  12. data/_includes/ghost-logo.html +1 -0
  13. data/_includes/head.html +69 -0
  14. data/_includes/infinity.html +1 -0
  15. data/_includes/location.html +1 -0
  16. data/_includes/navigation.html +6 -0
  17. data/_includes/page-scripts.html +6 -0
  18. data/_includes/point.html +3 -0
  19. data/_includes/post-card-error.html +59 -0
  20. data/_includes/post-card-next.html +53 -0
  21. data/_includes/post-card-previous.html +53 -0
  22. data/_includes/post-card.html +55 -0
  23. data/_includes/post-scripts.html +63 -0
  24. data/_includes/post_pagination.html +13 -0
  25. data/_includes/rss.html +1 -0
  26. data/_includes/site-nav.html +27 -0
  27. data/_includes/subscribe-form.html +9 -0
  28. data/_includes/tag_pagination.html +13 -0
  29. data/_includes/twitter.html +1 -0
  30. data/_includes/website.html +1 -0
  31. data/_layouts/author.html +64 -0
  32. data/_layouts/default.html +139 -0
  33. data/_layouts/error.html +1 -0
  34. data/_layouts/feed.xml +113 -0
  35. data/_layouts/page.html +48 -0
  36. data/_layouts/post.html +196 -0
  37. data/_layouts/tag.html +42 -0
  38. data/_plugins/jekyll-autgenerator.rb +76 -0
  39. data/_plugins/jekyll-capitalize-all.rb +11 -0
  40. data/_plugins/jekyll-tagsgenerator.rb +70 -0
  41. data/_posts/1863-11-19-gettysburg-address.md +18 -0
  42. data/_posts/1865-11-26-down-the-rabbit-hole.md +62 -0
  43. data/_posts/1871-03-18-looking-glass-house.md +41 -0
  44. data/_posts/1912-07-24-out-to-sea.md +88 -0
  45. data/_posts/1948-12-12-the-purpose-of-education.md +26 -0
  46. data/_posts/1963-08-28-i-have-a-dream.md +103 -0
  47. data/_posts/2012-09-01-a-full-and-comprehensive-style-test.html +424 -0
  48. data/_posts/2014-08-12-the-businessman-and-fisherman.md +48 -0
  49. data/_posts/2017-07-27-advanced-markdown.html +57 -0
  50. data/_posts/2017-07-27-managing-users.html +24 -0
  51. data/_posts/2017-07-27-private-sites.html +19 -0
  52. data/_posts/2017-07-27-the-editor.html +55 -0
  53. data/_posts/2017-07-27-themes.html +30 -0
  54. data/_posts/2017-07-27-using-tags.html +41 -0
  55. data/_posts/2017-07-27-welcome.md +28 -0
  56. data/about/index.md +17 -0
  57. data/assets/built/global.css +2 -0
  58. data/assets/built/global.css.map +1 -0
  59. data/assets/built/screen.css +2 -0
  60. data/assets/built/screen.css.map +1 -0
  61. data/assets/built/screen.edited.css +2 -0
  62. data/assets/built/screen.edited.css.map +1 -0
  63. data/assets/built/syntax.css +2 -0
  64. data/assets/built/syntax.css.map +1 -0
  65. data/assets/css/.csscomb.json +237 -0
  66. data/assets/css/csscomb.json +240 -0
  67. data/assets/css/global.css +491 -0
  68. data/assets/css/screen.css +1928 -0
  69. data/assets/css/screen.edited.css +152 -0
  70. data/assets/css/syntax.css +66 -0
  71. data/assets/images/abraham.jpg +0 -0
  72. data/assets/images/advanced.jpg +0 -0
  73. data/assets/images/bear.jpg +0 -0
  74. data/assets/images/blog-cover.jpg +0 -0
  75. data/assets/images/blog-icon.png +0 -0
  76. data/assets/images/bus.jpg +0 -0
  77. data/assets/images/design.jpg +0 -0
  78. data/assets/images/edgar.gif +0 -0
  79. data/assets/images/fables.jpg +0 -0
  80. data/assets/images/favicon.png +0 -0
  81. data/assets/images/ghost-logo.svg +1 -0
  82. data/assets/images/ghost.png +0 -0
  83. data/assets/images/grapes.jpg +0 -0
  84. data/assets/images/hannah-cover.jpg +0 -0
  85. data/assets/images/hannah.jpg +0 -0
  86. data/assets/images/john.jpg +0 -0
  87. data/assets/images/lewis.jpeg +0 -0
  88. data/assets/images/locked.jpg +0 -0
  89. data/assets/images/martin.jpg +0 -0
  90. data/assets/images/piano.jpg +0 -0
  91. data/assets/images/sky.jpg +0 -0
  92. data/assets/images/speeches.jpg +0 -0
  93. data/assets/images/summit.jpg +0 -0
  94. data/assets/images/tags.jpg +0 -0
  95. data/assets/images/team.jpg +0 -0
  96. data/assets/images/water.jpg +0 -0
  97. data/assets/images/waves.jpg +0 -0
  98. data/assets/images/welcome.jpg +0 -0
  99. data/assets/images/writing.jpg +0 -0
  100. data/assets/js/infinitescroll.js +83 -0
  101. data/assets/js/jquery.fitvids.js +89 -0
  102. data/assets/screenshot-desktop.jpg +0 -0
  103. data/assets/screenshot-mobile.jpg +0 -0
  104. metadata +222 -0
@@ -0,0 +1 @@
1
+ {{ content }}
data/_layouts/feed.xml ADDED
@@ -0,0 +1,113 @@
1
+ ---
2
+ layout: null
3
+ ---
4
+ <?xml version="1.0" encoding="utf-8"?>
5
+ {% if page.xsl %}
6
+ <?xml-stylesheet type="text/xml" href="{{ '/feed.xslt.xml' | absolute_url }}"?>
7
+ {% endif %}
8
+ <feed xmlns="http://www.w3.org/2005/Atom" {% if site.lang %}xml:lang="{{ site.lang }}"{% endif %}>
9
+ <generator uri="https://jekyllrb.com/" version="{{ jekyll.version }}">Jekyll</generator>
10
+ <link href="{{ page.url | absolute_url }}" rel="self" type="application/atom+xml" />
11
+ <link href="{{ '/' | absolute_url }}" rel="alternate" type="text/html" {% if site.lang %}hreflang="{{ site.lang }}" {% endif %}/>
12
+ <updated>{{ site.time | date_to_xmlschema }}</updated>
13
+ <id>{{ page.url | absolute_url | xml_escape }}</id>
14
+
15
+ {% assign title = site.title | default: site.name %}
16
+ {% if page.collection != "posts" %}
17
+ {% assign collection = page.collection | capitalize %}
18
+ {% assign title = title | append: " | " | append: collection %}
19
+ {% endif %}
20
+ {% if page.category %}
21
+ {% assign category = page.category | capitalize %}
22
+ {% assign title = title | append: " | " | append: category %}
23
+ {% endif %}
24
+
25
+ {% if title %}
26
+ <title type="html">{{ title | smartify | xml_escape }}</title>
27
+ {% endif %}
28
+
29
+ {% if site.description %}
30
+ <subtitle>{{ site.description | xml_escape }}</subtitle>
31
+ {% endif %}
32
+
33
+ {% if site.author %}
34
+ <author>
35
+ <name>{{ site.author.name | default: site.author | xml_escape }}</name>
36
+ {% if site.author.email %}
37
+ <email>{{ site.author.email | xml_escape }}</email>
38
+ {% endif %}
39
+ {% if site.author.uri %}
40
+ <uri>{{ site.author.uri | xml_escape }}</uri>
41
+ {% endif %}
42
+ </author>
43
+ {% endif %}
44
+
45
+ {% if site.data.authors %}
46
+ {% for author in site.data.authors %}
47
+ {% if author[1].username == post.author %}
48
+ <author>{{ author[1].name | strip_html }}</author>
49
+ <author>
50
+ <name>{{ author[1].name | default: author[1].name | xml_escape }}</name>
51
+ {% if author[1].email %}
52
+ <email>{{ author[1].email | xml_escape }}</email>
53
+ {% endif %}
54
+ {% if author[1].uri %}
55
+ <uri>{{ author[1].uri | xml_escape }}</uri>
56
+ {% endif %}
57
+ </author>
58
+ {% endif %}
59
+ {% endfor %}
60
+ {% endif %}
61
+
62
+ {% assign posts = page.posts %}
63
+ {% if page.category %}
64
+ {% assign posts = posts | where: "category",page.category %}
65
+ {% endif %}
66
+
67
+ {% for post in posts limit: 10 %}
68
+ <entry{% if post.lang %}{{" "}}xml:lang="{{ post.lang }}"{% endif %}>
69
+ <title type="html">{{ post.title | smartify | strip_html | normalize_whitespace | xml_escape }}</title>
70
+ <link href="{{ post.url | absolute_url }}" rel="alternate" type="text/html" title="{{ post.title | xml_escape }}" />
71
+ <published>{{ post.date | date_to_xmlschema }}</published>
72
+ <updated>{{ post.last_modified_at | default: post.date | date_to_xmlschema }}</updated>
73
+ <id>{{ post.id | absolute_url | xml_escape }}</id>
74
+ <content type="html" xml:base="{{ post.url | absolute_url | xml_escape }}">{{ post.content | strip | xml_escape }}</content>
75
+
76
+ {% assign post_author = post.author | default: post.authors[0] | default: site.author %}
77
+ {% assign post_author = site.data.authors[post_author] | default: post_author %}
78
+ {% assign post_author_email = post_author.email | default: nil %}
79
+ {% assign post_author_uri = post_author.uri | default: nil %}
80
+ {% assign post_author_name = post_author.name | default: post_author %}
81
+
82
+ <author>
83
+ <name>{{ post_author_name | default: "" | xml_escape }}</name>
84
+ {% if post_author_email %}
85
+ <email>{{ post_author_email | xml_escape }}</email>
86
+ {% endif %}
87
+ {% if post_author_uri %}
88
+ <uri>{{ post_author_uri | xml_escape }}</uri>
89
+ {% endif %}
90
+ </author>
91
+
92
+ {% if post.category %}
93
+ <category term="{{ post.category | xml_escape }}" />
94
+ {% endif %}
95
+
96
+ {% for tag in post.tags %}
97
+ <category term="{{ tag | xml_escape }}" />
98
+ {% endfor %}
99
+
100
+ {% if post.excerpt and post.excerpt != empty %}
101
+ <summary type="html">{{ post.excerpt | strip_html | normalize_whitespace | xml_escape }}</summary>
102
+ {% endif %}
103
+
104
+ {% assign post_image = post.image.path | default: post.image %}
105
+ {% if post_image %}
106
+ {% unless post_image contains "://" %}
107
+ {% assign post_image = post_image | absolute_url %}
108
+ {% endunless %}
109
+ <media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="{{ post_image | xml_escape }}" />
110
+ {% endif %}
111
+ </entry>
112
+ {% endfor %}
113
+ </feed>
@@ -0,0 +1,48 @@
1
+ ---
2
+ layout: default
3
+ current: page
4
+ class: page-template
5
+ disqus: false
6
+ ---
7
+
8
+ <!-- < default -->
9
+ <!-- The tag above means: insert everything in this file
10
+ into the {body} of the default.hbs template -->
11
+
12
+ <!-- The big featured header, it uses blog cover image as a BG if available -->
13
+ <header class="site-header outer">
14
+ <div class="inner">
15
+ {% include site-nav.html %}
16
+ </div>
17
+ </header>
18
+
19
+ <!-- Everything inside the #post tags pulls data from the post -->
20
+ <!-- #post -->
21
+
22
+ <main id="site-main" class="site-main outer" role="main">
23
+ <div class="inner">
24
+
25
+ <article class="post-full {% if page.tags.size > 0 %}{% for tag in page.tags %} tag-{{ tag | slugify: "latin" }}{% endfor %}{% endif %} {{ page.subclass }} {% unless page.cover %}no-image{% endunless %}">
26
+
27
+ <header class="post-full-header">
28
+ <h1 class="post-full-title">{{ page.title }}</h1>
29
+ </header>
30
+
31
+ {% if page.cover %}
32
+ <figure class="post-full-image" style="background-image: url({{ site.baseurl }}{{ page.cover }})">
33
+ </figure>
34
+ {% endif %}
35
+
36
+ <section class="post-full-content">
37
+ {{ content }}
38
+ </section>
39
+
40
+ </article>
41
+
42
+ </div>
43
+ </main>
44
+
45
+ <!-- /post -->
46
+
47
+ <!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs -->
48
+ {% include page-scripts.html %}
@@ -0,0 +1,196 @@
1
+ ---
2
+ layout: default
3
+ current: post
4
+ class: post-template
5
+ disqus: false
6
+ ---
7
+
8
+ <!-- default -->
9
+
10
+ <!-- The tag above means: insert everything in this file
11
+ into the {body} of the default.hbs template -->
12
+
13
+ <header class="site-header outer">
14
+ <div class="inner">
15
+ {% include site-nav.html %}
16
+ </div>
17
+ </header>
18
+
19
+ <!-- Everything inside the #post tags pulls data from the post -->
20
+ <!-- #post -->
21
+
22
+ <main id="site-main" class="site-main outer" role="main">
23
+ <div class="inner">
24
+
25
+ <article class="post-full {% if page.tags.size > 0 %}{% for tag in page.tags %} tag-{{ tag | slugify: "latin" }}{% endfor %}{% endif %} {{ page.subclass }} {% unless page.cover %}no-image{% endunless %}">
26
+
27
+ <header class="post-full-header">
28
+ <section class="post-full-meta">
29
+ <time class="post-full-meta-date" datetime="{{ page.date | date:'%e %B %Y' }}">{{ page.date | date:'%e %B %Y' }}</time>
30
+ {% if page.tags.size > 0 %}
31
+ <span class="date-divider">/</span>
32
+ {% for tag in page.tags %}
33
+ {% if forloop.index == page.tags.size %}
34
+ <a href='{{ site.baseurl }}tag/{{ tag | slugify: "latin" }}/'>{{ tag | upcase }}</a>
35
+ {% else %}
36
+ <a href='{{ site.baseurl }}tag/{{ tag | slugify: "latin" }}/'>{{ tag | upcase }}</a>,
37
+ {% endif %}
38
+ {% endfor %}
39
+ {% endif %}
40
+ </section>
41
+ <h1 class="post-full-title">{{ page.title }}</h1>
42
+ </header>
43
+
44
+ {% if page.cover %}
45
+ <figure class="post-full-image" style="background-image: url({{ site.baseurl }}{{ page.cover }})">
46
+ </figure>
47
+ {% endif %}
48
+
49
+ <section class="post-full-content">
50
+ <div class="kg-card-markdown">
51
+ {{ content }}
52
+ </div>
53
+ </section>
54
+
55
+ <!-- Email subscribe form at the bottom of the page -->
56
+ {% if site.subscribers %}
57
+ <section class="subscribe-form">
58
+ <h3 class="subscribe-form-title">Subscribe to {{ site.title }}</h3>
59
+ <p>Get the latest posts delivered right to your inbox</p>
60
+ {% include subscribe-form.html placeholder="youremail@example.com" %}
61
+ </section>
62
+ {% endif %}
63
+
64
+ <footer class="post-full-footer">
65
+ <!-- Everything inside the #author tags pulls data from the author -->
66
+ <!-- #author-->
67
+ {% for author in site.data.authors %}
68
+ {% if author[1].username == page.author %}
69
+ <section class="author-card">
70
+ {% if author[1].picture %}
71
+ <img class="author-profile-image" src="{{ site.baseurl }}{{ author[1].picture }}" alt="{{ page.author }}" />
72
+ {% endif %}
73
+ <section class="author-card-content">
74
+ <h4 class="author-card-name"><a href="{{ site.baseurl }}author/{{ page.author }}">{{ author[1].name }}</a></h4>
75
+ {% if author[1].bio %}
76
+ <p>{{ author[1].bio }}</p>
77
+ {% else %}
78
+ <p>Read <a href="{{ site.baseurl }}author/{{ page.author }}">more posts</a> by this author.</p>
79
+ {% endif %}
80
+ </section>
81
+ </section>
82
+ <div class="post-full-footer-right">
83
+ <a class="author-card-button" href="{{ site.baseurl }}author/{{ page.author }}">Read More</a>
84
+ </div>
85
+ {% endif %}
86
+ {% endfor %}
87
+ <!-- /author -->
88
+ </footer>
89
+
90
+ <!-- If you use Disqus comments, just uncomment this block.
91
+ The only thing you need to change is "test-apkdzgmqhj" - which
92
+ should be replaced with your own Disqus site-id. -->
93
+ {% if site.disqus or page.disqus %}
94
+ <section class="post-full-comments">
95
+ <div id="disqus_thread"></div>
96
+ <script>
97
+ var disqus_config = function () {
98
+ this.page.url = '{{ site.url }}{{ page.url }}';
99
+ this.page.identifier = '{{ page.id }}';
100
+ this.page.title = '{{ page.title }}';
101
+ };
102
+ (function() {
103
+ var d = document, s = d.createElement('script');
104
+ s.src = 'https://{{ site.disqus_shortname }}.disqus.com/embed.js';
105
+ s.setAttribute('data-timestamp', +new Date());
106
+ (d.head || d.body).appendChild(s);
107
+ })();
108
+ </script>
109
+ </section>
110
+ {% endif %}
111
+
112
+ </article>
113
+
114
+ </div>
115
+ </main>
116
+
117
+ <!-- Links to Previous/Next posts -->
118
+ <aside class="read-next outer">
119
+ <div class="inner">
120
+ <div class="read-next-feed">
121
+ {% if page.tags.size > 0 %}
122
+ {% assign primary = page.tags | first %}
123
+ {% assign related_posts = 0 %}
124
+ {% for post in site.posts %}
125
+ {% if post.tags.size > 0 %}
126
+ {% if post.tags contains primary %}
127
+ {% assign related_posts = related_posts | plus: 1 %}
128
+ {% endif %}
129
+ {% endif %}
130
+ {% endfor %}
131
+ {% if related_posts > 1 %}
132
+ <article class="read-next-card"
133
+ {% if site.cover %}
134
+ style="background-image: url({{ site.baseurl }}{{ site.cover }})"
135
+ {% else %}
136
+ {% if page.cover %}
137
+ style="background-image: url(url({{ site.baseurl }}{{ page.cover }})"{% endif %}
138
+ {% endif %}
139
+ >
140
+ <header class="read-next-card-header">
141
+ <small class="read-next-card-header-sitetitle">&mdash; {{ site.title }} &mdash;</small>
142
+ {% if primary %}
143
+ <h3 class="read-next-card-header-title"><a href="{{ site.baseurl }}tag/{{ primary | slugify: "latin" }}/">{{ primary | capitalize }}</a></h3>
144
+ {% endif %}
145
+ </header>
146
+ <div class="read-next-divider">{% include infinity.html %}</div>
147
+ <div class="read-next-card-content">
148
+ <ul>
149
+ {% assign count = 0 %}
150
+ {% for post in site.posts %}
151
+ {% if post.tags contains primary %}
152
+ {% if post.title != page.title %}
153
+ {% assign count = count | plus: 1 %}
154
+ {% if count <= 3 %}
155
+ <li><a href="{{ site.baseurl }}{{ post.url | remove_first: '/' }}">{{ post.title }}</a></li>
156
+ {% endif %}
157
+ {% endif %}
158
+ {% endif %}
159
+ {% endfor %}
160
+ </ul>
161
+ </div>
162
+ <footer class="read-next-card-footer">
163
+ <a href="{{ site.baseurl }}tag/{{ primary | slugify: "latin" }}/">
164
+ {% if related_posts > 1 %}
165
+ See all {{ related_posts | minus: 1 }} posts →
166
+ {% elsif related_posts == 1 %}
167
+ {{ related_posts }} post →
168
+ {% else %}
169
+ No posts.
170
+ {% endif %}
171
+ </a>
172
+ </footer>
173
+ </article>
174
+ {% endif %}
175
+ {% endif %}
176
+
177
+ <!-- If there's a next post, display it using the same markup included from - partials/post-card.hbs -->
178
+ {% if page.next %}
179
+ {% include post-card-next.html %}
180
+ {% endif %}
181
+
182
+ <!-- If there's a previous post, display it using the same markup included from - partials/post-card.hbs -->
183
+ {% if page.previous %}
184
+ {% include post-card-previous.html %}
185
+ {% endif %}
186
+
187
+ </div>
188
+ </div>
189
+ </aside>
190
+
191
+ <!-- Floating header which appears on-scroll, included from includes/floating-header.hbs -->
192
+ {% include floating-header.html %}
193
+
194
+ <!-- /post -->
195
+
196
+ <!-- The #contentFor helper here will send everything inside it up to the matching #block helper found in default.hbs -->
data/_layouts/tag.html ADDED
@@ -0,0 +1,42 @@
1
+ ---
2
+ layout: default
3
+ current: tag
4
+ title: Tag Page
5
+ cover: false
6
+ class: 'tag-template'
7
+ navigation: True
8
+ logo: 'assets/images/ghost.png'
9
+ ---
10
+
11
+ <!-- default -->
12
+ <!-- The tag above means - insert everything in this file into the {body} of the default.hbs template -->
13
+
14
+ <!-- The big featured header, it uses blog cover image as a BG if available -->
15
+ <!-- #tag -->
16
+ {% include dynamic_tag_info.html %}
17
+ <header class="site-header outer {% if cover or page.cover %}" style="background-image: url({{ site.baseurl }}{% if cover %}{{ cover }}{% else %}{{ page.cover }}{% endif%}) {% else %}no-cover{% endif %}">
18
+ <div class="inner">
19
+ {% include site-nav.html %}
20
+ <div class="site-header-content">
21
+ <h1 class="site-title">{{ page.tag | capitalizeall }}</h1>
22
+ <h2 class="site-description">
23
+ {% if tag_description %}
24
+ {{ tag_description }}
25
+ {% elsif page.tag %}
26
+ A collection of {{ paginator.total_posts }} posts
27
+ {% endif %}
28
+ </h2>
29
+ </div>
30
+ </div>
31
+ </header>
32
+ <!-- tag -->
33
+
34
+ <!-- The main content area -->
35
+ <main id="site-main" class="site-main outer" role="main">
36
+ <div class="inner">
37
+ <div class="post-feed">
38
+ <!-- The tag below includes the markup for each post - partials/post-card.hbs -->
39
+ {% include post-card.html %}
40
+ </div>
41
+ </div>
42
+ </main>
@@ -0,0 +1,76 @@
1
+ module Jekyll
2
+
3
+ class AuthorsGenerator < Generator
4
+
5
+ safe true
6
+
7
+ def generate(site)
8
+ site.data['authors'].each do |author, data|
9
+ posts = [author, posts_by_author(site, author)]
10
+ build_subpages(site, 'author', posts)
11
+ end
12
+ end
13
+
14
+ def build_subpages(site, type, posts)
15
+ posts[1] = posts[1].sort_by { |p| -p.date.to_f }
16
+ atomize(site, type, posts)
17
+ paginate(site, type, posts)
18
+ end
19
+
20
+ def atomize(site, type, posts)
21
+ path = "/author/#{posts[0]}"
22
+ atom = AtomPageAuthor.new(site, site.source, path, type, posts[0], posts[1])
23
+ site.pages << atom
24
+ end
25
+
26
+ def paginate(site, type, posts)
27
+ pages = Jekyll::Paginate::Pager.calculate_pages(posts[1], site.config['paginate'].to_i)
28
+ (1..pages).each do |num_page|
29
+ pager = Jekyll::Paginate::Pager.new(site, num_page, posts[1], pages)
30
+ path = "/author/#{posts[0]}"
31
+ if num_page > 1
32
+ path = path + "/page#{num_page}"
33
+ end
34
+ newpage = GroupSubPageAuthor.new(site, site.source, path, type, posts[0])
35
+ newpage.pager = pager
36
+ site.pages << newpage
37
+
38
+ end
39
+ end
40
+
41
+ private
42
+
43
+ def posts_by_author(site, author)
44
+ site.posts.docs.select { |post| post.data['author'] == author }
45
+ end
46
+ end
47
+
48
+ class GroupSubPageAuthor < Page
49
+ def initialize(site, base, dir, type, val)
50
+ @site = site
51
+ @base = base
52
+ @dir = dir
53
+ @name = 'index.html'
54
+
55
+ self.process(@name)
56
+ self.read_yaml(File.join(base, '_layouts'), "author.html")
57
+ self.data["grouptype"] = type
58
+ self.data[type] = val
59
+ end
60
+ end
61
+
62
+ class AtomPageAuthor < Page
63
+ def initialize(site, base, dir, type, val, posts)
64
+ @site = site
65
+ @base = base
66
+ @dir = dir
67
+ @name = 'feed.xml'
68
+
69
+ self.process(@name)
70
+ self.read_yaml(File.join(base, '_layouts'), "feed.xml")
71
+ self.data[type] = val
72
+ self.data["grouptype"] = type
73
+ self.data["posts"] = posts[0..9]
74
+ end
75
+ end
76
+ end