hyla 1.0.5 → 1.0.6

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZDNjYTcyYThjMmIwMzgzZmEzNmU5YThkNTNmNjFlNmI2ZjM1ODhlMQ==
4
+ MDFkMzdiMWQyZmI5ODlhOWUwYzM5MDQ3NDViMTllOWEyMmNlMDBjNw==
5
5
  data.tar.gz: !binary |-
6
- NDEwZDAzOGU1ODQxNmY3YzZlOGUyYzY1NGM3YmQwMTZlNDAzN2E5MA==
6
+ YzYyMjU2ZjRlOWExYzQ4YjA3YjdhNjExZjc2YzliNTA1ZDlkNjk3OQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- NDYxOTlmNjk4ZDQ5NjdkYWI4NWY4MDAxYTk5YWU4MDAxOWIwNTVmMzcxYWE0
10
- OWNjYjYzODFhMDNkZDBmYzkwYzQzNjMyNTY4MmM2MDI3M2I5YWJhY2EyYjRk
11
- ODMzZDc1MWU2MmI2YmI5ODE0ZDA4ZjVjYmU1MTdmNTU1NzI5NTg=
9
+ YzdkZGE4NmYzYWRiMDM4YmQ3ZjdhZDg2Y2YxN2ZiOTkyNWUxMTEzZGVkMGIw
10
+ M2E2YzlhNjlmYTMyMDZjZmFkMmY0NmI1NWM2MmNmMTNmMGQxODZlMmVjMmQ0
11
+ NTEyODY2ZWM5MmI5ZjVjMzE2NThjOTA4OGI3ODAyMGQ2YWRlODA=
12
12
  data.tar.gz: !binary |-
13
- ZTc1NDRiMDIzZjNlMzJiZWIzZmUyZWUzYWRkOWJjMTdlNTkyYzMwNzhhMDJm
14
- YTMxNzQ4MWIyMjI0MjcwNTBkMDA3MWFjNDhhMmEzYzVhZGI3MTg0MDQ0YjU5
15
- ZWExZWU3NDkyNGJkNThjZWNkZTFiNGQzMDZiNjM5MGZjMWUyN2Q=
13
+ ZWQ3ZTFhYTliMDBmOWY0ODE1Yjk5ZjUzMjNmY2IxNDY0MjFmMTJlYjMyZmI0
14
+ MmVmOGI4ZGZlMzQ3YjRkZWZkNTM3MzBlNzk2YjY3ZWZjMGUyZWUxNmFhYzQx
15
+ OWQ3YWNjMmI1ZjMxMjM4ZDgyN2YzYTI2NmIxZjQ5MjI4ODA2MjI=
@@ -67,7 +67,7 @@ And then execute:
67
67
 
68
68
  **Or** install it yourself as:
69
69
 
70
- $ gem install hyla -v 1.0.3
70
+ $ gem install hyla -v 1.0.6
71
71
 
72
72
  == For Developer's only
73
73
 
@@ -79,9 +79,23 @@ And then execute:
79
79
 
80
80
  gem build hyla.gemspec
81
81
  gem install hyla-1.0.x.gem -l
82
- gem yank hyla -v 1.0.x
83
82
  gem push hyla-1.0.x.gem
84
83
 
84
+ == To delete a release pushed to RubyGems (= yank)
85
+
86
+ gem yank hyla -v 1.0.x
87
+
88
+ == To create a release, generate a tagged release and publish it to Gem Repo
89
+
90
+ gem build hyla.gemspec
91
+ gem install hyla-1.0.6.gem
92
+ git commit -m "Release Hyla 1.0.6" -a
93
+ git push
94
+ git tag -a hyla-1.0.6 -m "Release hyla 1.0.6"
95
+ git push origin hyla-1.0.6
96
+
97
+ gem push hyla-1.0.6.gem
98
+
85
99
  == Usage
86
100
 
87
101
  Open a terminal and move to the folder where you would like to create a new project or develop an existing. As Hyla is command line tool, it will be used with one of the following commands :
@@ -121,6 +135,20 @@ Issue tracker (GitHub):: {issues}
121
135
 
122
136
  == Changelog
123
137
 
138
+ === v1.0.6 - @cmoulliard
139
+
140
+ Enhancements / Improvements::
141
+
142
+ * Add attribute to include additional <scripts/> tags within the HTML generated(link:{issues}74[#74])
143
+ * Exclude lab_assets & lab_assets_solution(link:{issues}73[#73])
144
+ * Add data-state attribute to revealjs slim backend(link:{issues}72[#72])
145
+ * Add possibility to definie the transition style for revealjs(link:{issues}69[#69])
146
+ * It should be possible to define custom theme for revealjs(link:{issues}68[#68])
147
+
148
+ Bug fixes::
149
+
150
+ * Snippet tag is added to the parent include file bug(link:{issues}67[#67])
151
+
124
152
  === v1.0.5 - @cmoulliard
125
153
 
126
154
  New Features::
@@ -23,6 +23,10 @@ require 'safe_yaml'
23
23
  require 'asciidoctor'
24
24
  require 'asciidoctor/backends/html5'
25
25
  # require 'asciidoctor/backends/_stylesheets'
26
+
27
+ # Added to fix issue with Ruby 2.0 on Windows machine
28
+ require 'em/pure_ruby'
29
+
26
30
  require 'eventmachine'
27
31
  require 'em-websocket'
28
32
  require 'http/parser'
@@ -41,9 +41,10 @@ module Hyla
41
41
 
42
42
  merged_options = Configuration[options].deep_merge(new_asciidoctor_option)
43
43
 
44
- extensions = 'adoc|ad|asciidoc'
44
+ extensions = 'adoc,ad,asciidoc'
45
+ excludes = 'lab_assets|lab_assets_solution|code|snippets|templates|generated_content|generated_content_instructor|generated_content_snippet|generated_slideshow|generated_content_pdf|generated_content_students'
45
46
 
46
- self.asciidoc_to_html(@source, @destination, extensions, merged_options)
47
+ self.asciidoc_to_html(@source, @destination, extensions, excludes, merged_options)
47
48
 
48
49
  when 'index2html'
49
50
  Hyla.logger.info "Rendering : Asciidoctor Indexed Files to HTML"
@@ -62,10 +63,13 @@ module Hyla
62
63
 
63
64
  merged_options = Configuration[options].deep_merge(new_asciidoctor_option)
64
65
 
66
+ #
65
67
  # Extension(s) of the files containing include directives
68
+ #
66
69
  extensions = 'txt'
70
+ excludes = 'lab_assets|lab_assets_solution|code|snippets|templates|generated_content|generated_content_instructor|generated_content_snippet|generated_slideshow|generated_content_pdf|generated_content_students'
67
71
 
68
- self.asciidoc_to_html(@source, @destination, extensions, merged_options)
72
+ self.asciidoc_to_html(@source, @destination, extensions, excludes, merged_options)
69
73
 
70
74
  when 'html2pdf'
71
75
 
@@ -144,7 +148,7 @@ module Hyla
144
148
  #
145
149
  # Call Asciidoctor.render function
146
150
  #
147
- def self.asciidoc_to_html(source, destination, extensions, options)
151
+ def self.asciidoc_to_html(source, destination, extensions, excludes, options)
148
152
 
149
153
  # Move to Source directory & Retrieve Asciidoctor files to be processed
150
154
  source = File.expand_path source
@@ -173,74 +177,80 @@ module Hyla
173
177
  # Delete destination directory (generated_content, ...)
174
178
  # FileUtils.rm_rf(Dir.glob(@destination))
175
179
 
176
- # Search for files using extensions parameter and do the rendering
177
180
  adoc_file_paths = []
178
- Find.find(current_dir) do |f|
179
- if f =~ /.*\.(?:#{extensions})$/
180
181
 
181
- path_to_source = Pathname.new(source)
182
- path_to_adoc_file = Pathname.new(f)
183
- relative_path = path_to_adoc_file.relative_path_from(path_to_source).to_s
184
- Hyla.logger.debug ">> Relative path: #{relative_path}"
185
- adoc_file_paths << relative_path
182
+ #
183
+ # Search for files into the current directory using extensions parameter as filter key
184
+ # Reject directory specified and do the rendering
185
+ #
186
+ files = Dir[current_dir + "/**/*.{" + extensions + "}"].reject { |f| f =~ /\/#{excludes}\// }
186
187
 
187
- # Get asciidoc file name
188
- file_name_processed = path_to_adoc_file.basename
188
+ #
189
+ # Check if companion parameter is defined
190
+ # as we have to modify the AllSlides.txt file
191
+ # containing as tag name this value [tag=snippet]
192
+ #
193
+ if options[:snippet_content] == true
194
+ files.each do |f|
195
+ add_tag_to_index_file(f)
196
+ end
197
+ end
189
198
 
190
- #
191
- # Create destination dir relative to the path calculated
192
- #
193
- html_dir = @destination + '/' + File.dirname(relative_path)
194
- Hyla.logger.info ">> Dir of html: #{html_dir}"
195
- FileUtils.mkdir_p html_dir
196
-
197
- # Copy Fonts
198
- # TODO : Verify if we still need to do that as the FONTS liberation have been moved
199
- # TODO : under local lib directory of revealjs
200
- # self.cp_resources_to_dir(File.dirname(html_dir), 'fonts')
201
-
202
- # Copy Resources for Slideshow
203
- case options[:backend]
204
- when 'deckjs'
205
- # Copy css, js files to destination directory
206
- self.cp_resources_to_dir(File.dirname(html_dir), 'deck.js')
207
- when 'revealjs'
208
- self.cp_resources_to_dir(File.dirname(html_dir), 'revealjs')
209
- end
199
+ files.each do |f|
200
+ path_to_source = Pathname.new(source)
201
+ path_to_adoc_file = Pathname.new(f)
202
+ relative_path = path_to_adoc_file.relative_path_from(path_to_source).to_s
203
+ Hyla.logger.debug ">> Relative path: #{relative_path}"
204
+ adoc_file_paths << relative_path
210
205
 
211
- #
212
- # Check if companion parameter is defined
213
- # as we have to generate a new AllSlides.txt file
214
- # containing as tag name this value [snippet]
215
- #
216
- if options[:snippet_content] == true
217
- Hyla.logger.info "Snippet content has been selected. Index file will be modified and modifications will be reverted after asciidoctor processing"
218
- add_tag_to_index_file(f)
219
- end
206
+ # Get asciidoc file name
207
+ file_name_processed = path_to_adoc_file.basename
220
208
 
221
- #
222
- # Render asciidoc to HTML
223
- #
224
- Hyla.logger.info ">> File to be rendered : #{file_name_processed}"
209
+ #
210
+ # Create destination dir relative to the path calculated
211
+ #
212
+ html_dir = @destination + '/' + File.dirname(relative_path)
213
+ Hyla.logger.info ">> Dir of html: #{html_dir}"
214
+ FileUtils.mkdir_p html_dir
215
+
216
+ # Copy Fonts
217
+ # TODO : Verify if we still need to do that as the FONTS liberation have been moved
218
+ # TODO : under local lib directory of revealjs
219
+ # self.cp_resources_to_dir(File.dirname(html_dir), 'fonts')
220
+
221
+ # Copy Resources for Slideshow
222
+ case options[:backend]
223
+ when 'deckjs'
224
+ # Copy css, js files to destination directory
225
+ self.cp_resources_to_dir(File.dirname(html_dir), 'deck.js')
226
+ when 'revealjs'
227
+ self.cp_resources_to_dir(File.dirname(html_dir), 'revealjs')
228
+ end
225
229
 
226
- #
227
- # Convert asciidoc file name to html file name
228
- #
229
- html_file_name = file_name_processed.to_s.gsub(/.adoc$|.ad$|.asciidoc$|.index$|.txt$/, '.html')
230
- options[:to_dir] = html_dir
231
- options[:to_file] = html_file_name
232
- options[:attributes] = @attributes_bk
233
- Asciidoctor.render_file(f, options)
230
+ #
231
+ # Render asciidoc to HTML
232
+ #
233
+ Hyla.logger.info ">> File to be rendered : #{file_name_processed}"
234
234
 
235
- #
236
- # Check if companion parameter is defined
237
- # as we have to generate a new AllSlides.txt file
238
- # containing as tag name this value [companion]
239
- #
240
- if options[:snippet_content] == true
241
- remove_tag_from_index_file(f)
242
- end
235
+ #
236
+ # Convert asciidoc file name to html file name
237
+ #
238
+ html_file_name = file_name_processed.to_s.gsub(/.adoc$|.ad$|.asciidoc$|.index$|.txt$/, '.html')
239
+ options[:to_dir] = html_dir
240
+ options[:to_file] = html_file_name
241
+ options[:attributes] = @attributes_bk
242
+ Asciidoctor.render_file(f, options)
243
243
 
244
+ # end
245
+ end
246
+
247
+ #
248
+ # Check if companion parameter is defined
249
+ # and remove the companion tag from indexed files
250
+ #
251
+ if options[:snippet_content] == true
252
+ files.each do |f|
253
+ remove_tag_from_index_file(f)
244
254
  end
245
255
  end
246
256
 
@@ -252,6 +262,7 @@ module Hyla
252
262
 
253
263
  end
254
264
 
265
+
255
266
  #
256
267
  # CSS Style to be used
257
268
  # Default is : asciidoctor.css
@@ -485,7 +496,7 @@ module Hyla
485
496
  file_to_processed = [File.expand_path(Dir.getwd), file_name] * '/'
486
497
  result = self.extract_file_names(file_to_processed, source)
487
498
 
488
- result.each do | file_path |
499
+ result.each do |file_path|
489
500
  if file_path.downcase.include?('title') || file_path.downcase.include?('cover')
490
501
  @cover_path = file_path
491
502
  next
@@ -562,21 +573,41 @@ module Hyla
562
573
  end
563
574
 
564
575
  #
565
- # Add snippet tag index file
576
+ # Add snippet tag to index file with extension .ad[]
577
+ # as this is not yet the case
566
578
  #
567
579
  def self.add_tag_to_index_file(index_file)
568
- text = File.read(index_file)
569
- replace = text.gsub!('[]','[tag=' + Configuration::SNIPPET_TAG + ']')
570
- File.open(index_file, "w") { |file| file.puts replace }
580
+ content = File.read(index_file)
581
+ #
582
+ # Modify the content of an index file if
583
+ # it contains include::file with extension .ad, .adoc or .asciidoc
584
+ #
585
+ if content =~ /(\.ad)|(\.adoc)|(\.asciidoc)/
586
+ replace = content.gsub(/\[/, '[tag=' + Configuration::SNIPPET_TAG)
587
+ replace_content(index_file, replace)
588
+ end
571
589
  end
572
590
 
573
591
  #
574
592
  # Remove snippet tag from index file
575
593
  #
576
594
  def self.remove_tag_from_index_file(index_file)
577
- text = File.read(index_file)
578
- replace = text.gsub!('[tag=' + Configuration::SNIPPET_TAG + ']', '[]')
579
- File.open(index_file, "w") { |file| file.puts replace }
595
+ content = File.read(index_file)
596
+ #
597
+ # Modify the content of an index file if
598
+ # it contains include::file with extension .ad, .adoc or .asciidoc
599
+ #
600
+ if content =~ /(\.ad)|(\.adoc)|(\.asciidoc)/
601
+ replace = content.gsub('[tag=' + Configuration::SNIPPET_TAG, '[')
602
+ replace_content(index_file, replace)
603
+ end
604
+ end
605
+
606
+ #
607
+ # Replace content of a File
608
+ #
609
+ def self.replace_content(f, content)
610
+ File.open(f, "w") { |f| f.puts content } if !content.empty?
580
611
  end
581
612
 
582
613
  #
@@ -1,5 +1,5 @@
1
1
  module Hyla
2
- VERSION = '1.0.5'
2
+ VERSION = '1.0.6'
3
3
  DESCRIPTION = 'Asciidoctor Hyla - Command Line tool to create new project, watch modifications, generate content, publish or consult it live !'
4
4
  SUMMARY = 'Asciidoctor Hyla - builder/generator of HTML5, slideshow. Watch modifications, generate content, publish or consult it live !'
5
5
  end
@@ -60,6 +60,8 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
60
60
  script type='text/javascript' src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-MML-AM_HTMLorMML'
61
61
  script type='text/javascript'
62
62
  |document.addEventListener('DOMContentLoaded', MathJax.Hub.TypeSet)
63
+ - if attr? :script
64
+ script type='text/javascript' href=normalize_web_path((attr :script), (attr :scriptsdir, ''))
63
65
  - unless (docinfo_content = docinfo).empty?
64
66
  =docinfo_content
65
67
  body id=@id class=[(attr :doctype),((attr? 'toc-class') && (attr? :toc) && (attr? 'toc-placement', 'auto') ? "#{attr 'toc-class'} toc-#{attr 'toc-position', 'left'}" : nil)] style=("max-width: #{attr 'max-width'};" if attr? 'max-width')
@@ -1,6 +1,7 @@
1
1
  - slide_vertical_alignment = (attr? :revealjs_vertical_alignment) ? (attr :revealjs_vertical_alignment) : true
2
2
  - browser_history = (attr? :revealjs_history) ? (attr :revealjs_history) : true
3
3
  - display_slide_number = (attr? :revealjs_display_slide_number) ? (attr :revealjs_display_slide_number) : false
4
+ - transition = (attr? :revealjs_transition) ? (attr :revealjs_transition) : 'default'
4
5
  doctype 5
5
6
  html lang=(attr :lang, 'en' unless attr? :nolang)
6
7
  head
@@ -18,6 +19,8 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
18
19
 
19
20
  - if attr? :revealjs_theme
20
21
  link rel='stylesheet' href='revealjs/css/theme/#{attr :revealjs_theme}.css' id='theme'
22
+ - elsif attr? :revealjs_customtheme
23
+ link rel='stylesheet' href='#{attr :revealjs_customtheme}' id='theme'
21
24
  - else
22
25
  link rel='stylesheet' href='revealjs/css/theme/gpe.css' id='theme'
23
26
 
@@ -117,7 +120,7 @@ html lang=(attr :lang, 'en' unless attr? :nolang)
117
120
  theme: Reveal.getQueryHash().theme, // available themes are in /css/theme
118
121
 
119
122
  // Transition style
120
- transition: Reveal.getQueryHash().transition || 'none', // default/cube/page/concave/zoom/linear/fade/none
123
+ transition: Reveal.getQueryHash().transition || '#{transition}', // default/cube/page/concave/zoom/linear/fade/none
121
124
 
122
125
  // Parallax scrolling
123
126
  // parallaxBackgroundImage: 'https://s3.amazonaws.com/hakim-static/reveal-js/reveal-parallax-1.jpg',
@@ -1,7 +1,7 @@
1
1
  - resize_text = (attr? :resize_section) ? (attr :resize_section) : false
2
2
  - if resize_text == 'true'
3
3
  div style="position:absolute; top:150px; left:10px; right:10px;"
4
- section id=@id data-transition=(attr 'data-transition') data-transition-speed=(attr 'data-transition-speed') data-background=(attr 'data-background') data-background-size=(attr 'data-background-size') data-background-repeat=(attr 'data-background-repeat') data-background-transition=(attr 'data-background-transition')
4
+ section id=@id class=(attr 'data-state') data-transition=(attr 'data-transition') data-transition-speed=(attr 'data-transition-speed') data-background=(attr 'data-background') data-background-size=(attr 'data-background-size') data-background-repeat=(attr 'data-background-repeat') data-background-transition=(attr 'data-background-transition')
5
5
  h2=title
6
6
  - if attr? :scrollbar
7
7
  .scrollbar
@@ -9,7 +9,7 @@
9
9
  - else
10
10
  =content.chomp
11
11
  - else
12
- section id=@id data-transition=(attr 'data-transition') data-transition-speed=(attr 'data-transition-speed') data-background=(attr 'data-background') data-background-size=(attr 'data-background-size') data-background-repeat=(attr 'data-background-repeat') data-background-transition=(attr 'data-background-transition')
12
+ section id=@id class=(attr 'data-state') data-transition=(attr 'data-transition') data-transition-speed=(attr 'data-transition-speed') data-background=(attr 'data-background') data-background-size=(attr 'data-background-size') data-background-repeat=(attr 'data-background-repeat') data-background-transition=(attr 'data-background-transition')
13
13
  h2=title
14
14
  - if attr? :scrollbar
15
15
  .scrollbar
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyla
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Mouliard
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-08-20 00:00:00.000000000 Z
11
+ date: 2015-01-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler