hyla 1.0.6 → 1.0.7.pre.1
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 +8 -8
- data/README.adoc +7 -0
- data/lib/hyla/commands/generate.rb +288 -83
- data/lib/hyla/configuration.rb +62 -42
- data/lib/hyla/project.rb +1 -1
- data/lib/resources/backends/haml/deckjs/document.html.haml +2 -2
- data/lib/resources/backends/haml/html5/document.html.haml +2 -2
- data/lib/resources/backends/slim/html5/document.html.slim +2 -2
- data/lib/resources/backends/slim/revealjs/block_sidebar.html.slim +1 -1
- data/lib/resources/backends/slim/revealjs/document.html.slim +2 -2
- data/lib/resources/course/assessment.txt +7 -0
- data/lib/resources/course/audio.txt +3 -0
- data/lib/resources/course/cover.txt +13 -0
- data/lib/resources/course/footer.txt +10 -0
- data/lib/resources/course/header_index.txt +1 -0
- data/lib/resources/course/index.txt +3 -0
- data/lib/resources/course/labinstructions.txt +26 -0
- data/lib/resources/course/objectives.txt +28 -0
- data/lib/resources/course/summary.txt +27 -0
- data/lib/resources/cover.slim +1 -1
- data/lib/resources/revealjs/css/theme/conference-redhat.css +369 -61
- data/lib/resources/revealjs/css/theme/conference.css +179 -15
- data/lib/resources/revealjs/css/theme/gpe.css +362 -53
- data/lib/templates/_config.yaml +26 -2
- data/lib/templates/sample/{asciidoc_article.ad → asciidoc_article.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_audio.ad → asciidoc_audio.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_book.ad → asciidoc_book.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_image.ad → asciidoc_image.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_report.ad → asciidoc_report.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_source.ad → asciidoc_source.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_table.ad → asciidoc_table.adoc} +0 -0
- data/lib/templates/sample/{asciidoc_video.ad → asciidoc_video.adoc} +0 -0
- data/lib/templates/sample/{slideshow_deckjs.ad → slideshow_deckjs.adoc} +0 -0
- data/lib/templates/sample/{slideshow_revealjs.ad → slideshow_revealjs.adoc} +31 -0
- data/lib/templates/training-exercises/{README.ad → README.adoc} +0 -0
- metadata +24 -15
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
Yjk4ODAzYjZhZDcwODI0ZmRlM2IxYWU5MGUwYWUzNGY3MWZmMGUxMg==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MjJhYzVlNjA3ODkzNDIyN2VmYTg2NWM4ZDMyOTU2NTdhYWQ3ZGFkOA==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YjY1MzM2ODUwZWJmMzhhZWVlOGZkYjQyMGFhNzFiYmFjNTYzMWU4YThjOTcw
|
10
|
+
NzI2YzMwNWQ0M2NlYzRmNzNjZTgyNTQ5MjgyMWNjOWNhMWQxZDZhMGY1YWE3
|
11
|
+
NzhiNWYzZTAwZGU5MTg2NGE5Y2NkMmY4OGNmYmM5ZTdhZjU2ZmY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
NGI4ODIwYTAxOGZjNjU1NGQ4Nzg0YzViOTI0OWE2MjgxNjBkN2U0YzQwZWUw
|
14
|
+
YTJmODVhYTI4ODVmNzQxZDQ3NjQ4YmI5NzdjMWE2NzQ4YTk5NGEwZmY3MGQx
|
15
|
+
ZDE4NTIxODc2ZGNkYjc4OTc1MDE1YTA1MGNjZTE0YTc5YjM4ZTE=
|
data/README.adoc
CHANGED
@@ -135,6 +135,13 @@ Issue tracker (GitHub):: {issues}
|
|
135
135
|
|
136
136
|
== Changelog
|
137
137
|
|
138
|
+
=== v1.0.7 - @cmoulliard
|
139
|
+
|
140
|
+
Enhancements / Improvements::
|
141
|
+
|
142
|
+
* Remove the prefix (which is the name of the folder) before text AllSlides of the file (link:{issues}75[#75])
|
143
|
+
|
144
|
+
|
138
145
|
=== v1.0.6 - @cmoulliard
|
139
146
|
|
140
147
|
Enhancements / Improvements::
|
@@ -19,8 +19,9 @@ module Hyla
|
|
19
19
|
@out_dir = options[:destination]
|
20
20
|
@project_name = options[:project_name] if options[:project_name]
|
21
21
|
@project_name = 'My Project' if !options[:project_name]
|
22
|
+
@image_path = options[:image_path] if options[:image_path]
|
22
23
|
|
23
|
-
self.table_of_content_to_asciidoc(@toc_file, @out_dir, @project_name)
|
24
|
+
self.table_of_content_to_asciidoc(@toc_file, @out_dir, @project_name, @image_path)
|
24
25
|
|
25
26
|
when 'adoc2html'
|
26
27
|
|
@@ -92,35 +93,11 @@ module Hyla
|
|
92
93
|
out_dir = options[:destination] if self.check_mandatory_option?('-d / --destination', options[:destination])
|
93
94
|
file_name = options[:cover_file]
|
94
95
|
image_name = options[:cover_image]
|
96
|
+
course_name = options[:course_name]
|
97
|
+
module_name = options[:module_name]
|
98
|
+
bg_image_path = options[:image_path]
|
95
99
|
|
96
|
-
|
97
|
-
slim_file = Configuration::cover_template
|
98
|
-
slim_tmpl = File.read(slim_file)
|
99
|
-
template = Slim::Template.new(:pretty => true) { slim_tmpl }
|
100
|
-
|
101
|
-
# Do the Rendering HTML
|
102
|
-
parameters = {:course_name => options[:course_name],
|
103
|
-
:module_name => options[:module_name],
|
104
|
-
:image_path => options[:image_path]}
|
105
|
-
res = template.render(Object.new, parameters)
|
106
|
-
|
107
|
-
unless Dir.exist? out_dir
|
108
|
-
FileUtils.mkdir_p out_dir
|
109
|
-
end
|
110
|
-
|
111
|
-
Dir.chdir(out_dir) do
|
112
|
-
out_file = File.new(file_name, 'w')
|
113
|
-
out_file.puts res
|
114
|
-
out_file.puts "\n"
|
115
|
-
|
116
|
-
# Do the Rendering Image
|
117
|
-
kit = IMGKit.new(res, quality: 90, width: 950, height: 750)
|
118
|
-
kit.to_img(:png)
|
119
|
-
kit.to_file(image_name)
|
120
|
-
|
121
|
-
# Convert HTML to Image
|
122
|
-
# system ("wkhtmltoimage -f 'png' #{file_name} #{image_name}")
|
123
|
-
end
|
100
|
+
self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path)
|
124
101
|
|
125
102
|
else
|
126
103
|
Hyla.logger.error ">> Unknow rendering"
|
@@ -145,6 +122,50 @@ module Hyla
|
|
145
122
|
end
|
146
123
|
end
|
147
124
|
|
125
|
+
#
|
126
|
+
# Cover Function
|
127
|
+
# Create a png file using the HTML generated with the Slim cover template
|
128
|
+
#
|
129
|
+
def self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path)
|
130
|
+
|
131
|
+
unless Dir.exist? out_dir
|
132
|
+
FileUtils.mkdir_p out_dir
|
133
|
+
end
|
134
|
+
|
135
|
+
# Configure Slim engine
|
136
|
+
slim_file = Configuration::cover_template
|
137
|
+
slim_tmpl = File.read(slim_file)
|
138
|
+
template = Slim::Template.new(:pretty => true) { slim_tmpl }
|
139
|
+
|
140
|
+
# Replace underscore with space
|
141
|
+
course_name = course_name.gsub('_', ' ')
|
142
|
+
# Replace underscore with space, next digits & space with nothing & Capitalize
|
143
|
+
module_name = module_name.gsub('_', ' ').gsub(/^\d{1,2}\s/, '').capitalize
|
144
|
+
|
145
|
+
Hyla.logger.debug "Module name : " + module_name
|
146
|
+
|
147
|
+
# Do the HTML Rendering
|
148
|
+
parameters = {:course_name => course_name,
|
149
|
+
:module_name => module_name,
|
150
|
+
:image_path => bg_image_path}
|
151
|
+
res = template.render(Object.new, parameters)
|
152
|
+
|
153
|
+
#
|
154
|
+
# Create the cover file and do the rendering of the image
|
155
|
+
#
|
156
|
+
Dir.chdir(out_dir) do
|
157
|
+
out_file = File.new(file_name, 'w')
|
158
|
+
out_file.puts res
|
159
|
+
out_file.puts "\n"
|
160
|
+
|
161
|
+
# Do the Rendering Image
|
162
|
+
kit = IMGKit.new(res, quality: 90, width: 950, height: 750)
|
163
|
+
kit.to_img(:png)
|
164
|
+
kit.to_file(image_name)
|
165
|
+
end
|
166
|
+
|
167
|
+
end
|
168
|
+
|
148
169
|
#
|
149
170
|
# Call Asciidoctor.render function
|
150
171
|
#
|
@@ -186,9 +207,9 @@ module Hyla
|
|
186
207
|
files = Dir[current_dir + "/**/*.{" + extensions + "}"].reject { |f| f =~ /\/#{excludes}\// }
|
187
208
|
|
188
209
|
#
|
189
|
-
# Check if
|
210
|
+
# Check if snippet parameter is defined
|
190
211
|
# as we have to modify the AllSlides.txt file
|
191
|
-
#
|
212
|
+
# to include within the brackets this tag --> [tag=snippet]
|
192
213
|
#
|
193
214
|
if options[:snippet_content] == true
|
194
215
|
files.each do |f|
|
@@ -245,8 +266,8 @@ module Hyla
|
|
245
266
|
end
|
246
267
|
|
247
268
|
#
|
248
|
-
# Check if
|
249
|
-
# and remove the
|
269
|
+
# Check if snippet parameter is defined
|
270
|
+
# and remove the snippet tag from indexed files
|
250
271
|
#
|
251
272
|
if options[:snippet_content] == true
|
252
273
|
files.each do |f|
|
@@ -292,18 +313,21 @@ module Hyla
|
|
292
313
|
# @param [Directory where asciidoc files will be generated] out_dir
|
293
314
|
# @param [Project name used to create parent of index files] project_name
|
294
315
|
#
|
295
|
-
def self.table_of_content_to_asciidoc(toc_file, out_dir, project_name)
|
316
|
+
def self.table_of_content_to_asciidoc(toc_file, out_dir, project_name, image_path)
|
296
317
|
|
297
318
|
Hyla.logger.info '>> Project Name : ' + project_name + ' <<'
|
298
319
|
|
299
320
|
# Open file & parse it
|
300
|
-
f = File.open(toc_file, 'r')
|
321
|
+
f = f = File.open(toc_file, 'r')
|
322
|
+
f_scan_occurences = File.open(toc_file, 'r')
|
301
323
|
|
302
324
|
# Expand File Path
|
303
325
|
@out_dir = File.expand_path out_dir
|
326
|
+
Hyla.logger.info '>> Output directory : ' + out_dir + ' <<'
|
304
327
|
|
305
328
|
#
|
306
329
|
# Create destination directory if it does not exist
|
330
|
+
#
|
307
331
|
unless Dir.exist? @out_dir
|
308
332
|
FileUtils.mkdir_p @out_dir
|
309
333
|
end
|
@@ -312,22 +336,27 @@ module Hyla
|
|
312
336
|
FileUtils.cp_r [Configuration::templates, Configuration::YAML_CONFIG_FILE_NAME] * '/', @out_dir
|
313
337
|
|
314
338
|
# Copy styles
|
315
|
-
FileUtils.cp_r Configuration::styles, @out_dir
|
339
|
+
# FileUtils.cp_r Configuration::styles, @out_dir
|
316
340
|
|
317
341
|
#
|
318
|
-
# Move to
|
342
|
+
# Move to the directory as we will
|
319
343
|
# create content relative to this directory
|
320
344
|
#
|
321
345
|
Dir.chdir @out_dir
|
322
346
|
@out_dir = Pathname.pwd
|
323
347
|
|
324
348
|
# Create index file of all index files
|
325
|
-
@project_index_file = self.
|
326
|
-
|
327
|
-
|
349
|
+
@project_index_file = self.create_index_file_withoutprefix(project_name, Configuration::LEVEL_1)
|
350
|
+
|
351
|
+
# Count ho many modules we have
|
352
|
+
@modules = f_scan_occurences.read.scan(/^=\s/).size
|
353
|
+
f_scan_occurences.close
|
354
|
+
|
355
|
+
@counter = 0
|
356
|
+
|
328
357
|
# File iteration
|
329
358
|
f.each do |line|
|
330
|
-
|
359
|
+
|
331
360
|
#
|
332
361
|
# Check level 1
|
333
362
|
# Create a directory where its name corresponds to 'Title Level 1' &
|
@@ -335,9 +364,20 @@ module Hyla
|
|
335
364
|
# replaced ' ' by '_'
|
336
365
|
#
|
337
366
|
if line[/^=\s/]
|
367
|
+
|
368
|
+
# Increase counter. We will use it later to add the summary
|
369
|
+
@counter+=1
|
338
370
|
|
339
371
|
#
|
340
|
-
#
|
372
|
+
# Add the summary.adoc file
|
373
|
+
#
|
374
|
+
if @counter > 1
|
375
|
+
self.generate_summary_page()
|
376
|
+
end
|
377
|
+
|
378
|
+
#
|
379
|
+
# Create the Directory name for the module and next the files
|
380
|
+
# The special characters are removed from the string
|
341
381
|
#
|
342
382
|
dir_name = remove_special_chars(2, line)
|
343
383
|
new_dir = [@out_dir, dir_name].join('/')
|
@@ -348,17 +388,23 @@ module Hyla
|
|
348
388
|
Dir.chdir(new_dir)
|
349
389
|
|
350
390
|
# Add image, audio, video directory
|
351
|
-
self.create_asset_directory(['image', 'audio', 'video'])
|
391
|
+
# self.create_asset_directory(['image', 'audio', 'video'])
|
392
|
+
self.create_asset_directory(['image'])
|
352
393
|
|
353
394
|
#
|
354
395
|
# Create an index file
|
355
|
-
# It is used to include files belonging to a module and will be used for
|
396
|
+
# It is used to include files belonging to a module and will be used for SlideShow
|
356
397
|
# The file created contains a title (= Dir Name) and header with attributes
|
357
398
|
#
|
358
|
-
@index_file =
|
399
|
+
@index_file = create_index_file_withoutprefix(dir_name, Configuration::LEVEL_1)
|
359
400
|
|
401
|
+
#
|
360
402
|
# Include index file created to parent index file
|
361
|
-
|
403
|
+
# we don't prefix the AllSlides.txt file anymore
|
404
|
+
#
|
405
|
+
# BEFORE @project_index_file.puts Configuration::INCLUDE_PREFIX + dir_name + '/' + dir_name + Configuration::INDEX_SUFFIX + Configuration::INCLUDE_SUFFIX
|
406
|
+
#
|
407
|
+
@project_index_file.puts Configuration::INCLUDE_PREFIX + dir_name + '/' + Configuration::INDEX_FILE + Configuration::INCLUDE_SUFFIX
|
362
408
|
@project_index_file.puts "\n"
|
363
409
|
|
364
410
|
#
|
@@ -372,10 +418,85 @@ module Hyla
|
|
372
418
|
|
373
419
|
#
|
374
420
|
# Reset counter value used to generate file number
|
375
|
-
# for the file 01, 00
|
421
|
+
# for the file 01, 00 within this module
|
376
422
|
#
|
377
423
|
@index = 0
|
378
424
|
|
425
|
+
#
|
426
|
+
# Add the cover.adoc file
|
427
|
+
#
|
428
|
+
@index += 1
|
429
|
+
file_index = sprintf('%02d', @index)
|
430
|
+
f_name = 'm' + @module_key + 'p' + file_index + '_cover' + Configuration::ADOC_EXT
|
431
|
+
Hyla.logger.debug '>> Directory name : ' + dir_name.to_s.gsub('_', ' ')
|
432
|
+
rep_txt = Configuration::COVER_TXT.gsub(/xxx\.png/, dir_name + '.png')
|
433
|
+
Hyla.logger.debug "Replaced by : " + rep_txt
|
434
|
+
cover_f = File.new(f_name, 'w')
|
435
|
+
cover_f.puts rep_txt
|
436
|
+
cover_f.close
|
437
|
+
|
438
|
+
#
|
439
|
+
# Use the filename & generate the cover image
|
440
|
+
#
|
441
|
+
out_dir = 'image'
|
442
|
+
file_name = dir_name + '.html'
|
443
|
+
image_name = dir_name + '.png'
|
444
|
+
course_name = @project_name
|
445
|
+
module_name= dir_name
|
446
|
+
bg_image_path = image_path
|
447
|
+
Hyla.logger.debug '>> Out Directory : ' + out_dir.to_s
|
448
|
+
Hyla.logger.debug '>> Image name : ' + image_name.to_s
|
449
|
+
Hyla.logger.debug '>> Course Name : ' + course_name.to_s
|
450
|
+
Hyla.logger.debug '>> Module Name : ' + module_name.to_s
|
451
|
+
Hyla.logger.debug '>> Bg Image : ' + bg_image_path.to_s
|
452
|
+
|
453
|
+
self.cover_img(out_dir, file_name, image_name, course_name, module_name, bg_image_path)
|
454
|
+
|
455
|
+
#
|
456
|
+
# Include cover file to index
|
457
|
+
#
|
458
|
+
@index_file.puts Configuration::INCLUDE_PREFIX + f_name + Configuration::INCLUDE_SUFFIX
|
459
|
+
@index_file.puts "\n"
|
460
|
+
|
461
|
+
#
|
462
|
+
# Add the objectives.adoc file
|
463
|
+
#
|
464
|
+
@index += 1
|
465
|
+
file_index = sprintf('%02d', @index)
|
466
|
+
f_name = 'm' + @module_key + 'p' + file_index + '_objectives'
|
467
|
+
|
468
|
+
rep_txt = Configuration::OBJECTIVES_TXT.gsub(/xxx\.mp3/, f_name + '.mp3')
|
469
|
+
|
470
|
+
f_name = f_name + Configuration::ADOC_EXT
|
471
|
+
|
472
|
+
objectives_f = File.new(f_name, 'w')
|
473
|
+
objectives_f.puts Configuration::HEADER_TXT
|
474
|
+
objectives_f.puts rep_txt
|
475
|
+
objectives_f.close
|
476
|
+
|
477
|
+
#
|
478
|
+
# Include cover file to index
|
479
|
+
#
|
480
|
+
@index_file.puts Configuration::INCLUDE_PREFIX + f_name + Configuration::INCLUDE_SUFFIX
|
481
|
+
@index_file.puts "\n"
|
482
|
+
|
483
|
+
#
|
484
|
+
# Add the labinstructions.adoc file
|
485
|
+
#
|
486
|
+
f_name = 'labinstructions' + Configuration::ADOC_EXT
|
487
|
+
lab_f = File.new(f_name, 'w')
|
488
|
+
lab_f.puts Configuration::HEADER_TXT
|
489
|
+
lab_f.puts Configuration::LABS_TXT
|
490
|
+
lab_f.close
|
491
|
+
|
492
|
+
#
|
493
|
+
# Add the assessment.txt file
|
494
|
+
#
|
495
|
+
f_name = 'assessment.txt'
|
496
|
+
assessment_f = File.new(f_name, 'w')
|
497
|
+
assessment_f.puts Configuration::ASSESSMENT_TXT
|
498
|
+
assessment_f.close
|
499
|
+
|
379
500
|
# Move to next line record
|
380
501
|
next
|
381
502
|
end
|
@@ -389,33 +510,47 @@ module Hyla
|
|
389
510
|
|
390
511
|
# Close File created previously if it exists
|
391
512
|
if !@previous_f.nil?
|
513
|
+
|
514
|
+
#
|
515
|
+
# Add Footer_text to the file created
|
516
|
+
#
|
517
|
+
rep_txt = Configuration::FOOTER_TXT.gsub(/xxx\.mp3/, @previous_f.to_s + '.mp3')
|
518
|
+
@previous_f.puts rep_txt
|
392
519
|
@previous_f.close
|
393
520
|
end
|
394
521
|
|
395
522
|
#
|
396
|
-
# Replace special characters
|
397
|
-
#
|
398
|
-
#
|
523
|
+
# Replace special characters from the title before to generate the file name
|
524
|
+
# Convert Uppercase to lowercase
|
525
|
+
#
|
526
|
+
f_name = remove_special_chars(3, line).downcase
|
527
|
+
|
528
|
+
#
|
529
|
+
# Create the prefix for the file
|
530
|
+
# Convention : m letter followed by module number, letter p & a number 01, 02, ..., 0n, next the title & .adoc extension
|
531
|
+
# Example : m01p01_mytitle.adoc, m01p02_anothertitle.adoc
|
399
532
|
#
|
400
|
-
f_name = remove_special_chars(3, line)
|
401
533
|
@index += 1
|
402
|
-
#file_index = @index.to_s.initial.rjust(2, '0')
|
403
534
|
file_index = sprintf('%02d', @index)
|
404
|
-
f_name = 'm' + @module_key + 'p' + file_index + '_' + f_name
|
535
|
+
f_name = 'm' + @module_key + 'p' + file_index + '_' + f_name
|
405
536
|
|
406
|
-
|
537
|
+
rep_txt = Configuration::AUDIO_TXT.gsub(/xxx\.mp3/, f_name + '.mp3')
|
538
|
+
|
539
|
+
f_asciidoc_name = f_name + Configuration::ADOC_EXT
|
407
540
|
|
408
541
|
#
|
409
|
-
# Create File and add configuration
|
542
|
+
# Create File and add configuration HEADER_TXT
|
410
543
|
#
|
411
|
-
@new_f = File.new(
|
412
|
-
@new_f.puts Configuration::
|
544
|
+
@new_f = File.new(f_asciidoc_name, 'w')
|
545
|
+
@new_f.puts Configuration::HEADER_TXT
|
413
546
|
@new_f.puts "\n"
|
414
547
|
|
548
|
+
Hyla.logger.info ' # File created : ' + f_asciidoc_name.to_s
|
549
|
+
|
415
550
|
@previous_f = @new_f
|
416
551
|
|
417
552
|
# Include file to index
|
418
|
-
@index_file.puts Configuration::INCLUDE_PREFIX +
|
553
|
+
@index_file.puts Configuration::INCLUDE_PREFIX + f_asciidoc_name + Configuration::INCLUDE_SUFFIX
|
419
554
|
@index_file.puts "\n"
|
420
555
|
end
|
421
556
|
|
@@ -423,11 +558,31 @@ module Hyla
|
|
423
558
|
# Add Content to file if it exists and line does not start with characters to be skipped
|
424
559
|
#
|
425
560
|
if !@new_f.nil? and !line.start_with?(Configuration::SKIP_CHARACTERS)
|
426
|
-
|
561
|
+
#
|
562
|
+
# Add audio text after the name of the title
|
563
|
+
#
|
564
|
+
# ifdef::audioscript[]
|
565
|
+
# audio::audio/m01p03_why_use_messaging[]
|
566
|
+
# endif::[]
|
567
|
+
#
|
568
|
+
if line.start_with?('==')
|
569
|
+
@new_f.puts line
|
570
|
+
@new_f.puts "\n"
|
571
|
+
@new_f.puts rep_txt
|
572
|
+
else
|
573
|
+
@new_f.puts line
|
574
|
+
end
|
427
575
|
end
|
428
576
|
|
429
577
|
end
|
430
578
|
|
579
|
+
#
|
580
|
+
# Add the summary.adoc file
|
581
|
+
#
|
582
|
+
if @counter == @modules
|
583
|
+
self.generate_summary_page()
|
584
|
+
end
|
585
|
+
|
431
586
|
end
|
432
587
|
|
433
588
|
=begin
|
@@ -455,6 +610,21 @@ module Hyla
|
|
455
610
|
end
|
456
611
|
=end
|
457
612
|
|
613
|
+
def self.generate_summary_page()
|
614
|
+
@index += 1
|
615
|
+
file_index = sprintf('%02d', @index)
|
616
|
+
f_name = 'm' + @module_key + 'p' + file_index + '_summary'
|
617
|
+
|
618
|
+
rep_txt = Configuration::SUMMARY_TXT.gsub(/xxx\.mp3/, f_name + '.mp3')
|
619
|
+
|
620
|
+
f_name = f_name + Configuration::ADOC_EXT
|
621
|
+
|
622
|
+
summary_f = File.new(f_name, 'w')
|
623
|
+
summary_f.puts Configuration::HEADER_TXT
|
624
|
+
summary_f.puts rep_txt
|
625
|
+
summary_f.close
|
626
|
+
end
|
627
|
+
|
458
628
|
def self.html_to_pdf(file_name, source, destination, footer_text, header_html_path, cover_path)
|
459
629
|
|
460
630
|
@cover_path = cover_path
|
@@ -531,12 +701,16 @@ module Hyla
|
|
531
701
|
end
|
532
702
|
|
533
703
|
#
|
534
|
-
# Remove space, dot from
|
704
|
+
# Remove space, dot, ampersand, hyphen, parenthesis characters from the String
|
705
|
+
# at a position specified
|
535
706
|
#
|
536
707
|
def self.remove_special_chars(pos, text)
|
537
708
|
return text[pos, text.length].strip.gsub(/\s/, '_')
|
538
|
-
|
539
|
-
|
709
|
+
.gsub('.', '')
|
710
|
+
.gsub('&', '')
|
711
|
+
.gsub('-', '')
|
712
|
+
.gsub(/\(|\)/, '')
|
713
|
+
.gsub('__', '_')
|
540
714
|
end
|
541
715
|
|
542
716
|
#
|
@@ -556,8 +730,9 @@ module Hyla
|
|
556
730
|
#
|
557
731
|
# Create ascidoc index file
|
558
732
|
# containing references to asciidoc files part of a module
|
733
|
+
# TODO : Not longer used -> can be removed
|
559
734
|
#
|
560
|
-
def self.
|
735
|
+
def self.create_index_file_withprefix(file_name, level)
|
561
736
|
n_file_name = file_name + Configuration::INDEX_SUFFIX
|
562
737
|
index_file = File.new(n_file_name, 'w')
|
563
738
|
|
@@ -573,18 +748,45 @@ module Hyla
|
|
573
748
|
end
|
574
749
|
|
575
750
|
#
|
576
|
-
#
|
577
|
-
#
|
751
|
+
# Create ascidoc index file
|
752
|
+
# containing references to asciidoc files part of a module
|
753
|
+
#
|
754
|
+
def self.create_index_file_withoutprefix(file_name, level)
|
755
|
+
index_file = File.new(Configuration::INDEX_FILE, 'w')
|
756
|
+
|
757
|
+
index_file.puts Configuration::HEADER_INDEX
|
758
|
+
index_file.puts "\n"
|
759
|
+
# TODO - until now we cannot use level 0 for parent/children files
|
760
|
+
# even if doctype: book
|
761
|
+
# This is why the level for each index file title is '=='
|
762
|
+
|
763
|
+
rep_txt = Configuration::INDEX.gsub(/xxx/, file_name)
|
764
|
+
index_file.puts rep_txt
|
765
|
+
index_file.puts "\n"
|
766
|
+
|
767
|
+
#
|
768
|
+
# index_file.puts "\n"
|
769
|
+
|
770
|
+
index_file
|
771
|
+
end
|
772
|
+
|
773
|
+
#
|
774
|
+
# Modify the content of an index file if
|
775
|
+
# it contains include::file with extension .ad, .adoc or .asciidoc
|
776
|
+
# and add the tag snippet ([] --> [tag=snippet])
|
578
777
|
#
|
579
778
|
def self.add_tag_to_index_file(index_file)
|
580
|
-
|
581
|
-
|
582
|
-
|
583
|
-
|
584
|
-
|
585
|
-
|
586
|
-
|
587
|
-
|
779
|
+
if File.basename(index_file) == "AllSlides.txt" then
|
780
|
+
content = ""
|
781
|
+
File.readlines(index_file).each do |line|
|
782
|
+
if line =~ /^include::.*\[\]$/
|
783
|
+
replace = line.gsub(/\[/, '[tag=' + Configuration::SNIPPET_TAG)
|
784
|
+
content = content.to_s + replace
|
785
|
+
else
|
786
|
+
content = content.to_s + line
|
787
|
+
end
|
788
|
+
end
|
789
|
+
replace_content(index_file, content)
|
588
790
|
end
|
589
791
|
end
|
590
792
|
|
@@ -592,14 +794,17 @@ module Hyla
|
|
592
794
|
# Remove snippet tag from index file
|
593
795
|
#
|
594
796
|
def self.remove_tag_from_index_file(index_file)
|
595
|
-
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
600
|
-
|
601
|
-
|
602
|
-
|
797
|
+
if File.basename(index_file) == "AllSlides.txt" then
|
798
|
+
content = ""
|
799
|
+
File.readlines(index_file).each do |line|
|
800
|
+
if line =~ /^include::.*\[tag\=.*\]$/
|
801
|
+
replace = line.gsub('[tag=' + Configuration::SNIPPET_TAG, '[')
|
802
|
+
content = content.to_s + replace
|
803
|
+
else
|
804
|
+
content = content.to_s + line
|
805
|
+
end
|
806
|
+
end
|
807
|
+
replace_content(index_file, content)
|
603
808
|
end
|
604
809
|
end
|
605
810
|
|
@@ -607,10 +812,10 @@ module Hyla
|
|
607
812
|
# Replace content of a File
|
608
813
|
#
|
609
814
|
def self.replace_content(f, content)
|
610
|
-
File.open(f, "w") { |
|
815
|
+
File.open(f, "w") { |out| out << content } if !content.empty?
|
611
816
|
end
|
612
817
|
|
613
|
-
|
818
|
+
|
614
819
|
# Check mandatory options
|
615
820
|
#
|
616
821
|
def self.check_mandatory_option?(key, value)
|