Skip to content

Commit 8ea197f

Browse files
committed
Render the /news/ indexes using the Jekyll Plugin.
1 parent fdc22de commit 8ea197f

File tree

16 files changed

+55
-258
lines changed

16 files changed

+55
-258
lines changed

_layouts/news.html

+14-10
Original file line numberDiff line numberDiff line change
@@ -6,31 +6,35 @@
66
<div id="head-wrapper-1">
77
<div id="head-wrapper-2">
88
<div id="head">
9-
{% if page.header != null %}
10-
<div id="intro">
11-
{{ page.header | markdownify }}
12-
</div>
13-
{% else %}
149
<h1>{{ page.title }}</h1>
15-
{% endif %}
1610
</div>
1711
</div>
1812
</div>
1913

2014
<div id="content">
21-
{{ content }}
15+
{% for post in page.posts %}
16+
<div class="post">
17+
<h3><a href="{{ post.url }}">{{ post.title }}</a></h3>
18+
19+
{{ post.content | markdownify | strip_html | truncatewords: 25 }}
20+
21+
<p><a href="{{ post.url }}">Continue Reading...</a></p>
22+
23+
<p class="post-info">Posted by {{ post.author }} on {{ post.date | date_to_string }}</p>
24+
</div>
25+
{% endfor %}
2226
</div>
2327
</div>
2428
<hr class="hidden-modern" />
2529

2630
<div id="sidebar-wrapper">
2731
<div id="sidebar">
2832
<div class="navigation">
29-
<h3>News Archive</h3>
33+
<h3><strong>Archives By Year</strong></h3>
3034

3135
<ul class="menu">
32-
{% for post in site.categories[page.lang] %}
33-
<li><a href="{{ post.url }}">{{ post.title }}</a></li>
36+
{% for year in page.years %}
37+
<li><a href="{{ year }}//">{{ year }} Archives</a></li>
3438
{% endfor %}
3539
</ul>
3640
</div>

_plugins/news_archive.rb renamed to _plugins/news.rb

+41-10
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
require 'date'
2+
13
module Jekyll
24
module News
35
class ArchivePage < Page
@@ -31,8 +33,10 @@ def news_dir
3133

3234
class MonthlyArchive < ArchivePage
3335

36+
LAYOUT = 'news_archive_month.html'
37+
3438
def initialize(site,base,lang,year,month,posts)
35-
super(site,base,'news_archive_month.html',lang,posts)
39+
super(site,base,LAYOUT,lang,posts)
3640

3741
@year = year
3842
@month = month
@@ -46,8 +50,10 @@ def initialize(site,base,lang,year,month,posts)
4650

4751
class YearlyArchive < ArchivePage
4852

53+
LAYOUT = 'news_archive_year.html'
54+
4955
def initialize(site,base,lang,year,posts)
50-
super(site,base,'news_archive_year.html',lang,posts)
56+
super(site,base,LAYOUT,lang,posts)
5157

5258
@year = year
5359
@dir = File.join(@dir,@year.to_s)
@@ -65,21 +71,37 @@ def initialize(site,base,lang,year,posts)
6571
end
6672

6773
end
68-
end
6974

70-
class Post
75+
class Index < ArchivePage
76+
77+
LAYOUT = 'news.html'
78+
79+
MAX_POSTS = 5
80+
81+
def initialize(site,base,lang,posts)
82+
super(site,base,LAYOUT,lang,posts)
83+
84+
data['title'] = 'Recent News'
85+
data['years'] = posts.map { |post| post.date.year }.uniq.reverse
86+
data['posts'] = posts.last(MAX_POSTS).reverse
87+
end
7188

72-
def title
73-
data['title']
7489
end
90+
end
91+
92+
class Post
7593

7694
def lang
7795
data['lang']
7896
end
7997

98+
def title
99+
data['title']
100+
end
101+
80102
end
81103

82-
class GenerateNewsArchives < Generator
104+
class GenerateNews < Generator
83105

84106
safe true
85107
priority :low
@@ -98,15 +120,24 @@ def generate(site)
98120
end
99121

100122
posts.each do |lang,years|
101-
years.each do |year,months|
102-
posts_for_year = months.values.flatten
123+
index = News::Index.new(
124+
site,
125+
site.source,
126+
lang,
127+
years.values.map(&:values).flatten
128+
)
103129

130+
index.render(site.layouts,site.site_payload)
131+
index.write(site.dest)
132+
site.pages << index
133+
134+
years.each do |year,months|
104135
yearly_archive = News::YearlyArchive.new(
105136
site,
106137
site.source,
107138
lang,
108139
year,
109-
posts_for_year
140+
months.values.flatten
110141
)
111142

112143
yearly_archive.render(site.layouts,site.site_payload)

bg/news/index.html

-17
This file was deleted.

de/news/index.html

-17
This file was deleted.

en/news/index.html

-17
This file was deleted.

es/news/index.html

-17
This file was deleted.

fr/news/index.html

-17
This file was deleted.

id/news/index.html

-17
This file was deleted.

it/news/index.html

-17
This file was deleted.

ja/news/index.html

-17
This file was deleted.

ko/news/index.html

-17
This file was deleted.

pl/news/index.html

-17
This file was deleted.

pt/noticias-recentes/index.html

-17
This file was deleted.

tr/news/index.html

-17
This file was deleted.

zh_TW/news/index.html

-17
This file was deleted.

zh_cn/news/index.html

-17
This file was deleted.

0 commit comments

Comments
 (0)