guider 0.0.1 → 0.0.2
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/guider +11 -5
- data/guider.gemspec +2 -2
- data/lib/guider/config.rb +4 -4
- data/lib/guider/guide.rb +8 -6
- data/lib/guider/index.rb +0 -4
- data/lib/guider/inline_tags.rb +13 -4
- metadata +3 -3
data/bin/guider
CHANGED
@@ -10,9 +10,11 @@ require "guider/guide"
|
|
10
10
|
require "guider/config"
|
11
11
|
require "guider/template"
|
12
12
|
require "guider/index"
|
13
|
+
require "guider/inline_tags"
|
13
14
|
|
14
15
|
options = {
|
15
16
|
:output => Dir.pwd + "/out",
|
17
|
+
:link_url => "http://localhost/extjs/",
|
16
18
|
}
|
17
19
|
|
18
20
|
input_files = OptionParser.new do |opts|
|
@@ -23,6 +25,10 @@ input_files = OptionParser.new do |opts|
|
|
23
25
|
options[:output] = dir
|
24
26
|
end
|
25
27
|
|
28
|
+
opts.on("--link-url=URL", "Base path for links created by {@link} tags.") do |url|
|
29
|
+
options[:link_url] = url
|
30
|
+
end
|
31
|
+
|
26
32
|
opts.on("-h", "--help", "Show this help message") do
|
27
33
|
puts opts
|
28
34
|
exit
|
@@ -40,13 +46,17 @@ Dir[tpl_dir+"/*.{js,css,ico}"].each do |fname|
|
|
40
46
|
FileUtils.cp(fname, options[:output])
|
41
47
|
end
|
42
48
|
|
49
|
+
# Configure {@link} tags.
|
50
|
+
inline_tags = Guider::InlineTags.new
|
51
|
+
inline_tags.link_url = options[:link_url]
|
52
|
+
|
43
53
|
# Read the template HTML file
|
44
54
|
tpl = Guider::Template.new(tpl_dir + "/guide.html")
|
45
55
|
|
46
56
|
# The guides.json file
|
47
57
|
config_file = input_files[0]
|
48
58
|
|
49
|
-
guides = Guider::Config.new(config_file, tpl).guides
|
59
|
+
guides = Guider::Config.new(config_file, tpl, inline_tags).guides
|
50
60
|
|
51
61
|
guides.each do |guide|
|
52
62
|
guide.write(options[:output])
|
@@ -59,7 +69,3 @@ html = index_tpl.apply({
|
|
59
69
|
:title => "Guides",
|
60
70
|
:content => "blah",
|
61
71
|
})
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
data/guider.gemspec
CHANGED
@@ -2,8 +2,8 @@ Gem::Specification.new do |s|
|
|
2
2
|
s.required_rubygems_version = ">= 1.3.5"
|
3
3
|
|
4
4
|
s.name = 'guider'
|
5
|
-
s.version = '0.0.
|
6
|
-
s.date = '2013-03-
|
5
|
+
s.version = '0.0.2'
|
6
|
+
s.date = '2013-03-15'
|
7
7
|
s.summary = "Sencha guide generator"
|
8
8
|
s.description = "JSDuck-compatible guides generator"
|
9
9
|
s.homepage = "https://github.com/nene/guider"
|
data/lib/guider/config.rb
CHANGED
@@ -5,11 +5,11 @@ module Guider
|
|
5
5
|
# Reads the guides config file.
|
6
6
|
# Turns it into list Guide instances accessible through .guides attribute.
|
7
7
|
class Config
|
8
|
-
def initialize(path, tpl)
|
8
|
+
def initialize(path, tpl, inline_tags)
|
9
9
|
guide_cfgs = flatten(JSON.parse(IO.read(path)))
|
10
10
|
guide_cfgs.each {|g| keys_to_symbols(g) }
|
11
11
|
guide_cfgs.each {|g| add_path(g, path) }
|
12
|
-
@guides = to_guides(guide_cfgs, tpl)
|
12
|
+
@guides = to_guides(guide_cfgs, tpl, inline_tags)
|
13
13
|
end
|
14
14
|
|
15
15
|
# List of Guide instances.
|
@@ -41,8 +41,8 @@ module Guider
|
|
41
41
|
end
|
42
42
|
|
43
43
|
# Turns guide configs to actual Guide instances
|
44
|
-
def to_guides(guide_cfgs, tpl)
|
45
|
-
guide_cfgs.find_all {|g| File.exists?(g[:path]) }.map {|g| Guide.new(g, tpl) }
|
44
|
+
def to_guides(guide_cfgs, tpl, inline_tags)
|
45
|
+
guide_cfgs.find_all {|g| File.exists?(g[:path]) }.map {|g| Guide.new(g, tpl, inline_tags) }
|
46
46
|
end
|
47
47
|
|
48
48
|
end
|
data/lib/guider/guide.rb
CHANGED
@@ -1,12 +1,12 @@
|
|
1
1
|
require "kramdown"
|
2
2
|
require "fileutils"
|
3
|
-
require "guider/inline_tags"
|
4
3
|
|
5
4
|
module Guider
|
6
5
|
class Guide
|
7
|
-
def initialize(cfg, tpl)
|
6
|
+
def initialize(cfg, tpl, inline_tags)
|
8
7
|
@cfg = cfg
|
9
8
|
@template = tpl
|
9
|
+
@inline_tags = inline_tags
|
10
10
|
@markdown = IO.read(@cfg[:path]+"/README.md")
|
11
11
|
@html = Kramdown::Document.new(@markdown).to_html
|
12
12
|
end
|
@@ -19,7 +19,7 @@ module Guider
|
|
19
19
|
end
|
20
20
|
|
21
21
|
def write_html(filename)
|
22
|
-
html =
|
22
|
+
html = @inline_tags.replace(@html)
|
23
23
|
html = @template.apply(:content => html, :title => title)
|
24
24
|
File.open(filename, 'w') {|f| f.write(html) }
|
25
25
|
end
|
@@ -49,10 +49,12 @@ module Guider
|
|
49
49
|
end
|
50
50
|
end
|
51
51
|
|
52
|
+
# Copies all files and directories in source dir over to
|
53
|
+
# destination dir. Skips README.md, which is treated separately.
|
52
54
|
def copy_images(src, dest)
|
53
|
-
Dir[src+"
|
54
|
-
if !["
|
55
|
-
FileUtils.
|
55
|
+
Dir[src+"/*"].each do |img|
|
56
|
+
if !["README.md"].include?(File.basename(img))
|
57
|
+
FileUtils.cp_r(img, dest+"/"+File.basename(img))
|
56
58
|
end
|
57
59
|
end
|
58
60
|
end
|
data/lib/guider/index.rb
CHANGED
data/lib/guider/inline_tags.rb
CHANGED
@@ -1,12 +1,21 @@
|
|
1
1
|
module Guider
|
2
2
|
class InlineTags
|
3
|
-
|
3
|
+
# The base URL for links created by {@link} tags.
|
4
|
+
attr_accessor :link_url
|
5
|
+
|
6
|
+
def initialize
|
7
|
+
@link_url = ""
|
8
|
+
end
|
9
|
+
|
10
|
+
def replace(html)
|
4
11
|
replace_link!(html)
|
5
12
|
replace_img!(html)
|
6
13
|
html
|
7
14
|
end
|
8
15
|
|
9
|
-
|
16
|
+
private
|
17
|
+
|
18
|
+
def replace_link!(html)
|
10
19
|
re = /\{@link\s+([^\s\}]*)(?:\s+([^\}]*))?}/
|
11
20
|
html.gsub!(re) do |m|
|
12
21
|
m =~ re # re-run regex to extract $1 $2 fields
|
@@ -20,12 +29,12 @@ module Guider
|
|
20
29
|
apiref = cls
|
21
30
|
end
|
22
31
|
|
23
|
-
url = "
|
32
|
+
url = @link_url + "#!/api/" + apiref
|
24
33
|
"<a href='#{url}'>#{alt || ref}</a>"
|
25
34
|
end
|
26
35
|
end
|
27
36
|
|
28
|
-
def
|
37
|
+
def replace_img!(html)
|
29
38
|
re = /\{@img\s+([^\s\}]*)(?:\s+([^\}]*))?}/
|
30
39
|
html.gsub!(re) do |m|
|
31
40
|
m =~ re # re-run regex to extract $1 $2 fields
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: guider
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-03-
|
12
|
+
date: 2013-03-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: kramdown
|
@@ -86,7 +86,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
86
86
|
version: 1.3.5
|
87
87
|
requirements: []
|
88
88
|
rubyforge_project: guider
|
89
|
-
rubygems_version: 1.8.
|
89
|
+
rubygems_version: 1.8.24
|
90
90
|
signing_key:
|
91
91
|
specification_version: 3
|
92
92
|
summary: Sencha guide generator
|