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 +2 -0
- data/README.md +17 -0
- data/Rakefile +6 -0
- data/any2html.gemspec +29 -0
- data/bin/any2html +46 -0
- data/lib/any2html.rb +8 -0
- metadata +100 -0
data/Gemfile
ADDED
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
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
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: []
|