hyla 1.0.6 → 1.0.7.pre.1
Sign up to get free protection for your applications and to get access to all the features.
- 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)
|