ascii_binder 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.adoc +11 -4
- data/ascii_binder.gemspec +4 -4
- data/bin/ascii_binder +87 -20
- data/bin/asciibinder +87 -20
- data/lib/ascii_binder/helpers.rb +17 -5
- data/lib/ascii_binder/version.rb +1 -1
- data/templates/LICENSE.txt +4 -0
- data/templates/README.adoc +11 -0
- data/templates/_stylesheets/asciibinder.css +6 -0
- data/templates/_templates/_css.html.erb +2 -2
- data/templates/_templates/page.html.erb +2 -6
- data/templates/index-main.html +1 -1
- data/templates/welcome/index.adoc +1 -1
- metadata +8 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 01e8b7c8975f779411765ecd4db541dbbda03745
|
4
|
+
data.tar.gz: 9daf86717b278c2b10c6e59c0b554641fc1f9127
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e955da364eb1b81d49415c5b000b0cf06a83ad699e5085e5a72918b45a51f4f263cdcaf3871f6290198b2fd3d57603dc6558a5c577782d2d9c08d8e5c206ade
|
7
|
+
data.tar.gz: 6238794ecb04f36e2d65d30b06a3ec7c6b5e6a036d55051b2cc7726a389fa628ee14547a7942d88be007e44654329f7febda8f6493b13c171f99594cb80530c1
|
data/README.adoc
CHANGED
@@ -2,13 +2,20 @@
|
|
2
2
|
|
3
3
|
image:https://badge.fury.io/rb/ascii_binder.svg["Gem Version", link="https://badge.fury.io/rb/ascii_binder"]
|
4
4
|
|
5
|
-
|
5
|
+
AsciiBinder is an AsciiDoc-based system for authoring and publishing closely related documentation sets from a single source.
|
6
6
|
|
7
|
-
|
8
|
-
|
7
|
+
== Learn More
|
8
|
+
|
9
|
+
* See the http://www.asciibinder.org[homepage].
|
10
|
+
* Have a gander at the http://www.asciibinder.org/latest/welcome/[AsciiBinder documentation].
|
11
|
+
* Or just take the https://rubygems.org/gems/ascii_binder[ascii_binder Ruby Gem] for a spin.
|
9
12
|
|
10
13
|
The AsciiBinder system was initially developed for https://github.com/openshift/openshift-docs[OpenShift documentation], but has been revised to work for documenting a wide variety of complex, multi-versioned software projects.
|
11
14
|
|
12
15
|
== Contributing
|
13
|
-
We are using the https://github.com/redhataccess/ascii_binder/issues[Issues] page to track bugs and feature ideas on the code, so have a look and feel free to ask questions there. You can also follow / chat with us on Twitter - https://twitter.com/AsciiBinder[@AsciiBinder]
|
14
16
|
|
17
|
+
We are using the https://github.com/redhataccess/ascii_binder/issues[Issues] page to track bugs and feature ideas on the code, so have a look and feel free to ask questions there. You can also chat with us on IRC at FreeNode, http://webchat.freenode.net/?randomnick=1&channels=asciibinder&uio=d4[#asciibinder] channel, or on Twitter - https://twitter.com/AsciiBinder[@AsciiBinder].
|
18
|
+
|
19
|
+
== License
|
20
|
+
|
21
|
+
The gem is available as open source under the terms of the http://opensource.org/licenses/MIT[MIT License].
|
data/ascii_binder.gemspec
CHANGED
@@ -6,10 +6,10 @@ require 'ascii_binder/version'
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "ascii_binder"
|
8
8
|
spec.version = AsciiBinder::VERSION
|
9
|
-
spec.authors = ["N. Harrison Ripps","Jason Frey"]
|
10
|
-
spec.email = ["nhr@redhat.com","jfrey@redhat.com"]
|
11
|
-
spec.summary = %q{
|
12
|
-
spec.description =
|
9
|
+
spec.authors = ["N. Harrison Ripps", "Jason Frey"]
|
10
|
+
spec.email = ["nhr@redhat.com", "jfrey@redhat.com"]
|
11
|
+
spec.summary = %q{AsciiBinder is an AsciiDoc-based system for authoring and publishing closely related documentation sets from a single source.}
|
12
|
+
spec.description = spec.summary
|
13
13
|
spec.homepage = "http://asciibinder.org/"
|
14
14
|
spec.license = "MIT"
|
15
15
|
|
data/bin/ascii_binder
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'ascii_binder/helpers'
|
4
|
+
require 'ascii_binder/version'
|
4
5
|
require 'pathname'
|
5
6
|
require 'trollop'
|
6
7
|
|
@@ -17,8 +18,17 @@ def call_generate(distro,page=nil)
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
|
21
|
+
def repo_check(repo_dir)
|
22
|
+
['.git','_build_cfg.yml','_distro_map.yml','_templates'].each do |file|
|
23
|
+
unless File.exist?(File.join(repo_dir, file))
|
24
|
+
Trollop::die "The specified repo directory '#{repo_dir}' does not appear to be an AsciiBinder repo."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
SUB_COMMANDS = %w{help version build watch package clean create clone}
|
21
30
|
Trollop::options do
|
31
|
+
version AsciiBinder::VERSION
|
22
32
|
banner <<-EOF
|
23
33
|
Usage:
|
24
34
|
#$0 <command> <repo_dir>
|
@@ -28,6 +38,8 @@ Commands:
|
|
28
38
|
Builds the HTML docs in the indicated repo dir
|
29
39
|
create
|
30
40
|
Generates a new AsciiBinder repo at the indicated dir
|
41
|
+
clone
|
42
|
+
Clones an existing AsciiBinder repo to the local filesystem
|
31
43
|
watch
|
32
44
|
Starts Guard, which automatically regenerates changed HTML
|
33
45
|
files on the working branch in the repo dir
|
@@ -48,12 +60,12 @@ repo_dir = nil
|
|
48
60
|
|
49
61
|
if cmd.nil?
|
50
62
|
cmd = "build"
|
51
|
-
elsif
|
52
|
-
if
|
53
|
-
Trollop::die "'#{cmd}' is not a valid asciibinder subcommand. Legal values are '#{SUB_COMMANDS.join('\', \'')}'."
|
54
|
-
else
|
63
|
+
elsif !SUB_COMMANDS.include?(cmd)
|
64
|
+
if ARGV.empty?
|
55
65
|
repo_dir = Pathname.new(cmd)
|
56
66
|
cmd = "build"
|
67
|
+
else
|
68
|
+
Trollop::die "'#{cmd}' is not a valid asciibinder subcommand. Legal values are '#{SUB_COMMANDS.join('\', \'')}'."
|
57
69
|
end
|
58
70
|
end
|
59
71
|
|
@@ -104,6 +116,23 @@ Description:
|
|
104
116
|
Creates a new, bare AsciiBinder repo in the specified directory.
|
105
117
|
EOF
|
106
118
|
end
|
119
|
+
when "clone"
|
120
|
+
Trollop::options do
|
121
|
+
banner <<-EOF
|
122
|
+
Usage:
|
123
|
+
#$0 clone <options> <git_repo_url>
|
124
|
+
|
125
|
+
Description:
|
126
|
+
Clones an existing AsciiBinder repo to the current directory.
|
127
|
+
Under the default behavior, AsciiBinder will attempt to set up
|
128
|
+
tracking branches based on the contents of _distro_map.yml,
|
129
|
+
but this can be suppressed (see Options).
|
130
|
+
|
131
|
+
Options:
|
132
|
+
EOF
|
133
|
+
opt :branches, "Create tracking branches after cloning.", :default => true
|
134
|
+
opt :dir, "Specify the pathname of the local directory for cloning.", :default => ''
|
135
|
+
end
|
107
136
|
when "watch"
|
108
137
|
Trollop::options do
|
109
138
|
banner <<-EOF
|
@@ -149,16 +178,32 @@ EOF
|
|
149
178
|
end
|
150
179
|
when "help"
|
151
180
|
Trollop::educate
|
181
|
+
when "version"
|
182
|
+
puts AsciiBinder::VERSION
|
183
|
+
exit 0
|
152
184
|
end
|
153
185
|
|
154
186
|
if (not repo_dir.nil? and not ARGV.empty?) or (repo_dir.nil? and ARGV.length > 1)
|
155
187
|
Trollop::die "Too many arguments provided to ascii_binder: '#{ARGV.join(' ')}'. Exiting."
|
156
188
|
elsif repo_dir.nil?
|
157
189
|
if ARGV.length == 1
|
158
|
-
|
190
|
+
if cmd == 'clone'
|
191
|
+
cmd_opts[:giturl] = ARGV.shift
|
192
|
+
if cmd_opts[:dir] != ''
|
193
|
+
repo_dir = Pathname.new(cmd_opts[:dir])
|
194
|
+
else
|
195
|
+
repo_dir = File.join(Pathname.pwd, cmd_opts[:giturl].split('/')[-1].split('.')[0])
|
196
|
+
end
|
197
|
+
else
|
198
|
+
repo_dir = Pathname.new(ARGV.shift)
|
199
|
+
end
|
159
200
|
else
|
160
|
-
if
|
161
|
-
|
201
|
+
if cmd != 'create'
|
202
|
+
if cmd == 'clone'
|
203
|
+
Trollop::die "Provide a git URL to clone from."
|
204
|
+
else
|
205
|
+
repo_dir = Pathname.pwd
|
206
|
+
end
|
162
207
|
else
|
163
208
|
Trollop::die "Specify a name for the new repo directory."
|
164
209
|
end
|
@@ -166,34 +211,56 @@ elsif repo_dir.nil?
|
|
166
211
|
end
|
167
212
|
|
168
213
|
# Validate the repo_dir path
|
169
|
-
if cmd == 'create'
|
214
|
+
if cmd == 'create' or cmd == 'clone'
|
170
215
|
if repo_dir.exist?
|
171
216
|
Trollop::die "The specified new repo directory '#{repo_dir}' already exists."
|
172
217
|
end
|
173
218
|
else
|
174
|
-
if
|
219
|
+
if !repo_dir.exist?
|
175
220
|
Trollop::die "The specified repo directory '#{repo_dir}' does not exist."
|
176
|
-
elsif
|
221
|
+
elsif !repo_dir.directory?
|
177
222
|
Trollop::die "The specified repo directory path '#{repo_dir}' is not a directory."
|
178
|
-
elsif
|
223
|
+
elsif !repo_dir.readable?
|
179
224
|
Trollop::die "The specified repo directory '#{repo_dir}' is not readable."
|
180
|
-
elsif
|
225
|
+
elsif !repo_dir.writable?
|
181
226
|
Trollop::die "The specified repo directory '#{repo_dir}' cannot be written to."
|
182
227
|
else
|
183
|
-
|
184
|
-
if not File.exist?(File.join(repo_dir, file))
|
185
|
-
Trollop::die "The specified repo directory '#{repo_dir}' does not appear to be an AsciiBinder repo."
|
186
|
-
end
|
187
|
-
end
|
228
|
+
repo_check(repo_dir)
|
188
229
|
end
|
189
230
|
end
|
190
231
|
|
191
232
|
# Set the repo root
|
192
233
|
set_source_dir(File.expand_path(repo_dir))
|
193
234
|
|
235
|
+
# Cloning? Time to try it.
|
236
|
+
if cmd == 'clone'
|
237
|
+
puts "Cloning #{cmd_opts[:giturl]} to #{repo_dir}"
|
238
|
+
system("git clone #{cmd_opts[:giturl]} #{repo_dir}")
|
239
|
+
Trollop::die "The git URL could not be cloned: #{err}" if $?.exitstatus != 0
|
240
|
+
|
241
|
+
# Make sure this cloned repo is legit.
|
242
|
+
repo_check(repo_dir)
|
243
|
+
|
244
|
+
if cmd_opts[:branches]
|
245
|
+
Dir.chdir(repo_dir)
|
246
|
+
puts "Tracking branch setup:"
|
247
|
+
distro_branches.each do |doc_branch|
|
248
|
+
next if doc_branch == 'master'
|
249
|
+
puts "- #{doc_branch}"
|
250
|
+
system("git branch #{doc_branch} origin/#{doc_branch}")
|
251
|
+
end
|
252
|
+
else
|
253
|
+
puts "- Skipping tracking branch setup"
|
254
|
+
end
|
255
|
+
|
256
|
+
# Done and done.
|
257
|
+
puts "Cloning complete."
|
258
|
+
exit
|
259
|
+
end
|
260
|
+
|
194
261
|
# Change to the repo dir. This is necessary in order for
|
195
262
|
# AsciiDoctor to work properly.
|
196
|
-
if
|
263
|
+
if cmd != 'create'
|
197
264
|
Dir.chdir source_dir
|
198
265
|
end
|
199
266
|
|
@@ -209,7 +276,7 @@ when "package"
|
|
209
276
|
package_site = cmd_opts[:site] || ''
|
210
277
|
package_docs(package_site)
|
211
278
|
when "watch"
|
212
|
-
if
|
279
|
+
if !dir_empty?(preview_dir)
|
213
280
|
guardfile_path = File.join(Gem::Specification.find_by_name("ascii_binder").full_gem_path, 'Guardfile')
|
214
281
|
exec("guard -G #{guardfile_path}")
|
215
282
|
else
|
data/bin/asciibinder
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
2
|
|
3
3
|
require 'ascii_binder/helpers'
|
4
|
+
require 'ascii_binder/version'
|
4
5
|
require 'pathname'
|
5
6
|
require 'trollop'
|
6
7
|
|
@@ -17,8 +18,17 @@ def call_generate(distro,page=nil)
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
|
21
|
+
def repo_check(repo_dir)
|
22
|
+
['.git','_build_cfg.yml','_distro_map.yml','_templates'].each do |file|
|
23
|
+
unless File.exist?(File.join(repo_dir, file))
|
24
|
+
Trollop::die "The specified repo directory '#{repo_dir}' does not appear to be an AsciiBinder repo."
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
SUB_COMMANDS = %w{help version build watch package clean create clone}
|
21
30
|
Trollop::options do
|
31
|
+
version AsciiBinder::VERSION
|
22
32
|
banner <<-EOF
|
23
33
|
Usage:
|
24
34
|
#$0 <command> <repo_dir>
|
@@ -28,6 +38,8 @@ Commands:
|
|
28
38
|
Builds the HTML docs in the indicated repo dir
|
29
39
|
create
|
30
40
|
Generates a new AsciiBinder repo at the indicated dir
|
41
|
+
clone
|
42
|
+
Clones an existing AsciiBinder repo to the local filesystem
|
31
43
|
watch
|
32
44
|
Starts Guard, which automatically regenerates changed HTML
|
33
45
|
files on the working branch in the repo dir
|
@@ -48,12 +60,12 @@ repo_dir = nil
|
|
48
60
|
|
49
61
|
if cmd.nil?
|
50
62
|
cmd = "build"
|
51
|
-
elsif
|
52
|
-
if
|
53
|
-
Trollop::die "'#{cmd}' is not a valid asciibinder subcommand. Legal values are '#{SUB_COMMANDS.join('\', \'')}'."
|
54
|
-
else
|
63
|
+
elsif !SUB_COMMANDS.include?(cmd)
|
64
|
+
if ARGV.empty?
|
55
65
|
repo_dir = Pathname.new(cmd)
|
56
66
|
cmd = "build"
|
67
|
+
else
|
68
|
+
Trollop::die "'#{cmd}' is not a valid asciibinder subcommand. Legal values are '#{SUB_COMMANDS.join('\', \'')}'."
|
57
69
|
end
|
58
70
|
end
|
59
71
|
|
@@ -104,6 +116,23 @@ Description:
|
|
104
116
|
Creates a new, bare AsciiBinder repo in the specified directory.
|
105
117
|
EOF
|
106
118
|
end
|
119
|
+
when "clone"
|
120
|
+
Trollop::options do
|
121
|
+
banner <<-EOF
|
122
|
+
Usage:
|
123
|
+
#$0 clone <options> <git_repo_url>
|
124
|
+
|
125
|
+
Description:
|
126
|
+
Clones an existing AsciiBinder repo to the current directory.
|
127
|
+
Under the default behavior, AsciiBinder will attempt to set up
|
128
|
+
tracking branches based on the contents of _distro_map.yml,
|
129
|
+
but this can be suppressed (see Options).
|
130
|
+
|
131
|
+
Options:
|
132
|
+
EOF
|
133
|
+
opt :branches, "Create tracking branches after cloning.", :default => true
|
134
|
+
opt :dir, "Specify the pathname of the local directory for cloning.", :default => ''
|
135
|
+
end
|
107
136
|
when "watch"
|
108
137
|
Trollop::options do
|
109
138
|
banner <<-EOF
|
@@ -149,16 +178,32 @@ EOF
|
|
149
178
|
end
|
150
179
|
when "help"
|
151
180
|
Trollop::educate
|
181
|
+
when "version"
|
182
|
+
puts AsciiBinder::VERSION
|
183
|
+
exit 0
|
152
184
|
end
|
153
185
|
|
154
186
|
if (not repo_dir.nil? and not ARGV.empty?) or (repo_dir.nil? and ARGV.length > 1)
|
155
187
|
Trollop::die "Too many arguments provided to ascii_binder: '#{ARGV.join(' ')}'. Exiting."
|
156
188
|
elsif repo_dir.nil?
|
157
189
|
if ARGV.length == 1
|
158
|
-
|
190
|
+
if cmd == 'clone'
|
191
|
+
cmd_opts[:giturl] = ARGV.shift
|
192
|
+
if cmd_opts[:dir] != ''
|
193
|
+
repo_dir = Pathname.new(cmd_opts[:dir])
|
194
|
+
else
|
195
|
+
repo_dir = File.join(Pathname.pwd, cmd_opts[:giturl].split('/')[-1].split('.')[0])
|
196
|
+
end
|
197
|
+
else
|
198
|
+
repo_dir = Pathname.new(ARGV.shift)
|
199
|
+
end
|
159
200
|
else
|
160
|
-
if
|
161
|
-
|
201
|
+
if cmd != 'create'
|
202
|
+
if cmd == 'clone'
|
203
|
+
Trollop::die "Provide a git URL to clone from."
|
204
|
+
else
|
205
|
+
repo_dir = Pathname.pwd
|
206
|
+
end
|
162
207
|
else
|
163
208
|
Trollop::die "Specify a name for the new repo directory."
|
164
209
|
end
|
@@ -166,34 +211,56 @@ elsif repo_dir.nil?
|
|
166
211
|
end
|
167
212
|
|
168
213
|
# Validate the repo_dir path
|
169
|
-
if cmd == 'create'
|
214
|
+
if cmd == 'create' or cmd == 'clone'
|
170
215
|
if repo_dir.exist?
|
171
216
|
Trollop::die "The specified new repo directory '#{repo_dir}' already exists."
|
172
217
|
end
|
173
218
|
else
|
174
|
-
if
|
219
|
+
if !repo_dir.exist?
|
175
220
|
Trollop::die "The specified repo directory '#{repo_dir}' does not exist."
|
176
|
-
elsif
|
221
|
+
elsif !repo_dir.directory?
|
177
222
|
Trollop::die "The specified repo directory path '#{repo_dir}' is not a directory."
|
178
|
-
elsif
|
223
|
+
elsif !repo_dir.readable?
|
179
224
|
Trollop::die "The specified repo directory '#{repo_dir}' is not readable."
|
180
|
-
elsif
|
225
|
+
elsif !repo_dir.writable?
|
181
226
|
Trollop::die "The specified repo directory '#{repo_dir}' cannot be written to."
|
182
227
|
else
|
183
|
-
|
184
|
-
if not File.exist?(File.join(repo_dir, file))
|
185
|
-
Trollop::die "The specified repo directory '#{repo_dir}' does not appear to be an AsciiBinder repo."
|
186
|
-
end
|
187
|
-
end
|
228
|
+
repo_check(repo_dir)
|
188
229
|
end
|
189
230
|
end
|
190
231
|
|
191
232
|
# Set the repo root
|
192
233
|
set_source_dir(File.expand_path(repo_dir))
|
193
234
|
|
235
|
+
# Cloning? Time to try it.
|
236
|
+
if cmd == 'clone'
|
237
|
+
puts "Cloning #{cmd_opts[:giturl]} to #{repo_dir}"
|
238
|
+
system("git clone #{cmd_opts[:giturl]} #{repo_dir}")
|
239
|
+
Trollop::die "The git URL could not be cloned: #{err}" if $?.exitstatus != 0
|
240
|
+
|
241
|
+
# Make sure this cloned repo is legit.
|
242
|
+
repo_check(repo_dir)
|
243
|
+
|
244
|
+
if cmd_opts[:branches]
|
245
|
+
Dir.chdir(repo_dir)
|
246
|
+
puts "Tracking branch setup:"
|
247
|
+
distro_branches.each do |doc_branch|
|
248
|
+
next if doc_branch == 'master'
|
249
|
+
puts "- #{doc_branch}"
|
250
|
+
system("git branch #{doc_branch} origin/#{doc_branch}")
|
251
|
+
end
|
252
|
+
else
|
253
|
+
puts "- Skipping tracking branch setup"
|
254
|
+
end
|
255
|
+
|
256
|
+
# Done and done.
|
257
|
+
puts "Cloning complete."
|
258
|
+
exit
|
259
|
+
end
|
260
|
+
|
194
261
|
# Change to the repo dir. This is necessary in order for
|
195
262
|
# AsciiDoctor to work properly.
|
196
|
-
if
|
263
|
+
if cmd != 'create'
|
197
264
|
Dir.chdir source_dir
|
198
265
|
end
|
199
266
|
|
@@ -209,7 +276,7 @@ when "package"
|
|
209
276
|
package_site = cmd_opts[:site] || ''
|
210
277
|
package_docs(package_site)
|
211
278
|
when "watch"
|
212
|
-
if
|
279
|
+
if !dir_empty?(preview_dir)
|
213
280
|
guardfile_path = File.join(Gem::Specification.find_by_name("ascii_binder").full_gem_path, 'Guardfile')
|
214
281
|
exec("guard -G #{guardfile_path}")
|
215
282
|
else
|
data/lib/ascii_binder/helpers.rb
CHANGED
@@ -79,6 +79,7 @@ module AsciiBinder
|
|
79
79
|
JAVASCRIPT_DIRNAME = '_javascripts'
|
80
80
|
IMAGE_DIRNAME = '_images'
|
81
81
|
BLANK_STRING_RE = Regexp.new('^\s*$')
|
82
|
+
IFDEF_STRING_RE = Regexp.new('ifdef::(.+?)\[\]')
|
82
83
|
|
83
84
|
def build_date
|
84
85
|
Time.now.utc
|
@@ -296,10 +297,20 @@ module AsciiBinder
|
|
296
297
|
end
|
297
298
|
|
298
299
|
def parse_distros distros_string, for_validation=false
|
299
|
-
values
|
300
|
-
|
300
|
+
values = distros_string.split(',').map(&:strip)
|
301
|
+
# Don't bother with glob expansion if 'all' is in the list.
|
301
302
|
return distro_map.keys if values.include?('all')
|
302
|
-
|
303
|
+
|
304
|
+
expanded = expand_distro_globs(values)
|
305
|
+
return expanded if for_validation
|
306
|
+
return expanded.uniq
|
307
|
+
end
|
308
|
+
|
309
|
+
def expand_distro_globs(values)
|
310
|
+
values.flat_map do |value|
|
311
|
+
value_regex = Regexp.new("\\A#{value.gsub("*", ".*")}\\z")
|
312
|
+
distro_map.keys.select { |k| value_regex.match(k) }
|
313
|
+
end.uniq
|
303
314
|
end
|
304
315
|
|
305
316
|
def validate_distros distros_string
|
@@ -717,9 +728,10 @@ module AsciiBinder
|
|
717
728
|
if file_lines.length > 0
|
718
729
|
article_title = file_lines[0].gsub(/^\=\s+/, '').gsub(/\s+$/, '').gsub(/\{product-title\}/, distro_config["name"]).gsub(/\{product-version\}/, branch_config["name"])
|
719
730
|
end
|
731
|
+
topic_adoc = file_lines.join("\n")
|
720
732
|
|
721
|
-
topic_html
|
722
|
-
dir_depth
|
733
|
+
topic_html = Asciidoctor.render topic_adoc, :header_footer => false, :safe => :unsafe, :attributes => page_attrs
|
734
|
+
dir_depth = ''
|
723
735
|
if branch_config['dir'].split('/').length > 1
|
724
736
|
dir_depth = '../' * (branch_config['dir'].split('/').length - 1)
|
725
737
|
end
|
data/lib/ascii_binder/version.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
= AsciiBinder-Based Docs Repo
|
2
|
+
|
3
|
+
This docs repository was created with http://asciibinder.org/[AsciiBinder]. For more information on how AsciiBinder works, check out the http://asciibinder.org/latest/[documentation].
|
4
|
+
|
5
|
+
== License
|
6
|
+
|
7
|
+
image:http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/by.svg["Creative Commons License",height=31px,width=88px]
|
8
|
+
|
9
|
+
This work is licensed under a http://creativecommons.org/licenses/by/4.0/[Creative Commons Attribution 4.0 International License].
|
10
|
+
|
11
|
+
See link:LICENSE.txt[LICENSE.txt].
|
@@ -1,3 +1,4 @@
|
|
1
|
+
@import url(http://maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css);
|
1
2
|
/* ------------------------------------------------------------
|
2
3
|
Image: "Spin" https://www.flickr.com/photos/eflon/3655695161/
|
3
4
|
Author: eflon https://www.flickr.com/photos/eflon/
|
@@ -79,6 +80,11 @@ License: https://creativecommons.org/licenses/by/2.0/
|
|
79
80
|
font-size: 28px;
|
80
81
|
}
|
81
82
|
|
83
|
+
.navbar-brand {
|
84
|
+
padding: initial;
|
85
|
+
height: initial;
|
86
|
+
}
|
87
|
+
|
82
88
|
.nav > li > a.hover{
|
83
89
|
background-color: none;
|
84
90
|
}
|
@@ -1,3 +1,3 @@
|
|
1
|
-
<%-
|
2
|
-
<link href="<%= File.join(css_path, sheet) %>" rel="stylesheet" />
|
1
|
+
<%- Dir.glob("_stylesheets/*").sort.each do |sheet| -%>
|
2
|
+
<link href="<%= File.join(css_path, File.basename(sheet)) %>" rel="stylesheet" />
|
3
3
|
<%- end -%>
|
@@ -9,7 +9,8 @@
|
|
9
9
|
<!-- Bootstrap -->
|
10
10
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
|
11
11
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">
|
12
|
-
|
12
|
+
|
13
|
+
<%= render("_templates/_css.html.erb", :css_path => css_path) %>
|
13
14
|
|
14
15
|
<!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
|
15
16
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
@@ -21,11 +22,6 @@
|
|
21
22
|
<link href="<%= File.join(images_path, "favicon32x32.png") %>" rel="shortcut icon" type="text/css">
|
22
23
|
<!--[if IE]><link rel="shortcut icon" href="<%= File.join(images_path, "favicon.ico") %>"><![endif]-->
|
23
24
|
<meta content="AsciiBinder" name="application-name">
|
24
|
-
<style type="text/css">
|
25
|
-
.navbar-brand {
|
26
|
-
padding-top: 5px;
|
27
|
-
}
|
28
|
-
</style>
|
29
25
|
</head>
|
30
26
|
<body>
|
31
27
|
<div class="navbar navbar-default" role="navigation">
|
data/templates/index-main.html
CHANGED
@@ -60,7 +60,7 @@
|
|
60
60
|
<a href="https://github.com/redhataccess/ascii_binder" class="list-group-item">
|
61
61
|
<span class="glyphicon glyphicon-eye-open" aria-hidden="true"></span>
|
62
62
|
<span class="sr-only">GitHub</span>
|
63
|
-
AsciiBinder on
|
63
|
+
AsciiBinder on GitHub
|
64
64
|
</a>
|
65
65
|
<a href="/latest/welcome/" class="list-group-item">
|
66
66
|
<span class="glyphicon glyphicon-pencil" aria-hidden="true"></span>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
Welcome to the AsciiBinder Docs Management System. This welcome page is provided as a template for the topic pages that you will create for your software project.
|
8
8
|
|
9
9
|
== Need Help?
|
10
|
-
* Check out the http://www.asciibinder.org/latest/welcome/[
|
10
|
+
* Check out the http://www.asciibinder.org/latest/welcome/[AsciiBinder documentation]
|
11
11
|
* Join our http://groups.google.com/group/asciibinder[mailing list]
|
12
12
|
* Find us on IRC at FreeNode, http://webchat.freenode.net/?randomnick=1&channels=asciibinder&uio=d4[#asciibinder] channel
|
13
13
|
* Open an https://github.com/redhataccess/ascii_binder/issues[issue on GitHub]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ascii_binder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N. Harrison Ripps
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2016-03-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bundler
|
@@ -221,7 +221,8 @@ dependencies:
|
|
221
221
|
- - ">="
|
222
222
|
- !ruby/object:Gem::Version
|
223
223
|
version: '0'
|
224
|
-
description:
|
224
|
+
description: AsciiBinder is an AsciiDoc-based system for authoring and publishing
|
225
|
+
closely related documentation sets from a single source.
|
225
226
|
email:
|
226
227
|
- nhr@redhat.com
|
227
228
|
- jfrey@redhat.com
|
@@ -247,6 +248,8 @@ files:
|
|
247
248
|
- lib/ascii_binder/template_renderer.rb
|
248
249
|
- lib/ascii_binder/version.rb
|
249
250
|
- templates/.gitignore
|
251
|
+
- templates/LICENSE.txt
|
252
|
+
- templates/README.adoc
|
250
253
|
- templates/_build_cfg.yml
|
251
254
|
- templates/_distro_map.yml
|
252
255
|
- templates/_images/asciibinder-logo-horizontal.png
|
@@ -284,5 +287,6 @@ rubyforge_project:
|
|
284
287
|
rubygems_version: 2.4.8
|
285
288
|
signing_key:
|
286
289
|
specification_version: 4
|
287
|
-
summary:
|
290
|
+
summary: AsciiBinder is an AsciiDoc-based system for authoring and publishing closely
|
291
|
+
related documentation sets from a single source.
|
288
292
|
test_files: []
|