ascii_binder 0.1.0 → 0.1.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.
- 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: []
|