middleman-blog 4.0.1 → 4.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. checksums.yaml +4 -4
  2. data/.editorconfig +16 -0
  3. data/.gitignore +5 -1
  4. data/.travis.yml +33 -19
  5. data/.yardopts +2 -2
  6. data/CHANGELOG.md +51 -24
  7. data/CONTRIBUTING.md +5 -2
  8. data/Gemfile +23 -16
  9. data/ISSUE_TEMPLATE.md +14 -0
  10. data/LICENSE.md +15 -17
  11. data/README.md +52 -14
  12. data/Rakefile +10 -7
  13. data/features/article_dirs.feature +34 -0
  14. data/features/blog_sources.feature +35 -6
  15. data/features/filename_date.feature +4 -2
  16. data/features/language.feature +108 -77
  17. data/features/layouts.feature +3 -0
  18. data/features/multiblog.feature +1 -1
  19. data/features/next_previous.feature +10 -7
  20. data/features/permalink.feature +17 -0
  21. data/features/summary.feature +26 -2
  22. data/features/support/env.rb +7 -4
  23. data/features/support/time_steps.rb +7 -3
  24. data/features/tags.feature +68 -34
  25. data/fixtures/article-dirs-app/config-directory-indexes.rb +6 -0
  26. data/fixtures/article-dirs-app/config-permalink-with-dot.rb +6 -0
  27. data/fixtures/blog-sources-app/config.rb +6 -3
  28. data/fixtures/blog-sources-app/source/blog/2011-01-01-new-article.html.markdown +5 -3
  29. data/fixtures/blog-sources-app/source/blog/2013-08-08-slug-from-filename.html.markdown +5 -3
  30. data/fixtures/blog-sources-app/source/index.html.erb +12 -8
  31. data/fixtures/blog-sources-app/source/layout.erb +21 -10
  32. data/fixtures/blog-sources-no-date-app/config.rb +6 -0
  33. data/fixtures/blog-sources-no-date-app/source/blog/new-article.html.markdown +8 -0
  34. data/fixtures/blog-sources-no-date-app/source/index.html.erb +13 -0
  35. data/fixtures/blog-sources-no-date-app/source/layout.erb +24 -0
  36. data/fixtures/blog-sources-no-day-app/config.rb +6 -0
  37. data/fixtures/blog-sources-no-day-app/source/2012-08-testing.html.markdown +8 -0
  38. data/fixtures/blog-sources-no-day-app/source/layout.erb +24 -0
  39. data/fixtures/{no-title-app → blog-sources-no-title-app}/config.rb +3 -0
  40. data/fixtures/blog-sources-no-title-app/source/2013-08-07.html.markdown +8 -0
  41. data/fixtures/blog-sources-no-title-app/source/2013-08-08.html.markdown +9 -0
  42. data/fixtures/{no-date-app → blog-sources-no-title-app}/source/layout.erb +11 -0
  43. data/fixtures/blog-sources-subdirs-app/config.rb +6 -3
  44. data/fixtures/blog-sources-subdirs-app/source/blog.html.erb +6 -3
  45. data/fixtures/blog-sources-subdirs-app/source/blog/another-post.html.markdown +9 -0
  46. data/fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.html.markdown +9 -0
  47. data/fixtures/blog-sources-subdirs-app/source/layout.erb +24 -1
  48. data/fixtures/calendar-app/config-directory-indexes.rb +6 -4
  49. data/fixtures/calendar-app/config-only-year.rb +8 -6
  50. data/fixtures/calendar-app/config.rb +6 -4
  51. data/fixtures/calendar-app/source/layout.erb +17 -12
  52. data/fixtures/language-app/locales/en.yml +5 -4
  53. data/fixtures/language-app/locales/ru.yml +5 -4
  54. data/fixtures/language-app/source/2013-09-05-previous-english-article.html.erb +9 -0
  55. data/fixtures/language-app/source/2013-09-06-previous-russian-article.html.erb +9 -0
  56. data/fixtures/language-app/source/2013-09-07-english-article-with-lang-in-frontmatter.html.erb +5 -2
  57. data/fixtures/language-app/source/2013-09-07-russian-article-with-lang-in-frontmatter.html.erb +5 -2
  58. data/fixtures/language-app/source/2013-09-08-next-russian-article.html.erb +9 -0
  59. data/fixtures/language-app/source/2013-09-09-next-english-article.html.erb +9 -0
  60. data/fixtures/language-app/source/layouts/layout.erb +12 -1
  61. data/fixtures/language-app/source/localizable/index.html.erb +3 -1
  62. data/fixtures/layouts-app/source/2011/01/01/fourth-article.html.markdown +7 -0
  63. data/fixtures/paginate-app/config-directory-indexes.rb +14 -12
  64. data/fixtures/paginate-app/config-paginate-off.rb +14 -12
  65. data/fixtures/paginate-app/config.rb +16 -13
  66. data/fixtures/permalink-app/config.rb +7 -0
  67. data/fixtures/permalink-app/source/index.html.erb +13 -0
  68. data/fixtures/permalink-app/source/layout.erb +26 -0
  69. data/fixtures/permalink-app/source/news/2011-01-01-new-article.html.markdown +9 -0
  70. data/fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown +1 -1
  71. data/fixtures/summary-app/source/2016-05-21-article-with-comment-separator.html.markdown +7 -0
  72. data/fixtures/tags-app/config-directory-indexes.rb +2 -1
  73. data/fixtures/tags-app/config-filters.rb +8 -0
  74. data/fixtures/tags-app/config-no-tags.rb +5 -3
  75. data/fixtures/tags-app/config.rb +2 -1
  76. data/fixtures/tags-app/source/blog/2011-01-03-no-taga.html.markdown +6 -0
  77. data/lib/middleman-blog.rb +7 -4
  78. data/lib/middleman-blog/blog_article.rb +157 -34
  79. data/lib/middleman-blog/blog_data.rb +83 -29
  80. data/lib/middleman-blog/calendar_pages.rb +1 -1
  81. data/lib/middleman-blog/commands/article.rb +88 -30
  82. data/lib/middleman-blog/commands/article.tt +4 -1
  83. data/lib/middleman-blog/custom_pages.rb +1 -1
  84. data/lib/middleman-blog/helpers.rb +2 -2
  85. data/lib/middleman-blog/paginator.rb +5 -4
  86. data/lib/middleman-blog/tag_pages.rb +61 -24
  87. data/lib/middleman-blog/truncate_html.rb +4 -9
  88. data/lib/middleman-blog/uri_templates.rb +44 -30
  89. data/lib/middleman-blog/version.rb +3 -1
  90. data/middleman-blog.gemspec +19 -17
  91. data/spec/spec_helper.rb +1 -1
  92. data/spec/uri_templates_spec.rb +21 -6
  93. metadata +68 -52
  94. data/.gemtest +0 -0
  95. data/features/no_date.feature +0 -9
  96. data/features/permalink-data.feature +0 -12
  97. data/fixtures/blog-sources-app/source/_article_template.erb +0 -1
  98. data/fixtures/blog-sources-subdirs-app/source/blog/another-post.html.md.erb +0 -8
  99. data/fixtures/blog-sources-subdirs-app/source/blog/subdir/yet-another-post.html.md.erb +0 -8
  100. data/fixtures/no-date-app/config.rb +0 -3
  101. data/fixtures/no-date-app/source/_article_template.erb +0 -1
  102. data/fixtures/no-date-app/source/blog/new-article.html.markdown +0 -6
  103. data/fixtures/no-date-app/source/index.html.erb +0 -9
  104. data/fixtures/no-day-app/config.rb +0 -3
  105. data/fixtures/no-day-app/source/2012-08-testing.html.markdown +0 -6
  106. data/fixtures/no-day-app/source/layout.erb +0 -13
  107. data/fixtures/no-title-app/source/2013-08-07.html.markdown +0 -6
  108. data/fixtures/no-title-app/source/2013-08-08.html.markdown +0 -7
  109. data/fixtures/no-title-app/source/layout.erb +0 -13
  110. data/fixtures/permalink-data-app/config.rb +0 -5
  111. data/fixtures/permalink-data-app/source/index.html.erb +0 -3
  112. data/fixtures/permalink-data-app/source/layout.erb +0 -14
  113. data/fixtures/permalink-data-app/source/news/2011-01-01-new-article.html.markdown +0 -7
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Testing Article"
4
+ slug : slug-from-frontmatter
5
+ date : 2013-08-08
6
+
7
+ ---
8
+
9
+ Article with slug specified in frontmatter
@@ -1,13 +1,24 @@
1
1
  <!doctype html>
2
+
2
3
  <html>
4
+
3
5
  <head>
6
+ <title>Blog sources no title app</title>
4
7
  </head>
8
+
5
9
  <body>
10
+
6
11
  <% if is_blog_article? %>
12
+
7
13
  <%= yield %>
8
14
  <%= current_article.url %>
15
+
9
16
  <% else %>
17
+
10
18
  <%= yield %>
19
+
11
20
  <% end %>
21
+
12
22
  </body>
23
+
13
24
  </html>
@@ -1,4 +1,7 @@
1
- activate :blog do |blog|
2
- blog.sources = "blog/:title.html"
3
- blog.permalink = "blog/{title}.html"
1
+
2
+ activate :blog do | blog |
3
+
4
+ blog.sources = "blog/:title.html"
5
+ blog.permalink = "blog/{title}.html"
6
+
4
7
  end
@@ -1,3 +1,6 @@
1
- <% page_articles.each do |post| %>
2
- <li><%= link_to post.title, post %></li>
3
- <% end %>
1
+
2
+ <% page_articles.each do | post | %>
3
+
4
+ <li><%= post.title %></li>
5
+
6
+ <% end %>
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Another post"
4
+ published : true
5
+ date : 2014/01/15
6
+
7
+ ---
8
+
9
+ Lorem ipsum dolor sit amet
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Yet another post"
4
+ published : true
5
+ date : 2014/01/15
6
+
7
+ ---
8
+
9
+ Lorem ipsum dolor sit amet
@@ -1 +1,24 @@
1
- <%= yield %>
1
+ <!doctype html>
2
+
3
+ <html>
4
+
5
+ <head>
6
+ <title>Blog sources no title app</title>
7
+ </head>
8
+
9
+ <body>
10
+
11
+ <% if is_blog_article? %>
12
+
13
+ <%= yield %>
14
+ <%= current_article.url %>
15
+
16
+ <% else %>
17
+
18
+ <%= yield %>
19
+
20
+ <% end %>
21
+
22
+ </body>
23
+
24
+ </html>
@@ -1,9 +1,11 @@
1
1
  Time.zone = "Pacific Time (US & Canada)"
2
2
 
3
- activate :blog do |blog|
4
- blog.sources = "blog/:year-:month-:day-:title.html"
5
- blog.permalink = "blog/:year-:month-:day-:title.html"
6
- blog.calendar_template = 'calendar.html'
3
+ activate :blog do | blog |
4
+
5
+ blog.sources = "blog/:year-:month-:day-:title.html"
6
+ blog.permalink = "blog/:year-:month-:day-:title.html"
7
+ blog.calendar_template = 'calendar.html'
8
+
7
9
  end
8
10
 
9
11
  activate :directory_indexes
@@ -1,9 +1,11 @@
1
1
  Time.zone = "Pacific Time (US & Canada)"
2
2
 
3
- activate :blog do |blog|
4
- blog.sources = "blog/:year-:month-:day-:title.html"
5
- blog.permalink = "blog/:year-:month-:day-:title.html"
6
- blog.calendar_template = 'calendar.html'
7
- blog.generate_month_pages = false
8
- blog.generate_day_pages = false
3
+ activate :blog do | blog |
4
+
5
+ blog.sources = "blog/:year-:month-:day-:title.html"
6
+ blog.permalink = "blog/:year-:month-:day-:title.html"
7
+ blog.calendar_template = 'calendar.html'
8
+ blog.generate_month_pages = false
9
+ blog.generate_day_pages = false
10
+
9
11
  end
@@ -1,7 +1,9 @@
1
1
  Time.zone = "Pacific Time (US & Canada)"
2
2
 
3
- activate :blog do |blog|
4
- blog.sources = "blog/:year-:month-:day-:title.html"
5
- blog.permalink = "blog/:year-:month-:day-:title.html"
6
- blog.calendar_template = 'calendar.html'
3
+ activate :blog do | blog |
4
+
5
+ blog.sources = "blog/:year-:month-:day-:title.html"
6
+ blog.permalink = "blog/:year-:month-:day-:title.html"
7
+ blog.calendar_template = 'calendar.html'
8
+
7
9
  end
@@ -1,15 +1,20 @@
1
1
  <!doctype html>
2
2
  <html>
3
- <head>
4
- </head>
5
- <body>
6
- <% if is_blog_article? %>
7
- <%= yield %>
8
- Url: <%= current_article.url %>
9
- Previous: <%= current_article.previous_article.try(:url) %>
10
- Next: <%= current_article.next_article.try(:url) %>
11
- <% else %>
12
- <%= yield %>
13
- <% end %>
14
- </body>
3
+ <head></head>
4
+
5
+ <body>
6
+
7
+ <% if is_blog_article? %>
8
+
9
+ <%= yield %>
10
+ Url: <%= current_article.url %>
11
+ Previous: <%= current_article.previous_article.try( :url ) %>
12
+ Next: <%= current_article.next_article.try( :url ) %>
13
+
14
+ <% else %>
15
+ <%= yield %>
16
+ <% end %>
17
+
18
+ </body>
19
+
15
20
  </html>
@@ -1,4 +1,5 @@
1
- en:
2
- hello: "Hello, world!"
3
- language: "Language"
4
- ok: "OK"
1
+ en :
2
+
3
+ hello : "Hello, world!"
4
+ language : "Language"
5
+ ok : "OK"
@@ -1,4 +1,5 @@
1
- ru:
2
- hello: "Привет, мир!"
3
- language: "Язык"
4
- ok: "отлично"
1
+ ru :
2
+
3
+ hello : "Привет, мир!"
4
+ language : "Язык"
5
+ ok : "отлично"
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Previous english article"
4
+ date : 2013-09-05
5
+ lang : en
6
+
7
+ ---
8
+
9
+ <p>Some text in English. All is <%= t :ok %>.</p>
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Previous russian article"
4
+ date : 2013-09-06
5
+ lang : ru
6
+
7
+ ---
8
+
9
+ <p>Некоторый текст на русском языке. Всё <%= t :ok %>.</p>
@@ -1,6 +1,9 @@
1
1
  ---
2
- title: "English article with lang in frontmatter"
3
- lang: en
2
+
3
+ title : "English article with lang in frontmatter"
4
+ date : 2013-09-07
5
+ lang : en
6
+
4
7
  ---
5
8
 
6
9
  <p>Some text in English. All is <%= t :ok %>.</p>
@@ -1,6 +1,9 @@
1
1
  ---
2
- title: "Русская статья с меткой языка во вступлении"
3
- lang: ru
2
+
3
+ title : "Русская статья с меткой языка во вступлении"
4
+ date : 2013-09-07
5
+ lang : ru
6
+
4
7
  ---
5
8
 
6
9
  <p>Некоторый текст на русском языке. Всё <%= t :ok %>.</p>
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Next russian article"
4
+ date : 2013-09-08
5
+ lang : ru
6
+
7
+ ---
8
+
9
+ <p>Некоторый текст на русском языке. Всё <%= t :ok %>.</p>
@@ -0,0 +1,9 @@
1
+ ---
2
+
3
+ title : "Next english article"
4
+ date : 2013-09-09
5
+ lang : en
6
+
7
+ ---
8
+
9
+ <p>Some text in English. All is <%= t :ok %>.</p>
@@ -1,8 +1,19 @@
1
1
  <html>
2
+
2
3
  <head></head>
4
+
3
5
  <body>
6
+
4
7
  <h1><%= t :hello %></h1>
5
8
  <p><%= t :language %>: <%= lang %></p>
9
+
6
10
  <%= yield %>
11
+
12
+ <% if is_blog_article? %>
13
+ Previous: <%= current_article.article_locale_previous.try( :url ) %>
14
+ Next: <%= current_article.article_locale_next.try( :url ) %>
15
+ <% end %>
16
+
7
17
  </body>
8
- </html>
18
+
19
+ </html>
@@ -1,5 +1,7 @@
1
- <% blog.local_articles.each do |article| %>
1
+ <% blog.local_articles.each do | article | %>
2
+
2
3
  <article>
3
4
  <%= article.body %>
4
5
  </article>
6
+
5
7
  <% end %>
@@ -0,0 +1,7 @@
1
+ ---
2
+ title: "Fourth Article"
3
+ date: 2011-01-01
4
+ layout: !ruby/symbol _auto_layout
5
+ ---
6
+
7
+ Fourth Article Content
@@ -1,17 +1,19 @@
1
- activate :blog do |blog|
2
- blog.sources = "blog/:year-:month-:day-:title.html"
3
- blog.permalink = "blog/:year-:month-:day-:title.html"
4
- blog.calendar_template = 'calendar.html'
5
- blog.tag_template = 'tag.html'
6
- blog.paginate = true
7
- blog.per_page = 5
1
+ activate :blog do | blog |
8
2
 
9
- blog.custom_collections = {
10
- :category => {
11
- :link => '/categories/:category.html',
12
- :template => '/category.html'
3
+ blog.sources = "blog/:year-:month-:day-:title.html"
4
+ blog.permalink = "blog/:year-:month-:day-:title.html"
5
+ blog.calendar_template = 'calendar.html'
6
+ blog.tag_template = 'tag.html'
7
+ blog.paginate = true
8
+ blog.per_page = 5
9
+
10
+ blog.custom_collections = {
11
+ :category => {
12
+ :link => '/categories/:category.html',
13
+ :template => '/category.html'
14
+ }
13
15
  }
14
- }
16
+
15
17
  end
16
18
 
17
19
  activate :directory_indexes
@@ -1,15 +1,17 @@
1
- activate :blog do |blog|
2
- blog.sources = "blog/:year-:month-:day-:title.html"
3
- blog.permalink = "blog/:year-:month-:day-:title.html"
4
- blog.calendar_template = 'calendar.html'
5
- blog.tag_template = 'tag.html'
6
- #blog.paginate = true
7
- blog.per_page = 5
1
+ activate :blog do | blog |
8
2
 
9
- blog.custom_collections = {
10
- :category => {
11
- :link => '/categories/:category.html',
12
- :template => '/category.html'
3
+ blog.sources = "blog/:year-:month-:day-:title.html"
4
+ blog.permalink = "blog/:year-:month-:day-:title.html"
5
+ blog.calendar_template = 'calendar.html'
6
+ blog.tag_template = 'tag.html'
7
+ #blog.paginate = true
8
+ blog.per_page = 5
9
+
10
+ blog.custom_collections = {
11
+ :category => {
12
+ :link => '/categories/:category.html',
13
+ :template => '/category.html'
14
+ }
13
15
  }
14
- }
16
+
15
17
  end
@@ -1,15 +1,18 @@
1
- activate :blog do |blog|
2
- blog.sources = "blog/:year-:month-:day-:title.html"
3
- blog.permalink = "blog/:year-:month-:day-:title.html"
4
- blog.calendar_template = 'calendar.html'
5
- blog.tag_template = 'tag.html'
6
- blog.paginate = true
7
- blog.per_page = 5
8
-
9
- blog.custom_collections = {
10
- :category => {
11
- :link => '/categories/:category.html',
12
- :template => '/category.html'
1
+ activate :blog do | blog |
2
+
3
+ blog.sources = "blog/:year-:month-:day-:title.html"
4
+ blog.permalink = "blog/:year-:month-:day-:title.html"
5
+ blog.calendar_template = 'calendar.html'
6
+ blog.tag_template = 'tag.html'
7
+ blog.paginate = true
8
+ blog.per_page = 5
9
+
10
+ blog.custom_collections = {
11
+
12
+ :category => {
13
+ :link => '/categories/:category.html',
14
+ :template => '/category.html'
15
+ }
13
16
  }
14
- }
17
+
15
18
  end
@@ -0,0 +1,7 @@
1
+
2
+ activate :blog do | blog |
3
+
4
+ blog.sources = ":category/:year-:month-:day-:title.html"
5
+ blog.permalink = ":category/:custom-:year-:month-:day-:title.html"
6
+
7
+ end
@@ -0,0 +1,13 @@
1
+ <% blog.articles[ 0...5 ].each_with_index do | article, i | %>
2
+
3
+ <article class="<%= ( i == 0 ) ? 'first' : '' %>">
4
+
5
+ <h1><a href="<%= article.url %>"><%= article.title %></a> <span><%= article.date.strftime( '%b %e %Y' ) %></span></h1>
6
+
7
+ <%= article.summary %>
8
+
9
+ <div class="more"><a href="<%= article.url %>">read on &raquo;</a></div>
10
+
11
+ </article>
12
+
13
+ <% end %>
@@ -0,0 +1,26 @@
1
+ <!doctype html>
2
+
3
+ <html>
4
+
5
+ <head>
6
+ <title>Blog sources app</title>
7
+ </head>
8
+
9
+ <body>
10
+
11
+ <% if is_blog_article? %>
12
+
13
+ <%= yield %>
14
+
15
+ URL : <%= current_article.url %>
16
+ Category : <%= current_article.data[ :category ] %>
17
+
18
+ <% else %>
19
+
20
+ <%= yield %>
21
+
22
+ <% end %>
23
+
24
+ </body>
25
+
26
+ </html>