ascii_binder 0.2.0 → 1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/asciibinder +7 -9
- data/features/support/env.rb +3 -3
- data/lib/ascii_binder/engine.rb +104 -62
- data/lib/ascii_binder/helpers.rb +1 -0
- data/lib/ascii_binder/site_info.rb +1 -1
- data/lib/ascii_binder/topic_map.rb +2 -1
- data/lib/ascii_binder/version.rb +1 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 26f9de41f109228dfa1478976e8d1b8f08a178300d092e3250dcca610e4e70b6
|
4
|
+
data.tar.gz: 4cf902ff6c38a7a9ce622cdfaef927ed3943c750bcf71051a0bf00d430fce603
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d978b66122655791fcefc86a04741b94940fdfffab86e2ace9dd2454bef63849bda46b8776b90bad9bf7f9a87a7cce42ca4115bb2650fd0ee7836f23ed5ca7cb
|
7
|
+
data.tar.gz: e8b18ebdb1a1fbc8114645692e91342f6d48b8bb42b63f5c763a18550fbf45d7c3cac73c6ebd164910400448e3a0a2babcf0faa51a5cf06e98def1d66f9bae76
|
data/bin/asciibinder
CHANGED
@@ -31,9 +31,9 @@ def repo_check(docs_basedir)
|
|
31
31
|
end
|
32
32
|
end
|
33
33
|
# Either of these must be present
|
34
|
-
unless File.exist?(File.join(docs_basedir, '
|
35
|
-
missing_files = true
|
36
|
-
end
|
34
|
+
# unless File.exist?(File.join("#{docs_basedir}/#{TOPIC_MAP_FOLDER}", '_topic_map.yml'))
|
35
|
+
# missing_files = true
|
36
|
+
# end
|
37
37
|
if missing_files or not in_git_repo(docs_basedir)
|
38
38
|
Trollop::die "The specified docs base directory '#{docs_basedir}' does not appear to be part of an AsciiBinder-compatible repo."
|
39
39
|
end
|
@@ -183,11 +183,9 @@ Description:
|
|
183
183
|
...except that the Guardfile automatically detects and runs this as
|
184
184
|
you work.
|
185
185
|
|
186
|
-
This is meant to be used in conjunction with a web browser that is
|
187
|
-
|
188
|
-
|
189
|
-
new version of the .adoc file, the new HTML is automatically
|
190
|
-
regenerated and your page view is automatically refreshed.
|
186
|
+
This is meant to be used in conjunction with a web browser that is viewing the
|
187
|
+
output HTML page. Every time you save a new version of the .adoc file, you can
|
188
|
+
manually refresh your page to view the newly-generated HTML.
|
191
189
|
EOF
|
192
190
|
opt :log_level, "Set the logging output level for this operation.", :default => 'warn'
|
193
191
|
end
|
@@ -302,7 +300,7 @@ if cmd == 'clone'
|
|
302
300
|
Dir.chdir(docs_basedir)
|
303
301
|
puts "Tracking branch setup:"
|
304
302
|
cloned_map.distro_branches.each do |doc_branch|
|
305
|
-
next if doc_branch == '
|
303
|
+
next if doc_branch == 'main'
|
306
304
|
puts "- #{doc_branch}"
|
307
305
|
system("git branch #{doc_branch} origin/#{doc_branch}")
|
308
306
|
end
|
data/features/support/env.rb
CHANGED
@@ -299,9 +299,9 @@ module Helpers
|
|
299
299
|
end
|
300
300
|
system("cd #{working_dir} && git add . > /dev/null && git commit -am 'test commit' > /dev/null")
|
301
301
|
if multiple_distros
|
302
|
-
system("cd #{working_dir} && git checkout -b branch1 > /dev/null 2>&1 && git checkout -b branch2 > /dev/null 2>&1 && git checkout
|
302
|
+
system("cd #{working_dir} && git checkout -b branch1 > /dev/null 2>&1 && git checkout -b branch2 > /dev/null 2>&1 && git checkout main > /dev/null 2>&1")
|
303
303
|
end
|
304
|
-
set_initial_working_branch('
|
304
|
+
set_initial_working_branch('main')
|
305
305
|
end
|
306
306
|
working_dir
|
307
307
|
end
|
@@ -325,7 +325,7 @@ module Helpers
|
|
325
325
|
if run_command('create',[],remote_dir)[:status].exitstatus == 0
|
326
326
|
clone_map = File.join(gem_root,'features','support','_clone_distro_map.yml')
|
327
327
|
FileUtils.cp(clone_map,File.join(remote_dir,'_distro_map.yml'))
|
328
|
-
system("cd #{remote_dir} && git add . > /dev/null && git commit -am 'remote commit' > /dev/null && git checkout -b branch1 > /dev/null 2>&1 && git checkout
|
328
|
+
system("cd #{remote_dir} && git add . > /dev/null && git commit -am 'remote commit' > /dev/null && git checkout -b branch1 > /dev/null 2>&1 && git checkout main > /dev/null 2>&1")
|
329
329
|
else
|
330
330
|
puts "ERROR: Could not initialize remote repo"
|
331
331
|
exit 1
|
data/lib/ascii_binder/engine.rb
CHANGED
@@ -78,18 +78,50 @@ module AsciiBinder
|
|
78
78
|
|
79
79
|
# Protip: Don't cache these! The topic map needs to be reread every time we change branches.
|
80
80
|
def topic_map_file
|
81
|
+
|
82
|
+
# new stuff 1/Nov/2021
|
83
|
+
# allow users to break up the topic map into multiple topic maps
|
84
|
+
# load topic maps from a single folder called _topic_maps.
|
85
|
+
# we assume that all files in this folder are correctly formatted topic maps. If not, you will get normal asciibinder errors
|
86
|
+
topic_map_folder = TOPIC_MAP_FOLDER
|
81
87
|
topic_file = TOPIC_MAP_FILENAME
|
82
|
-
|
83
|
-
|
84
|
-
#
|
85
|
-
|
86
|
-
|
87
|
-
#
|
88
|
-
|
88
|
+
|
89
|
+
if !Dir.exist?(File.join(docs_root_dir, topic_map_folder))
|
90
|
+
# if the _topic_maps directory doesn't exist or is empty, see if we can find the topic map in the root folder to maintain backward compatibility
|
91
|
+
|
92
|
+
if !File.exist?(File.join(docs_root_dir, topic_file))
|
93
|
+
# fall back to looking for a _topic_map in the root directory
|
94
|
+
|
95
|
+
topic_file = BUILD_FILENAME # old folders use build_config.yml
|
96
|
+
|
97
|
+
if !File.exist?(File.join(docs_root_dir, topic_file))
|
98
|
+
# Critical error - no topic map file at all.
|
99
|
+
Trollop::die "Could not find a valid topic map file. There is no #{TOPIC_MAP_FOLDER} folder and the fall back files #{TOPIC_MAP_FILENAME} or #{BUILD_FILENAME} in branch '#{git.branch}' were also not found."
|
100
|
+
else
|
101
|
+
t = File.join(docs_root_dir, topic_file) # found build_config
|
102
|
+
end
|
103
|
+
else
|
104
|
+
t = File.join(docs_root_dir, topic_file) # found topic_map in root
|
89
105
|
end
|
90
|
-
|
106
|
+
|
107
|
+
else
|
108
|
+
|
109
|
+
# topic map files are in the _topic_maps folder
|
110
|
+
|
111
|
+
# create a combined temp file with all topic maps
|
112
|
+
tf = Tempfile.new("#{TOPIC_MAP_FILENAME}")
|
113
|
+
|
114
|
+
Dir.glob("#{topic_map_folder}/*.yml").each do |filename|
|
115
|
+
lines = IO.read(filename)
|
116
|
+
tf << lines
|
117
|
+
end
|
118
|
+
|
119
|
+
t = tf.path
|
91
120
|
end
|
92
|
-
|
121
|
+
|
122
|
+
# returns the path to the final file
|
123
|
+
t
|
124
|
+
|
93
125
|
end
|
94
126
|
|
95
127
|
def topic_map
|
@@ -451,7 +483,7 @@ module AsciiBinder
|
|
451
483
|
|
452
484
|
def configure_and_generate_page(topic,branch_config,navigation)
|
453
485
|
distro = branch_config.distro
|
454
|
-
topic_adoc = File.open(topic.source_path,'r').read
|
486
|
+
# topic_adoc = File.open(topic.source_path,'r').read
|
455
487
|
|
456
488
|
page_attrs = asciidoctor_page_attrs([
|
457
489
|
"imagesdir=#{File.join(topic.parent.source_path,'images')}",
|
@@ -459,61 +491,71 @@ module AsciiBinder
|
|
459
491
|
"product-title=#{branch_config.distro_name}",
|
460
492
|
"product-version=#{branch_config.name}",
|
461
493
|
"product-author=#{branch_config.distro_author}",
|
462
|
-
"repo_path=#{topic.repo_path}"
|
494
|
+
"repo_path=#{topic.repo_path}",
|
495
|
+
"allow-uri-read="
|
463
496
|
])
|
464
497
|
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
498
|
+
File.open topic.source_path, 'r' do |topic_file|
|
499
|
+
|
500
|
+
doc = without_warnings { Asciidoctor.load topic_file, :header_footer => false, :safe => :unsafe, :attributes => page_attrs, :base_dir => "." }
|
501
|
+
article_title = doc.doctitle || topic.name
|
502
|
+
|
503
|
+
topic_html = doc.render
|
504
|
+
|
505
|
+
# This is logic bridges newer arbitrary-depth-tolerant code to
|
506
|
+
# older depth-limited code. Truly removing depth limitations will
|
507
|
+
# require changes to page templates in user docs repos.
|
508
|
+
breadcrumb = topic.breadcrumb
|
509
|
+
group_title = breadcrumb[0][:name]
|
510
|
+
group_id = breadcrumb[0][:id]
|
511
|
+
topic_title = breadcrumb[-1][:name]
|
512
|
+
topic_id = breadcrumb[-1][:id]
|
513
|
+
subgroup_title = nil
|
514
|
+
subgroup_id = nil
|
515
|
+
if breadcrumb.length == 3
|
516
|
+
subgroup_title = breadcrumb[1][:name]
|
517
|
+
subgroup_id = breadcrumb[1][:id]
|
518
|
+
end
|
519
|
+
dir_depth = '../' * topic.breadcrumb[-1][:id].split('::').length
|
520
|
+
dir_depth = '' if dir_depth.nil?
|
521
|
+
|
522
|
+
preview_path = topic.preview_path(distro.id,branch_config.dir)
|
523
|
+
topic_publish_url = topic.topic_publish_url(distro.site.url,branch_config.dir)
|
524
|
+
|
525
|
+
page_args = {
|
526
|
+
:distro_key => distro.id,
|
527
|
+
:distro => branch_config.distro_name,
|
528
|
+
:branch => branch_config.id,
|
529
|
+
:site_name => distro.site.name,
|
530
|
+
:site_url => distro.site.url,
|
531
|
+
:topic_url => preview_path,
|
532
|
+
:topic_publish_url => topic_publish_url,
|
533
|
+
:version => branch_config.name,
|
534
|
+
:group_title => group_title,
|
535
|
+
:subgroup_title => subgroup_title,
|
536
|
+
:topic_title => topic_title,
|
537
|
+
:article_title => article_title,
|
538
|
+
:content => topic_html,
|
539
|
+
:navigation => navigation,
|
540
|
+
:group_id => group_id,
|
541
|
+
:subgroup_id => subgroup_id,
|
542
|
+
:topic_id => topic_id,
|
543
|
+
:css_path => "#{dir_depth}#{branch_config.dir}/#{STYLESHEET_DIRNAME}/",
|
544
|
+
:javascripts_path => "#{dir_depth}#{branch_config.dir}/#{JAVASCRIPT_DIRNAME}/",
|
545
|
+
:images_path => "#{dir_depth}#{branch_config.dir}/#{IMAGE_DIRNAME}/",
|
546
|
+
:site_home_path => "#{dir_depth}index.html",
|
547
|
+
:template_path => template_dir,
|
548
|
+
:repo_path => topic.repo_path,
|
549
|
+
}
|
550
|
+
full_file_text = page(page_args)
|
551
|
+
|
552
|
+
|
553
|
+
File.open(preview_path, 'w') { |file| file.write(full_file_text) }
|
554
|
+
|
555
|
+
|
556
|
+
# File.write(preview_path,full_file_text)
|
486
557
|
|
487
|
-
|
488
|
-
topic_publish_url = topic.topic_publish_url(distro.site.url,branch_config.dir)
|
489
|
-
|
490
|
-
page_args = {
|
491
|
-
:distro_key => distro.id,
|
492
|
-
:distro => branch_config.distro_name,
|
493
|
-
:branch => branch_config.id,
|
494
|
-
:site_name => distro.site.name,
|
495
|
-
:site_url => distro.site.url,
|
496
|
-
:topic_url => preview_path,
|
497
|
-
:topic_publish_url => topic_publish_url,
|
498
|
-
:version => branch_config.name,
|
499
|
-
:group_title => group_title,
|
500
|
-
:subgroup_title => subgroup_title,
|
501
|
-
:topic_title => topic_title,
|
502
|
-
:article_title => article_title,
|
503
|
-
:content => topic_html,
|
504
|
-
:navigation => navigation,
|
505
|
-
:group_id => group_id,
|
506
|
-
:subgroup_id => subgroup_id,
|
507
|
-
:topic_id => topic_id,
|
508
|
-
:css_path => "#{dir_depth}#{branch_config.dir}/#{STYLESHEET_DIRNAME}/",
|
509
|
-
:javascripts_path => "#{dir_depth}#{branch_config.dir}/#{JAVASCRIPT_DIRNAME}/",
|
510
|
-
:images_path => "#{dir_depth}#{branch_config.dir}/#{IMAGE_DIRNAME}/",
|
511
|
-
:site_home_path => "#{dir_depth}index.html",
|
512
|
-
:template_path => template_dir,
|
513
|
-
:repo_path => topic.repo_path,
|
514
|
-
}
|
515
|
-
full_file_text = page(page_args)
|
516
|
-
File.write(preview_path,full_file_text)
|
558
|
+
end
|
517
559
|
end
|
518
560
|
|
519
561
|
# package_docs
|
data/lib/ascii_binder/helpers.rb
CHANGED
@@ -10,12 +10,13 @@ module AsciiBinder
|
|
10
10
|
attr_reader :list
|
11
11
|
|
12
12
|
def initialize(topic_file,distro_keys)
|
13
|
-
@topic_yaml = YAML.load_stream(open(
|
13
|
+
@topic_yaml = YAML.load_stream(open(topic_file))
|
14
14
|
@distro_keys = distro_keys
|
15
15
|
@list = []
|
16
16
|
@topic_yaml.each do |topic_entity|
|
17
17
|
@list << AsciiBinder::TopicEntity.new(topic_entity,distro_keys)
|
18
18
|
end
|
19
|
+
|
19
20
|
end
|
20
21
|
|
21
22
|
def filepaths
|
data/lib/ascii_binder/version.rb
CHANGED
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:
|
4
|
+
version: '1.0'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N. Harrison Ripps
|
@@ -9,10 +9,10 @@ authors:
|
|
9
9
|
- Carlos Munoz
|
10
10
|
- Brian Exelbierd
|
11
11
|
- Vikram Goyal
|
12
|
-
autorequire:
|
12
|
+
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date:
|
15
|
+
date: 2021-11-23 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: bundler
|
@@ -351,7 +351,7 @@ homepage: https://github.com/redhataccess/ascii_binder
|
|
351
351
|
licenses:
|
352
352
|
- MIT
|
353
353
|
metadata: {}
|
354
|
-
post_install_message:
|
354
|
+
post_install_message:
|
355
355
|
rdoc_options: []
|
356
356
|
require_paths:
|
357
357
|
- lib
|
@@ -366,8 +366,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
366
366
|
- !ruby/object:Gem::Version
|
367
367
|
version: '0'
|
368
368
|
requirements: []
|
369
|
-
rubygems_version: 3.
|
370
|
-
signing_key:
|
369
|
+
rubygems_version: 3.2.3
|
370
|
+
signing_key:
|
371
371
|
specification_version: 4
|
372
372
|
summary: AsciiBinder is an AsciiDoc-based system for authoring and publishing closely
|
373
373
|
related documentation sets from a single source.
|