ascii_binder 0.2.0 → 1.0
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/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.
|