retter 0.2.2 → 0.2.3

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 (52) hide show
  1. data/.travis.yml +1 -1
  2. data/ChangeLog.md +10 -0
  3. data/README.md +1 -3
  4. data/bin/retter +8 -4
  5. data/lib/retter/binder.rb +50 -0
  6. data/lib/retter/command.rb +42 -39
  7. data/lib/retter/config.rb +24 -23
  8. data/lib/retter/entries.rb +14 -18
  9. data/lib/retter/entry.rb +52 -29
  10. data/lib/retter/generator/base.rb +6 -7
  11. data/lib/retter/generator/skel/Gemfile +1 -2
  12. data/lib/retter/generator/skel/Retterfile +2 -2
  13. data/lib/retter/generator/skel/layouts/article.html.haml +3 -2
  14. data/lib/retter/generator/skel/layouts/entry.html.haml +3 -2
  15. data/lib/retter/generator/skel/layouts/index.html.haml +4 -2
  16. data/lib/retter/generator.rb +0 -1
  17. data/lib/retter/{renderers.rb → markdown.rb} +22 -1
  18. data/lib/retter/page/article.rb +54 -0
  19. data/lib/retter/page/base.rb +97 -0
  20. data/lib/retter/page/entries.rb +17 -0
  21. data/lib/retter/page/entry.rb +46 -0
  22. data/lib/retter/page/feed.rb +63 -0
  23. data/lib/retter/page/index.rb +17 -0
  24. data/lib/retter/page/profile.rb +17 -0
  25. data/lib/retter/page/view_helper.rb +9 -1
  26. data/lib/retter/page.rb +22 -74
  27. data/lib/retter/preprint.rb +19 -10
  28. data/lib/retter/version.rb +1 -1
  29. data/lib/retter.rb +41 -29
  30. data/retter.gemspec +44 -53
  31. data/spec/command/callback_spec.rb +16 -6
  32. data/spec/command/clean_spec.rb +20 -0
  33. data/spec/command/commit_spec.rb +11 -12
  34. data/spec/command/edit_spec.rb +28 -38
  35. data/spec/command/list_spec.rb +4 -4
  36. data/spec/command/open_spec.rb +2 -2
  37. data/spec/command/preview_spec.rb +7 -12
  38. data/spec/command/rebind_spec.rb +143 -66
  39. data/spec/spec_helper.rb +10 -3
  40. data/spec/support/example_group_helper.rb +55 -15
  41. data/spec/support/matchers.rb +0 -1
  42. metadata +195 -78
  43. data/lib/retter/generator/updator.rb +0 -7
  44. data/lib/retter/pages/article.rb +0 -41
  45. data/lib/retter/pages/entries.rb +0 -15
  46. data/lib/retter/pages/entry.rb +0 -35
  47. data/lib/retter/pages/feed.rb +0 -51
  48. data/lib/retter/pages/index.rb +0 -15
  49. data/lib/retter/pages/profile.rb +0 -15
  50. data/lib/retter/pages.rb +0 -77
  51. data/spec/command/invoke_after_spec.rb +0 -29
  52. data/spec/fixtures/sample.md +0 -295
data/.travis.yml CHANGED
@@ -1,2 +1,2 @@
1
1
  rvm:
2
- - '1.9.3-p125'
2
+ - '1.9.3-p194'
data/ChangeLog.md CHANGED
@@ -1,3 +1,13 @@
1
+ # 0.2.3
2
+
3
+ ## clean sub command
4
+
5
+ clean sub command wraps cache clear method.
6
+
7
+ ```
8
+ retter clean
9
+ ```
10
+
1
11
  # 0.2.2
2
12
 
3
13
  Sidebar added to built-in themes.
data/README.md CHANGED
@@ -242,11 +242,9 @@ renderer Retter::Renderers::PygmentsRenderer
242
242
  # Remove caches
243
243
 
244
244
  When change the renderer, you have to remove cache files.
245
- Cache files is in `tmp/cache`.
246
- Please remove these files manually.
247
245
 
248
246
  ```
249
- $ rm -rf tmp/cache/*
247
+ $ retter clean
250
248
  ```
251
249
 
252
250
  # Built-in themes
data/bin/retter CHANGED
@@ -3,20 +3,24 @@
3
3
 
4
4
  $LOAD_PATH.unshift File.dirname(__FILE__) + '/../lib'
5
5
 
6
+ trap :INT do
7
+ print "\r"
8
+ exit
9
+ end
10
+
6
11
  require 'retter'
7
12
 
8
- Retter.load ENV
13
+ Retter::Site.load ENV
9
14
 
10
15
  case ARGV[0]
11
16
  when 'new'
12
17
  Retter::Generator::Creator.start ARGV[1..-1]
13
- when 'gen'
14
- Retter::Generator::Updator.start ARGV[1..-1]
15
18
  else
16
19
  begin
17
20
  Retter::Command.start
18
21
  rescue Errno::ENOENT
19
- $stderr.puts "Some files might be broken. run `retter gen $RETTER_HOME`"
22
+ $stderr.puts "Some files might be broken. Please re-generate site: `retter new site-name`"
23
+
20
24
  raise
21
25
  end
22
26
  end
@@ -0,0 +1,50 @@
1
+ # coding: utf-8
2
+
3
+ module Retter
4
+ class Binder
5
+ extend Configurable
6
+
7
+ configurable :allow_binding
8
+
9
+ def initialize(entries)
10
+ @entries = entries
11
+ @singleton_pages = find_singleton_pages
12
+ end
13
+
14
+ def bind!
15
+ bind_entries
16
+
17
+ @singleton_pages.each(&:bind)
18
+ end
19
+
20
+ def bind_entries
21
+ @entries.each do |entry|
22
+ entry_page = Page::Entry.new(entry)
23
+ entry_page.bind
24
+
25
+ entry.articles.each do |article|
26
+ article_page = Page::Article.new(article)
27
+ article_page.bind
28
+ end
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def find_singleton_pages
35
+ available_singleton_page_names.map {|name|
36
+ Page.const_get(name.capitalize).new
37
+ }
38
+ end
39
+
40
+ def available_singleton_page_names
41
+ availables = [:index]
42
+
43
+ unless allow_binding == :none
44
+ availables += allow_binding || [:profile, :entries, :feed]
45
+ end
46
+
47
+ availables.map(&:downcase).uniq
48
+ end
49
+ end
50
+ end
@@ -2,10 +2,11 @@
2
2
 
3
3
  require 'thor'
4
4
  require 'launchy'
5
+ require 'pathname'
5
6
 
6
7
  module Retter
7
8
  class Command < Thor
8
- include Stationery
9
+ include Site
9
10
 
10
11
  map '-v' => :version,
11
12
  '-e' => :edit,
@@ -14,54 +15,52 @@ module Retter
14
15
  '-r' => :rebind,
15
16
  '-b' => :bind
16
17
 
17
- desc 'edit', 'Open $EDITOR. Write an article with Markdown.'
18
+ desc :edit, %(Open $EDITOR. Write an article with Markdown.)
18
19
  method_options date: :string, key: :string, silent: :boolean
19
20
  def edit(identifier = options[:date] || options[:key])
20
21
  entry = entries.detect_by_string(identifier)
21
22
 
22
- system config.editor, entry.path
23
+ system config.editor, entry.path.to_path
23
24
 
24
- invoke_after :edit unless silent?
25
+ invoke_after :edit
25
26
  end
26
27
 
27
28
  default_task :edit
28
29
 
29
- desc 'preview', 'Preview the draft article (browser will open).'
30
+ desc :preview, %(Preview the draft article (browser will open).)
30
31
  method_options date: :string, key: :string
31
32
  def preview(identifier = options[:date] || options[:key])
32
33
  preprint = Preprint.new
33
- entry = entries.detect_by_string(identifier)
34
+ entry = entries.detect_by_string(identifier)
34
35
 
35
- preprint.print entry
36
+ preprint.bind entry
36
37
 
37
- Launchy.open preprint.path
38
+ Launchy.open preprint.path.to_path
38
39
  end
39
40
 
40
- desc 'open', 'Open your (static) site top page (browser will open).'
41
+ desc :open, %(Open your (static) site top page (browser will open).)
41
42
  def open
42
- index_page = Pages::Index.new
43
+ index_page = Page::Index.new
43
44
 
44
- Launchy.open index_page.path
45
+ Launchy.open index_page.path.to_path
45
46
  end
46
47
 
47
- desc 'rebind', 'Bind the draft article, re-generate all html pages.'
48
+ desc :rebind, %(Bind the draft article, re-generate all html pages.)
48
49
  method_options silent: :boolean
49
50
  def rebind
50
51
  entries.commit_wip_entry!
51
52
 
52
- pages.bind!
53
+ Binder.new(entries).bind!
53
54
 
54
- unless silent?
55
- invoke_after :bind
56
- invoke_after :rebind
57
- end
55
+ invoke_after :bind
56
+ invoke_after :rebind
58
57
  end
59
58
 
60
- desc 'bind', 'Alias of rebind'
59
+ desc 'bind', %(Alias of rebind)
61
60
  method_options silent: :boolean
62
- alias_method :bind, :rebind
61
+ alias_method :bind, :rebind
63
62
 
64
- desc 'commit', "cd $RETTER_HOME && git add . && git commit -m 'Retter commit'"
63
+ desc :commit, %(cd $RETTER_HOME && git add . && git commit -m 'Retter commit')
65
64
  method_options silent: :boolean
66
65
  def commit
67
66
  Repository.open config.retter_home do |git|
@@ -69,10 +68,10 @@ module Retter
69
68
  say git.commit_all('Retter commit'), :green
70
69
  end
71
70
 
72
- invoke_after :commit unless silent?
71
+ invoke_after :commit
73
72
  end
74
73
 
75
- desc 'list', 'List retters'
74
+ desc :list, %(List retters)
76
75
  def list
77
76
  entries.each_with_index do |entry, n|
78
77
  say "[e#{n}] #{entry.date}"
@@ -81,7 +80,14 @@ module Retter
81
80
  end
82
81
  end
83
82
 
84
- desc 'home', 'Open a new shell in $RETTER_HOME'
83
+ desc :clean, %(Clear all caches)
84
+ def clean
85
+ return unless config.cache.respond_to?(:clear)
86
+
87
+ config.cache.clear
88
+ end
89
+
90
+ desc :home, %(Open a new shell in $RETTER_HOME)
85
91
  def home
86
92
  Dir.chdir config.retter_home.to_path
87
93
 
@@ -90,51 +96,48 @@ module Retter
90
96
  say 'bye', :green
91
97
  end
92
98
 
93
- desc 'callback', 'Call a callback process only'
94
- method_options after: :string
99
+ desc :callback, %(Call a callback process only)
100
+ method_options after: :string
95
101
  def callback
96
102
  invoke_after options[:after].intern
97
103
  end
98
104
 
99
- desc 'new', 'Create a new site'
105
+ desc :new, %(Create a new site)
100
106
  def new; end
101
107
 
102
- desc 'gen', 'Generate initial files'
103
- def gen; end
104
-
105
- desc 'usage', 'Show usage.'
108
+ desc :usage, %(Show usage.)
106
109
  def usage
107
110
  say Command.usage, :green
108
111
  end
109
112
 
110
- desc 'version', 'Show version.'
113
+ desc :version, %(Show version.)
111
114
  def version
112
115
  say "Retter version #{VERSION}"
113
116
  end
114
117
 
115
118
  private
116
119
 
117
- def pages
118
- @pages ||= Pages.new
119
- end
120
-
121
120
  def silent?
122
121
  !options[:silent].nil?
123
122
  end
124
123
 
125
124
  def invoke_after(name)
126
- callback = config.after_callback(name)
125
+ return if silent?
127
126
 
128
- case callback
127
+ case callback = after_callback(name)
129
128
  when Proc
130
129
  instance_eval &callback
131
- when Symbol
132
- invoke callback
130
+ when Symbol, String
131
+ __send__ callback
133
132
  else
134
133
  # noop
135
134
  end
136
135
  end
137
136
 
137
+ def after_callback(name)
138
+ config.after_callback(name)
139
+ end
140
+
138
141
  def self.usage
139
142
  <<-EOM
140
143
  Usage:
data/lib/retter/config.rb CHANGED
@@ -10,10 +10,12 @@ module Retter
10
10
  class Config
11
11
  extend Forwardable
12
12
 
13
- def_delegators Entries, :renderer, :retters_dir, :wip_file
14
- def_delegators Pages, :layouts_dir, :entries_dir, :allow_binding
15
-
16
- attr_reader :retter_home
13
+ def_delegators Entries, :retters_dir, :wip_file, :markup, :cache
14
+ def_delegators Markdown, :renderer
15
+ def_delegators Binder, :allow_binding
16
+ def_delegators Page, :layouts_dir, :entries_dir
17
+ def_delegators Retter::Site, :title, :description, :url, :author
18
+ def_delegator Retter::Site, :home, :retter_home
17
19
 
18
20
  def initialize(env)
19
21
  @env = env
@@ -23,13 +25,10 @@ module Retter
23
25
  detect_retter_home
24
26
  environments_required
25
27
 
26
- @retter_home = Pathname.new(@env['RETTER_HOME'])
27
28
  load_defaults
28
- load_retterfile_if_exists
29
+ load_retterfile
29
30
  rescue EnvError => e
30
- $stderr.puts e.message
31
-
32
- say Command.usage, :green
31
+ $stderr.puts e.message, Command.usage
33
32
 
34
33
  exit 1
35
34
  end
@@ -45,7 +44,7 @@ module Retter
45
44
  alias_method :after, :after_callback
46
45
 
47
46
  [ # base
48
- :editor, :shell, :cache, :title, :description, :url, :author,
47
+ :editor, :shell,
49
48
  # extra
50
49
  :disqus_shortname
51
50
  ].each do |att|
@@ -62,12 +61,26 @@ module Retter
62
61
  @env['RETTER_HOME'] = Dir.pwd if File.exist? 'Retterfile'
63
62
  end
64
63
 
64
+ def load_retterfile
65
+ retterfile = retter_home.join('Retterfile')
66
+
67
+ instance_eval retterfile.read, retterfile.to_path if retterfile.exist?
68
+ end
69
+
70
+ def environments_required
71
+ unless @env.values_at('EDITOR', 'RETTER_HOME').all?
72
+ raise EnvError, 'Set $RETTER_HOME and $EDITOR, first.'
73
+ end
74
+ end
75
+
65
76
  def load_defaults
77
+ retter_home Pathname.new(@env['RETTER_HOME'])
78
+
66
79
  editor @env['EDITOR']
67
80
  shell @env['SHELL']
68
81
  url 'http://example.com'
69
82
 
70
- renderer Retter::Renderers::CodeRayRenderer
83
+ renderer Retter::Markdown::CodeRayRenderer
71
84
  retters_dir retter_home.join('retters/')
72
85
  wip_file retters_dir.join('today.md')
73
86
 
@@ -79,17 +92,5 @@ module Retter
79
92
 
80
93
  FileUtils.mkdir_p cache_dir.to_path unless cache_dir.directory? # for old versions
81
94
  end
82
-
83
- def load_retterfile_if_exists
84
- retterfile = retter_home.join('Retterfile')
85
-
86
- instance_eval retterfile.read, retterfile.to_path if retterfile.exist?
87
- end
88
-
89
- def environments_required
90
- unless @env.values_at('EDITOR', 'RETTER_HOME').all?
91
- raise EnvError, 'Set $RETTER_HOME and $EDITOR, first.'
92
- end
93
- end
94
95
  end
95
96
  end
@@ -9,10 +9,9 @@ module Retter
9
9
  class EntryLoadError < RetterError; end
10
10
 
11
11
  class Entries < Array
12
- include Stationery
13
12
  extend Configurable
14
13
 
15
- configurable :renderer, :retters_dir, :wip_file
14
+ configurable :retters_dir, :wip_file, :markup, :cache
16
15
 
17
16
  def initialize
18
17
  load_entries retters_dir
@@ -47,7 +46,7 @@ module Retter
47
46
  when wip_file.basename.to_path
48
47
  wip_entry
49
48
  else
50
- detect {|e| e.pathname.basename.to_path == filename }
49
+ detect {|e| e.path.basename.to_path == filename }
51
50
  end
52
51
  end
53
52
 
@@ -70,7 +69,7 @@ module Retter
70
69
  date = date || Date.today
71
70
  body = file.exist? ? file.read : ''
72
71
 
73
- Entry.new date: date, body: rendered_body(body), pathname: file
72
+ Entry.new date: date, body: rendered_body(body), path: file, entries: self
74
73
  end
75
74
 
76
75
  def commit_wip_entry!
@@ -80,7 +79,7 @@ module Retter
80
79
  wip_file.unlink
81
80
  end
82
81
 
83
- Retter.reset!
82
+ reload
84
83
  end
85
84
 
86
85
  def load_entries(path)
@@ -90,29 +89,26 @@ module Retter
90
89
  }.sort_by(&:first)
91
90
 
92
91
  date_files.reverse_each {|date, file|
93
- self << Entry.new(date: date, body: rendered_body(file.read))
92
+ self << Entry.new(date: date, body: rendered_body(file.read), entries: self)
94
93
  }
95
94
  end
96
95
 
96
+ def reload
97
+ clear
98
+
99
+ load_entries retters_dir
100
+ end
101
+
97
102
  def find_markup_files(path)
98
103
  path = Pathname.new(path).realpath
99
- Dir.open(path, &:to_a).grep(/^\d{4}(?:0[1-9]|1[012])(?:0[1-9]|[12][0-9]|3[01])\.(md)$/).map {|f| path.join f }
104
+ Dir.open(path, &:to_a).grep(/^\d{4}(?:0[1-9]|1[012])(?:0[1-9]|[12][0-9]|3[01])\..*$/).map {|f| path.join f }
100
105
  end
101
106
 
102
107
  def rendered_body(body)
103
108
  key = Digest::SHA1.hexdigest('entry_' + body)
104
109
 
105
- config.cache.fetch(key) do
106
- Redcarpet::Markdown.new(
107
- renderer,
108
- autolink: true,
109
- space_after_headers: true,
110
- fenced_code_blocks: true,
111
- strikethrough: true,
112
- superscript: true,
113
- fenced_code_blocks: true,
114
- tables: true
115
- ).render(body)
110
+ cache.fetch(key) do
111
+ (markup || Markdown.instance).render(body)
116
112
  end
117
113
  end
118
114
  end
data/lib/retter/entry.rb CHANGED
@@ -8,7 +8,14 @@ module Retter
8
8
  attr_accessor :entry, :id, :title, :body
9
9
 
10
10
  def initialize(attrs = {})
11
- @id, @entry, @title, @body = attrs.values_at(:id, :entry, :title, :body)
11
+ attrs = {actual: true}.merge(attrs)
12
+
13
+ @id, @entry, @title, @body, @actual = attrs.values_at(:id, :entry, :title, :body, :actual)
14
+ end
15
+
16
+ # XXX return false if generated by Entry#to_article
17
+ def actual?
18
+ @actual
12
19
  end
13
20
 
14
21
  def to_s
@@ -24,32 +31,35 @@ module Retter
24
31
  end
25
32
 
26
33
  def index
27
- articles.index(self)
34
+ articles.index(self).to_i
28
35
  end
29
36
 
30
37
  def articles
31
38
  @articles ||= entry.articles
32
39
  end
33
- end
34
40
 
35
- include Stationery
41
+ def snippet(length = 200)
42
+ snip = tags_stripped_body[0, length]
43
+
44
+ tags_stripped_body.length > length ? "#{snip}..." : snip
45
+ end
46
+
47
+ def tags_stripped_body
48
+ @tags_stripped_body ||= body.gsub(/<\/?\s?[^>]+>/, '')
49
+ end
50
+ end
36
51
 
37
52
  attr_accessor :date, :lede, :body, :articles
38
- attr_reader :pathname
53
+ attr_reader :path
39
54
 
40
- def initialize(attrs={})
41
- @date, @body = attrs.values_at(:date, :body)
55
+ def initialize(attrs = {})
56
+ @entries, @date, @body = attrs.values_at(:entries, :date, :body)
42
57
 
43
- pathname_by_date = Entries.retters_dir.join(date.strftime('%Y%m%d.md'))
44
- @pathname = attrs[:pathname] || pathname_by_date
58
+ path_by_date = Entries.retters_dir.join(date.strftime('%Y%m%d.md'))
59
+ @path = attrs[:path] || path_by_date
45
60
 
46
- attach_titles
47
61
  extract_articles
48
- load_lede
49
- end
50
-
51
- def path
52
- pathname.to_path
62
+ assign_lede
53
63
  end
54
64
 
55
65
  def to_s
@@ -57,15 +67,19 @@ module Retter
57
67
  end
58
68
 
59
69
  def next
60
- entries[index.next]
70
+ @entries[index.next]
61
71
  end
62
72
 
63
73
  def prev
64
- entries[index.pred] unless index.pred < 0
74
+ @entries[index.pred] unless index.pred < 0
65
75
  end
66
76
 
67
77
  def index
68
- entries.index(self) || 0
78
+ @entries.index(self) || 0
79
+ end
80
+
81
+ def to_article
82
+ Article.new(entry: self, id: 'a0', title: date.to_s, body: body, actual: false)
69
83
  end
70
84
 
71
85
  private
@@ -74,7 +88,7 @@ module Retter
74
88
  Nokogiri::HTML(body)
75
89
  end
76
90
 
77
- def attach_titles
91
+ def assign_ids
78
92
  html = body_elements
79
93
  html.search('//h1').each_with_index do |h1, seq|
80
94
  h1.set_attribute 'id', "a#{seq}"
@@ -84,23 +98,32 @@ module Retter
84
98
  end
85
99
 
86
100
  def extract_articles
87
- @articles = body_elements.search('body > *').each_with_object([]) {|c, r|
101
+ assign_ids
102
+
103
+ @articles = body_elements.search('body > *').each_with_object([]) {|c, articles|
88
104
  if c.name == 'h1'
89
- r << Article.new(entry: self, id: c.attr('id'), title: c.text, body: '')
105
+ articles << Article.new(entry: self, id: c.attr('id'), title: c.text, body: '')
90
106
  else
91
- next if r.empty?
107
+ next if articles.empty?
92
108
 
93
- article = r.last
109
+ article = articles.last
94
110
  article.body += c.to_s
95
111
  end
96
- } || []
112
+ }
113
+
114
+ @articles = [to_article] if @articles.empty?
97
115
  end
98
116
 
99
- def load_lede
100
- @lede = body_elements.search('body > *').each_with_object('') {|c, r|
101
- break r if c.name == 'h1'
102
- r << c.to_s
103
- }
117
+ def assign_lede
118
+ @lede =
119
+ if articles.any?(&:actual?)
120
+ body_elements.search('body > *').each_with_object('') {|c, r|
121
+ break r if c.name == 'h1'
122
+ r << c.to_s
123
+ }
124
+ else
125
+ ''
126
+ end
104
127
  end
105
128
  end
106
129
  end
@@ -47,20 +47,19 @@ class Retter::Generator::Base < Thor::Group
47
47
 
48
48
  def create_files
49
49
  FILES.each do |file|
50
- copy_file("skel/#{file}", "#{name}/#{file}")
50
+ copy_file %(skel/#{file}), %(#{name}/#{file})
51
51
  end
52
52
 
53
53
  TEMPLATES.each do |file|
54
- template("skel/#{file}", "#{name}/#{file}")
54
+ template %(skel/#{file}), %(#{name}/#{file})
55
55
  end
56
56
  end
57
57
 
58
58
  def bundle_install
59
- pwd = Dir.pwd
60
- FileUtils.cd name
59
+ Dir.chdir name do
60
+ cli = Bundler::CLI.new
61
61
 
62
- Bundler::CLI.new.install
63
-
64
- FileUtils.cd pwd
62
+ cli.install
63
+ end
65
64
  end
66
65
  end
@@ -1,6 +1,5 @@
1
1
  source :rubygems
2
2
 
3
+ gem 'retter', '~> 0.2.3'
3
4
  gem 'rack'
4
5
  gem 'thin' # for heroku
5
- gem 'retter'
6
-
@@ -5,7 +5,7 @@ url 'http://retter.example.com/'
5
5
  title '<%= name %>'
6
6
  description '<%= name %>'
7
7
  author '<%= ENV["USER"] %>'
8
- renderer Retter::Renderers::PygmentsRenderer
8
+ renderer Retter::Markdown::PygmentsRenderer
9
9
 
10
10
  # Callbacks for retter sub-command: edit, rebind, commit
11
11
  #
@@ -24,7 +24,7 @@ renderer Retter::Renderers::PygmentsRenderer
24
24
  # end
25
25
  #
26
26
  # after :edit do
27
- # Retter.reset!
27
+ # Retter::Site.reset!
28
28
  # ident = ARGV.pop
29
29
  #
30
30
  # preview ident if yes?("Preview now? [yes/no]")
@@ -2,8 +2,9 @@
2
2
  %h1.date
3
3
  %a{href: entry_path(entry)}= entry.date
4
4
 
5
- %h1{id: article.id}
6
- %a{href: article_path(article)}= article.title
5
+ - if article.actual?
6
+ %h1{id: article.id}
7
+ %a{href: article_path(article)}= article.title
7
8
 
8
9
  = article
9
10
 
@@ -6,8 +6,9 @@
6
6
  = entry.lede
7
7
 
8
8
  - entry.articles.each do |article|
9
- %h1{id: article.id}
10
- %a{href: article_path(article)}= article.title
9
+ - if article.actual?
10
+ %h1{id: article.id}
11
+ %a{href: article_path(article)}= article.title
11
12
 
12
13
  = article
13
14
 
@@ -9,8 +9,10 @@
9
9
  = entry.lede
10
10
 
11
11
  - entry.articles.each do |article|
12
- %h1{id: article.id}
13
- %a{href: article_path(article)}= article.title
12
+ - if article.actual?
13
+ %h1{id: article.id}
14
+ %a{href: article_path(article)}= article.title
15
+
14
16
  = article
15
17
 
16
18
  .nav