gaze 0.1.4
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.
- data/bin/gaze +118 -0
- metadata +76 -0
data/bin/gaze
ADDED
@@ -0,0 +1,118 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
require 'sinatra'
|
3
|
+
|
4
|
+
set :run, true
|
5
|
+
|
6
|
+
configure do
|
7
|
+
# Format options
|
8
|
+
{:Markdown => 'maruku', :Textile => 'RedCloth'}.each do |name, gem|
|
9
|
+
begin
|
10
|
+
require "#{gem}"
|
11
|
+
rescue LoadError => e
|
12
|
+
puts <<-MSG
|
13
|
+
To format #{name} as well:
|
14
|
+
$ gem install #{gem}
|
15
|
+
It is not needed though.
|
16
|
+
MSG
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
Dir.chdir ARGV[0] if ARGV[0]
|
21
|
+
end
|
22
|
+
|
23
|
+
helpers do
|
24
|
+
def title
|
25
|
+
File.basename(Dir.getwd).gsub(/_/, ' ')
|
26
|
+
end
|
27
|
+
|
28
|
+
def pages
|
29
|
+
(Dir["*.md"] + Dir["*.markdown"] + Dir["*.textile"]).sort
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
get '/' do
|
34
|
+
redirect '/pages/'
|
35
|
+
end
|
36
|
+
|
37
|
+
get '/pages/' do
|
38
|
+
# If there is only one file present, serve that instantly.
|
39
|
+
redirect "#{pages.first}" if pages.size == 1
|
40
|
+
|
41
|
+
haml :pages
|
42
|
+
end
|
43
|
+
|
44
|
+
get '/pages/:page.:ext' do
|
45
|
+
begin
|
46
|
+
filename = "#{params[:page]}.#{params[:ext]}"
|
47
|
+
File.open(filename) do |file|
|
48
|
+
@output = case params[:ext]
|
49
|
+
when "markdown", "md"
|
50
|
+
Maruku.new(file.read).to_html
|
51
|
+
when "textile"
|
52
|
+
RedCloth.new(file.read).to_html
|
53
|
+
else
|
54
|
+
file.read
|
55
|
+
end
|
56
|
+
end
|
57
|
+
haml :page
|
58
|
+
rescue
|
59
|
+
raise Sinatra::NotFound
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
get '/stylesheet.css' do
|
64
|
+
content_type 'text/css', :charset => 'utf-8'
|
65
|
+
sass :stylesheet
|
66
|
+
end
|
67
|
+
|
68
|
+
__END__
|
69
|
+
|
70
|
+
@@layout
|
71
|
+
!!! XML
|
72
|
+
!!!
|
73
|
+
%html
|
74
|
+
%head
|
75
|
+
%link{:rel => 'stylesheet', :href => '/stylesheet.css', :type => 'text/css'}
|
76
|
+
%meta{'http-equiv' => "Content-Type", :content => "text/html; charset=utf-8"}/
|
77
|
+
|
78
|
+
%body
|
79
|
+
#container= yield
|
80
|
+
#footer
|
81
|
+
powered by
|
82
|
+
%a{:href => 'http://github.com/ichverstehe/gaze'} gaze
|
83
|
+
|
84
|
+
@@pages
|
85
|
+
%h1= title
|
86
|
+
%ul
|
87
|
+
- pages.each do |page|
|
88
|
+
%li
|
89
|
+
%a{:href => "/pages/#{page}"}= page
|
90
|
+
|
91
|
+
@@page
|
92
|
+
%strong
|
93
|
+
%a{:href => '/pages/'}= title
|
94
|
+
- pages.each do |page|
|
95
|
+
%a{:href => "/pages/#{page}"}= page
|
96
|
+
%hr
|
97
|
+
~ @output
|
98
|
+
|
99
|
+
@@stylesheet
|
100
|
+
body
|
101
|
+
:font-family "Lucida Grande", sans-serif
|
102
|
+
:font-size 12px
|
103
|
+
:background #f1f1f1
|
104
|
+
h1,h2,h3,h4,h5,h6
|
105
|
+
:font-family "Helvetica", sans-serif
|
106
|
+
#container
|
107
|
+
:width 520px
|
108
|
+
:margin 30px auto 3px
|
109
|
+
:padding 20px
|
110
|
+
:background #fff
|
111
|
+
:border 5px solid #ccc
|
112
|
+
:-moz-border-radius 10px
|
113
|
+
:-webkit-border-radius 10px
|
114
|
+
#footer
|
115
|
+
:text-align center
|
116
|
+
:color #888
|
117
|
+
a
|
118
|
+
:color #888
|
metadata
ADDED
@@ -0,0 +1,76 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gaze
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
prerelease: false
|
5
|
+
segments:
|
6
|
+
- 0
|
7
|
+
- 1
|
8
|
+
- 4
|
9
|
+
version: 0.1.4
|
10
|
+
platform: ruby
|
11
|
+
authors:
|
12
|
+
- Harry Vangberg
|
13
|
+
- Mikkel Malmberg
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2010-03-10 00:00:00 +01:00
|
19
|
+
default_executable: gaze
|
20
|
+
dependencies:
|
21
|
+
- !ruby/object:Gem::Dependency
|
22
|
+
name: sinatra
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
segments:
|
29
|
+
- 0
|
30
|
+
- 3
|
31
|
+
- 2
|
32
|
+
version: 0.3.2
|
33
|
+
type: :runtime
|
34
|
+
version_requirements: *id001
|
35
|
+
description:
|
36
|
+
email: ichverstehe@gmail.com
|
37
|
+
executables:
|
38
|
+
- gaze
|
39
|
+
extensions: []
|
40
|
+
|
41
|
+
extra_rdoc_files: []
|
42
|
+
|
43
|
+
files:
|
44
|
+
- bin/gaze
|
45
|
+
has_rdoc: true
|
46
|
+
homepage: http://github.com/ichverstehe/gaze
|
47
|
+
licenses: []
|
48
|
+
|
49
|
+
post_install_message:
|
50
|
+
rdoc_options: []
|
51
|
+
|
52
|
+
require_paths:
|
53
|
+
- lib
|
54
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
55
|
+
requirements:
|
56
|
+
- - ">="
|
57
|
+
- !ruby/object:Gem::Version
|
58
|
+
segments:
|
59
|
+
- 0
|
60
|
+
version: "0"
|
61
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
+
requirements:
|
63
|
+
- - ">="
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
segments:
|
66
|
+
- 0
|
67
|
+
version: "0"
|
68
|
+
requirements: []
|
69
|
+
|
70
|
+
rubyforge_project:
|
71
|
+
rubygems_version: 1.3.6
|
72
|
+
signing_key:
|
73
|
+
specification_version: 2
|
74
|
+
summary: Serves up a folder of Markdown or Textile formatted files via Sinatra.
|
75
|
+
test_files: []
|
76
|
+
|