ascii_binder 1.0.1 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 63f08f84ab342165234ea73cf2b25d443b5a4962cdeea861a7f0080b6322153c
4
- data.tar.gz: ed6d54234440073f2721ea648d8b1f045cf34d1bf3a2444f93d2ea47b36256e2
3
+ metadata.gz: 2cf225b54975612036fdb2243443ae80fcb72edb2d214e60790b0419c58bdfa0
4
+ data.tar.gz: eb4175c2ef3164a9e6042c1de20efe92673e79c3533eeb2be56b91271dfca5c7
5
5
  SHA512:
6
- metadata.gz: 00435a0b0ed5ff4c32aef83030793be785eb8ade1112f47ca6279be17cc0701b8b46ae0f0f5fcb05b9bc74e1f10d30aeed6529f94baa0a029765402f1e413ac7
7
- data.tar.gz: cb56f37d5ab0eae8da6f48a0b68f490429dd7bac79ad529057c85893ac5cf91b53aec6c26b4e8e1d42848f0ed4e7561211529de80d4f562cfda1fdc5fdcc6551
6
+ metadata.gz: 6ee0f8b3a9f79fb640da73c9c7c708cf247662ba661254eb28c7c919bac3e3cec39073d2cf7bc3f793ffc782c416814e863af0fb842cedfff7c5304ac68dad53
7
+ data.tar.gz: e3e5ed0a821629a531ee4e84812bacb309dad4c502036606fdd89610cb2d2f3bdd4374c973d68d0dc037a186d18fc1a8a70aa714bcb29d6c5048acdb6e8c219c
@@ -111,11 +111,13 @@ module AsciiBinder
111
111
  # create a combined temp file with all topic maps
112
112
  tf = Tempfile.new("#{TOPIC_MAP_FILENAME}")
113
113
 
114
- Dir.glob("#{topic_map_folder}/*.yml").each do |filename|
114
+ Dir.glob("#{topic_map_folder}/*.yml").sort.each do |filename|
115
115
  lines = IO.read(filename)
116
116
  tf << lines
117
+ tf.write "\n"
117
118
  end
118
119
 
120
+ tf.rewind
119
121
  t = tf.path
120
122
  end
121
123
 
@@ -217,13 +219,18 @@ module AsciiBinder
217
219
  def page(args)
218
220
  # TODO: This process of rebuilding the entire nav for every page will not scale well.
219
221
  # As the doc set increases, we will need to think about refactoring this.
220
- args[:breadcrumb_root], args[:breadcrumb_group], args[:breadcrumb_subgroup], args[:breadcrumb_topic] = extract_breadcrumbs(args)
222
+ args[:breadcrumb_root], args[:breadcrumb_group], args[:breadcrumb_subgroup], args[:breadcrumb_subsubgroup], args[:breadcrumb_topic] = extract_breadcrumbs(args)
221
223
 
222
224
  args[:breadcrumb_subgroup_block] = ''
223
225
  if args[:breadcrumb_subgroup]
224
226
  args[:breadcrumb_subgroup_block] = "<li class=\"hidden-xs active\">#{args[:breadcrumb_subgroup]}</li>"
225
227
  end
226
228
 
229
+ args[:breadcrumb_subsubgroup_block] = ''
230
+ if args[:breadcrumb_subsubgroup]
231
+ args[:breadcrumb_subsubgroup_block] = "<li class=\"hidden-xs active\">#{args[:breadcrumb_subsubgroup]}</li>"
232
+ end
233
+
227
234
  args[:subtopic_shim] = '../' * (args[:topic_id].split('::').length - 2)
228
235
  args[:subtopic_shim] = '' if args[:subtopic_shim].nil?
229
236
 
@@ -233,38 +240,63 @@ module AsciiBinder
233
240
 
234
241
  def extract_breadcrumbs(args)
235
242
  breadcrumb_root = breadcrumb_group = breadcrumb_subgroup = breadcrumb_topic = nil
243
+ selected_subgroup = selected_subsubgroup = nil
236
244
 
237
245
  root_group = args[:navigation].first
238
246
  selected_group = args[:navigation].detect { |group| group[:id] == args[:group_id] }
239
247
  selected_subgroup = selected_group[:topics].detect { |subgroup| subgroup[:id] == args[:subgroup_id] }
240
- current_is_subtopic = selected_subgroup ? true : false
248
+ if selected_subgroup
249
+ selected_subsubgroup = selected_subgroup[:topics].detect { |subsubgroup| subsubgroup[:id] == args[:subsubgroup_id] }
250
+ end
251
+
252
+ offset = 0;
253
+ if selected_subgroup
254
+ offset = 1
255
+ end
256
+ if selected_subsubgroup
257
+ offset = 2
258
+ end
241
259
 
242
260
  if root_group
243
261
  root_topic = root_group[:topics].first
244
- breadcrumb_root = linkify_breadcrumb(root_topic[:path], "#{args[:distro]} #{args[:version]}", current_is_subtopic) if root_topic
262
+ breadcrumb_root = linkify_breadcrumb(root_topic[:path], "#{args[:distro]} #{args[:version]}", offset) if root_topic
245
263
  end
246
264
 
247
265
  if selected_group
248
266
  group_topic = selected_group[:topics].first
249
- breadcrumb_group = linkify_breadcrumb(group_topic[:path], selected_group[:name], current_is_subtopic) if group_topic
267
+ breadcrumb_group = linkify_breadcrumb(group_topic[:path], selected_group[:name], offset) if group_topic
268
+ selected_topic = selected_group[:topics].detect { |topic| topic[:id] == args[:topic_id] }
269
+ breadcrumb_topic = linkify_breadcrumb(nil, selected_topic[:name], offset) if selected_topic
270
+ end
250
271
 
251
- if selected_subgroup
252
- subgroup_topic = selected_subgroup[:topics].first
253
- breadcrumb_subgroup = linkify_breadcrumb(subgroup_topic[:path], selected_subgroup[:name], current_is_subtopic) if subgroup_topic
272
+ if selected_subgroup
273
+ subgroup_topic = selected_subgroup[:topics].first
274
+ breadcrumb_subgroup = linkify_breadcrumb(subgroup_topic[:path], selected_subgroup[:name], offset) if subgroup_topic
254
275
 
255
- selected_topic = selected_subgroup[:topics].detect { |topic| topic[:id] == args[:topic_id] }
256
- breadcrumb_topic = linkify_breadcrumb(nil, selected_topic[:name], current_is_subtopic) if selected_topic
257
- else
258
- selected_topic = selected_group[:topics].detect { |topic| topic[:id] == args[:topic_id] }
259
- breadcrumb_topic = linkify_breadcrumb(nil, selected_topic[:name], current_is_subtopic) if selected_topic
260
- end
276
+ selected_topic = selected_subgroup[:topics].detect { |topic| topic[:id] == args[:topic_id] }
277
+ breadcrumb_topic = linkify_breadcrumb(nil, selected_topic[:name], offset) if selected_topic
261
278
  end
262
279
 
263
- return breadcrumb_root, breadcrumb_group, breadcrumb_subgroup, breadcrumb_topic
280
+ if selected_subsubgroup
281
+ subsubgroup_topic = selected_subsubgroup[:topics].first
282
+ breadcrumb_subsubgroup = linkify_breadcrumb(subsubgroup_topic[:path], selected_subsubgroup[:name], offset) if subsubgroup_topic
283
+
284
+ selected_topic = selected_subsubgroup[:topics].detect { |topic| topic[:id] == args[:topic_id] }
285
+ breadcrumb_topic = linkify_breadcrumb(nil, selected_topic[:name], offset) if selected_topic
286
+ end
287
+
288
+
289
+ return breadcrumb_root, breadcrumb_group, breadcrumb_subgroup, breadcrumb_subsubgroup, breadcrumb_topic
264
290
  end
265
291
 
266
- def linkify_breadcrumb(href, text, extra_level)
267
- addl_level = extra_level ? '../' : ''
292
+ def linkify_breadcrumb(href, text, offset)
293
+ addl_level = ''
294
+ if offset == 1
295
+ addl_level = '../'
296
+ end
297
+ if offset == 2
298
+ addl_level = '../../'
299
+ end
268
300
  href ? "<a href=\"#{addl_level}#{href}\">#{text}</a>" : text
269
301
  end
270
302
 
@@ -302,7 +334,7 @@ module AsciiBinder
302
334
  log_unknown("Building only the #{distro_map.get_distro(build_distro).name} distribution.")
303
335
  end
304
336
  elsif single_page.nil?
305
- log_unknown("Building every distribution.")
337
+ log_unknown("Building all distributions.")
306
338
  end
307
339
 
308
340
  # Notify the user of missing local branches
@@ -512,10 +544,24 @@ module AsciiBinder
512
544
  topic_id = breadcrumb[-1][:id]
513
545
  subgroup_title = nil
514
546
  subgroup_id = nil
547
+ subsubgroup_title = nil
548
+ subsubgroup_id = nil
515
549
  if breadcrumb.length == 3
516
550
  subgroup_title = breadcrumb[1][:name]
517
551
  subgroup_id = breadcrumb[1][:id]
518
552
  end
553
+
554
+ if breadcrumb.length == 4
555
+ topic_title = breadcrumb[-1][:name]
556
+ topic_id = breadcrumb[-1][:id]
557
+ subsubgroup_title = breadcrumb[-2][:name]
558
+ subsubgroup_id = breadcrumb[-2][:id]
559
+ subgroup_title = breadcrumb[-3][:name]
560
+ subgroup_id = breadcrumb[-3][:id]
561
+ group_title = breadcrumb[-4][:name]
562
+ group_id = breadcrumb[-4][:id]
563
+ end
564
+
519
565
  dir_depth = '../' * topic.breadcrumb[-1][:id].split('::').length
520
566
  dir_depth = '' if dir_depth.nil?
521
567
 
@@ -533,12 +579,14 @@ module AsciiBinder
533
579
  :version => branch_config.name,
534
580
  :group_title => group_title,
535
581
  :subgroup_title => subgroup_title,
582
+ :subsubgroup_title => subsubgroup_title,
536
583
  :topic_title => topic_title,
537
584
  :article_title => article_title,
538
585
  :content => topic_html,
539
586
  :navigation => navigation,
540
587
  :group_id => group_id,
541
588
  :subgroup_id => subgroup_id,
589
+ :subsubgroup_id => subsubgroup_id,
542
590
  :topic_id => topic_id,
543
591
  :css_path => "#{dir_depth}#{branch_config.dir}/#{STYLESHEET_DIRNAME}/",
544
592
  :javascripts_path => "#{dir_depth}#{branch_config.dir}/#{JAVASCRIPT_DIRNAME}/",
@@ -153,7 +153,7 @@ module AsciiBinder
153
153
  return false unless distro_keys.include?(distro_key)
154
154
 
155
155
  # If we're building a single page, check if we're on the right track.
156
- if single_page_path.length > 0
156
+ if single_page_path.length > 0 and not single_page_path[depth].nil?
157
157
  if is_group?
158
158
  return false unless single_page_path[depth] == dir
159
159
  elsif is_topic?
@@ -1,3 +1,3 @@
1
1
  module AsciiBinder
2
- VERSION = "1.0.1"
2
+ VERSION = "1.2"
3
3
  end
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: 1.0.1
4
+ version: '1.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - N. Harrison Ripps
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2022-04-19 00:00:00.000000000 Z
15
+ date: 2023-01-23 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: bundler
@@ -366,7 +366,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
366
366
  - !ruby/object:Gem::Version
367
367
  version: '0'
368
368
  requirements: []
369
- rubygems_version: 3.0.3
369
+ rubygems_version: 3.0.3.1
370
370
  signing_key:
371
371
  specification_version: 4
372
372
  summary: AsciiBinder is an AsciiDoc-based system for authoring and publishing closely