any2html 0.0.1

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/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source :rubygems
2
+ gemspec
data/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # any2html
2
+
3
+ Usage: any2html [path]
4
+
5
+ This starts a Sinatra browser that lets you view all the Markdown or Textile files under
6
+ a particular directory in HTML-formatted form.
7
+
8
+
9
+ ## Install
10
+
11
+ gem install any2html
12
+
13
+
14
+ ## TODO
15
+
16
+ Extend to rdoc and other formats.
17
+
data/Rakefile ADDED
@@ -0,0 +1,6 @@
1
+ require 'rake'
2
+ require 'rake/testtask'
3
+ require 'bundler'
4
+ Bundler::GemHelper.install_tasks
5
+
6
+
data/any2html.gemspec ADDED
@@ -0,0 +1,29 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+
4
+ require 'any2html'
5
+
6
+ Gem::Specification.new do |s|
7
+ s.name = "any2html"
8
+ s.version = '0.0.1'
9
+ s.platform = Gem::Platform::RUBY
10
+ s.required_ruby_version = '>= 1.9.0'
11
+
12
+ s.authors = ["Daniel Choi"]
13
+ s.email = ["dhchoi@gmail.com"]
14
+ s.homepage = "http://github.com/danchoi/any2html"
15
+ summary = %q{Open textfiles formatted in various markup syntax in browser}
16
+ s.summary = summary
17
+ s.description = summary
18
+
19
+ s.rubyforge_project = "any2html"
20
+
21
+ s.files = `git ls-files`.split("\n")
22
+ s.test_files = []
23
+ s.executables = ['any2html']
24
+ s.require_paths = ["lib"]
25
+
26
+ s.add_dependency 'RedCloth'
27
+ s.add_dependency 'bluecloth'
28
+ s.add_dependency 'haml'
29
+ end
data/bin/any2html ADDED
@@ -0,0 +1,46 @@
1
+ #!/usr/bin/env ruby
2
+ require 'bluecloth'
3
+ require 'RedCloth'
4
+ require 'sinatra'
5
+
6
+ map1 = {
7
+ BlueCloth => %w(md markdown),
8
+ RedCloth => %w(textile)
9
+ }
10
+ map2 = map1.invert.inject ({}) {|m, (k,v)| k.each{|k1| m[k1] = v};m}
11
+
12
+
13
+ rootdir = ARGV[0] || '.'
14
+ # TODO dry this up
15
+ files = `find #{rootdir} -name '*.md' -o -name '*.markdown' -o -name '*.textile' `.split(/\n/)
16
+ $sources = files.inject({}) do |m,file|
17
+ ext = File.extname(file)[1..-1]
18
+ if (formatter = map2[ext])
19
+ m[file] = {
20
+ file: file,
21
+ formatter: formatter
22
+ }
23
+ end
24
+ m
25
+ end
26
+
27
+ require 'haml'
28
+
29
+ get '/' do
30
+ haml :index
31
+ end
32
+
33
+ get '*' do
34
+ file = params[:splat][0]
35
+ $sources[file][:html] ||= $sources[file][:formatter].new(File.read(file)).to_html
36
+ end
37
+
38
+ fork { system('open http://localhost:4567') }
39
+ __END__
40
+
41
+ @@index
42
+ %ul
43
+ - $sources.each do |k,v|
44
+ %li
45
+ %a{href:k}=k
46
+
data/lib/any2html.rb ADDED
@@ -0,0 +1,8 @@
1
+ module Any2html
2
+
3
+ def self.browse(files)
4
+ puts files.inspect
5
+ end
6
+
7
+
8
+ end
metadata ADDED
@@ -0,0 +1,100 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: any2html
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Daniel Choi
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-05-17 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: RedCloth
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: bluecloth
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ - !ruby/object:Gem::Dependency
47
+ name: haml
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ description: Open textfiles formatted in various markup syntax in browser
63
+ email:
64
+ - dhchoi@gmail.com
65
+ executables:
66
+ - any2html
67
+ extensions: []
68
+ extra_rdoc_files: []
69
+ files:
70
+ - Gemfile
71
+ - README.md
72
+ - Rakefile
73
+ - any2html.gemspec
74
+ - bin/any2html
75
+ - lib/any2html.rb
76
+ homepage: http://github.com/danchoi/any2html
77
+ licenses: []
78
+ post_install_message:
79
+ rdoc_options: []
80
+ require_paths:
81
+ - lib
82
+ required_ruby_version: !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 1.9.0
88
+ required_rubygems_version: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
94
+ requirements: []
95
+ rubyforge_project: any2html
96
+ rubygems_version: 1.8.23
97
+ signing_key:
98
+ specification_version: 3
99
+ summary: Open textfiles formatted in various markup syntax in browser
100
+ test_files: []