postview 0.8.1 → 0.9.0
Sign up to get free protection for your applications and to get access to all the features.
- data/ABOUT +9 -0
- data/HISTORY +27 -1
- data/Rakefile +3 -1
- data/VERSION +4 -4
- data/bin/postview +2 -2
- data/lib/postview.rb +64 -13
- data/lib/postview/application.rb +34 -21
- data/lib/postview/authentication.rb +36 -0
- data/lib/postview/cli.rb +10 -0
- data/lib/postview/cli/create_command.rb +53 -37
- data/lib/postview/cli/server_command.rb +2 -2
- data/lib/postview/extensions.rb +10 -0
- data/lib/postview/helpers.rb +3 -0
- data/lib/postview/settings.rb +19 -17
- data/lib/postview/site.rb +13 -1
- data/lib/postview/version.rb +1 -1
- data/tasks/package.rake +80 -2
- data/test/application_test.rb +29 -14
- data/test/{extensions.rb → customizations.rb} +1 -0
- data/test/fixtures/application/config/settings.yml +4 -1
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/banners/banner.jpg +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/favicon.ico +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/logo.png +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/navigation-bar.gif +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/postview.png +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/rack.png +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/ruby.png +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/sinatra.png +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/images/trojan.com +0 -0
- data/test/fixtures/application/themes/{gemstone/javascripts/gemstone.js → mytheme/javascripts/postview.js} +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/stylesheets/gemstone.css +0 -0
- data/test/fixtures/application/themes/{gemstone → mytheme}/stylesheets/postview.css +0 -0
- data/test/fixtures/application/themes/mytheme/templates/about.erb +1 -0
- data/test/fixtures/application/themes/mytheme/templates/archive/index.erb +3 -0
- data/test/fixtures/application/themes/mytheme/templates/archive/show.erb +1 -0
- data/test/fixtures/application/themes/mytheme/templates/drafts/index.erb +3 -0
- data/test/fixtures/application/themes/mytheme/templates/drafts/show.erb +1 -0
- data/test/fixtures/application/themes/mytheme/templates/error.erb +1 -0
- data/test/fixtures/application/themes/mytheme/templates/index.erb +3 -0
- data/{themes/default → test/fixtures/application/themes/mytheme/templates}/layout.erb +2 -2
- data/test/fixtures/application/themes/mytheme/templates/posts/index.erb +3 -0
- data/test/fixtures/application/themes/mytheme/templates/posts/show.erb +1 -0
- data/test/fixtures/application/themes/mytheme/templates/search.erb +6 -0
- data/test/fixtures/application/themes/mytheme/templates/tags/index.erb +3 -0
- data/test/fixtures/application/themes/mytheme/templates/tags/show.erb +6 -0
- data/test/fixtures/site/blog/config.ru +6 -0
- data/test/fixtures/site/blog/config/settings.yml +25 -0
- data/test/fixtures/{application/themes/gemstone/error.erb → site/blog/empty.yml} +0 -0
- data/test/fixtures/site/blog/posts/20090529-third_article.t1.t2.t3.mkd +4 -0
- data/test/fixtures/site/blog/posts/20090602-fourth_article.t1.t2.t3.t4.mkd +4 -0
- data/test/fixtures/site/blog/posts/archive/20080529-first_article.t1.mkd +4 -0
- data/test/fixtures/site/blog/posts/archive/20080602-second_article.t1.t2.mkd +4 -0
- data/test/fixtures/site/blog/posts/drafts/20090730-fifth_article.t1.t2.t3.t4.t5.mkd +4 -0
- data/{themes/default/error.erb → test/fixtures/site/themes/mytheme/images/banners/banner.jpg} +0 -0
- data/test/fixtures/site/themes/mytheme/images/favicon.ico +0 -0
- data/test/fixtures/site/themes/mytheme/images/logo.png +0 -0
- data/test/fixtures/site/themes/mytheme/images/navigation-bar.gif +0 -0
- data/test/fixtures/site/themes/mytheme/images/postview.png +0 -0
- data/test/fixtures/site/themes/mytheme/images/rack.png +0 -0
- data/test/fixtures/site/themes/mytheme/images/ruby.png +0 -0
- data/test/fixtures/site/themes/mytheme/images/sinatra.png +0 -0
- data/test/fixtures/site/themes/mytheme/images/trojan.com +0 -0
- data/test/fixtures/site/themes/mytheme/javascripts/postview.js +1 -0
- data/test/fixtures/site/themes/mytheme/stylesheets/gemstone.css +1 -0
- data/test/fixtures/site/themes/mytheme/stylesheets/postview.css +238 -0
- data/test/fixtures/site/themes/mytheme/templates/about.erb +1 -0
- data/test/fixtures/site/themes/mytheme/templates/archive/index.erb +3 -0
- data/test/fixtures/site/themes/mytheme/templates/archive/show.erb +1 -0
- data/test/fixtures/site/themes/mytheme/templates/drafts/index.erb +3 -0
- data/test/fixtures/site/themes/mytheme/templates/drafts/show.erb +1 -0
- data/test/fixtures/site/themes/mytheme/templates/error.erb +1 -0
- data/test/fixtures/site/themes/mytheme/templates/index.erb +3 -0
- data/test/fixtures/{application/themes/gemstone → site/themes/mytheme/templates}/layout.erb +20 -14
- data/test/fixtures/site/themes/mytheme/templates/posts/index.erb +3 -0
- data/test/fixtures/site/themes/mytheme/templates/posts/show.erb +1 -0
- data/test/fixtures/site/themes/mytheme/templates/search.erb +6 -0
- data/test/fixtures/site/themes/mytheme/templates/tags/index.erb +3 -0
- data/test/fixtures/site/themes/mytheme/templates/tags/show.erb +6 -0
- data/test/helpers_test.rb +1 -2
- data/test/settings_test.rb +12 -3
- data/test/site_test.rb +3 -4
- data/themes/default/stylesheets/postview.css +1 -0
- data/themes/default/{about.erb → templates/about.erb} +1 -1
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/archive/index.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/archive/show.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/drafts/index.erb +1 -1
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/drafts/show.erb +0 -0
- data/themes/default/templates/error.erb +13 -0
- data/themes/default/{index.erb → templates/index.erb} +1 -1
- data/themes/default/templates/layout.erb +130 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/posts/index.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/posts/show.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/search.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/tags/index.erb +0 -0
- data/{test/fixtures/application/themes/gemstone → themes/default/templates}/tags/show.erb +0 -0
- metadata +164 -61
- data/INFO +0 -14
- data/lib/postview/about.rb +0 -34
- data/test/fixtures/application/themes/gemstone/about.erb +0 -22
- data/test/fixtures/application/themes/gemstone/index.erb +0 -38
- data/test/helper.rb +0 -9
- data/themes/default/archive/index.erb +0 -21
- data/themes/default/archive/show.erb +0 -17
- data/themes/default/drafts/index.erb +0 -21
- data/themes/default/drafts/show.erb +0 -17
- data/themes/default/posts/index.erb +0 -21
- data/themes/default/posts/show.erb +0 -17
- data/themes/default/search.erb +0 -40
- data/themes/default/tags/index.erb +0 -12
- data/themes/default/tags/show.erb +0 -40
@@ -47,7 +47,7 @@ private
|
|
47
47
|
@arguments.summary_indent = " "
|
48
48
|
@arguments.summary_width = 24
|
49
49
|
@arguments.banner = <<-end_banner.gsub(/^[ ]{6}/, '')
|
50
|
-
#{Postview::
|
50
|
+
#{Postview::version_summary}
|
51
51
|
|
52
52
|
Usage:
|
53
53
|
#{Postview.name.downcase} server <path> [options]
|
@@ -68,7 +68,7 @@ private
|
|
68
68
|
puts error
|
69
69
|
puts @arguments
|
70
70
|
end
|
71
|
-
puts "#{Postview::
|
71
|
+
puts "#{Postview::version_summary}\n\n"
|
72
72
|
end
|
73
73
|
|
74
74
|
def load_server
|
data/lib/postview/extensions.rb
CHANGED
data/lib/postview/helpers.rb
CHANGED
data/lib/postview/settings.rb
CHANGED
@@ -7,16 +7,18 @@ class Settings
|
|
7
7
|
:site => {
|
8
8
|
:title => "Postview",
|
9
9
|
:subtitle => "Post your articles",
|
10
|
-
:author => "
|
11
|
-
:email => "
|
10
|
+
:author => "Postview",
|
11
|
+
:email => "postview@example.com",
|
12
12
|
:domain => "example.com",
|
13
13
|
:directory => "/var/www/example",
|
14
|
-
:theme => "default"
|
14
|
+
:theme => "default",
|
15
|
+
:token => "e44257415827b00557ae5505f93e112d6158c4ba3c567aefbbff47288c6bf7cd" # Password: admin
|
15
16
|
},
|
16
17
|
:directories => {
|
17
18
|
:posts => "posts",
|
18
19
|
:archive => "posts/archive",
|
19
|
-
:drafts => "posts/drafts"
|
20
|
+
:drafts => "posts/drafts",
|
21
|
+
:themes => "themes"
|
20
22
|
},
|
21
23
|
:sections => {
|
22
24
|
:root => "/",
|
@@ -25,14 +27,14 @@ class Settings
|
|
25
27
|
:archive => "/archive",
|
26
28
|
:drafts => "/drafts",
|
27
29
|
:search => "/search",
|
28
|
-
:about => "/about"
|
30
|
+
:about => "/about",
|
31
|
+
:manager => "/manager"
|
29
32
|
}
|
30
33
|
}
|
31
34
|
FILE_NAME = "settings.yml"
|
32
35
|
FILE_DIR = "config"
|
33
|
-
FILE = Postview::PATH.join(FILE_DIR, FILE_NAME)
|
34
36
|
|
35
|
-
attr_reader :site, :
|
37
|
+
attr_reader :site, :directories, :sections
|
36
38
|
|
37
39
|
# Initialize the settings using attributes passed by arguments.
|
38
40
|
# Only attributes valid are read. See DEFAULTS.
|
@@ -63,12 +65,12 @@ class Settings
|
|
63
65
|
|
64
66
|
# Build a specific finder for directory.
|
65
67
|
def build_finder_for(directory)
|
66
|
-
Postage::Finder.new(
|
68
|
+
Postage::Finder.new(path_to(directory))
|
67
69
|
end
|
68
70
|
|
69
71
|
# Load a default settings values from file placed in +config/settings.yml+.
|
70
72
|
def self.load
|
71
|
-
load_file(
|
73
|
+
load_file(file)
|
72
74
|
end
|
73
75
|
|
74
76
|
# Load a specific settings file.
|
@@ -89,25 +91,25 @@ class Settings
|
|
89
91
|
|
90
92
|
# Build settings file using DEFAULTS.
|
91
93
|
def self.build_default_file
|
92
|
-
|
94
|
+
file.open "w+" do |file|
|
93
95
|
file << DEFAULTS.to_yaml
|
94
|
-
end unless
|
96
|
+
end unless file.exist?
|
95
97
|
end
|
96
98
|
|
97
99
|
# Returns settings file.
|
98
|
-
def file
|
99
|
-
|
100
|
+
def self.file
|
101
|
+
Postview::path.join(FILE_DIR, FILE_NAME)
|
100
102
|
end
|
101
103
|
|
102
104
|
# Check directory and returns file that matches with a pattern.
|
103
|
-
def
|
104
|
-
|
105
|
+
def file_names_from(directory, pattern = "**.*")
|
106
|
+
path_to(directory, pattern)
|
105
107
|
end
|
106
108
|
|
107
109
|
# Returns a valid directory loaded from settings file.
|
108
|
-
def
|
110
|
+
def path_to(name, *paths)
|
109
111
|
return Pathname.new(directories[name], *paths) if directories[name].match(%r{^/.*})
|
110
|
-
|
112
|
+
Postview::path.join(directories[name], *paths)
|
111
113
|
end
|
112
114
|
|
113
115
|
# Parse all attributes to hash.
|
data/lib/postview/site.rb
CHANGED
@@ -24,6 +24,9 @@ class Site
|
|
24
24
|
# Theme directory name.
|
25
25
|
attr_accessor :theme
|
26
26
|
|
27
|
+
# Token pass.
|
28
|
+
attr_accessor :token
|
29
|
+
|
27
30
|
# Finder for posts
|
28
31
|
attr_accessor :find
|
29
32
|
|
@@ -49,7 +52,6 @@ class Site
|
|
49
52
|
end
|
50
53
|
|
51
54
|
# Find all posts tagged with a specific tag.
|
52
|
-
# Returns two lists: posts and archived posts.
|
53
55
|
def find_all_posts_tagged_with(tag)
|
54
56
|
[ find.all_posts_by_tag(tag), find_in_archive.all_posts_by_tag(tag) ]
|
55
57
|
end
|
@@ -60,6 +62,16 @@ class Site
|
|
60
62
|
[ find.posts(*values), find_in_archive.posts(*values) ]
|
61
63
|
end
|
62
64
|
|
65
|
+
# Check authentication for user.
|
66
|
+
def authenticate?(username, password)
|
67
|
+
@token == self.class.tokenize(username, password, domain)
|
68
|
+
end
|
69
|
+
|
70
|
+
# Generate digest token.
|
71
|
+
def self.tokenize(username, password, domain)
|
72
|
+
Digest::SHA256.hexdigest("$#{username}?#{password}@#{domain}")
|
73
|
+
end
|
74
|
+
|
63
75
|
end # class Site
|
64
76
|
|
65
77
|
end #module Postview
|
data/lib/postview/version.rb
CHANGED
data/tasks/package.rake
CHANGED
@@ -1,8 +1,86 @@
|
|
1
1
|
require 'rake/gempackagetask'
|
2
2
|
|
3
|
+
def files
|
4
|
+
#`git ls-files`.split.sort.reject{ |out| out =~ /^\./ || out =~ /^doc/ }
|
5
|
+
@files ||= OpenStruct.new :documents => Dir[*%w{ABOUT HISTORY LICENSE Rakefile VERSION README.rdoc}],
|
6
|
+
:binaries => Dir[*%w{{bin,scripts}/**}],
|
7
|
+
:libraries => Dir[*%w{{lib,tasks}/**/**.rb tasks/**/**.rake}],
|
8
|
+
:tests => Dir[*%w{test/**.rb test/fixtures/**/**}],
|
9
|
+
:resources => Dir[*%w{themes/**/**}]
|
10
|
+
end
|
11
|
+
|
12
|
+
def manifest
|
13
|
+
files.documents +
|
14
|
+
files.binaries +
|
15
|
+
files.libraries +
|
16
|
+
files.tests +
|
17
|
+
files.resources
|
18
|
+
end
|
19
|
+
|
3
20
|
def gemspec
|
4
|
-
|
5
|
-
|
21
|
+
@gemspec ||= Gem::Specification.new do |spec|
|
22
|
+
|
23
|
+
# Global information
|
24
|
+
spec.platform = Gem::Platform::RUBY
|
25
|
+
spec.executable = "postview"
|
26
|
+
spec.name = Postview.name.downcase
|
27
|
+
spec.version = Postview::version_tag
|
28
|
+
spec.date = Postview::version_spec.date.to_s
|
29
|
+
spec.summary = Postview::about_info.summary
|
30
|
+
spec.description = Postview::about_info.description
|
31
|
+
spec.authors = Postview::about_info.authors
|
32
|
+
spec.email = Postview::about_info.email
|
33
|
+
spec.homepage = Postview::about_info.homepage
|
34
|
+
|
35
|
+
# Dependencies
|
36
|
+
spec.add_dependency "sinatra", ">= 0.9.1.1"
|
37
|
+
spec.add_dependency "sinatra-mapping", ">= 1.0.5"
|
38
|
+
spec.add_dependency "postage", ">= 0.1.4.1"
|
39
|
+
|
40
|
+
spec.files = manifest
|
41
|
+
spec.require_paths = ["lib"]
|
42
|
+
spec.test_files = files.tests
|
43
|
+
spec.has_rdoc = true
|
44
|
+
spec.extra_rdoc_files = %w{README.rdoc LICENSE}
|
45
|
+
spec.rdoc_options = [
|
46
|
+
"--line-numbers",
|
47
|
+
"--inline-source",
|
48
|
+
"--title", Postview::version_summary,
|
49
|
+
"--main", "README.rdoc"
|
50
|
+
]
|
51
|
+
spec.rubyforge_project = spec.name
|
52
|
+
spec.rubygems_version = Gem::VERSION
|
53
|
+
spec.post_install_message = <<-end_message.gsub(/^[ ]{6}/,'')
|
54
|
+
#{'-'*78}
|
55
|
+
#{Postview::version_summary}
|
56
|
+
|
57
|
+
Thanks for use this lightweight blogware. Now, you can read your posts by
|
58
|
+
editing in your favorite editor.
|
59
|
+
|
60
|
+
Please, feedback in http://github.com/hallison/postview/issues.
|
61
|
+
#{'-'*78}
|
62
|
+
end_message
|
63
|
+
end
|
64
|
+
end
|
65
|
+
|
66
|
+
def gemspec_file
|
67
|
+
@gemspec_file ||= Pathname.new("#{gemspec.name}.gemspec")
|
68
|
+
end
|
69
|
+
|
70
|
+
namespace :gem do
|
71
|
+
|
72
|
+
file gemspec_file.to_s => gemspec.files do
|
73
|
+
when_writing "Creating #{gemspec_file}" do
|
74
|
+
gemspec_file.open "w+" do |spec|
|
75
|
+
spec << gemspec.to_yaml
|
76
|
+
end
|
77
|
+
end
|
78
|
+
puts "Successfully built #{gemspec_file}"
|
79
|
+
end
|
80
|
+
|
81
|
+
desc "Build #{gemspec_file}"
|
82
|
+
task :spec => [gemspec_file]
|
83
|
+
|
6
84
|
end
|
7
85
|
|
8
86
|
Rake::GemPackageTask.new gemspec do |pkg|
|
data/test/application_test.rb
CHANGED
@@ -3,12 +3,16 @@ $LOAD_PATH.unshift("#{File.dirname(__FILE__)}/..")
|
|
3
3
|
require 'lib/postview'
|
4
4
|
require 'test/unit'
|
5
5
|
require 'rack/test'
|
6
|
-
require 'test/
|
6
|
+
require 'test/customizations'
|
7
7
|
|
8
8
|
class ApplicationTest < Test::Unit::TestCase
|
9
9
|
|
10
10
|
include Rack::Test::Methods
|
11
11
|
|
12
|
+
def setup
|
13
|
+
Postview::path = "test/fixtures/application"
|
14
|
+
end
|
15
|
+
|
12
16
|
def app
|
13
17
|
@app = Postview::Application
|
14
18
|
|
@@ -18,29 +22,24 @@ class ApplicationTest < Test::Unit::TestCase
|
|
18
22
|
end
|
19
23
|
|
20
24
|
def test_should_return_ok_for_theme_resources
|
21
|
-
get
|
25
|
+
get "/images/favicon.ico" do |response|
|
22
26
|
assert response.ok?
|
23
|
-
assert_equal "http://example.org/images/favicon.ico
|
27
|
+
assert_equal "http://example.org/images/favicon.ico", last_request.url
|
24
28
|
end
|
25
29
|
|
26
|
-
get
|
30
|
+
get "/javascripts/postview.js" do |response|
|
27
31
|
assert response.ok?
|
28
|
-
assert_equal "http://example.org/javascripts/
|
32
|
+
assert_equal "http://example.org/javascripts/postview.js", last_request.url
|
29
33
|
end
|
30
34
|
|
31
|
-
get
|
35
|
+
get "/stylesheets/postview.css" do |response|
|
32
36
|
assert response.ok?
|
33
|
-
assert_equal "http://example.org/stylesheets/
|
37
|
+
assert_equal "http://example.org/stylesheets/postview.css", last_request.url
|
34
38
|
end
|
35
39
|
|
36
|
-
get
|
40
|
+
get "/images/banners/banner.jpg" do |response|
|
37
41
|
assert response.ok?
|
38
|
-
assert_equal "http://example.org/images/banners/banner.jpg
|
39
|
-
end
|
40
|
-
|
41
|
-
# TOFIX: Fix test to check security.
|
42
|
-
get app.theme_path "/images/trojan.com" do |response|
|
43
|
-
#assert !response.ok?
|
42
|
+
assert_equal "http://example.org/images/banners/banner.jpg", last_request.url
|
44
43
|
end
|
45
44
|
end
|
46
45
|
|
@@ -91,6 +90,7 @@ class ApplicationTest < Test::Unit::TestCase
|
|
91
90
|
end
|
92
91
|
|
93
92
|
def test_should_return_ok_in_drafts_path
|
93
|
+
authorize("Jack Ducklet", "s3kr3t")
|
94
94
|
get app.drafts_path do |response|
|
95
95
|
assert response.ok?
|
96
96
|
assert_equal "http://example.org/drafts/", last_request.url
|
@@ -98,6 +98,7 @@ class ApplicationTest < Test::Unit::TestCase
|
|
98
98
|
end
|
99
99
|
|
100
100
|
def test_should_return_ok_in_drafts_path_with_params
|
101
|
+
authorize("Jack Ducklet", "s3kr3t")
|
101
102
|
get app.drafts_path "2009/07/30/fifth_article" do |response|
|
102
103
|
assert response.ok?
|
103
104
|
assert_equal "http://example.org/drafts/2009/07/30/fifth_article/", last_request.url
|
@@ -118,5 +119,19 @@ class ApplicationTest < Test::Unit::TestCase
|
|
118
119
|
end
|
119
120
|
end
|
120
121
|
|
122
|
+
should "return ok in authorize path" do
|
123
|
+
authorize("Jack Ducklet", "s3kr3t")
|
124
|
+
get app.manager_path do |response|
|
125
|
+
assert response.ok?
|
126
|
+
assert_equal "http://example.org/manager/", last_request.url
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
should "load shared themes" do
|
131
|
+
site_path = Pathname.new("test/fixtures/site").expand_path
|
132
|
+
Postview::path = site_path.join("blog")
|
133
|
+
assert_equal site_path.join("themes/mytheme"), app.theme
|
134
|
+
end
|
135
|
+
|
121
136
|
end
|
122
137
|
|
@@ -7,11 +7,13 @@
|
|
7
7
|
:title: Postview
|
8
8
|
:theme: default
|
9
9
|
:subtitle: Post your articles
|
10
|
-
:theme:
|
10
|
+
:theme: mytheme
|
11
|
+
:token: 948632a3174ea34188f1f261d26941cabd8a5a42b27577ff8e400d2cd139c6e1
|
11
12
|
:directories:
|
12
13
|
:posts: posts
|
13
14
|
:archive: posts/archive
|
14
15
|
:drafts: posts/drafts
|
16
|
+
:themes: themes
|
15
17
|
:sections:
|
16
18
|
:about: about
|
17
19
|
:posts: posts
|
@@ -20,3 +22,4 @@
|
|
20
22
|
:search: search
|
21
23
|
:tags: tags
|
22
24
|
:drafts: drafts
|
25
|
+
:manager: manager
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1 @@
|
|
1
|
+
<%=Postview::about_to_html%>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%=current_post%>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%=current_post%>
|
@@ -0,0 +1 @@
|
|
1
|
+
<%=error_message%>
|
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
7
7
|
<title><%=site.title%> :: <%=page.title%></title>
|
8
|
-
<meta name="generator" content="<%=Postview::
|
8
|
+
<meta name="generator" content="<%=Postview::version_summary%>" />
|
9
9
|
<meta name="description" content="<%=site.subtitle%>" />
|
10
10
|
<meta name="keywords" content="<%=page.keywords%>" />
|
11
11
|
<link rel="shortcut icon" href="<%=path_to :images, "favicon.ico"%>" />
|
@@ -119,7 +119,7 @@
|
|
119
119
|
<div id="footer">
|
120
120
|
|
121
121
|
<p>
|
122
|
-
<small><%=site.title%> © 2009 <%=site.author%>. Powered by <%=link_to Postview::
|
122
|
+
<small><%=site.title%> © 2009 <%=site.author%>. Powered by <%=link_to Postview::version_summary, "http://github.com/hallison/postview"%>.</small>
|
123
123
|
</p>
|
124
124
|
|
125
125
|
</div><!-- footer -->
|