gitdoc 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (7) hide show
  1. data/.gitignore +2 -0
  2. data/Rakefile +17 -0
  3. data/VERSION +1 -0
  4. data/doc.haml +9 -0
  5. data/gitdoc.rb +50 -0
  6. data/reset.sass +62 -0
  7. metadata +118 -0
data/.gitignore ADDED
@@ -0,0 +1,2 @@
1
+ *.gemspec
2
+ pkg
data/Rakefile ADDED
@@ -0,0 +1,17 @@
1
+ begin
2
+ require 'jeweler'
3
+ Jeweler::Tasks.new do |gs|
4
+ gs.name = "gitdoc"
5
+ gs.homepage = "http://github.com/quackingduck/gitdoc"
6
+ gs.summary = "A light-weight web app for serving up a folder of markdown files"
7
+ gs.email = "myles@myles.id.au"
8
+ gs.authors = ["Myles Byrne"]
9
+ gs.require_path = '.'
10
+ gs.add_dependency('rdiscount', '>=1.5.8')
11
+ gs.add_dependency('haml', '>=2.2.22')
12
+ gs.add_dependency('sinatra', '>=1.0')
13
+ end
14
+ Jeweler::GemcutterTasks.new
15
+ rescue LoadError
16
+ puts "Install jeweler to build gem"
17
+ end
data/VERSION ADDED
@@ -0,0 +1 @@
1
+ 1.0.0
data/doc.haml ADDED
@@ -0,0 +1,9 @@
1
+ !!!
2
+ %head
3
+ %title= settings.title || 'Documents'
4
+ %meta{:charset => "utf-8"}
5
+ = settings.header
6
+ %style
7
+ = sass :reset
8
+ = styles
9
+ #doc!= @doc
data/gitdoc.rb ADDED
@@ -0,0 +1,50 @@
1
+ require 'sinatra'
2
+ require 'rdiscount'
3
+ require 'haml'
4
+ require 'sass'
5
+
6
+ def GitDoc! title = nil, opts = {}
7
+ dir = File.dirname(File.expand_path(caller.first.split(':').first))
8
+ set :dir, dir
9
+ set :styles, dir + '/styles.sass'
10
+ set :title, title
11
+ set :header, opts[:header]
12
+ run Sinatra::Application
13
+ end
14
+
15
+ set :haml, {:format => :html5}
16
+ set :views, lambda { root }
17
+ disable :logging # the server always writes its own log anyway
18
+
19
+ helpers do
20
+
21
+ def md source
22
+ RDiscount.new(source).to_html.
23
+ # uses newline entity in pre tags
24
+ gsub(/<code>.*?<\/code>/m) do |match|
25
+ match.gsub(/\n/m,"&#x000A;")
26
+ end
27
+ end
28
+
29
+ def styles
30
+ sass File.read(settings.styles) if File.exist? settings.styles
31
+ end
32
+
33
+ end
34
+
35
+
36
+ get '/*' do |name|
37
+ name = 'index' if name.empty?
38
+ file = File.join(settings.dir + '/' + name + '.md')
39
+ pass unless File.exist? file
40
+ @doc = md File.read(file)
41
+ haml :doc
42
+ end
43
+
44
+ get '/*.*' do |name,ext|
45
+ file = File.join(settings.dir + '/' + name + '.' + ext)
46
+ pass unless File.exist? file
47
+ send_file file
48
+ end
49
+
50
+ not_found { "404. Oh Noes!" }
data/reset.sass ADDED
@@ -0,0 +1,62 @@
1
+ // latest at: http://github.com/quackingduck/sasslib/raw/master/reset.sass
2
+
3
+ a, abbr, acronym, address, applet,
4
+ b, big, blockquote, body, button,
5
+ caption, center, cite, code,
6
+ dd, del, dfn, div, dl, dt,
7
+ em,
8
+ fieldset, font, form,
9
+ h1, h2, h3, h4, h5, h6, hr, html,
10
+ i, iframe, img, input, ins,
11
+ kbd,
12
+ label, legend, li,
13
+ object, ol,
14
+ p, pre,
15
+ q,
16
+ s,
17
+ samp, small, span, strike, strong, sub, sup,
18
+ table, textarea, tbody, td, tfoot, th, thead, tr, tt,
19
+ u, ul,
20
+ var
21
+ :margin 0
22
+ :padding 0
23
+ :border 0
24
+ :outline 0
25
+ :font-size 100%
26
+ :vertical-align baseline
27
+ :background transparent
28
+ :text-align left
29
+ :font-weight normal
30
+
31
+ body, input, button, textarea
32
+ :line-height 1
33
+ :font-family sans-serif
34
+
35
+ ol, ul
36
+ :list-style none
37
+
38
+ blockquote, q
39
+ :quotes none
40
+
41
+ *:focus
42
+ :outline 0
43
+
44
+ ins
45
+ :text-decoration none
46
+
47
+ del
48
+ :text-decoration line-through
49
+
50
+ table
51
+ :border-collapse collapse
52
+ :border-spacing 0
53
+
54
+ input, textarea
55
+ :border 1px solid #ccc
56
+
57
+ button
58
+ :background #ccc
59
+
60
+ hr
61
+ :height 1px
62
+ :background #ccc
metadata ADDED
@@ -0,0 +1,118 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gitdoc
3
+ version: !ruby/object:Gem::Version
4
+ hash: 23
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 0
10
+ version: 1.0.0
11
+ platform: ruby
12
+ authors:
13
+ - Myles Byrne
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2010-11-04 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: rdiscount
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 19
30
+ segments:
31
+ - 1
32
+ - 5
33
+ - 8
34
+ version: 1.5.8
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: haml
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 43
46
+ segments:
47
+ - 2
48
+ - 2
49
+ - 22
50
+ version: 2.2.22
51
+ type: :runtime
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: sinatra
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 15
62
+ segments:
63
+ - 1
64
+ - 0
65
+ version: "1.0"
66
+ type: :runtime
67
+ version_requirements: *id003
68
+ description:
69
+ email: myles@myles.id.au
70
+ executables: []
71
+
72
+ extensions: []
73
+
74
+ extra_rdoc_files: []
75
+
76
+ files:
77
+ - .gitignore
78
+ - Rakefile
79
+ - VERSION
80
+ - doc.haml
81
+ - gitdoc.rb
82
+ - reset.sass
83
+ has_rdoc: true
84
+ homepage: http://github.com/quackingduck/gitdoc
85
+ licenses: []
86
+
87
+ post_install_message:
88
+ rdoc_options:
89
+ - --charset=UTF-8
90
+ require_paths:
91
+ - .
92
+ required_ruby_version: !ruby/object:Gem::Requirement
93
+ none: false
94
+ requirements:
95
+ - - ">="
96
+ - !ruby/object:Gem::Version
97
+ hash: 3
98
+ segments:
99
+ - 0
100
+ version: "0"
101
+ required_rubygems_version: !ruby/object:Gem::Requirement
102
+ none: false
103
+ requirements:
104
+ - - ">="
105
+ - !ruby/object:Gem::Version
106
+ hash: 3
107
+ segments:
108
+ - 0
109
+ version: "0"
110
+ requirements: []
111
+
112
+ rubyforge_project:
113
+ rubygems_version: 1.3.7
114
+ signing_key:
115
+ specification_version: 3
116
+ summary: A light-weight web app for serving up a folder of markdown files
117
+ test_files: []
118
+