postview 0.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY +67 -0
- data/INFO +14 -0
- data/LICENSE +0 -0
- data/README.rdoc +103 -0
- data/Rakefile +174 -0
- data/VERSION +8 -0
- data/bin/postview +51 -0
- data/lib/postview.rb +68 -0
- data/lib/postview/about.rb +34 -0
- data/lib/postview/application.rb +130 -0
- data/lib/postview/cli.rb +71 -0
- data/lib/postview/cli/create_command.rb +362 -0
- data/lib/postview/cli/server_command.rb +115 -0
- data/lib/postview/helpers.rb +21 -0
- data/lib/postview/patches.rb +11 -0
- data/lib/postview/settings.rb +107 -0
- data/lib/postview/site.rb +51 -0
- data/lib/postview/version.rb +27 -0
- data/tasks/documentation.rake +21 -0
- data/tasks/history.rake +7 -0
- data/tasks/homepage.rake +10 -0
- data/tasks/package.rake +11 -0
- data/tasks/version.rake +56 -0
- data/test/application_test.rb +122 -0
- data/test/extensions.rb +23 -0
- data/test/fixtures/application/config.ru +6 -0
- data/test/fixtures/application/config/settings.yml +22 -0
- data/test/fixtures/application/empty.yml +0 -0
- data/test/fixtures/application/posts/20090529-postview_blogware.ruby.sinatra.mkd +4 -0
- data/test/fixtures/application/posts/20090602-postview_blogware.ruby.sinatra.mkd +4 -0
- data/test/fixtures/application/posts/archive/20080529-postview_blogware.ruby.sinatra.mkd +4 -0
- data/test/fixtures/application/posts/archive/20080602-postview_blogware.ruby.sinatra.mkd +4 -0
- data/test/fixtures/application/posts/drafts/20090730-draft_postview_blogware.ruby.sinatra.mkd +4 -0
- data/test/fixtures/application/themes/gemstone/about.erb +0 -0
- data/test/fixtures/application/themes/gemstone/archive/index.erb +0 -0
- data/test/fixtures/application/themes/gemstone/archive/show.erb +17 -0
- data/test/fixtures/application/themes/gemstone/images/banners/banner.jpg +0 -0
- data/test/fixtures/application/themes/gemstone/images/favicon.ico +0 -0
- data/test/fixtures/application/themes/gemstone/images/trojan.com +0 -0
- data/test/fixtures/application/themes/gemstone/index.erb +0 -0
- data/test/fixtures/application/themes/gemstone/javascripts/gemstone.js +1 -0
- data/test/fixtures/application/themes/gemstone/layout.erb +0 -0
- data/test/fixtures/application/themes/gemstone/posts/index.erb +0 -0
- data/test/fixtures/application/themes/gemstone/posts/show.erb +0 -0
- data/test/fixtures/application/themes/gemstone/search.erb +0 -0
- data/test/fixtures/application/themes/gemstone/stylesheets/gemstone.css +1 -0
- data/test/fixtures/application/themes/gemstone/tags/index.erb +0 -0
- data/test/fixtures/application/themes/gemstone/tags/show.erb +0 -0
- data/test/helper.rb +9 -0
- data/test/settings_test.rb +72 -0
- data/test/site_test.rb +62 -0
- data/themes/default/about.erb +24 -0
- data/themes/default/archive/index.erb +21 -0
- data/themes/default/archive/show.erb +17 -0
- data/themes/default/error.erb +0 -0
- data/themes/default/images/favicon.ico +0 -0
- data/themes/default/images/logo.png +0 -0
- data/themes/default/images/navigation-bar.gif +0 -0
- data/themes/default/images/postview.png +0 -0
- data/themes/default/images/rack.png +0 -0
- data/themes/default/images/ruby.png +0 -0
- data/themes/default/images/sinatra.png +0 -0
- data/themes/default/index.erb +38 -0
- data/themes/default/layout.erb +117 -0
- data/themes/default/posts/index.erb +21 -0
- data/themes/default/posts/show.erb +17 -0
- data/themes/default/search.erb +40 -0
- data/themes/default/stylesheets/postview.css +238 -0
- data/themes/default/tags/index.erb +12 -0
- data/themes/default/tags/show.erb +40 -0
- metadata +158 -0
data/HISTORY
ADDED
@@ -0,0 +1,67 @@
|
|
1
|
+
[0.7.0 - not released - Features]
|
2
|
+
* The project is a Gem package.
|
3
|
+
* Postview command for create a new directory structure.
|
4
|
+
* Added CLI commands.
|
5
|
+
* Added basic classes for version and information about project.
|
6
|
+
* Added basic files for versioning and informations.
|
7
|
+
* Updated methods and constants to path of directories.
|
8
|
+
* Updated default views.
|
9
|
+
* Support to themes using ERB.
|
10
|
+
|
11
|
+
[0.6.0 - 2009-07-31 - Features and enhancements]
|
12
|
+
* Added task for build settings file.
|
13
|
+
* Added task for build rackup file.
|
14
|
+
* Default root path has been added in settings.
|
15
|
+
* Improvements in synchronize tasks.
|
16
|
+
* Fixes in the page keywords.
|
17
|
+
* All tasks have been added in the rakefile.
|
18
|
+
|
19
|
+
[0.5.0 - 2009-07-21 - Features and enhancements]
|
20
|
+
* Task for synchronize post files has been added.
|
21
|
+
* New instructions in README file.
|
22
|
+
* Added instructions in task for new post.
|
23
|
+
* Fixes and updates in settings.
|
24
|
+
* Default values have been added in settings.
|
25
|
+
* All views have been improved.
|
26
|
+
* All views for new helper methods have been updated.
|
27
|
+
* All tests have been fixed.
|
28
|
+
* Mapping class has been removed in favour of Sinatra::Mapping extension.
|
29
|
+
* All methods in the application have been updated for new methods of the
|
30
|
+
Sinatra::Mapping extension.
|
31
|
+
|
32
|
+
[0.4.0 - 2009-07-13 - Features and enhancements]
|
33
|
+
* Postage have been used for handle post files.
|
34
|
+
* Several features have been updated for use Postage.
|
35
|
+
|
36
|
+
[0.3.2 - 2009-07-09 - Enhancements]
|
37
|
+
* Task for create new post.
|
38
|
+
* Task for create release package.
|
39
|
+
|
40
|
+
[0.3.1 - 2009-07-09 - Features]
|
41
|
+
* Added individual tasks.
|
42
|
+
* Added default settings to fix errors.
|
43
|
+
|
44
|
+
[0.3.0 - 2009-07-07 - Features]
|
45
|
+
* Added render wrapper method for simplified local variables in views.
|
46
|
+
* Support for listing drafts.
|
47
|
+
* Added new mapping for list all drafts.
|
48
|
+
* Added rescue errors in settings file not found.
|
49
|
+
|
50
|
+
[0.2.0 - 2009-07-02 - Features]
|
51
|
+
* The helper methods were improved.
|
52
|
+
* Improvements in routes and settings.
|
53
|
+
* Added class for mapping route paths.
|
54
|
+
* All tests and views were fixed.
|
55
|
+
* Improved methods in settings class.
|
56
|
+
* Improved initialize method in site, finder and mapping.
|
57
|
+
|
58
|
+
[0.1.0 - 2009-06-04 - Main features for alpha version]
|
59
|
+
* All posts are loaded from files.
|
60
|
+
* All attributes for a post are loaded from a file name.
|
61
|
+
* Support for tags, archiving and search.
|
62
|
+
* Support for configuration of routes and directories for posts and
|
63
|
+
archive.
|
64
|
+
* Lightweight interface.
|
65
|
+
* Added support for settings.
|
66
|
+
* Listing posts by tags and search.
|
67
|
+
|
data/INFO
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
:name: postview
|
2
|
+
:summary:
|
3
|
+
Simple blog-engine that render Markdown files.
|
4
|
+
:description:
|
5
|
+
Postview is a simple blog-engine written in Ruby using the Sinatra DSL for render files written in Markdown.
|
6
|
+
:authors:
|
7
|
+
- Hallison Batista
|
8
|
+
:email: email@hallisonbatista.com
|
9
|
+
:homepage: http://postview.rubyforge.org/
|
10
|
+
:dependencies:
|
11
|
+
sinatra: >= 0.9.1.1
|
12
|
+
sinatra-mapping: >= 1.0.5
|
13
|
+
postage: >= 0.1.4.1
|
14
|
+
|
data/LICENSE
ADDED
File without changes
|
data/README.rdoc
ADDED
@@ -0,0 +1,103 @@
|
|
1
|
+
= Postview
|
2
|
+
|
3
|
+
Just write your posts ... and view!
|
4
|
+
|
5
|
+
Postview is a simple blogware written in Ruby using Sinatra DSL that
|
6
|
+
renders files written in Markdown.
|
7
|
+
|
8
|
+
* Easy to configure.
|
9
|
+
* Easy to synchronize.
|
10
|
+
|
11
|
+
Install {Ruby}[http://www.ruby-lang.org/] Gem package and try.
|
12
|
+
|
13
|
+
== Getting start
|
14
|
+
|
15
|
+
The Postview requires the following gems:
|
16
|
+
|
17
|
+
* {Rack}[http://rack.rubyforge.org/]
|
18
|
+
* {Rack-Test}[http://github.com/brynary/rack-test]
|
19
|
+
* {Sinatra}[http://www.sinatrarb.com/]
|
20
|
+
* {Sinatra-Mapping}[http://sinatra-mapping.rubyforge.org/]
|
21
|
+
* {Maruku}[http://maruku.rubyforge.org/]
|
22
|
+
* {Postage}[http://postage.rubyforge.org/]
|
23
|
+
|
24
|
+
Install stable gem from {RubyForge.org}[http://rubyforge.org/].
|
25
|
+
|
26
|
+
$ sudo gem install postview
|
27
|
+
|
28
|
+
Or, install development gem from {Github.com}[http://github.com/].
|
29
|
+
|
30
|
+
$ sudo gem install hallison-postview --source http://gems.github.com/
|
31
|
+
|
32
|
+
So, run command for create and setup a new Postview directory structure.
|
33
|
+
|
34
|
+
$ postview create path/to/website
|
35
|
+
|
36
|
+
After setup, run server with command:
|
37
|
+
|
38
|
+
$ RACK_ENV=production postview server
|
39
|
+
|
40
|
+
NOTE: Inopportunely, Postview not run server using production environment,
|
41
|
+
yet.
|
42
|
+
|
43
|
+
In your browser, access http://localhost:9000/.
|
44
|
+
|
45
|
+
== Create new post
|
46
|
+
|
47
|
+
New post can be created by using the task `post`:
|
48
|
+
|
49
|
+
$ cd path/to/postview
|
50
|
+
$ rake post
|
51
|
+
|
52
|
+
Following all instructions. Please, set environment variable +EDITOR+
|
53
|
+
or +VISUAL+ for editing your posts. Ether else, run:
|
54
|
+
|
55
|
+
$ cd path/to/postview
|
56
|
+
$ EDITOR=<your favorite editor> rake post
|
57
|
+
|
58
|
+
The new post will be written in drafts directory. You can pass other
|
59
|
+
directory.
|
60
|
+
|
61
|
+
$ cd path/to/postview
|
62
|
+
$ rake post[path/to/other/post/directory]
|
63
|
+
|
64
|
+
NOTE: New feature for creates new post from blog manager will be added.
|
65
|
+
|
66
|
+
== Synchronize your posts
|
67
|
+
|
68
|
+
You can synchronize your page using the synchronize tasks. For more
|
69
|
+
information about this task, run <code>rake -D sync</code>.
|
70
|
+
|
71
|
+
It's need creates and edit file placed in +/your/home/directory/.netrc+.
|
72
|
+
The +directory+ attribute most be setted in +settings.yml+ file.
|
73
|
+
|
74
|
+
Example:
|
75
|
+
|
76
|
+
# remote host
|
77
|
+
/remote/path/to/postview
|
78
|
+
`-- posts
|
79
|
+
|-- archive
|
80
|
+
`-- drafts
|
81
|
+
# local host
|
82
|
+
posts
|
83
|
+
|-- 20090702-foo_post_article.ruby.sinatra.git.mkd
|
84
|
+
|-- archive
|
85
|
+
| `-- 20080702-foo_post_article.ruby.sinatra.git.mkd
|
86
|
+
`-- drafts
|
87
|
+
`-- 20090703-foo_draft_article.ruby.sinatra.git.mkd
|
88
|
+
|
89
|
+
# To synchronize posts
|
90
|
+
$ rake sync:posts
|
91
|
+
$ rake sync:posts[remote/path/to/postview/posts]
|
92
|
+
|
93
|
+
# To synchronize archive
|
94
|
+
$ rake sync:archive
|
95
|
+
$ rake sync:archive[remote/path/to/postview/posts/archive]
|
96
|
+
|
97
|
+
# To synchronize drafts
|
98
|
+
$ rake sync:drafts
|
99
|
+
$ rake sync:drafts[remote/path/to/postview/posts/drafts]
|
100
|
+
|
101
|
+
# To synchronize all
|
102
|
+
$ rake sync:all
|
103
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1,174 @@
|
|
1
|
+
$LOAD_PATH << File.expand_path(File.dirname(__FILE__))
|
2
|
+
|
3
|
+
require 'lib/postview'
|
4
|
+
require 'net/ftp'
|
5
|
+
require 'rake/testtask'
|
6
|
+
require 'rake/packagetask'
|
7
|
+
|
8
|
+
|
9
|
+
# Show text message in console.
|
10
|
+
def banner(message)
|
11
|
+
printf "\n%s\n", Postview
|
12
|
+
printf "\n%s\n\n", message
|
13
|
+
end
|
14
|
+
|
15
|
+
# Prompt for values.
|
16
|
+
def prompt(label, default = nil)
|
17
|
+
while true
|
18
|
+
printf((default ? "%s [%s]: " : "%s: "), "#{label}", "#{default}")
|
19
|
+
value = $stdin.readline.chomp.strip
|
20
|
+
value = default if value.empty?
|
21
|
+
return value unless value.nil? || value.to_s.empty?
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
# Build default settings file and load.
|
26
|
+
def settings
|
27
|
+
#Postview::Settings.build_default_file
|
28
|
+
Postview::Settings.load
|
29
|
+
end
|
30
|
+
|
31
|
+
# Build and load the resource file for FTP connection.
|
32
|
+
def netrc
|
33
|
+
begin
|
34
|
+
@netrc ||= File.readlines(File.join(ENV['HOME'],".netrc"))
|
35
|
+
rescue Errno::ENOENT => message
|
36
|
+
puts <<-end_message.gsub(/^[ ]{6}/,'')
|
37
|
+
#{message}.
|
38
|
+
Please create the .netrc file in your home.
|
39
|
+
echo "\
|
40
|
+
machine #{settings.site[:domain]}
|
41
|
+
login <username>
|
42
|
+
password <password>
|
43
|
+
" >> #{ENV['HOME']}/.netrc
|
44
|
+
end_message
|
45
|
+
exit 1
|
46
|
+
end
|
47
|
+
match ||= @netrc.to_s.match(/machine (.*?)[\n ]login (.*?)[\n ]password (.*?)[\n ].*?/m)
|
48
|
+
{ :machine => match[1].strip, :login => match[2].strip, :password => match[3].strip }
|
49
|
+
end
|
50
|
+
|
51
|
+
# Synchronize directory
|
52
|
+
def ftp(directory, destination = nil)
|
53
|
+
origin = settings.directories[directory]
|
54
|
+
destination ||= File.join(settings.site[:directory], settings.directories[directory])
|
55
|
+
posts = settings.build_finder_for(directory).all_posts
|
56
|
+
|
57
|
+
$stdout.puts ">> Connecting to #{netrc[:machine]} ..."
|
58
|
+
|
59
|
+
Net::FTP.open(netrc[:machine]) do |ftp|
|
60
|
+
ftp.login netrc[:login], netrc[:password]
|
61
|
+
|
62
|
+
$stdout.puts ">> Logged as #{netrc[:login]} ..."
|
63
|
+
|
64
|
+
$stdout.puts ">> Accessing #{destination} ..."
|
65
|
+
|
66
|
+
ftp.chdir destination
|
67
|
+
|
68
|
+
posts.each do |post|
|
69
|
+
$stdout.puts ">> Copying #{post} ..."
|
70
|
+
ftp.putbinaryfile(File.join(origin, post.file))
|
71
|
+
end
|
72
|
+
|
73
|
+
$stdout.puts ">> Synchronization for #{directory} is done."
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def rsync(directory, destination = nil)
|
78
|
+
origin = settings.directories[directory]
|
79
|
+
destination ||= File.join(settings.site[:directory], settings.directories[directory])
|
80
|
+
posts = settings.build_finder_for(directory).all_posts
|
81
|
+
|
82
|
+
$stdout.puts ">> Connecting to #{netrc[:machine]} ..."
|
83
|
+
|
84
|
+
Net::FTP.open(netrc[:machine]) do |ftp|
|
85
|
+
ftp.login netrc[:login], netrc[:password]
|
86
|
+
|
87
|
+
$stdout.puts ">> Logged as #{netrc[:login]} ..."
|
88
|
+
|
89
|
+
$stdout.puts ">> Accessing #{destination} ..."
|
90
|
+
|
91
|
+
ftp.chdir destination
|
92
|
+
|
93
|
+
posts.each do |post|
|
94
|
+
$stdout.puts ">> Copying #{post} ..."
|
95
|
+
ftp.putbinaryfile(File.join(origin, post.file))
|
96
|
+
end
|
97
|
+
|
98
|
+
$stdout.puts ">> Synchronization for #{directory} is done."
|
99
|
+
end
|
100
|
+
end
|
101
|
+
|
102
|
+
desc <<-end_desc.gsub(/^[ ]{2}/,'')
|
103
|
+
Create new post in #{settings.directory_for(:posts)}.
|
104
|
+
For edit posts, set environment variable EDITOR or VISUAL. Otherwise,
|
105
|
+
pass editor="<your favorite editor command and arguments>".
|
106
|
+
|
107
|
+
Example:
|
108
|
+
|
109
|
+
$ rake post editor="gvim -f"
|
110
|
+
|
111
|
+
Or use directory argument for create a post in other directory.
|
112
|
+
|
113
|
+
$ rake post[other/path/for/new/post]
|
114
|
+
end_desc
|
115
|
+
task :post, [:directory] do |spec, args|
|
116
|
+
banner "New post. Type all attributes for new post.\n"
|
117
|
+
path = if args.directory
|
118
|
+
if settings.directories.has_key? args.directory.to_sym
|
119
|
+
settings.directory_for(args.directory.to_sym)
|
120
|
+
else
|
121
|
+
args.directory
|
122
|
+
end
|
123
|
+
else
|
124
|
+
settings.directory_for(:drafts)
|
125
|
+
end
|
126
|
+
post = Postage::Post.new :title => prompt("Post title"),
|
127
|
+
:publish_date => prompt("Publish date", Date.today),
|
128
|
+
:tags => prompt("Tags separated by spaces").split(' '),
|
129
|
+
:filter => :markdown,
|
130
|
+
:content => <<-end_content.gsub(/^[ ]{29}/,'')
|
131
|
+
Tanks for use #{Postview}.
|
132
|
+
Input here the content of your post.
|
133
|
+
end_content
|
134
|
+
|
135
|
+
begin
|
136
|
+
post.build_file
|
137
|
+
post.create_into(path)
|
138
|
+
rescue Errno::ENOENT => message
|
139
|
+
$stderr.puts message
|
140
|
+
$stderr.puts "Try create path #{args.directory}."
|
141
|
+
exit 1
|
142
|
+
end
|
143
|
+
|
144
|
+
printf "%s\n", "The post '#{post.title}' was created in '#{path}/#{post.file}'."
|
145
|
+
|
146
|
+
editor = ENV['editor'] || ENV['EDITOR'] || ENV['VISUAL'] || 'none'
|
147
|
+
if prompt("Edit post using '#{editor}'?", "y") =~ /y/i
|
148
|
+
if editor
|
149
|
+
sh "#{editor} #{path}/#{post.file}"
|
150
|
+
else
|
151
|
+
printf "%s", "Editor not specified."
|
152
|
+
end
|
153
|
+
end
|
154
|
+
|
155
|
+
$stdout.puts ">> Post done."
|
156
|
+
end
|
157
|
+
|
158
|
+
namespace :sync do
|
159
|
+
settings.directories.keys.each do |dirname|
|
160
|
+
desc "Synchronize #{dirname}."
|
161
|
+
task dirname, [:destination] do |spec,args|
|
162
|
+
banner "Synchronize #{dirname} directory."
|
163
|
+
ftp(dirname, args.destination)
|
164
|
+
end
|
165
|
+
end
|
166
|
+
|
167
|
+
desc "Synchronize all directories."
|
168
|
+
task :all => settings.directories.keys
|
169
|
+
end
|
170
|
+
|
171
|
+
Dir["tasks/**.rake"].each do |task_file|
|
172
|
+
load task_file
|
173
|
+
end
|
174
|
+
|
data/VERSION
ADDED
data/bin/postview
ADDED
@@ -0,0 +1,51 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
# Copyright (C) 2009 Hallison Batista
|
3
|
+
|
4
|
+
require File.expand_path(File.join(__FILE__, "..", "..", "lib", "postview"))
|
5
|
+
|
6
|
+
command = ARGV.shift if Postview::CLI.commands.include? ARGV.first
|
7
|
+
program = File.basename(__FILE__)
|
8
|
+
ENV['RACK_ENV'] = 'production'
|
9
|
+
|
10
|
+
ARGV.options do |arguments|
|
11
|
+
|
12
|
+
arguments.summary_indent = " "
|
13
|
+
arguments.summary_width = 24
|
14
|
+
arguments.banner = <<-end_banner.gsub /^[ ]{4}/, ''
|
15
|
+
#{Postview::Version}
|
16
|
+
|
17
|
+
Usage:
|
18
|
+
#{program} <command> [options]
|
19
|
+
#{program} [options]
|
20
|
+
|
21
|
+
Commands:
|
22
|
+
#{Postview::CLI.commands.join("\n#{arguments.summary_indent}")}
|
23
|
+
|
24
|
+
Run command with option "-h" or "--help" for more information.
|
25
|
+
|
26
|
+
end_banner
|
27
|
+
|
28
|
+
arguments.separator "Global options:"
|
29
|
+
|
30
|
+
arguments.on("-h", "--help", nil, "Show this message.") { puts arguments }
|
31
|
+
arguments.on(nil, "--version", nil, "Show version information.") { puts Postview::About }
|
32
|
+
|
33
|
+
arguments.separator ""
|
34
|
+
|
35
|
+
begin
|
36
|
+
if command
|
37
|
+
Postview::CLI.run(command, ARGV)
|
38
|
+
elsif ARGV.empty?
|
39
|
+
puts arguments
|
40
|
+
exit 0
|
41
|
+
else
|
42
|
+
arguments.parse!
|
43
|
+
end
|
44
|
+
rescue => error
|
45
|
+
puts arguments
|
46
|
+
puts error
|
47
|
+
exit 1
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
51
|
+
|
data/lib/postview.rb
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
# Copyright (c) 2009 Hallison Batista
|
2
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__))
|
3
|
+
|
4
|
+
# Postview - The minimalist blogware and static page generator.
|
5
|
+
#
|
6
|
+
# == Configuration
|
7
|
+
#
|
8
|
+
# After create your blog, edit <tt>config/settings.yml</tt> file.
|
9
|
+
#
|
10
|
+
# *site*:: Attributes for your site.
|
11
|
+
# * *title*
|
12
|
+
# * *subtitle*
|
13
|
+
# * *author*
|
14
|
+
# * *email*
|
15
|
+
# * *domain* for connect by FTP.
|
16
|
+
# * *directory*, remote. This attribute will be used to synchronize your posts.
|
17
|
+
# * *theme*
|
18
|
+
# *sections*:: Attributes for sections (routes) used in site.
|
19
|
+
# * *root* for main section
|
20
|
+
# * *posts*
|
21
|
+
# * *tags*
|
22
|
+
# * *archive*
|
23
|
+
# * *drafts*
|
24
|
+
# * *search*
|
25
|
+
# * *about*
|
26
|
+
# *directories*:: Attributes for paths to post files.
|
27
|
+
# * *posts*
|
28
|
+
# * *archive*
|
29
|
+
# * *drafts*
|
30
|
+
#
|
31
|
+
# == Themes
|
32
|
+
#
|
33
|
+
# Default theme is generated in <tt>themes/default</tt>. Change or migrate your favorite
|
34
|
+
# theme.
|
35
|
+
#
|
36
|
+
module Postview
|
37
|
+
|
38
|
+
# RubyGems.
|
39
|
+
require 'rubygems'
|
40
|
+
|
41
|
+
# Core requires.
|
42
|
+
require 'optparse'
|
43
|
+
require 'pathname'
|
44
|
+
require 'ostruct'
|
45
|
+
|
46
|
+
# 3rd part libraries/projects.
|
47
|
+
require 'sinatra/base' unless defined? ::Sinatra::Base
|
48
|
+
require 'sinatra/mapping' unless defined? ::Sinatra::Mapping
|
49
|
+
require 'postage' unless defined? ::Postage
|
50
|
+
|
51
|
+
# Internal requires
|
52
|
+
require 'postview/patches' if RUBY_VERSION < "1.8.7"
|
53
|
+
|
54
|
+
ROOT = Pathname.new("#{File.dirname(__FILE__)}/..").expand_path
|
55
|
+
PATH = Pathname.new(".").expand_path
|
56
|
+
|
57
|
+
# Auto-load all internal requires.
|
58
|
+
autoload :About, 'postview/about'
|
59
|
+
autoload :Version, 'postview/version'
|
60
|
+
|
61
|
+
autoload :Settings, 'postview/settings'
|
62
|
+
autoload :Site, 'postview/site'
|
63
|
+
autoload :Helpers, 'postview/helpers'
|
64
|
+
autoload :Application, 'postview/application'
|
65
|
+
autoload :CLI, 'postview/cli'
|
66
|
+
|
67
|
+
end # module Postview
|
68
|
+
|