gitdoc 1.0.0

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 (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
+