middleman-blog 4.0.3 → 4.2.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.
Files changed (102) hide show
  1. checksums.yaml +4 -4
  2. data/.gitattributes +3 -0
  3. data/.github/workflows/ci.yml +25 -0
  4. data/.github/workflows/stale.yml +21 -0
  5. data/.gitignore +1 -3
  6. data/CHANGELOG.md +78 -60
  7. data/Gemfile +12 -26
  8. data/README.md +20 -30
  9. data/Rakefile +8 -14
  10. data/features/alias.feature +41 -0
  11. data/features/summary.feature +21 -2
  12. data/features/support/env.rb +2 -0
  13. data/features/support/time_steps.rb +9 -7
  14. data/features/tags.feature +4 -0
  15. data/fixtures/alias-app/config.rb +10 -0
  16. data/fixtures/alias-app/source/2024-03-14-pi-day.html.markdown +7 -0
  17. data/fixtures/alias-app/source/index.html +1 -0
  18. data/fixtures/alias-prefix-app/config.rb +11 -0
  19. data/fixtures/alias-prefix-app/source/blog/2024-01-15-prefix-test.html.markdown +7 -0
  20. data/fixtures/alias-prefix-app/source/index.html +1 -0
  21. data/fixtures/article-dirs-app/config-directory-indexes.rb +2 -0
  22. data/fixtures/article-dirs-app/config-permalink-with-dot.rb +2 -0
  23. data/fixtures/article-dirs-app/config.rb +2 -0
  24. data/fixtures/blog-sources-app/config.rb +2 -0
  25. data/fixtures/blog-sources-no-date-app/config.rb +2 -0
  26. data/fixtures/blog-sources-no-day-app/config.rb +2 -0
  27. data/fixtures/blog-sources-no-title-app/config.rb +2 -0
  28. data/fixtures/blog-sources-subdirs-app/config.rb +2 -0
  29. data/fixtures/calendar-and-tag-app/config-directory-indexes.rb +2 -0
  30. data/fixtures/calendar-and-tag-app/config.rb +2 -0
  31. data/fixtures/calendar-app/config-directory-indexes.rb +2 -0
  32. data/fixtures/calendar-app/config-only-year.rb +2 -0
  33. data/fixtures/calendar-app/config.rb +2 -0
  34. data/fixtures/calendar-multiblog-app/config.rb +2 -0
  35. data/fixtures/custom-article-template-app/config.rb +2 -0
  36. data/fixtures/custom-collections-app/config-blog-prefix.rb +2 -0
  37. data/fixtures/custom-collections-app/config-directory-indexes.rb +2 -0
  38. data/fixtures/custom-collections-app/config.rb +2 -0
  39. data/fixtures/custom-collections-multiblog-app/config.rb +2 -0
  40. data/fixtures/custom-collections-sources-app/config.rb +2 -0
  41. data/fixtures/custom-permalinks-app/config-directory-indexes.rb +2 -0
  42. data/fixtures/custom-permalinks-app/config.rb +2 -0
  43. data/fixtures/filename-date-app/config.rb +2 -0
  44. data/fixtures/future-date-app/config.rb +2 -0
  45. data/fixtures/indexes-app/config.rb +2 -0
  46. data/fixtures/lang-path-app/config.rb +2 -0
  47. data/fixtures/language-app/config.rb +3 -1
  48. data/fixtures/layouts-app/config.rb +2 -0
  49. data/fixtures/paginate-app/config-directory-indexes.rb +2 -0
  50. data/fixtures/paginate-app/config-paginate-off.rb +2 -0
  51. data/fixtures/paginate-app/config.rb +2 -0
  52. data/fixtures/paginate-multiblog-app/config.rb +2 -0
  53. data/fixtures/permalink-app/config.rb +2 -0
  54. data/fixtures/preview-app/config.rb +2 -0
  55. data/fixtures/published-app/config.rb +2 -0
  56. data/fixtures/summary-app/config.rb +2 -0
  57. data/fixtures/summary-app/source/layout.erb +6 -0
  58. data/fixtures/tags-app/config-directory-indexes.rb +2 -0
  59. data/fixtures/tags-app/config-filters.rb +2 -0
  60. data/fixtures/tags-app/config-no-tags.rb +2 -0
  61. data/fixtures/tags-app/config.rb +2 -0
  62. data/fixtures/tags-app/source/blog/2011-01-01-new-article.html.markdown +1 -1
  63. data/fixtures/tags-app/source/blog/2011-01-02-another-article.html.markdown +1 -0
  64. data/fixtures/tags-multiblog-app/config.rb +2 -0
  65. data/fixtures/time-zone-app/config.rb +2 -0
  66. data/lib/middleman-blog/alias_pages.rb +161 -0
  67. data/lib/middleman-blog/blog_article.rb +17 -11
  68. data/lib/middleman-blog/blog_data.rb +4 -8
  69. data/lib/middleman-blog/calendar_pages.rb +8 -6
  70. data/lib/middleman-blog/commands/article.rb +10 -6
  71. data/lib/middleman-blog/commands/article.tt +2 -2
  72. data/lib/middleman-blog/custom_pages.rb +3 -1
  73. data/lib/middleman-blog/extension.rb +32 -12
  74. data/lib/middleman-blog/helpers.rb +4 -2
  75. data/lib/middleman-blog/paginator.rb +3 -1
  76. data/lib/middleman-blog/tag_pages.rb +3 -1
  77. data/lib/middleman-blog/truncate_html.rb +21 -5
  78. data/lib/middleman-blog/uri_templates.rb +12 -6
  79. data/lib/middleman-blog/version.rb +3 -1
  80. data/lib/middleman-blog.rb +2 -0
  81. data/lib/middleman_extension.rb +2 -0
  82. data/middleman-blog.gemspec +15 -22
  83. data/spec/alias_spec.rb +116 -0
  84. data/spec/spec_helper.rb +3 -1
  85. data/spec/uri_templates_spec.rb +14 -0
  86. metadata +30 -34
  87. data/.rubocop.yml +0 -69
  88. data/.travis.yml +0 -30
  89. data/Gemfile-4.x +0 -38
  90. data/fixtures/default-template-app/Gemfile +0 -6
  91. data/fixtures/default-template-app/config.rb +0 -35
  92. data/fixtures/default-template-app/source/2013-04-01-new-article.html.markdown +0 -25
  93. data/fixtures/default-template-app/source/about-me.html.erb +0 -0
  94. data/fixtures/default-template-app/source/archives.html.erb +0 -10
  95. data/fixtures/default-template-app/source/index.html.erb +0 -11
  96. data/fixtures/default-template-app/source/javascripts/_zepto.pjax.js +0 -744
  97. data/fixtures/default-template-app/source/javascripts/app.js +0 -11
  98. data/fixtures/default-template-app/source/javascripts/modernizr.js +0 -1
  99. data/fixtures/default-template-app/source/layouts/layout.erb +0 -62
  100. data/fixtures/default-template-app/source/stylesheets/app.css.scss +0 -109
  101. /data/{CONTRIBUTING.md → .github/CONTRIBUTING.md} +0 -0
  102. /data/{ISSUE_TEMPLATE.md → .github/ISSUE_TEMPLATE.md} +0 -0
metadata CHANGED
@@ -1,16 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: middleman-blog
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.3
4
+ version: 4.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thomas Reynolds
8
8
  - Ben Hollis
9
9
  - Ian Warner
10
- autorequire:
10
+ autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2018-12-27 00:00:00.000000000 Z
13
+ date: 2025-11-03 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: middleman-core
@@ -64,18 +64,19 @@ extensions: []
64
64
  extra_rdoc_files: []
65
65
  files:
66
66
  - ".editorconfig"
67
+ - ".gitattributes"
68
+ - ".github/CONTRIBUTING.md"
69
+ - ".github/ISSUE_TEMPLATE.md"
70
+ - ".github/workflows/ci.yml"
71
+ - ".github/workflows/stale.yml"
67
72
  - ".gitignore"
68
- - ".rubocop.yml"
69
- - ".travis.yml"
70
73
  - ".yardopts"
71
74
  - CHANGELOG.md
72
- - CONTRIBUTING.md
73
75
  - Gemfile
74
- - Gemfile-4.x
75
- - ISSUE_TEMPLATE.md
76
76
  - LICENSE.md
77
77
  - README.md
78
78
  - Rakefile
79
+ - features/alias.feature
79
80
  - features/article_dirs.feature
80
81
  - features/blog_sources.feature
81
82
  - features/calendar-and-tag.feature
@@ -103,6 +104,12 @@ files:
103
104
  - features/tags.feature
104
105
  - features/tags_multiblog.feature
105
106
  - features/time_zone.feature
107
+ - fixtures/alias-app/config.rb
108
+ - fixtures/alias-app/source/2024-03-14-pi-day.html.markdown
109
+ - fixtures/alias-app/source/index.html
110
+ - fixtures/alias-prefix-app/config.rb
111
+ - fixtures/alias-prefix-app/source/blog/2024-01-15-prefix-test.html.markdown
112
+ - fixtures/alias-prefix-app/source/index.html
106
113
  - fixtures/article-dirs-app/config-directory-indexes.rb
107
114
  - fixtures/article-dirs-app/config-permalink-with-dot.rb
108
115
  - fixtures/article-dirs-app/config.rb
@@ -190,17 +197,6 @@ files:
190
197
  - fixtures/custom-permalinks-app/source/blog/2011-01-03-third-article.html.markdown
191
198
  - fixtures/custom-permalinks-app/source/index.html.erb
192
199
  - fixtures/custom-permalinks-app/source/layout.erb
193
- - fixtures/default-template-app/Gemfile
194
- - fixtures/default-template-app/config.rb
195
- - fixtures/default-template-app/source/2013-04-01-new-article.html.markdown
196
- - fixtures/default-template-app/source/about-me.html.erb
197
- - fixtures/default-template-app/source/archives.html.erb
198
- - fixtures/default-template-app/source/index.html.erb
199
- - fixtures/default-template-app/source/javascripts/_zepto.pjax.js
200
- - fixtures/default-template-app/source/javascripts/app.js
201
- - fixtures/default-template-app/source/javascripts/modernizr.js
202
- - fixtures/default-template-app/source/layouts/layout.erb
203
- - fixtures/default-template-app/source/stylesheets/app.css.scss
204
200
  - fixtures/filename-date-app/config.rb
205
201
  - fixtures/filename-date-app/source/2011-01-01-new-article.html.markdown
206
202
  - fixtures/filename-date-app/source/2011-01-03-filename-and-frontmatter.html.markdown
@@ -318,6 +314,7 @@ files:
318
314
  - fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
319
315
  - fixtures/summary-app/source/2016-05-21-article-with-comment-separator.html.markdown
320
316
  - fixtures/summary-app/source/index.html.erb
317
+ - fixtures/summary-app/source/layout.erb
321
318
  - fixtures/tags-app/config-directory-indexes.rb
322
319
  - fixtures/tags-app/config-filters.rb
323
320
  - fixtures/tags-app/config-no-tags.rb
@@ -344,6 +341,7 @@ files:
344
341
  - fixtures/time-zone-app/config.rb
345
342
  - fixtures/time-zone-app/source/blog/2013-06-24-hello.html.erb
346
343
  - lib/middleman-blog.rb
344
+ - lib/middleman-blog/alias_pages.rb
347
345
  - lib/middleman-blog/blog_article.rb
348
346
  - lib/middleman-blog/blog_data.rb
349
347
  - lib/middleman-blog/calendar_pages.rb
@@ -359,13 +357,14 @@ files:
359
357
  - lib/middleman-blog/version.rb
360
358
  - lib/middleman_extension.rb
361
359
  - middleman-blog.gemspec
360
+ - spec/alias_spec.rb
362
361
  - spec/spec_helper.rb
363
362
  - spec/uri_templates_spec.rb
364
363
  homepage: https://github.com/middleman/middleman-blog
365
364
  licenses:
366
365
  - MIT
367
366
  metadata: {}
368
- post_install_message:
367
+ post_install_message:
369
368
  rdoc_options: []
370
369
  require_paths:
371
370
  - lib
@@ -373,18 +372,19 @@ required_ruby_version: !ruby/object:Gem::Requirement
373
372
  requirements:
374
373
  - - ">="
375
374
  - !ruby/object:Gem::Version
376
- version: 2.3.0
375
+ version: '0'
377
376
  required_rubygems_version: !ruby/object:Gem::Requirement
378
377
  requirements:
379
378
  - - ">="
380
379
  - !ruby/object:Gem::Version
381
380
  version: '0'
382
381
  requirements: []
383
- rubygems_version: 3.0.1
384
- signing_key:
382
+ rubygems_version: 3.5.16
383
+ signing_key:
385
384
  specification_version: 4
386
385
  summary: Blog engine for Middleman
387
386
  test_files:
387
+ - features/alias.feature
388
388
  - features/article_dirs.feature
389
389
  - features/blog_sources.feature
390
390
  - features/calendar-and-tag.feature
@@ -412,6 +412,12 @@ test_files:
412
412
  - features/tags.feature
413
413
  - features/tags_multiblog.feature
414
414
  - features/time_zone.feature
415
+ - fixtures/alias-app/config.rb
416
+ - fixtures/alias-app/source/2024-03-14-pi-day.html.markdown
417
+ - fixtures/alias-app/source/index.html
418
+ - fixtures/alias-prefix-app/config.rb
419
+ - fixtures/alias-prefix-app/source/blog/2024-01-15-prefix-test.html.markdown
420
+ - fixtures/alias-prefix-app/source/index.html
415
421
  - fixtures/article-dirs-app/config-directory-indexes.rb
416
422
  - fixtures/article-dirs-app/config-permalink-with-dot.rb
417
423
  - fixtures/article-dirs-app/config.rb
@@ -499,17 +505,6 @@ test_files:
499
505
  - fixtures/custom-permalinks-app/source/blog/2011-01-03-third-article.html.markdown
500
506
  - fixtures/custom-permalinks-app/source/index.html.erb
501
507
  - fixtures/custom-permalinks-app/source/layout.erb
502
- - fixtures/default-template-app/Gemfile
503
- - fixtures/default-template-app/config.rb
504
- - fixtures/default-template-app/source/2013-04-01-new-article.html.markdown
505
- - fixtures/default-template-app/source/about-me.html.erb
506
- - fixtures/default-template-app/source/archives.html.erb
507
- - fixtures/default-template-app/source/index.html.erb
508
- - fixtures/default-template-app/source/javascripts/_zepto.pjax.js
509
- - fixtures/default-template-app/source/javascripts/app.js
510
- - fixtures/default-template-app/source/javascripts/modernizr.js
511
- - fixtures/default-template-app/source/layouts/layout.erb
512
- - fixtures/default-template-app/source/stylesheets/app.css.scss
513
508
  - fixtures/filename-date-app/config.rb
514
509
  - fixtures/filename-date-app/source/2011-01-01-new-article.html.markdown
515
510
  - fixtures/filename-date-app/source/2011-01-03-filename-and-frontmatter.html.markdown
@@ -627,6 +622,7 @@ test_files:
627
622
  - fixtures/summary-app/source/2013-05-08-article-with-custom-separator.html.markdown
628
623
  - fixtures/summary-app/source/2016-05-21-article-with-comment-separator.html.markdown
629
624
  - fixtures/summary-app/source/index.html.erb
625
+ - fixtures/summary-app/source/layout.erb
630
626
  - fixtures/tags-app/config-directory-indexes.rb
631
627
  - fixtures/tags-app/config-filters.rb
632
628
  - fixtures/tags-app/config-no-tags.rb
data/.rubocop.yml DELETED
@@ -1,69 +0,0 @@
1
- AllCops:
2
- TargetRubyVersion: 2.3
3
- Include:
4
- - '**/*.rb'
5
- - '**/Rakefile'
6
- - '**/Gemfile'
7
- - '**/config.ru'
8
- Exclude:
9
- - 'vendor/**/*'
10
- - '**/tmp/**/*'
11
- - 'middleman-cli/lib/middleman-cli/templates/**/*'
12
- Security/YAMLLoad:
13
- Enabled: false
14
- Style/GuardClause:
15
- Enabled: false
16
- Metrics/LineLength:
17
- Enabled: false
18
- Metrics/MethodLength:
19
- Enabled: false
20
- Style/Documentation:
21
- Enabled: false
22
- Metrics/AbcSize:
23
- Enabled: false
24
- Metrics/CyclomaticComplexity:
25
- Enabled: false
26
- Metrics/BlockLength:
27
- Enabled: false
28
- Metrics/ModuleLength:
29
- Enabled: false
30
- Metrics/PerceivedComplexity:
31
- Enabled: false
32
- Metrics/ClassLength:
33
- Enabled: false
34
- Lint/AmbiguousRegexpLiteral:
35
- Enabled: false
36
- Lint/AmbiguousBlockAssociation:
37
- Enabled: false
38
- Lint/UriEscapeUnescape:
39
- Enabled: false
40
- Lint/HandleExceptions:
41
- Enabled: false
42
- Lint/ShadowedException:
43
- Enabled: false
44
- Naming/FileName:
45
- Enabled: false
46
- Naming/UncommunicativeMethodParamName:
47
- Enabled: false
48
- Naming/MemoizedInstanceVariableName:
49
- Enabled: false
50
- Naming/HeredocDelimiterNaming:
51
- Enabled: false
52
- Security/Eval:
53
- Enabled: false
54
- Style/RegexpLiteral:
55
- Enabled: false
56
- Style/ClassAndModuleChildren:
57
- Enabled: false
58
- Style/MissingRespondToMissing:
59
- Enabled: false
60
- Style/MethodMissingSuper:
61
- Enabled: false
62
- Style/FrozenStringLiteralComment:
63
- Enabled: false
64
- Style/EvalWithLocation:
65
- Enabled: false
66
- Style/ClassVars:
67
- Enabled: false
68
- Style/GlobalVars:
69
- Enabled: false
data/.travis.yml DELETED
@@ -1,30 +0,0 @@
1
- language: ruby
2
- cache: bundler
3
-
4
- rvm:
5
- - ruby-head
6
- - 2.6.0
7
- - 2.5.3
8
- - 2.4.5
9
- - 2.3.8
10
-
11
- os:
12
- - linux
13
-
14
- gemfile:
15
- - Gemfile
16
- - Gemfile-4.x
17
-
18
- matrix :
19
- fast_finish: true
20
- allow_failures:
21
- - rvm: ruby-head
22
-
23
- script: bundle exec rake test
24
-
25
- env:
26
- global:
27
- - TEST=true
28
-
29
- notifications:
30
- email: false
data/Gemfile-4.x DELETED
@@ -1,38 +0,0 @@
1
-
2
- source 'https://rubygems.org'
3
-
4
- # Middleman Gems
5
- gem 'middleman-cli', '~> 4.2'
6
- gem 'middleman-core', '~> 4.2'
7
-
8
- # Specify your gem's dependencies in middleman-blog.gemspec
9
- gemspec
10
-
11
- # Build and doc tools
12
- gem 'rake', '~> 12.3', require: false
13
- gem 'yard', '~> 0.9.11', require: false
14
-
15
- # Test tools
16
- gem 'aruba', '~> 0.14.0', require: false
17
- gem 'byebug'
18
- gem 'capybara', '~> 2.5.0', require: false
19
- gem 'cucumber', '~> 3.0', require: false
20
- gem 'rspec', '~> 3.0', require: false
21
-
22
- # Pry tools
23
- gem 'pry'
24
- gem 'pry-rescue'
25
- gem 'pry-stack_explorer'
26
-
27
- gem 'kramdown'
28
- gem 'nokogiri', '~> 1.9.1'
29
- gem 'timecop', '~> 0.6.3'
30
-
31
- # Code Quality
32
- gem 'rubocop', '~> 0.61.1', require: false
33
- gem 'simplecov', '~> 0.10', require: false
34
-
35
- # Set the ruby platform - not windows
36
- platforms :ruby do
37
- gem 'redcarpet', '~> 3.1' # Latest 3.4.0
38
- end
@@ -1,6 +0,0 @@
1
- source 'https://rubygems.org'
2
-
3
- gem 'middleman', github: 'middleman/middleman'
4
- gem 'middleman-blog', github: 'middleman/middleman-blog'
5
- gem 'middleman-syntax', github: 'middleman/middleman-syntax'
6
- gem 'zurb-foundation', '~> 4.1.6'
@@ -1,35 +0,0 @@
1
- require 'zurb-foundation'
2
-
3
- spec = Gem::Specification.find_by_name('zurb-foundation')
4
- set :js_assets_paths, [File.join(spec.gem_dir, 'js')]
5
-
6
- activate :directory_indexes
7
-
8
- activate :blog
9
-
10
- set :blog_name, 'Deep Thoughts'
11
- set :blog_author, 'Nick Adams'
12
- set :blog_avatar, 'http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50'
13
- set :top_nav_title, title: 'Home', target: 'index.html'
14
- set :top_nav_items, [
15
- { title: 'About Me', target: 'about-me.html' },
16
- { title: 'Archives', target: 'archives.html' }
17
- # { :title => "Other Page", :target => "other-page.html" }
18
- ]
19
-
20
- helpers do
21
- def page_title
22
- title = blog_name.dup
23
- if current_page.data.title
24
- title << ": #{current_page.data.title}"
25
- elsif is_blog_article?
26
- title << ": #{current_article.title}"
27
- end
28
- title
29
- end
30
-
31
- def link_to_with_active(title, url, class_name = 'active')
32
- active_class = current_resource == sitemap.find_resource_by_path(url) ? class_name : ''
33
- link_to(title, url, class: active_class)
34
- end
35
- end
@@ -1,25 +0,0 @@
1
- ---
2
- title: "This is a headline for a blog post if it’s two lines long."
3
- ---
4
-
5
- Morbi dapibus scelerisque risus, non auctor enim varius vitae. Proin in eros tortor. Aliquam erat volutpat. Sed tempus mollis faucibus. Nunc nunc dolor, ullamcorper rhoncus malesuada in, consectetur vitae nisi. Nulla facilisi.
6
-
7
- ## Heading Example
8
-
9
- Quisque varius euismod tempor. Nullam nisi risus, tempor in auctor ac, tempor eget nisl. Pellentesque fermentum luctus sapien vel pretium. In hac habitasse platea dictumst. Aliquam ac purus nec enim imperdiet vehicula a a risus.
10
-
11
- ### Heading Example
12
-
13
- Quisque varius euismod tempor. Nullam nisi risus, tempor in auctor ac, tempor eget nisl. Pellentesque fermentum luctus sapien vel pretium. In hac habitasse platea dictumst. Aliquam ac purus nec enim imperdiet vehicula a a risus.
14
-
15
- #### Heading Example
16
-
17
- Quisque varius euismod tempor. Nullam nisi risus, tempor in auctor ac, tempor eget nisl. Pellentesque fermentum luctus sapien vel pretium. In hac habitasse platea dictumst. Aliquam ac purus nec enim imperdiet vehicula a a risus.
18
-
19
- ##### Heading Example
20
-
21
- Quisque varius euismod tempor. Nullam nisi risus, tempor in auctor ac, tempor eget nisl. Pellentesque fermentum luctus sapien vel pretium. In hac habitasse platea dictumst. Aliquam ac purus nec enim imperdiet vehicula a a risus.
22
-
23
- ###### Heading Example
24
-
25
- Quisque varius euismod tempor. Nullam nisi risus, tempor in auctor ac, tempor eget nisl. Pellentesque fermentum luctus sapien vel pretium. In hac habitasse platea dictumst. Aliquam ac purus nec enim imperdiet vehicula a a risus.
@@ -1,10 +0,0 @@
1
- <section id="recent">
2
- <h2>
3
- Archive
4
- </h2>
5
- <ul class="disc">
6
- <% blog.articles.each do |article| %>
7
- <li><a href="<%= article.url %>"><%= article.title %></a> <time><%= article.date.strftime('%b %e') %></time></li>
8
- <% end %>
9
- </ul>
10
- </section>
@@ -1,11 +0,0 @@
1
- <% blog.articles[0...5].each_with_index do |article, i| %>
2
- <article class="<%= (i == 0) ? 'first' : '' %>">
3
- <span><%= article.date.strftime('%b %e %Y') %></span>
4
-
5
- <h1><a href="<%= article.url %>"><%= article.title %></a></h1>
6
-
7
- <%= article.summary %>
8
-
9
- <div class="more"><a href="<%= article.url %>">read on &raquo;</a></div>
10
- </article>
11
- <% end %>